Thread (24 messages) 24 messages, 8 authors, 2010-12-09

Re: [RFC] - Mapping ACPI tables as CACHED

From: Len Brown <lenb@kernel.org>
Date: 2010-08-26 17:48:18
Also in: lkml

On Tue, 17 Aug 2010, Jack Steiner wrote:
On EFI-enabled systems (like UV), the ACPI tables are already mapped as
WB memory. This is done in the EFI function efi_enter_virtual_mode().

The E820_ACPI & E820_NVS regions will be mapped as WB memory if the BIOS
sets the WB attribute in the EFI memmap entry for the chunk of memory.

The ACPI code in acpi_os_map_memory() is not currently aware of the EFI mapping
& currently maps the memory as UC. This seems like a bug.

In order to prevent attribute aliasing, I think the ACPI mapping needs to
be consistent with the EFI mapping.  Otherwise, we will have the OS
referencing the memory as UC at the same time BIOS is referencing it as WB.
When would the firmware touch those tables after booting the OS?

We once found a Toshiba laptop where the BIOS
scribbles on the DSDT at run-time.
We presumed from this that Windows
must snapshot the tables at boot and run from a copy.

We decided not to copy the tables, but to use them in-place.
So we added a check for run-time corruption of the tables
and we've seen it fire only on that one Toshiba box
(which now boots with "acpi=copy_dsdt").

thanks,
Len Brown, Intel Open Source Technology Center


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help