Hello, I commented out the reset_addr line without success. It triggers a page fault at another address. 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
page fault, pd='init -> drivers -> acpi_drv' thread='ep' cpu=0 ip=0x10126a3
address=0xbff00000 stack pointer=0x401fbba0 qualifiers=0x4 irUwp reason=1
If I replace
memory.map_region(base, _table->size);
by
memory.map_region(base, _table->size+0xe); // To force the mapping of 0x80000000
in acpi.cc, it works fine. But I don't think this is a good way to fix the issue. Any idea? @Christian, Yes I'am working with the 20.05 version. Please, find attached the related log files.
Le mer. 8 juil. 2020 à 16:39, Alexander Boettcher < alexander.boettcher@genode-labs.com> a écrit :
On 08.07.20 14:54, Alexander Botcher wrote:
On 07.07.20 21:40, Parfait Tokponnon wrote:
The IP:0x1010ab2 resolves to /home/parfait/git/genode20.05/repos/os/src/drivers/acpi/acpi.cc:254
where I
can read following :
Fadt(addr_t a) : Genode::Mmio(a)
{ features = readFadt::Feature_flags(); reset_type = readFadt::Reset_reg_type(); 254 reset_addr = readFadt::Reset_reg_addr(); reset_value = readFadt::Reset_value(); }
Reading again the Fadt structure documentation, I noticed that the reset fields are supported for ACPI 2.0+. If only a ACPI 1.x structure is provided, we should not read the values. I think depending on the ACPI version we should not read the values.
Since the reset values are not used anywhere in the code, you could just comment out the 3 lines and you should get further.
Cheers,
Alex.
-- 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