Damien Zammit, le ven. 26 mars 2021 20:48:47 +1100, a ecrit:
> - /* check alignment. */
> - if (acpi_check_rsdp_align(base) == ACPI_BAD_ALIGN)
> - return NULL;
> -
> - /* Search the RSDP in first 1024 bytes from EDBA. */
> - rsdp = acpi_search_rsdp((void*)base,1024);
> + rsdp = acpi_search_rsdp((void *)phystokv(base), 1024);
> + if (acpi_check_rsdp_align(rsdp) == ACPI_BAD_ALIGN) {
? Checking for alignment after having done the search? Better check for
alignment before the search.
> + return NULL;
> }
>
> if (rsdp == NULL) {
> /* If RSDP isn't in EDBA, search in the BIOS read-only memory space
> between 0E0000h and 0FFFFFh */
> - rsdp = acpi_search_rsdp((void*) 0x0e0000, 0x100000 - 0x0e0000);
> + rsdp = acpi_search_rsdp((void *)phystokv(0xe0000), 0x20000);
Leave it 0x100000 - 0x0e0000, it's clearer.
Samuel