stand: Stop setting hints for bios loader too
Catch up to 2753bbe71b
and remove the old hints.
Sponsored by: Netflix
This commit is contained in:
parent
fdc1894795
commit
b1819983e7
@ -63,36 +63,24 @@ biosacpi_detect(void)
|
|||||||
/*
|
/*
|
||||||
* Report the RSDP to the kernel. While this can be found with
|
* Report the RSDP to the kernel. While this can be found with
|
||||||
* a BIOS boot, the RSDP may be elsewhere when booted from UEFI.
|
* a BIOS boot, the RSDP may be elsewhere when booted from UEFI.
|
||||||
* The old code used the 'hints' method to communite this to
|
|
||||||
* the kernel. However, while convenient, the 'hints' method
|
|
||||||
* is fragile and does not work when static hints are compiled
|
|
||||||
* into the kernel. Instead, move to setting different tunables
|
|
||||||
* that start with acpi. The old 'hints' can be removed before
|
|
||||||
* we branch for FreeBSD 12.
|
|
||||||
*/
|
*/
|
||||||
sprintf(buf, "0x%08x", VTOP(rsdp));
|
sprintf(buf, "0x%08x", VTOP(rsdp));
|
||||||
setenv("hint.acpi.0.rsdp", buf, 1);
|
|
||||||
setenv("acpi.rsdp", buf, 1);
|
setenv("acpi.rsdp", buf, 1);
|
||||||
revision = rsdp->Revision;
|
revision = rsdp->Revision;
|
||||||
if (revision == 0)
|
if (revision == 0)
|
||||||
revision = 1;
|
revision = 1;
|
||||||
sprintf(buf, "%d", revision);
|
sprintf(buf, "%d", revision);
|
||||||
setenv("hint.acpi.0.revision", buf, 1);
|
|
||||||
setenv("acpi.revision", buf, 1);
|
setenv("acpi.revision", buf, 1);
|
||||||
strncpy(buf, rsdp->OemId, sizeof(rsdp->OemId));
|
strncpy(buf, rsdp->OemId, sizeof(rsdp->OemId));
|
||||||
buf[sizeof(rsdp->OemId)] = '\0';
|
buf[sizeof(rsdp->OemId)] = '\0';
|
||||||
setenv("hint.acpi.0.oem", buf, 1);
|
|
||||||
setenv("acpi.oem", buf, 1);
|
setenv("acpi.oem", buf, 1);
|
||||||
sprintf(buf, "0x%08x", rsdp->RsdtPhysicalAddress);
|
sprintf(buf, "0x%08x", rsdp->RsdtPhysicalAddress);
|
||||||
setenv("hint.acpi.0.rsdt", buf, 1);
|
|
||||||
setenv("acpi.rsdt", buf, 1);
|
setenv("acpi.rsdt", buf, 1);
|
||||||
if (revision >= 2) {
|
if (revision >= 2) {
|
||||||
/* XXX extended checksum? */
|
/* XXX extended checksum? */
|
||||||
sprintf(buf, "0x%016llx", rsdp->XsdtPhysicalAddress);
|
sprintf(buf, "0x%016llx", rsdp->XsdtPhysicalAddress);
|
||||||
setenv("hint.acpi.0.xsdt", buf, 1);
|
|
||||||
setenv("acpi.xsdt", buf, 1);
|
setenv("acpi.xsdt", buf, 1);
|
||||||
sprintf(buf, "%d", rsdp->Length);
|
sprintf(buf, "%d", rsdp->Length);
|
||||||
setenv("hint.acpi.0.xsdt_length", buf, 1);
|
|
||||||
setenv("acpi.xsdt_length", buf, 1);
|
setenv("acpi.xsdt_length", buf, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user