Dear all, My name is Xu LingXiao, i am a computer engineering student from University of Padua. I am interested in the topic "Port payloads to ARM, AArch64 or RISC-V", especially the RISC-V. The reason i want to attend this project is that i just received a risc-v board VisionFive2 from China(i am a Chinese student who study in Italy now), i want to port coreboot to my board. I plan to add payload to risc-v platform starting from qemu and then the real hardware. Now i have gone through the tourial, and here is serial output results(qemu-x86_64): [NOTE ] coreboot-4.19-701-g65c456227e-dirty Sun Mar 05 17:31:38 UTC 2023 x86_32 bootblock starting (log level: 7)... [DEBUG] FMAP: Found "FLASH" version 1.1 at 0x0. [DEBUG] FMAP: base = 0xffc00000 size = 0x400000 #areas = 3 [DEBUG] FMAP: area COREBOOT found @ 200 (4193792 bytes) [INFO ] CBFS: mcache @0x00014e00 built for 11 files, used 0x280 of 0x4000 bytes [INFO ] CBFS: Found 'fallback/romstage' @0x80 size 0x43f0 in mcache @0x00014e2c [DEBUG] BS: bootblock times (exec / console): total (unknown) / 4 ms
[NOTE ] coreboot-4.19-701-g65c456227e-dirty Sun Mar 05 17:31:38 UTC 2023 x86_32 romstage starting (log level: 7)... [INFO ] QEMU: firmware config interface detected [INFO ] Firmware config version id: 3 [INFO ] QEMU: firmware config: Found 'etc/e820' [DEBUG] CBMEM: [DEBUG] IMD: root @ 0x07fff000 254 entries. [DEBUG] IMD: root @ 0x07ffec00 62 entries. [DEBUG] FMAP: area COREBOOT found @ 200 (4193792 bytes) [INFO ] CBFS: Found 'fallback/postcar' @0x14e80 size 0x50f0 in mcache @0x00014fcc [DEBUG] Loading module at 0x07fd1000 with entry 0x07fd1031. filesize: 0x4de0 memsize: 0xb0f0 [DEBUG] Processing 180 relocs. Offset value of 0x05fd1000 [DEBUG] BS: romstage times (exec / console): total (unknown) / 4 ms
[NOTE ] coreboot-4.19-701-g65c456227e-dirty Sun Mar 05 17:31:38 UTC 2023 x86_32 postcar starting (log level: 7)... [DEBUG] FMAP: area COREBOOT found @ 200 (4193792 bytes) [INFO ] CBFS: Found 'fallback/ramstage' @0x4500 size 0xeaba in mcache @0x07ffea2c [DEBUG] Loading module at 0x07fa3000 with entry 0x07fa3000. filesize: 0x1c420 memsize: 0x2cba8 [DEBUG] Processing 1805 relocs. Offset value of 0x03fa3000 [DEBUG] BS: postcar times (exec / console): total (unknown) / 2 ms
[NOTE ] coreboot-4.19-701-g65c456227e-dirty Sun Mar 05 17:31:38 UTC 2023 x86_32 ramstage starting (log level: 7)... [INFO ] Enumerating buses... [DEBUG] Root Device scanning... [DEBUG] CPU_CLUSTER: 0 enabled [DEBUG] DOMAIN: 0000 enabled [DEBUG] DOMAIN: 0000 scanning... [DEBUG] PCI: pci_scan_bus for bus 00 [DEBUG] PCI: 00:00.0 [8086/1237] enabled [DEBUG] PCI: 00:01.0 [8086/7000] enabled [DEBUG] PCI: 00:01.1 [8086/7010] enabled [DEBUG] PCI: 00:01.3 [8086/7113] enabled [DEBUG] PCI: 00:02.0 [1234/1111] enabled [DEBUG] PCI: 00:03.0 [8086/100e] enabled [DEBUG] PCI: 00:01.0 scanning... [DEBUG] scan_bus: bus PCI: 00:01.0 finished in 0 msecs [DEBUG] PCI: 00:01.3 scanning... [DEBUG] scan_bus: bus PCI: 00:01.3 finished in 0 msecs [DEBUG] scan_bus: bus DOMAIN: 0000 finished in 2 msecs [DEBUG] scan_bus: bus Root Device finished in 2 msecs [INFO ] done [DEBUG] BS: BS_DEV_ENUMERATE run times (exec / console): 2 / 2 ms [DEBUG] found VGA at PCI: 00:02.0 [DEBUG] Setting up VGA for PCI: 00:02.0 [DEBUG] Setting PCI_BRIDGE_CTL_VGA for bridge DOMAIN: 0000 [DEBUG] Setting PCI_BRIDGE_CTL_VGA for bridge Root Device [INFO ] Allocating resources... [INFO ] Reading resources... [INFO ] QEMU: firmware config interface detected [INFO ] Firmware config version id: 3 [INFO ] QEMU: firmware config: Found 'etc/e820' [DEBUG] QEMU: e820/res: 0xfd00000000 +0x300000000 [DEBUG] QEMU: e820/ram: 0x00000000 + 0x08000000 [DEBUG] QEMU: reserve ioports 0x0510-0x0511 [firmware-config] [DEBUG] QEMU: reserve ioports 0x5658-0x5658 [vmware-port] [DEBUG] QEMU: reserve ioports 0xae00-0xae0f [pci-hotplug] [DEBUG] QEMU: reserve ioports 0xaf00-0xaf1f [cpu-hotplug] [DEBUG] QEMU: reserve ioports 0xafe0-0xafe3 [piix4-gpe0] [INFO ] Done reading resources. [INFO ] === Resource allocator: DOMAIN: 0000 - Pass 1 (gathering requirements) === [INFO ] === Resource allocator: DOMAIN: 0000 - Pass 2 (allocating resources) === [DEBUG] DOMAIN: 0000 io: base: 0 size: 0 align: 0 gran: 0 limit: ffff [DEBUG] update_constraints: DOMAIN: 0000 0d base 00000510 limit 00000511 io (fixed) [DEBUG] update_constraints: DOMAIN: 0000 0e base 00005658 limit 00005658 io (fixed) [DEBUG] update_constraints: DOMAIN: 0000 0f base 0000ae00 limit 0000ae0f io (fixed) [DEBUG] update_constraints: DOMAIN: 0000 10 base 0000af00 limit 0000af1f io (fixed) [DEBUG] update_constraints: DOMAIN: 0000 11 base 0000afe0 limit 0000afe3 io (fixed) [DEBUG] update_constraints: PCI: 00:01.0 01 base 00000000 limit 00000fff io (fixed) [DEBUG] update_constraints: PCI: 00:01.3 01 base 0000e400 limit 0000e43f io (fixed) [DEBUG] update_constraints: PCI: 00:01.3 02 base 00000f00 limit 00000f0f io (fixed) [INFO ] DOMAIN: 0000: Resource ranges: [INFO ] * Base: 1000, Size: 4658, Tag: 100 [INFO ] * Base: 5659, Size: 57a7, Tag: 100 [INFO ] * Base: ae10, Size: f0, Tag: 100 [INFO ] * Base: af20, Size: c0, Tag: 100 [INFO ] * Base: afe4, Size: 341c, Tag: 100 [INFO ] * Base: e440, Size: 1bc0, Tag: 100 [DEBUG] PCI: 00:03.0 14 * [0x1000 - 0x103f] limit: 103f io [DEBUG] PCI: 00:01.1 20 * [0x1040 - 0x104f] limit: 104f io [DEBUG] DOMAIN: 0000 io: base: 0 size: 0 align: 0 gran: 0 limit: ffff done [DEBUG] DOMAIN: 0000 mem: base: 0 size: 0 align: 0 gran: 0 limit: ffffffffff [DEBUG] update_constraints: DOMAIN: 0000 0a base fd00000000 limit ffffffffff mem (fixed) [DEBUG] update_constraints: DOMAIN: 0000 0b base 00000000 limit 0009ffff mem (fixed) [DEBUG] update_constraints: DOMAIN: 0000 0c base 000c0000 limit 07ffffff mem (fixed) [DEBUG] update_constraints: DOMAIN: 0000 12 base 000a0000 limit 000bffff mem (fixed) [DEBUG] update_constraints: DOMAIN: 0000 13 base 000c0000 limit 000fffff mem (fixed) [DEBUG] update_constraints: DOMAIN: 0000 02 base fec00000 limit fecfffff mem (fixed) [DEBUG] update_constraints: DOMAIN: 0000 03 base fee00000 limit fee0ffff mem (fixed) [DEBUG] update_constraints: PCI: 00:01.0 02 base ff800000 limit ffffffff mem (fixed) [DEBUG] update_constraints: PCI: 00:01.0 03 base fec00000 limit fec00fff mem (fixed) [INFO ] DOMAIN: 0000: Resource ranges: [INFO ] * Base: 8000000, Size: f6c00000, Tag: 200 [INFO ] * Base: fed00000, Size: 100000, Tag: 200 [INFO ] * Base: fee10000, Size: 9f0000, Tag: 200 [INFO ] * Base: 100000000, Size: fc00000000, Tag: 100200 [DEBUG] PCI: 00:02.0 10 * [0x8000000 - 0x8ffffff] limit: 8ffffff prefmem [DEBUG] PCI: 00:03.0 30 * [0x9000000 - 0x903ffff] limit: 903ffff mem [DEBUG] PCI: 00:03.0 10 * [0x9040000 - 0x905ffff] limit: 905ffff mem [DEBUG] PCI: 00:02.0 30 * [0x9060000 - 0x906ffff] limit: 906ffff mem [DEBUG] PCI: 00:02.0 18 * [0x9070000 - 0x9070fff] limit: 9070fff mem [DEBUG] DOMAIN: 0000 mem: base: 0 size: 0 align: 0 gran: 0 limit: ffffffffff done [INFO ] === Resource allocator: DOMAIN: 0000 - resource allocation complete === [DEBUG] PCI: 00:01.1 20 <- [0x0000000000001040 - 0x000000000000104f] size 0x00000010 gran 0x04 io [DEBUG] PCI: 00:02.0 10 <- [0x0000000008000000 - 0x0000000008ffffff] size 0x01000000 gran 0x18 prefmem [DEBUG] PCI: 00:02.0 18 <- [0x0000000009070000 - 0x0000000009070fff] size 0x00001000 gran 0x0c mem [DEBUG] PCI: 00:02.0 30 <- [0x0000000009060000 - 0x000000000906ffff] size 0x00010000 gran 0x10 romem [DEBUG] PCI: 00:03.0 10 <- [0x0000000009040000 - 0x000000000905ffff] size 0x00020000 gran 0x11 mem [DEBUG] PCI: 00:03.0 14 <- [0x0000000000001000 - 0x000000000000103f] size 0x00000040 gran 0x06 io [DEBUG] PCI: 00:03.0 30 <- [0x0000000009000000 - 0x000000000903ffff] size 0x00040000 gran 0x12 romem [INFO ] Done setting resources. [INFO ] Done allocating resources. [DEBUG] BS: BS_DEV_RESOURCES run times (exec / console): 5 / 13 ms [INFO ] Enabling resources... [DEBUG] PCI: 00:00.0 cmd <- 00 [DEBUG] PCI: 00:01.0 cmd <- 00 [DEBUG] PCI: 00:01.1 cmd <- 01 [DEBUG] PCI: 00:01.3 cmd <- 00 [DEBUG] PCI: 00:02.0 cmd <- 03 [DEBUG] PCI: 00:03.0 cmd <- 03 [INFO ] done. [DEBUG] BS: BS_DEV_ENABLE run times (exec / console): 1 / 1 ms [ERROR] Null dereference at eip: 0x7fb23ca [INFO ] Initializing devices... [DEBUG] CPU_CLUSTER: 0 init [INFO ] CPU: QEMU Virtual CPU version 2.5+. [INFO ] LAPIC 0x0 in XAPIC mode. [DEBUG] CPU: APIC: 00 enabled [DEBUG] Loading module at 0x00030000 with entry 0x00030000. filesize: 0x178 memsize: 0x178 [DEBUG] Processing 16 relocs. Offset value of 0x00030000 [INFO ] Initializing CPU #0 [DEBUG] CPU: vendor AMD device 60fb1 [DEBUG] CPU: family 0f, model 6b, stepping 01 [INFO ] CPU #0 initialized [INFO ] bsp_do_flight_plan done after 0 msecs. [DEBUG] CPU_CLUSTER: 0 init finished in 2 msecs [DEBUG] PCI: 00:00.0 init [DEBUG] Assigning IRQ 10 to PCI: 00:01.3 [DEBUG] Assigning IRQ 11 to PCI: 00:03.0 [DEBUG] PCI: 00:00.0 init finished in 1 msecs [DEBUG] PCI: 00:01.0 init [DEBUG] RTC Init [DEBUG] IOAPIC: Initializing IOAPIC at 0xfec00000 [DEBUG] IOAPIC: ID = 0x02 [DEBUG] IOAPIC: 24 interrupts [DEBUG] IOAPIC: Clearing IOAPIC at 0xfec00000 [DEBUG] IOAPIC: Bootstrap Processor Local APIC = 0x00 [DEBUG] PCI: 00:01.0 init finished in 1 msecs [DEBUG] PCI: 00:01.1 init [DEBUG] IDE: Primary IDE interface: on [DEBUG] IDE: Secondary IDE interface: on [DEBUG] IDE: Access to legacy IDE ports: off [DEBUG] PCI: 00:01.1 init finished in 0 msecs [DEBUG] PCI: 00:02.0 init [DEBUG] PCI: 00:02.0 init finished in 3 msecs [DEBUG] PCI: 00:03.0 init [DEBUG] PCI: 00:03.0 init finished in 0 msecs [INFO ] Devices initialized [DEBUG] BS: BS_DEV_INIT run times (exec / console): 7 / 4 ms [INFO ] Finalize devices... [INFO ] Devices finalized [DEBUG] BS: BS_POST_DEVICE run times (exec / console): 1 / 0 ms [INFO ] Copying Interrupt Routing Table to 0x000f0000... done. [INFO ] Copying Interrupt Routing Table to 0x07f99000... done. [DEBUG] PIRQ table: 128 bytes. [INFO ] QEMU: firmware config: Found 'etc/table-loader' [DEBUG] QEMU: found ACPI tables in fw_cfg. [INFO ] QEMU: firmware config: Found 'etc/acpi/rsdp' [DEBUG] QEMU: loading "etc/acpi/rsdp" to 0x7f75000 (len 20) [INFO ] QEMU: firmware config: Found 'etc/acpi/tables' [DEBUG] QEMU: loading "etc/acpi/tables" to 0x7f75040 (len 131072) [DEBUG] QEMU: loaded ACPI tables from fw_cfg. [DEBUG] Looking on 0x07f75000 for valid checksum [DEBUG] Checksum 1 passed [DEBUG] Checksum 2 passed all OK [DEBUG] ACPI: * SSDT [DEBUG] Found 1 CPU(s). [DEBUG] ACPI: added table 5/32, length now 56 [DEBUG] ACPI tables: 131136 bytes. [DEBUG] smbios_write_tables: 07f6d000 [DEBUG] SMBIOS firmware version is set to coreboot_version: '4.19-701-g65c456227e-dirty' [DEBUG] SMBIOS: Unknown CPU or CPU doesn't support Deterministic Cache CPUID leaf [INFO ] DOMAIN: 0000 (QEMU Northbridge i440fx) [INFO ] QEMU: firmware config: Found 'etc/smbios/smbios-tables' [DEBUG] QEMU: found smbios tables in fw_cfg (len 321). [DEBUG] QEMU: coreboot type0 table found at 0x7f6d040. [DEBUG] QEMU: loading smbios tables to 0x7f6d08a [DEBUG] SMBIOS tables: 459 bytes. [DEBUG] Writing table forward entry at 0x00000500 [DEBUG] Wrote coreboot table at: 0x00000500, 0x10 bytes, checksum 57e5 [DEBUG] Writing coreboot table at 0x07f9a000 [DEBUG] 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES [DEBUG] 1. 0000000000001000-000000000009ffff: RAM [DEBUG] 2. 00000000000a0000-00000000000fffff: RESERVED [DEBUG] 3. 0000000000100000-0000000007f6cfff: RAM [DEBUG] 4. 0000000007f6d000-0000000007fa2fff: CONFIGURATION TABLES [DEBUG] 5. 0000000007fa3000-0000000007fcffff: RAMSTAGE [DEBUG] 6. 0000000007fd0000-0000000007ffffff: CONFIGURATION TABLES [DEBUG] 7. 00000000fec00000-00000000fec00fff: RESERVED [DEBUG] 8. 00000000ff800000-00000000ffffffff: RESERVED [DEBUG] FMAP: area COREBOOT found @ 200 (4193792 bytes) [DEBUG] Wrote coreboot table at: 0x07f9a000, 0x2ec bytes, checksum ffee [DEBUG] coreboot table: 772 bytes. [DEBUG] IMD ROOT 0. 0x07fff000 0x00001000 [DEBUG] IMD SMALL 1. 0x07ffe000 0x00001000 [DEBUG] CONSOLE 2. 0x07fde000 0x00020000 [DEBUG] TIME STAMP 3. 0x07fdd000 0x00000910 [DEBUG] AFTER CAR 4. 0x07fd0000 0x0000d000 [DEBUG] RAMSTAGE 5. 0x07fa2000 0x0002e000 [DEBUG] COREBOOT 6. 0x07f9a000 0x00008000 [DEBUG] IRQ TABLE 7. 0x07f99000 0x00001000 [DEBUG] ACPI 8. 0x07f75000 0x00024000