Manuel Bouyer | 21 Apr 2012 22:47

ACPI mapping wrong memory

Hello,
I ran into a problem here, where NetBSD wouldn't boot as Xen dom0.
I tracked it down to ACPI requesting a mapping to a memory area
no allocated to the dom0: the address is just above 4GB.
This looks wrong to me, because such adresss wouldn't work with i386 anyway.
The attached patch got NetBSD/Xen working for me, but with these messages:

mainbus0 (root)
acpi_md_OsMapMemory 0x40e len 2
acpi_md_OsMapMemory 0x9d800 len 1024
acpi_md_OsMapMemory 0xe0000 len 131072
acpi_md_OsMapMemory 0xfacd0 len 36
acpi_md_OsMapMemory 0xd7e70100 len 36
acpi_md_OsMapMemory 0xd7e70100 len 132
acpi_md_OsMapMemory 0xd7e70290 len 36
acpi_md_OsMapMemory 0xd7e70290 len 244
acpi_md_OsMapMemory 0xd7e707c0 len 36
acpi_md_OsMapMemory 0xd7e94000 len 36
acpi_md_OsMapMemory 0xd7e70390 len 36
acpi_md_OsMapMemory 0xd7e70600 len 36
acpi_md_OsMapMemory 0xd7e94040 len 36
acpi_md_OsMapMemory 0xd7e7a7c0 len 36
acpi_md_OsMapMemory 0xd7e7a800 len 36
acpi_md_OsMapMemory 0xd7e7adc0 len 36
acpi_md_OsMapMemory 0xd7e7ae30 len 36
acpi_md_OsMapMemory 0xd7e80360 len 36
acpi_md_OsMapMemory 0xd7e804f0 len 36
acpi_md_OsMapMemory 0xd7e80520 len 36
acpi_md_OsMapMemory 0xd7e806d0 len 36
acpi_md_OsMapMemory 0xd7e707c0 len 26369
(Continue reading)

Jukka Ruohonen | 22 Apr 2012 08:41
Picon
Picon
Favicon

Re: ACPI mapping wrong memory

On Sat, Apr 21, 2012 at 10:47:21PM +0200, Manuel Bouyer wrote:
> acpi_md_OsMapMemory 0x100000128 len 727
> ACPI Error: Could not map memory at 0x0000000100000128, size 727 (20110623/exregion-197)
> ACPI Exception: AE_NO_MEMORY, Returned by Handler for [SystemMemory] (20110623/evregion-522)
> ACPI Error: Method parse/execution failed [\_SB_.PCI0.SATA.PRID.P_D0._STA] (Node
0xfffffe9012ef30a8), AE_NO_MEMORY (20110623/psparse-560)
> ACPI Error: Method execution failed [\_SB_.PCI0.SATA.PRID.P_D0._STA] (Node 0xfffffe9012ef30a8),
AE_NO_MEMORY (20110623/uteval-114)
> acpi_md_OsMapMemory 0x100000228 len 471

> Would this be a BIOS bug ?

Yes.

> Would there be a clean way to fix this ?

I don't know about a clean way, but I added the sanity check to the
function, as done also in Linux.

- Jukka.


Gmane