RE: Pistachio: Code for parsing the ACPI tables doesn't map everyphysical pointer

"Jan Stoess" <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Hi Frank,

I am aware of that problem. We've got a pending change to improve ACPI
parsing, but were not able to test it thoroughly enough yet.

-Jan


> -----Original Message-----
> From: [email protected] [mailto:[email protected]
> karlsruhe.de] On Behalf Of Frank Mehnert
> Sent: Monday, April 10, 2006 5:58 PM
> To: [email protected]
> Subject: Pistachio: Code for parsing the ACPI tables doesn't map
> everyphysical pointer
> 
> Hi,
> 
> when searching the ACPI tables for, pointers to physical pointers are
not
> mapped in every case. Look at acpi__std_t::find(): This code assumes
that
> ptrs[] contains pointers to physical pages which are already mapped.
This
> is not necessary guaranteed. My test box fails to boot when APIC
support
> is enabled:
> 
>   kmem_init (f0132000, f0152000) [128K]
>   remap area f0000000->00000000 len=400000, w=1, k=1, size=1
>   remap area 00000000->00000000 len=400000, w=1, k=1, size=1
>   remap area 00000000->00000000 len=400000, w=1, k=1, size=1
>   activate_gdt
>   remap area fe000000->0e000000 len=1000000, w=1, k=1, size=1
>   RSDP is at 000feb00
>   RSDT is at 000fd211
>   XSDT is at 000fd265
> 
>   headers.len = 0x5C => 7 ptrs
>   ptrs[0] = 000fd35d
>   ptrs[1] = fffcaf60
>   ptrs[2] = 000fd451
>   ptrs[3] = 000fd4c3
>   ptrs[4] = 000fd4eb
>   ptrs[5] = 000fd552
>   ptrs[6] = 000fd590
>   ptrs[7] = 00000000
> 
> The value of ptrs[2] points to a physical memory page which is still
not
> mapped. This examples shows furthermore that it is dangerous to map
the
> ACPI tables one-by-one (conflicts with kernel region).
> 
> Frank
> --
> ## InnoTek Systemberatung GmbH, http://www.innotek.de ##
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.