Crash on Windriver Simics : page fault, pd='init -> drivers -> acpi_drv' thread='ep'

Alexander Boettcher alexander.boettcher at genode-labs.com
Thu Jul 9 17:44:41 CEST 2020


On 09.07.20 15:19, Parfait Tokponnon wrote:
> I commented out the reset_addr line without success. It triggers a page
> fault at another address.

I wrote to remove all _3_ lines with reset_* to avoid the pagefault, not only 1 line ;-)

> Applying the patch reveals the following about the 'FACP' table structure
> just before the page fault
> 
>> [init -> drivers -> acpi_drv] Warning: attach memory - 0x3feff000+0x1000,
>> Loop_base 0x7feff000, IO base 1073741824
>> [init -> drivers -> acpi_drv] table mapped 'FACP' at 0xbfefff80 (from
>> 0x7fefff80) size 0x74

As I pressumed, the table is solely 0x74 in size. Looking at the code:

 253 .   .   reset_type  = read<Fadt::Reset_reg_type>();                             
 254 .   .   reset_addr  = read<Fadt::Reset_reg_addr>();                             
 255 .   .   reset_value = read<Fadt::Reset_value>();                                
 256 .   }                                                                           
 257                                                                                 
 258 .   struct Dsdt           : Register<0x28, 32> { };                             
 259 .   struct Feature_flags  : Register<0x70, 32> { };                             
 260 .   struct Reset_reg_type : Register<0x74, 32> { };                             
 261 .   struct Reset_reg_addr : Register<0x78, 64> { };                             
 262 .   struct Reset_value    : Register<0x80, 8>  { }; 

you see that the Reset_* types are behind the tables, namely at offset 0x74, 0x78, 0x80.

Do you like to open an issue and provide a patch ?

Thanks for investigation,

Alex.

>>
>> Since the reset values are not used anywhere in the code, you could just
>> comment out the 3 lines and you should get further.
>>

-- 
Alexander Boettcher
Genode Labs

https://www.genode-labs.com - https://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list