Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
Hello Sid,
because of [0] you need with 18.05 a valid MCFG ACPI table to run Genode on x86. The general answer is, that coreboot or companion must provide the tables, otherwise you are out of luck. Maybe the hints at [1] are helpful to start investigation for you coreboot build ?
Cheers,
Alex.
[0] https://genode.org/documentation/release-notes/18.05#Kernel-agnostic_platfor... [1] https://www.coreboot.org/ACPI#acpi_fill_mcfg
On 05.09.19 16:06, Sid Hussmann wrote:
Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
[1] https://github.com/chelmuth/genode/commits/cobalt
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Sorry, the link was one section off
[0] https://genode.org/documentation/release-notes/18.05#Accessing_PCI_via_ECAM_...
On 05.09.19 20:41, Alexander Boettcher wrote:
Hello Sid,
because of [0] you need with 18.05 a valid MCFG ACPI table to run Genode on x86. The general answer is, that coreboot or companion must provide the tables, otherwise you are out of luck. Maybe the hints at [1] are helpful to start investigation for you coreboot build ?
Cheers,
Alex.
[0] https://genode.org/documentation/release-notes/18.05#Kernel-agnostic_platfor... [1] https://www.coreboot.org/ACPI#acpi_fill_mcfg
On 05.09.19 16:06, Sid Hussmann wrote:
Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
[1] https://github.com/chelmuth/genode/commits/cobalt
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Fortunately, the pcengines coreboot maintainers are awesome people and interested in enabling cool use cases :)
I pointed them at this thread and briefly described the situation & motivation, and a MCFG table is now pending review! [1]
If you aren't afraid of reflashing, you may already be unblocked :)
Cheers, Jean-Philippe
[1]: https://review.coreboot.org/c/coreboot/+/35286
On Thu, Sep 5, 2019 at 11:41 AM Alexander Boettcher alexander.boettcher@genode-labs.com wrote:
Hello Sid,
because of [0] you need with 18.05 a valid MCFG ACPI table to run Genode on x86. The general answer is, that coreboot or companion must provide the tables, otherwise you are out of luck. Maybe the hints at [1] are helpful to start investigation for you coreboot build ?
Cheers,
Alex.
[0] https://genode.org/documentation/release-notes/18.05#Kernel-agnostic_platfor... [1] https://www.coreboot.org/ACPI#acpi_fill_mcfg
On 05.09.19 16:06, Sid Hussmann wrote:
Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
[1] https://github.com/chelmuth/genode/commits/cobalt
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- 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
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hello Jean-Philippe,
thanks (and of course the pcengine maintainer) for the efforts. Let's see what Sid will tell us.
Alex.
On 06.09.19 20:52, Jean-Philippe Ouellet wrote:
Fortunately, the pcengines coreboot maintainers are awesome people and interested in enabling cool use cases :)
I pointed them at this thread and briefly described the situation & motivation, and a MCFG table is now pending review! [1]
If you aren't afraid of reflashing, you may already be unblocked :)
Cheers, Jean-Philippe
On Thu, Sep 5, 2019 at 11:41 AM Alexander Boettcher alexander.boettcher@genode-labs.com wrote:
Hello Sid,
because of [0] you need with 18.05 a valid MCFG ACPI table to run Genode on x86. The general answer is, that coreboot or companion must provide the tables, otherwise you are out of luck. Maybe the hints at [1] are helpful to start investigation for you coreboot build ?
Cheers,
Alex.
[0] https://genode.org/documentation/release-notes/18.05#Kernel-agnostic_platfor... [1] https://www.coreboot.org/ACPI#acpi_fill_mcfg
On 05.09.19 16:06, Sid Hussmann wrote:
Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
[1] https://github.com/chelmuth/genode/commits/cobalt
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- 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
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hi Jean-Philippe, and Michal,
thanks for pointing Michal to this thread! And Michal, thank you so much for the quick fix! I just built the coreboot image including your patch with the MCFG table. Unfortunately I don't have a device with me. Will test tomorrow morning and give feedback then.
Cheers, Sid
On 9/8/19 2:25 PM, Alexander Boettcher wrote:
Hello Jean-Philippe,
thanks (and of course the pcengine maintainer) for the efforts. Let's see what Sid will tell us.
Alex.
On 06.09.19 20:52, Jean-Philippe Ouellet wrote:
Fortunately, the pcengines coreboot maintainers are awesome people and interested in enabling cool use cases :)
I pointed them at this thread and briefly described the situation & motivation, and a MCFG table is now pending review! [1]
If you aren't afraid of reflashing, you may already be unblocked :)
Cheers, Jean-Philippe
On Thu, Sep 5, 2019 at 11:41 AM Alexander Boettcher alexander.boettcher@genode-labs.com wrote:
Hello Sid,
because of [0] you need with 18.05 a valid MCFG ACPI table to run Genode on x86. The general answer is, that coreboot or companion must provide the tables, otherwise you are out of luck. Maybe the hints at [1] are helpful to start investigation for you coreboot build ?
Cheers,
Alex.
[0] https://genode.org/documentation/release-notes/18.05#Kernel-agnostic_platfor... [1] https://www.coreboot.org/ACPI#acpi_fill_mcfg
On 05.09.19 16:06, Sid Hussmann wrote:
Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
[1] https://github.com/chelmuth/genode/commits/cobalt
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- 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
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Good morning,
coreboot now sends the MCFG table and I'm able to access all PCIe devices. Thanks y'all for the support!
Cheers, Sid
On 9/8/19 7:35 PM, Sid Hussmann wrote:
Hi Jean-Philippe, and Michal,
thanks for pointing Michal to this thread! And Michal, thank you so much for the quick fix! I just built the coreboot image including your patch with the MCFG table. Unfortunately I don't have a device with me. Will test tomorrow morning and give feedback then.
Cheers, Sid
On 9/8/19 2:25 PM, Alexander Boettcher wrote:
Hello Jean-Philippe,
thanks (and of course the pcengine maintainer) for the efforts. Let's see what Sid will tell us.
Alex.
On 06.09.19 20:52, Jean-Philippe Ouellet wrote:
Fortunately, the pcengines coreboot maintainers are awesome people and interested in enabling cool use cases :)
I pointed them at this thread and briefly described the situation & motivation, and a MCFG table is now pending review! [1]
If you aren't afraid of reflashing, you may already be unblocked :)
Cheers, Jean-Philippe
On Thu, Sep 5, 2019 at 11:41 AM Alexander Boettcher alexander.boettcher@genode-labs.com wrote:
Hello Sid,
because of [0] you need with 18.05 a valid MCFG ACPI table to run Genode on x86. The general answer is, that coreboot or companion must provide the tables, otherwise you are out of luck. Maybe the hints at [1] are helpful to start investigation for you coreboot build ?
Cheers,
Alex.
[0] https://genode.org/documentation/release-notes/18.05#Kernel-agnostic_platfor... [1] https://www.coreboot.org/ACPI#acpi_fill_mcfg
On 05.09.19 16:06, Sid Hussmann wrote:
Dear Genodians,
I'm trying to enable Genode on the apu2c4. I successfully could run the test-pci component using branch [1] based on Genode 17.11:
However, using the genodelabs/master branch results in a ACPI parsing error: ´[init -> platform_drv] Error: ACPI report parsing error.´
I set the report_rom to verbose and I noticed following differences:
# Working version on apu2c4 [1]:
´´´ Genode 17.11-103-gd0028480b <local changes> 4039 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <fadt features="0x3c5a5" reset_type="0x1000801" reset_addr="0xcf9" reset_value="0x6"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> test-pci] 0:0.0 class=0x600 vendor=0x1022 (unknown) device=0x1566 [init -> test-pci] 0:2.0 class=0x600 vendor=0x1022 (unknown) device=0x156b ...
´´´
# Broken version on apu2c4 (current master):
´´´ Genode 19.08 <local changes> 4027 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] XSDT OEM 'CORE ', table id 'COREBOOT', revision 0, creator 'CORE' (0) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0xc0"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xf"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] <routing gsi="0x2b" bridge_bdf="0x15" device="0x0" device_pin="0x3"/> [init -> acpi_report_rom] <routing gsi="0x2a" bridge_bdf="0x15" device="0x0" device_pin="0x2"/> [init -> acpi_report_rom] <routing gsi="0x29" bridge_bdf="0x15" device="0x0" device_pin="0x1"/> ... [init -> acpi_report_rom] <routing gsi="0x2c" bridge_bdf="0xc0" device="0x1" device_pin="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] Error: ACPI report parsing error. [init -> acpi_drv] SMBIOS table (entry point: 0x163ad0 structures: 0xdffd7020) [init -> platform_drv] Error: Uncaught exception of type 'int' [init -> platform_drv] Warning: abort called - thread: ep [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_b▒ ´´´
# on QEMU (current master):
´´´ Genode 19.08 <local changes> 471 MiB RAM and 63253 caps assigned to init [init -> test-pci] --- Platform test started --- [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> acpi_report_rom] report 'acpi_drv -> acpi' [init -> acpi_report_rom] <acpi> [init -> acpi_report_rom] <root_bridge bdf="0x0"/> [init -> acpi_report_rom] <bdf start="0" count="65536" base="0xb0000000"/> [init -> acpi_report_rom] <irq_override irq="11" gsi="11" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="10" gsi="10" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="9" gsi="9" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="5" gsi="5" flags="0xd"/> [init -> acpi_report_rom] <irq_override irq="0" gsi="2" flags="0x0"/> [init -> acpi_report_rom] </acpi> [init -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> acpi_drv] SMBIOS table (entry point: 0x165710 structures: 0xf5730) [init -> platform_drv] Root bridge: 00:00.0 [init -> acpi_report_rom] report 'acpi_drv -> smbios_table' [init -> acpi_report_rom] _SM_W [init -> test-pci] 0:0.0 class=0x600 vendor=0x8086 (Intel) device=0x29c0 [init -> test-pci] 0:1.0 class=0x300 vendor=0x1234 (unknown) device=0x1111 ...
´´´
Cherry-picking from [1] to the master branch didn't help.
On QEMU I noticed a ´bdf´ node in the acpi_report. ´platform_drv´ is expecting this node. The ´bdf´ node is written in ´Acpi::generate_report()´ but only if there is an entry in the ´Pci_config_space´ list. The only function that inserts something to that list is ´Table_wrapper::parse_mcfg()´, which is called from ´Acpi_table::_parse_tables()´ in case one of the tables has the "MCFG" signature. However, none of the tables seem to have that signature.
And now I'm lost. How do I move on?
Cheers, Sid
[1] https://github.com/chelmuth/genode/commits/cobalt
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- 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
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users