Genode on PC Engines apu2c4 with coreboot

Alexander Boettcher alexander.boettcher at genode-labs.com
Thu Sep 5 20:41:02 CEST 2019


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_platform-information_handling
[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 at 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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <http://lists.genode.org/pipermail/users/attachments/20190905/917b3b2f/attachment.sig>


More information about the users mailing list