archacpi: make *acpi=1 the default

This commit is contained in:
cinap_lenrek 2021-07-15 16:07:54 +00:00
parent 3b1c450cd5
commit 006c4d7ffc
2 changed files with 27 additions and 16 deletions

View file

@ -887,16 +887,27 @@ For example:
umbexclude=0xD1800-0xD3FFF
.EE
.SS \fL*acpi=\fIvalue\fP
The presence of this option enables ACPI and the export of the
.B #P/acpitbls
file in
.IR arch (3)
device. In multiprocessor mode, the kernel will use the ACPI
tables to configure APIC interrupts unless a
This option controls the search for ACPI tables by the kernel.
The
.I value
of
.B 0
is specified.
is the hexadecimal physical address of the RSD structure
and is passed by the EFI bootloer
.IR 9boot (8)
automatically.
The special
.I value
of 1 or empty make the kernel search for the structure
in BIOS memory area (This is the default).
The
special
.I value
of 0 will disable ACPI support (for interrupt routing)
in the kernel,
but still make table data available in
.B #P/acpitbls
file of the
.IR arch (3)
device.
.SS \fLapm0=\fP
This enables the ``advanced power management'' interface
as described in

View file

@ -787,18 +787,18 @@ readtbls(Chan*, void *v, long n, vlong o)
static int
identify(void)
{
uvlong pa;
uvlong v;
char *cp;
Tbl *t;
if((cp = getconf("*acpi")) == nil)
return 1;
pa = (uintptr)strtoull(cp, nil, 16);
if(pa <= 1)
cp = "1"; /* search for rsd by default */
v = (uintptr)strtoull(cp, nil, 16);
if(v <= 1)
rsd = rsdsearch();
else {
memreserve(pa, sizeof(Rsd));
rsd = vmap(pa, sizeof(Rsd));
memreserve(v, sizeof(Rsd));
rsd = vmap(v, sizeof(Rsd));
}
if(rsd == nil)
return 1;
@ -807,7 +807,7 @@ identify(void)
maptables();
addarchfile("acpitbls", 0444, readtbls, nil);
addarchfile("acpimem", 0600, readmem, writemem);
if(strcmp(cp, "0") == 0 || findtable("APIC") == nil)
if(v == 0 || findtable("APIC") == nil)
return 1;
if((cp = getconf("*nomp")) != nil && strcmp(cp, "0") != 0)
return 1;