Hi Qiang,
what you did is good.
The messages shown are giving hints on the setup and are not generally bad. If the ioproxy says there's no resource it means that a device/resource is listed in the device tree but not on the vbus, i.e. this resource is not available for the VM. uvmm thus disables this node in the device tree. The platform_ctl cap message is coming from io, telling us that io cannot offer the Platform_control API because no cap has been made available.
Regarding the UART, there's also a hint, and I believe that is also the reason why no output from Linux is seen. You already noticed as well. pl011 and linflex are not compatible. What I would propose is that you add a node in the DT for the pl011, as uvmm can emulate this UART type. An example can be found in pkg/uvmm/configs/dts/vmm-devices-arm.dtsi. This file contains two variants of a UART. The pl011 one which I just mentioned and a virtio-console one. Both will work. You can take the contents of this file as is, however pay attention to the MMIO ranges and IRQs used. Choose a free range in the guest physical address space of your guest (aka a range not used in the device tree) and change the addresses accordingly. Similar with the interrupts, use one not used previously.
Adam
On Tue Feb 18, 2025 at 18:02:32 +0800, qiang xu wrote:
Hi Adam,
Thank you very much for your help. I selected the option "*Target configuration -> Use PSCI[]**" *in the Fiasco compile options and recompiled. Then, in the L4 compile options, I selected *"uvmm virtual machine monitor -> PSCI interface support[]*" and recompiled L4. After running it in boot, I encountered the overlap issue again. Later, I adjusted the `DEFAULT_RELOC_arm64`and resolved it. However, when I started, I encountered many VMM-related errors, such as:
- warning: could not register control interface at cap 'platform_ctl'
- | HINT: Found console=ttyAMA on the command line but no
arm,pl011/sbsa-uart device in device tree!
- VMM[ioproxy]: No corresponding IO resource for 'pmu' IRQ 23
- VMM[ioproxy]: No corresponding IO resource for 'shm@c0000000'.reg[0]
(0xc0000000-0xc03fffff)
The detailed printout is as follows.
=> fatload mmc 0 0x8000e000 l4re_uvmm-io.uimage 46235855 bytes read in 1971 ms (22.4 MiB/s) => fatload mmc 0 0x80000000 s32g2xxa-evb.dtb 53414 bytes read in 17 ms (3 MiB/s) => bootm 0x8000e000 - 0x80000000 ## Booting kernel from Legacy Image at 8000e000 ... Image Name: L4 Image #25 Image Type: AArch64 Linux Kernel Image (uncompressed) Data Size: 46235791 Bytes = 44.1 MiB Load Address: 91000000 Entry Point: 91000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 80000000 Booting using the fdt blob at 0x80000000 Loading Kernel Image Using Device Tree in place at 0000000080000000, end 00000000800100a5 fixup: pfe0 set to 00:01:be:be:ef:11 fixup: pfe1 set to 00:01:be:be:ef:22 fixup: pfe2 set to 00:01:be:be:ef:33
Starting kernel ...
L4 Bootstrapper Build: #25 Tue Feb 18 17:29:53 CST 2025, 11.4.0 RAM: 0000000080000000 - 00000000ffffffff: 2097152kB RAM: 0000000880000000 - 00000008dfffffff: 1572864kB Total RAM: 3584MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 15 modules behind 81300000 moving module 00 { 9101f000-910e5fe7 } -> { 8600a000-860d0fe7 } [815080] moving module 01 { 910e6000-910ebcd7 } -> { 860d1000-860d6cd7 } [23768] moving module 02 { 910ec000-9111e6cf } -> { 860d7000-861096cf } [206544] moving module 03 { 9111f000-9121258f } -> { 8610a000-861fd58f } [996752] moving module 04 { 91213000-9122e537 } -> { 861fe000-86219537 } [111928] moving module 05 { 9122f000-912b7aa7 } -> { 8621a000-862a2aa7 } [559784] moving module 06 { 912b8000-912c50a5 } -> { 862a3000-862b00a5 } [53414] moving module 07 { 912c6000-92bd9a52 } -> { 862b1000-87bc4a52 } [26294867] moving module 08 { 92bda000-92bdb218 } -> { 87bc5000-87bc6218 } [4633] moving module 09 { 92bdc000-92bdc299 } -> { 87bc7000-87bc7299 } [666] moving module 10 { 92bdd000-939bd807 } -> { 87bc8000-889a8807 } [14551048] moving module 11 { 939be000-93a03faf } -> { 889a9000-889eefaf } [286640] moving module 12 { 93a04000-93c16a87 } -> { 889ef000-88c01a87 } [2173576] moving module 13 { 93c17000-93c171ff } -> { 88c02000-88c021ff } [512] moving module 14 { 93c18000-93c1808e } -> { 88c03000-88c0308e } [143] Loading fiasco found node 0 kernel info page (via ELF) at 0x80203000 Loading sigma0 Loading moe found node 0 kernel options (via ELF) at 0x80204000 Sigma0 config node: 0 ip:860003f4 Roottask config node: 0 ip:80841904 Regions of list 'regions' [ 34000000, 3407ffff] { 80000} Arch pfebufs@34000000 [ 34080000, 3409ffff] { 20000} Arch pfebufs@34080000 [ 80000000, 8000dfff] { e000} Root dtb [ 8000e000, 8000efff] { 1000} Root mbi_rt [ 80201000, 80205847] { 4848} Kern fiasco [ 80400000, 8061dfff] { 21e000} Kern fiasco [ 80840000, 8087d817] { 3d818} Root moe [ 83200000, 835dffff] { 3e0000} Arch pfebufs@83200000 [ 835e0000, 835fffff] { 20000} Arch pfebufs@835e0000 [ 84000000, 843fffff] { 400000} Arch shm@84000000 [ 85000000, 85000fff] { 1000} Arch ddr@85000000 [ 86000000, 8600946f] { 9470} Sigma0 sigma0 [ 8610a000, 88c0308e] { 2af908f} Root Module [ 91000158, 91000187] { 30} Root cpu_boot [ 9101e1d0, 9101ecda] { b0b} Boot modinfo [ c0000000, c03fffff] { 400000} Arch shm@c0000000 [ c0400000, c07fffff] { 400000} Arch shm@c0400000 [ d0000000, d000007f] { 80} Arch shm@d0000000 [ d0000080, d00000ff] { 80} Arch shm@d0000080 [ ff800000, ff9fffff] { 200000} Arch atf@ff800000 Starting kernel fiasco at 80201190 Hello from Startup::stage2 Reserved 216 MiB as kernel memory. Number of IRQs available at this GIC: 576 CPU0: GIC Redistributor at ffff00480000 for 0x0 Detecting PSCI ... Detected PSCI v1.1 PSCI: CPU_SUSPEND format original v0.2, does not support OS-initiated mode PSCI: TOS: Not present or not required. FPU: Initialize ARM generic timer: freq=5000000 interval=5000 cnt=723121421 SERIAL ESC: allocated IRQ 114 for serial uart Not using serial hack in slow timer handler. Welcome to the L4Re Microkernel! L4Re Microkernel on arm-64 Rev: unknown compiled with gcc 11.4.0 for NXP S32G [] Build: #12 Tue Feb 18 14:17:13 CST 2025
Cache config: ON CPU1: GIC Redistributor at ffff004a0000 for 0x1 CPU1: ID_PFR[01]: 01002222 00000000 ID_[DA]FR0: 10305106 00000000 ID_MMFR[04]: 00001122 00000000 00000000 00000000 CPU2: GIC Redistributor at ffff004c0000 for 0x100 CPU2: ID_PFR[01]: 01002222 00000000 ID_[DA]FR0: 10305106 00000000 ID_MMFR[04]: 00001122 00000000 00000000 00000000 CPU3: GIC Redistributor at ffff004e0000 for 0x101 Calibrating timer loop... CPU3: ID_PFR[01]: 01002222 00000000 ID_[DA]FR0: 10305106 00000000 ID_MMFR[04]: 00001122 00000000 00000000 00000000 Timer calibration done. MDB: use page size: 30 MDB: use page size: 21 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80203000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:---:80000000;8000dfff] [4:RWX:8000e000;8000efff] [0:RWX:8000f000;80200fff] [0:RWX:80206000;803fffff] [0:RWX:8061e000;8083ffff] [4:RWX:80840000;8087dfff] [0:RWX:8087e000;831fffff] [0:RWX:83600000;83ffffff] [0:RWX:84400000;84ffffff] [0:RWX:85001000;85ffffff] [0:RWX:8600a000;86109fff] [4:RWX:8610a000;88c03fff] [0:RWX:88c04000;90ffffff] [4:---:91000000;91000fff] [0:RWX:91001000;bfffffff] [0:RWX:c0800000;cfffffff] [0:RWX:d0001000;ff7fffff] [0:RWX:ffa00000;ffffffff] [0:RWX:880000000;8d27fffff] IOMEM:---------------------- [0:RW-:0;7fffffff] [0:RW-:83200000;835fffff] [0:RW-:84000000;843fffff] [0:RW-:85000000;85000fff] [0:RW-:c0000000;c07fffff] [0:RW-:d0000000;d0000fff] [0:RW-:ff800000;ff9fffff] [0:RW-:100000000;87fffffff] [0:RW-:8e0000000;ffffffffffffffff] MOE: Hello world MOE: found 3383848 KByte free memory MOE: found RAM from 8000f000 to 8d2800000 MOE: allocated 34088 KByte for the page array @0x8087e000 MOE: virtual user address space [0-ffffffffff] MOE: cmdline: moe rom/uvmm-io.ned MOE: rom name space cap -> [C:103000] MOE: rwfs name space cap -> [C:105000] ROMFS: [8610a000-861fd590] [C:107000] uvmm ROMFS: [861fe000-86219538] [C:109000] l4re ROMFS: [8621a000-862a2aa8] [C:10b000] ned ROMFS: [862a3000-862b00a6] [C:10d000] s32g2xxa-evb.dtb ROMFS: [862b1000-87bc4a53] [C:10f000] fsl-image-dom0less-s32g274aevb.cpio.gz ROMFS: [87bc5000-87bc6219] [C:111000] vmm.lua ROMFS: [87bc7000-87bc729a] [C:113000] uvmm-io.ned ROMFS: [87bc8000-889a8808] [C:115000] Image ROMFS: [889a9000-889eefb0] [C:117000] cons ROMFS: [889ef000-88c01a88] [C:119000] io ROMFS: [88c02000-88c02200] [C:11b000] io.cfg ROMFS: [88c03000-88c0308f] [C:11d000] vm_hw.vbus ROMFS: [80000000-8000e000] [C:11f000] .fdt MOE: Starting: rom/ned rom/uvmm-io.ned MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/uvmm-io.ned' Console Server cons> Created vcon channel: io [420010] cons> io | Io service io | Verboseness level: 7 io | unused physical memory space:
Created vcon channel: vm1 [421010] cons> io | [00000000000000-00000033ffffff]
Created vcon channel: mon1 [422010] cons> io | [000000340a0000-0000007fffffff] io | [00000100000000-0000087fffffff] io | [000008e0000000-ffffffffffffffff] io | no 'iommu' capability found, using CPU-phys for DMA io | Loading: config 'rom/io.cfg' io | Loading: config 'rom/vm_hw.vbus' io | Add IRQ resources to vbus: IRQ [00000000000007-00000000000007 1] level high (align=0 flags=3000) io | Add IRQ resources to vbus: IRQ [00000000000052-00000000000052 1] raising edge (align=0 flags=10) io | vm_hw: [N12_GLOBAL__N_112Virtual_sbusE] io | Resources: ==== start ==== io | Resources: ===== end ===== io | L4ICU: [N2Vi6Sw_icuE] io | Resources: ==== start ==== io | Resources: ===== end ===== io | PMU: [N2Vi9Proxy_devE] io | Resources: ==== start ==== io | IRQ [00000000000007-00000000000007 1] level high (align=0 flags=300001) io | Resources: ===== end ===== io | UART0: [N2Vi9Proxy_devE] io | Resources: ==== start ==== io | IRQ [00000000000052-00000000000052 1] raising edge (align=0 flags=100001) io | IOMEM [000000401c8000-000000401cb000 3001] 32-bit non-pref (align=3000 flags=300002) io | Resources: ===== end ===== io | Real Hardware ----------------------------------- io | System Bus: io | Resources: ==== start ==== io | DMADOM [00000000000000-00000000000000 1] (align=0 flags=6) io | Resources: ===== end ===== io | pmu: io | compatible= { "arm,armv8-pmuv3" } io | Clients: ===== start ==== io | PMU: [N2Vi9Proxy_devE] io | Clients: ===== end ==== io | Resources: ==== start ==== io | IRQ [00000000000007-00000000000007 1] level high (align=0 flags=300001) io | Resources: ===== end ===== io | uart0: io | compatible= { "arm,pl011" } io | Clients: ===== start ==== io | UART0: [N2Vi9Proxy_devE] io | Clients: ===== end ==== io | Resources: ==== start ==== io | IRQ [00000000000052-00000000000052 1] raising edge (align=0 flags=100001) io | IOMEM [000000401c8000-000000401cb000 3001] 32-bit non-pref (align=3000 flags=300002) io | Resources: ===== end ===== io | warning: could not register control interface at cap 'platform_ctl' io | Ready. Waiting for request. io | vbus vm_hw does not support a global DMA domain vm1 | VMM[main]: Hello out there. vm1 | VMM[ram]: No memory nodes found, setting up default region vm1 | Command line: console=ttyAMA0 earlyprintk=1 rdinit=/init vm1 | HINT: Found console=ttyAMA on the command line but no arm,pl011/sbsa-uart device in device tree! vm1 | HINT: VM-Output likely not to work! vm1 | VMM[ioproxy]: No corresponding IO resource for 'pmu' IRQ 23. vm1 | VMM[vm]: Device creation for pmu failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'shm@c0000000'.reg[0] (0xc0000000-0xc03fffff). vm1 | VMM[vm]: Device creation for shm@c0000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'shm@c0400000'.reg[0] (0xc0400000-0xc07fffff). vm1 | VMM[vm]: Device creation for shm@c0400000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'shm@d0000000'.reg[0] (0xd0000000-0xd000007f). vm1 | VMM[vm]: Device creation for shm@d0000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'shm@d0000080'.reg[0] (0xd0000080-0xd00000ff). vm1 | VMM[vm]: Device creation for shm@d0000080 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'shm@84000000'.reg[0] (0x84000000-0x843fffff). vm1 | VMM[vm]: Device creation for shm@84000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pfebufs@34000000'.reg[0] (0x34000000-0x3407ffff). vm1 | VMM[vm]: Device creation for pfebufs@34000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pfebufs@34080000'.reg[0] (0x34080000-0x3409ffff). vm1 | VMM[vm]: Device creation for pfebufs@34080000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pfebufs@83200000'.reg[0] (0x83200000-0x835dffff). vm1 | VMM[vm]: Device creation for pfebufs@83200000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pfebufs@835e0000'.reg[0] (0x835e0000-0x835fffff). vm1 | VMM[vm]: Device creation for pfebufs@835e0000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'ddr@85000000'.reg[0] (0x85000000-0x85000fff). vm1 | VMM[vm]: Device creation for ddr@85000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'scmi' IRQ 332. vm1 | VMM[vm]: Device creation for scmi failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'rtc@40060000'.reg[0] (0x40060000-0x40060fff). vm1 | VMM[vm]: Device creation for rtc@40060000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'syscon@4007c000'.reg[0] (0x4007c000-0x4007c0ff). vm1 | VMM[vm]: Device creation for syscon@4007c000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'ddr_gpr@4007c600'.reg[0] (0x4007c600-0x4007c61f). vm1 | VMM[vm]: Device creation for ddr_gpr@4007c600 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'nvram@4009c000'.reg[0] (0x4009c000-0x4009c00f). vm1 | VMM[vm]: Device creation for nvram@4009c000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'siul2-pinctrl@4009c240'.reg[0] (0x4009c240-0x4009c3. vm1 | VMM[vm]: Device creation for siul2-pinctrl@4009c240 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'siul2-gpio@4009d700'.reg[0] (0x4009d700-0x4009d70f). vm1 | VMM[vm]: Device creation for siul2-gpio@4009d700 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'nvram@44010000'.reg[0] (0x44010000-0x4401000f). vm1 | VMM[vm]: Device creation for nvram@44010000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'ocotp@400a4000'.reg[0] (0x400a4000-0x400a43ff). vm1 | VMM[vm]: Device creation for ocotp@400a4000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'tmu@400a8000'.reg[0] (0x400a8000-0x400aafff). vm1 | VMM[vm]: Device creation for tmu@400a8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'watchdog@4010c000'.reg[0] (0x4010c000-0x4010cfff). vm1 | VMM[vm]: Device creation for watchdog@4010c000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'stm@4011c000'.reg[0] (0x4011c000-0x4011efff). vm1 | VMM[vm]: Device creation for stm@4011c000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'stm@40120000'.reg[0] (0x40120000-0x40122fff). vm1 | VMM[vm]: Device creation for stm@40120000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'spi@40134000'.reg[0] (0x0-0x1fffffff). vm1 | VMM[vm]: Device creation for spi@40134000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'dma-controller@40144000'.reg[0] (0x40144000-0x40167. vm1 | VMM[vm]: Device creation for dma-controller@40144000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pit@40188000'.reg[0] (0x40188000-0x4018afff). vm1 | VMM[vm]: Device creation for pit@40188000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'mscm@40198000'.reg[0] (0x40198000-0x40198fff). vm1 | VMM[vm]: Device creation for mscm@40198000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'flexcan@401b4000'.reg[0] (0x401b4000-0x401bdfff). vm1 | VMM[vm]: Device creation for flexcan@401b4000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'serial@401c8000' IRQ 114. vm1 | VMM[vm]: Device creation for serial@401c8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'serial@401cc000'.reg[0] (0x401cc000-0x401cefff). vm1 | VMM[vm]: Device creation for serial@401cc000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'spi@401d8000'.reg[0] (0x401d8000-0x401d8fff). vm1 | VMM[vm]: Device creation for spi@401d8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'i2c@401e4000'.reg[0] (0x401e4000-0x401e4fff). vm1 | VMM[vm]: Device creation for i2c@401e4000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'i2c@401e8000'.reg[0] (0x401e8000-0x401e8fff). vm1 | VMM[vm]: Device creation for i2c@401e8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'i2c@401ec000'.reg[0] (0x401ec000-0x401ecfff). vm1 | VMM[vm]: Device creation for i2c@401ec000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pwm@401f4000'.reg[0] (0x401f4000-0x401f4fff). vm1 | VMM[vm]: Device creation for pwm@401f4000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'adc@401f8000'.reg[0] (0x401f8000-0x401f8fff). vm1 | VMM[vm]: Device creation for adc@401f8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'watchdog@40200000'.reg[0] (0x40200000-0x40200fff). vm1 | VMM[vm]: Device creation for watchdog@40200000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'watchdog@40204000'.reg[0] (0x40204000-0x40204fff). vm1 | VMM[vm]: Device creation for watchdog@40204000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'watchdog@40208000'.reg[0] (0x40208000-0x40208fff). vm1 | VMM[vm]: Device creation for watchdog@40208000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'mu0b@40210000'.reg[0] (0x40210000-0x40210fff). vm1 | VMM[vm]: Device creation for mu0b@40210000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'mu1b@40211000'.reg[0] (0x40211000-0x40211fff). vm1 | VMM[vm]: Device creation for mu1b@40211000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'mu2b@40212000'.reg[0] (0x40212000-0x40212fff). vm1 | VMM[vm]: Device creation for mu2b@40212000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'mu3b@40213000'.reg[0] (0x40213000-0x40213fff). vm1 | VMM[vm]: Device creation for mu3b@40213000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'stm@40228000'.reg[0] (0x40228000-0x4022afff). vm1 | VMM[vm]: Device creation for stm@40228000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'dma-controller@40244000'.reg[0] (0x40244000-0x40267. vm1 | VMM[vm]: Device creation for dma-controller@40244000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pit@40288000'.reg[0] (0x40288000-0x4028afff). vm1 | VMM[vm]: Device creation for pit@40288000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'flexcan@402a8000'.reg[0] (0x402a8000-0x402b1fff). vm1 | VMM[vm]: Device creation for flexcan@402a8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'flexcan@402b2000'.reg[0] (0x402b2000-0x402bbfff). vm1 | VMM[vm]: Device creation for flexcan@402b2000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'serial@402bc000'.reg[0] (0x402bc000-0x402befff). vm1 | VMM[vm]: Device creation for serial@402bc000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'spi@402d0000'.reg[0] (0x402d0000-0x402d0fff). vm1 | VMM[vm]: Device creation for spi@402d0000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'i2c@402dc000'.reg[0] (0x402dc000-0x402dcfff). vm1 | VMM[vm]: Device creation for i2c@402dc000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pwm@402e4000'.reg[0] (0x402e4000-0x402e4fff). vm1 | VMM[vm]: Device creation for pwm@402e4000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'adc@402e8000'.reg[0] (0x402e8000-0x402e8fff). vm1 | VMM[vm]: Device creation for adc@402e8000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'mmc@402f0000'.reg[0] (0x402f0000-0x402f0fff). vm1 | VMM[vm]: Device creation for mmc@402f0000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'fccu@4030c000'.reg[0] (0x4030c000-0x4030efff). vm1 | VMM[vm]: Device creation for fccu@4030c000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'ethernet@4033c000'.reg[0] (0x4033c000-0x4033dfff). vm1 | VMM[vm]: Device creation for ethernet@4033c000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'ddr_errata@403c0000'.reg[0] (0x403c0000-0x403c00ff). vm1 | VMM[vm]: Device creation for ddr_errata@403c0000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'ddr-perf@403e0000'.reg[0] (0x403e0000-0x403e00ff). vm1 | VMM[vm]: Device creation for ddr-perf@403e0000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pcie@40400000'.reg[0] (0x40400000-0x40400fff). vm1 | VMM[vm]: Device creation for pcie@40400000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'serdes@40480000'.reg[0] (0x40480000-0x40480107). vm1 | VMM[vm]: Device creation for serdes@40480000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pcie@44100000'.reg[0] (0x44100000-0x44100fff). vm1 | VMM[vm]: Device creation for pcie@44100000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'serdes@44180000'.reg[0] (0x44180000-0x44180107). vm1 | VMM[vm]: Device creation for serdes@44180000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'pfe@46000000'.reg[0] (0x46000000-0x46ffffff). vm1 | VMM[vm]: Device creation for pfe@46000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'llce_dte_sram@43000000'.reg[0] (0x43000000-0x43001f. vm1 | VMM[vm]: Device creation for llce_dte_sram@43000000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'llce_ppe_rx_sram@43100000'.reg[0] (0x43100000-0x431. vm1 | VMM[vm]: Device creation for llce_ppe_rx_sram@43100000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'llce_ppe_tx_sram@43200000'.reg[0] (0x43200000-0x432. vm1 | VMM[vm]: Device creation for llce_ppe_tx_sram@43200000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'llce_frpe_sram@43300000'.reg[0] (0x43300000-0x4330f. vm1 | VMM[vm]: Device creation for llce_frpe_sram@43300000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'llce_shmem@43800000'.reg[0] (0x43800000-0x4384ffff). vm1 | VMM[vm]: Device creation for llce_shmem@43800000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'llce@43a00000'.reg[0] (0x43ff8000-0x43ffbfff). vm1 | VMM[vm]: Device creation for llce@43a00000 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'usbmisc@44064200'.reg[0] (0x44064200-0x440643ff). vm1 | VMM[vm]: Device creation for usbmisc@44064200 failed. Disabling device. vm1 | VMM[ioproxy]: No corresponding IO resource for 'usb@44064000'.reg[0] (0x44064000-0x440641ff). vm1 | VMM[vm]: Device creation for usb@44064000 failed. Disabling device. vm1 | VMM[ram]: Cleaning caches for device tree [9ff2000-9fff431] ([90df2000]) io | new iomem region: p=00000040000000 v=00000000400000 s=400000 (bmb=0x39bd0) io | map mem: p=000000401c8000 v=000000005c8000 s=4000 uncached: done(0) vm1 | VMM[]: Starting Cpu0 @ 0x88e00000 in 64Bit mode (handler @ 1078e08, stack: 801ffba0, task: 420000, ) vm1 | ffffffc0080202c4: mrs r0, S3_1_C11_C0_2 (hsr=62346c01) vm1 | VMM[]: Starting Cpu1 @ 0x896e7254 in 64Bit mode (handler @ 1078e08, stack: 402f20, task: 420000, mp) vm1 | ffffffc0080202c4: mrs r0, S3_1_C11_C0_2 (hsr=62346c01) vm1 | VMM[]: Starting Cpu2 @ 0x896e7254 in 64Bit mode (handler @ 1078e08, stack: 601f20, task: 420000, mp) vm1 | ffffffc0080202c4: mrs r0, S3_1_C11_C0_2 (hsr=62346c01) vm1 | VMM[]: Starting Cpu3 @ 0x896e7254 in 64Bit mode (handler @ 1078e08, stack: 800f20, task: 420000, mp) vm1 | ffffffc0080202c4: mrs r0, S3_1_C11_C0_2 (hsr=62346c01)
I suspect these errors might be related to the vbus IO resource registration. So, I followed the wiki/HwPassThrough https://github.com/kernkonzept/manifest/wiki/HwPassThrough method to register two devices(uart,pmu), but the errors still persist. I am not sure what the cause is, so I would appreciate your help in analyzing it. It seems like it is very close to running successfully!
The content of the IO-related files is as follows:
*uvmm-io.ned:*
*`*package.path = "rom/?.lua";
local L4 = require "L4"; local vmm = require "vmm";
vmm.loader.log_fab = L4.default_loader:new_channel();
local function vm(id, vbus) vmm.start_vm({ id = id, mem = 128, rd = "rom/fsl-image-dom0less-s32g274aevb.cpio.gz", fdt = "rom/s32g2xxa-evb.dtb", kernel = "rom/Image", vbus = vbus, bootargs = "console=ttyAMA0 earlyprintk=1 rdinit=/init", ext_args = { "-i" } }); end
L4.default_loader:start( { log = L4.Env.log, caps = { cons = vmm.loader.log_fab:svr() } }, "rom/cons -a");
local io_busses = { vm_hw = 1, }
vmm.start_io(io_busses, "rom/io.cfg -vvvvvv");
vm(1, io_busses.vm_hw);*`* *vm_hw.vbus:* Io.add_vbusses { vm_hw = Io.Vi.System_bus(function() UART0 = wrap(Io.system_bus().uart0); // PMU = wrap(Io.system_bus().pmu); end); }
*io.cfg:* local Res = Io.Res local Hw = Io.Hw
local add_children = Io.Dt.add_children
add_children(Io.system_bus(), function() uart0 = Hw.Device(function()
compatible = {"arm,pl011"}; // It should be compatible =*"nxp,s32cc-linflexuart", "fsl,s32v234-linflexuart"**, because I saw the hint: "HINT: Found console=ttyAMA on the command line but no arm,pl011/sbsa-uart device in device tree!". So, I changed it to arm,pl011, but the issue was not resolved. This could be the problem. Do I need to write a driver for s32v234-linflexuart?*
Resource.reg0 = Res.mmio(0x401c8000, 0x401cb000); Resource.irq0 = Res.irq(32 + 50, Io.Resource.Irq_type_raising_edge);end)
pmu = Hw.Device(function() compatible = { "arm,armv8-pmuv3"}; Resource.irq0 = Res.irq(7, Io.Resource.Irq_type_level_high); end) end)
Regards, Qiang
On Mon, Feb 17, 2025 at 10:51 PM Adam Lackorzynski adam@l4re.org wrote:
Hi Qiang,
the location where it stops could be the one when it is tried to enable cores. Do you have PSCI enabled in the microkernel configuration? Please enable it if not.
Adam
On Mon Feb 17, 2025 at 10:03:53 +0800, qiang xu wrote:
Hi Adam,
Sorry, I didn't explain clearly about jdb. I entered jdb after pressing 'esc'.
Regards, Qiang
On Sat, Feb 15, 2025 at 1:31 AM Adam Lackorzynski adam@l4re.org wrote:
Hi Qiang,
On Wed Feb 12, 2025 at 11:55:30 +0800, qiang xu wrote:
Hi Adam,
Thank you for your professional insights. Following your suggestion,
I
added "DEFAULT_RELOC_arm64 = 0x0ec00000" to the Makeconf.local file
in
the
root directory and then rebuilt the system. Upon checking the "Start address: 0x86000000", I found that after rebuilding with 0x0ec00000,
the
start address became 0x8ee00000. So, I changed DEFAULT_RELOC_arm64 to 0x05e00000, and after rebuilding, the start address was 0x86000000,
which
meets the requirement.
Thanks for the fix, of course it was 0x05e00000.
That's now interesting what is happening. Did it go into jdb itself or did you press ESC to get to the jdb? If it was itself, was there any message before that telling a reason maybe?
Adam
The contents of Makeconf.local are as follows:
`/l4re-snapshot-24.08.0/obj/l4/builddir$ cat Makeconf.local CROSS_COMPILE:=aarch64-linux-gnu- DEFAULT_RELOC_arm64 = 0x05e00000`
Build information: `/l4re-snapshot-24.08.0/obj/l4/builddir$ make uimage E=uvmm-2vm
PT=s32g
make[1]: Entering directory '/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/src/l4' [bootstrap] ... Building Dependencies [bootstrap - nofpu] ... Building Dependencies Building entry "uvmm-2vm". Merging images: mod00:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/fiasco/builddir/fiasco
[796kB] mod01:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/sigma0
[24kB] mod02:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/moe
[202kB] mod03:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/uvmm
[974kB] mod04:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/l4re
[110kB] mod05:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/ned
[547kB] mod06:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/s32g2xxa-evb.dtb
[53kB] mod07:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/fsl-image-dom0less-s32g274aevb.cpio.gz
[25679kB] mod08:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/src/l4/pkg/uvmm/configs/vmm.lua
[5kB] mod09:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/uvmm-2vm.ned
[1kB] mod10: /home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/Image [14211kB] mod11:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/cons
[280kB] [bootstrap - nofpu] ... Generating bootstrap.ld [bootstrap - nofpu] ... Compiling startup.o [bootstrap - nofpu] ==> Linking l4re.elf [bootstrap] ==> Image post-processing l4re.elf [bootstrap - nofpu] ==> l4re.elf built ==> Installing l4re.elf in image directory ==> Installing l4re_uvmm-2vm in image directory ==> Installing l4re_uvmm-2vm.elf in image directory [bootstrap - nofpu] ... Generating l4re.raw ==> Installing l4re.raw in image directory ==> Installing l4re_uvmm-2vm.raw in image directory [bootstrap - nofpu] ... Generating l4re.uimage Image Name: L4 Image #14 Created: Wed Feb 12 10:50:58 2025 Image Type: AArch64 Linux Kernel Image (uncompressed) Data Size: 44056496 Bytes = 43023.92 KiB = 42.02 MiB Load Address: 86000000 Entry Point: 86000000 ==> Installing l4re.uimage in image directory ==> Installing l4re_uvmm-2vm.uimage in image directory Image size(s) in bytes: l4re_uvmm-2vm.elf: 44692328 l4re.raw: 44056496 l4re.uimage: 44056560 Start address: --> Build-Nr: 14 [bootstrap - nofpu] ==> Installing l4re.elf to local build-tree [bootstrap - nofpu] ==> Installing l4re_uvmm-2vm to local
build-tree
[bootstrap - nofpu] ==> Installing l4re_uvmm-2vm.elf to local
build-tree
make[1]: Leaving directory '/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/src/l4'
`
I then placed it back onto the SD card to boot. Although this solved
the
previous overlap issue, it seems to hang and does not boot properly.
I am
unsure if this is related to the message: `Rev: unknown compiled with gcc 11.4.0 for NXP S32G`
because my Linux kernel image was built on another computer using the
Yocto
toolchain provided by NXP for S32G, while this machine uses`CROSS_COMPILE:=aarch64-linux-gnu-`to compile Fiasco and the L4
uImage.
Boot log:
`fatload mmc 0 0x8000e000 l4re_uvmm-2vm.uimage 44056560 bytes read in 1871 ms (22.5 MiB/s) => fatload mmc 0 0x80000000 s32g2xxa-evb.dtb 53414 bytes read in 17 ms (3 MiB/s) => boot boot bootd bootefi bootelf booti bootm bootp bootvx => bootm 0x8000e000 - 0x80000000 ## Booting kernel from Legacy Image at 8000e000 ... Image Name: L4 Image #14 Image Type: AArch64 Linux Kernel Image (uncompressed) Data Size: 44056496 Bytes = 42 MiB Load Address: 86000000 Entry Point: 86000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 80000000 Booting using the fdt blob at 0x80000000 Loading Kernel Image Using Device Tree in place at 0000000080000000, end
00000000800100a5
fixup: pfe0 set to 00:01:be:be:ef:11 fixup: pfe1 set to 00:01:be:be:ef:22 fixup: pfe2 set to 00:01:be:be:ef:33
Starting kernel ...
L4 Bootstrapper Build: #14 Wed Feb 12 10:50:58 CST 2025, 11.4.0 ... Cache config: ON // Stuck here, no further execution. `
I noticed that JDB had started, so I entered the t command and got
the
following output:
`jdb: t thread : 6 <0xffff8d5c0000> CPU: 0:0 prio: 00 state : 001 ready wait for: --- polling: rcv descr: timeout : cpu time: 0 timeslice: 10000 us pager : [C: 0] task : kernel exc-hndl: [C: 0] UTCB : 00000000/00000000 vCPU : --- vCPU : ---
Regs (before debug entry from kernel mode): brk #0x0 x0 0000ffff40286930 0000000000000000 ldp x19, x30,
[sp],
#0x10
x2 0000000000000014 0000ffff402801e0 x4 0000ffff40286ab8 0000000000000000 0000000000000088
0000000000000014
x8 0000000000000040 0000000000000014 0000ffff001c8000
0000000000000014
x12 0000ffff4022c010 0000ffff4022bfd0 0000ffff4022bfd0
0000000000000000
x16 0000ffff001c8000 0000000000000010 0000000000000010
0000ffff4023ef70
psr=00000000600003c9 tpidr: urw=0000000000000000 uro=0000000000000000 pc=0000ffff4022ba98 ksp=0000ffff8d5c1d40 x30=0000ffff4022ba8c 1c00 0000000000000000 0000ffff40280980 0000000000000000
0000ffff40286930
1c20 0000000000000000 0000000000000014 0000ffff402801e0
0000ffff40286ab8
1c40 0000000000000000 0000000000000088 0000000000000014
0000000000000040
1c60 0000000000000014 0000ffff001c8000 0000000000000014 0000ffff4022c010`
Could you please help analyze this issue? Many thanks!
Regards, Qiang
On Tue, Feb 11, 2025 at 8:43 PM Adam Lackorzynski <
adam@os.inf.tu-dresden.de>
wrote:
Hi Qiang,
looks to me that bootstrap image to load is just too big as it
interferes
with the reserved PFE areas of the platform. It seems unfortunate
that
u-boot allows this to be loaded and that those areas are there at
those
locations.
Anyway, I would recommend to change the loading address of
bootstrap.
Please do this by creating a file Makeconf.local in the root
directory
of your build-tree (/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir)
with
the content: DEFAULT_RELOC_arm64 = 0x0ec00000
Then build the image again. Please check the output as it needs to
state
"Start address: 0x86000000"
Adam
On Mon Feb 10, 2025 at 17:25:22 +0800, qiang xu wrote: > Hi Adam, > > 1. I followed your suggestion and changed *"kernel
fiasco.debug
> -serial_esc"* to *"kernel fiasco -serial_esc"*. > 2. The error *"DT: FDT sanity check failed: FDT_ERR_BADMAGIC
(-9)
Total > RAM: 0MB"* disappeared after reloading the device tree (dtb). > 3. Below is the boot command I used. > > `=> fatload mmc 0 0x80000000 s32g2xxa-evb.dtb > 53414 bytes read in 17 ms (3 MiB/s) > => fatload mmc 0 0x8000e000 l4re_uvmm-2vm.uimage > 44056560 bytes read in 1871 ms (22.5 MiB/s) > => bootm 0x8000e000 - 0x80000000 > ## Booting kernel from Legacy Image at 8000e000 ... > Image Name: L4 Image #10 > Image Type: AArch64 Linux Kernel Image (uncompressed) > Data Size: 44056496 Bytes = 42 MiB > Load Address: 81200000 > Entry Point: 81200000 > Verifying Checksum ... OK > ## Flattened Device Tree blob at 80000000 > Booting using the fdt blob at 0x80000000 > Loading Kernel Image > Using Device Tree in place at 0000000080000000, end
00000000800100a5
> fixup: pfe0 set to 00:01:be:be:ef:11 > fixup: pfe1 set to 00:01:be:be:ef:22 > fixup: pfe2 set to 00:01:be:be:ef:33 > > Starting kernel ... > > > L4 Bootstrapper > Build: #10 Mon Feb 10 10:06:07 CST 2025, 11.4.0 > RAM: 0000000080000000 - 00000000ffffffff: 2097152kB > RAM: 0000000880000000 - 00000008dfffffff: 1572864kB > Total RAM: 3584MB > New region for list regions: [ 82ddd000, 83bbd807] {
de0808}
Boot > Module > overlaps with: [ 83200000, 835dffff] {
3e0000}
Arch > pfebufs@83200000 > Regions of list 'regions' > [ 34000000, 3407ffff] { 80000} Arch pfebufs@34000000 > [ 34080000, 3409ffff] { 20000} Arch pfebufs@34080000 > [ 80000000, 8000dfff] { e000} Root dtb > [ 81200000, 8121d777] { 1d778} Boot bootstrap > [ 81200158, 81200187] { 30} Root cpu_boot > [ 8121e1d0, 8121eac7] { 8f8} Boot modinfo > [ 8121f000, 812e5fe7] { c6fe8} Boot Module > [ 812e6000, 812ebcd7] { 5cd8} Boot Module > [ 812ec000, 8131e6cf] { 326d0} Boot Module > [ 8131f000, 8141258f] { f3590} Boot Module > [ 81413000, 8142e537] { 1b538} Boot Module > [ 8142f000, 814b7aa7] { 88aa8} Boot Module > [ 814b8000, 814c50a5] { d0a6} Boot Module > [ 814c6000, 82dd9a52] { 1913a53} Boot Module > [ 82dda000, 82ddb218] { 1219} Boot Module > [ 82ddc000, 82ddc224] { 225} Boot Module > [ 83200000, 835dffff] { 3e0000} Arch pfebufs@83200000 > [ 835e0000, 835fffff] { 20000} Arch pfebufs@835e0000 > [ 84000000, 843fffff] { 400000} Arch shm@84000000 > [ 85000000, 85000fff] { 1000} Arch ddr@85000000 > [ c0000000, c03fffff] { 400000} Arch shm@c0000000 > [ c0400000, c07fffff] { 400000} Arch shm@c0400000 > [ d0000000, d000007f] { 80} Arch shm@d0000000 > [ d0000080, d00000ff] { 80} Arch shm@d0000080 > [ ff800000, ff9fffff] { 200000} Arch atf@ff800000 > region overlap > > Key press reboots... > ` > Please help me analyze where the issue might be. Thank you very
much!
> > Regards, > Qiang > > On Mon, Feb 10, 2025 at 3:03 AM Adam Lackorzynski <adam@l4re.org
wrote:
> > > Hi Qiang, > > > > thanks for the description and all the logs. Could you also
please
share > > the command given in u-boot (bootm...)? > > > > From the logs, the following lines look suspicious: > > > > > DT: FDT sanity check failed: FDT_ERR_BADMAGIC (-9) > > > Total RAM: 0MB > > > > Indicating that something with the device tree is not ok. > > > > > kernel fiasco.debug -serial_esc > > > > Please use "fiasco" only. The fiasco.debug is considerably
bigger
to
load > > and could contribute to the region overlap. > > > > > > > > Adam > > > > On Thu Feb 06, 2025 at 19:53:49 +0800, qiang xu wrote: > > > Hi Adam, > > > I encountered the error "region overlap" while running
L4Re on
S32G. > > > > > > First, I built the Linux BSP 38.0 using Yocto to generate the
Image,
> > > s32g2xxa-evb.dtb, and fsl-image-dom0less-s32g274aevb.cpio.gz.
Then, I
> > > compiled the S32G platform's L4Re image using the snapshots > > > https://l4re.org/download/snapshots/README.html method.
In the
> > > modules.list, I added the following: > > > > > > ` > > > entry uvmm-2vm > > > kernel fiasco.debug -serial_esc > > > roottask moe rom/uvmm-2vm.ned > > > module uvmm > > > module l4re > > > module ned > > > module s32g2xxa-evb.dtb > > > module fsl-image-dom0less-s32g274aevb.cpio.gz > > > module[shell] echo $SRC_BASE_ABS/pkg/uvmm/configs/vmm.lua > > > module uvmm-2vm.ned > > > module Image > > > module cons > > > ` > > > > > > Finally, I ran the command make uimage E=uvmm-2vm PT=s32g in
the
> > > /l4re-snapshot-24.08.0/obj/l4/builddir directory, which
showed
the
> > > following output: > > > > > > ` > > > make[1]: Entering directory > > > '/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/src/l4' > > > [bootstrap - nofpu] ... Building Dependencies > > > Building entry "uvmm-2vm". > > > Merging images: > > > mod00: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/fiasco/builddir/fiasco.debug
> > > [27393kB -> 796kB] > > > mod01: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/sigma0
> > > [24kB] > > > mod02: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/moe
> > > [202kB] > > > mod03: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/uvmm
> > > [974kB] > > > mod04: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/l4re
> > > [110kB] > > > mod05: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/ned
> > > [547kB] > > > mod06: > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/s32g2xxa-evb.dtb
> > > [53kB] > > > mod07: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/fsl-image-dom0less-s32g274aevb.cpio.gz
> > > [25679kB] > > > mod08: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/src/l4/pkg/uvmm/configs/vmm.lua
> > > [5kB] > > > mod09: > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/uvmm-2vm.ned
> > > [1kB] > > > mod10:
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/conf/Image
> > > [14211kB] > > > mod11: > > > > >
/home/qiangxu/prebuildl4/l4re-snapshot-24.08.0/obj/l4/builddir/bin/arm64_armv8a/l4f/cons
> > > [280kB] > > > [bootstrap - nofpu] ... Generating bootstrap.ld > > > [bootstrap - nofpu] ... Compiling startup.o > > > [bootstrap - nofpu] ==> Linking l4re.elf > > > [bootstrap] ==> Image post-processing l4re.elf > > > [bootstrap - nofpu] ==> l4re.elf built > > > ==> Installing l4re.elf in image directory > > > ==> Installing l4re_uvmm-2vm in image directory > > > ==> Installing l4re_uvmm-2vm.elf in image directory > > > [bootstrap - nofpu] ... Generating l4re.raw > > > ==> Installing l4re.raw in image directory > > > ==> Installing l4re_uvmm-2vm.raw in image directory > > > [bootstrap - nofpu] ... Generating l4re.uimage > > > Image Name: L4 Image #9 > > > Created: Thu Feb 6 19:29:02 2025 > > > Image Type: AArch64 Linux Kernel Image (uncompressed) > > > Data Size: 44056496 Bytes = 43023.92 KiB = 42.02 MiB > > > Load Address: 81200000 > > > Entry Point: 81200000 > > > ==> Installing l4re.uimage in image directory > > > ==> Installing l4re_uvmm-2vm.uimage in image directory > > > Image size(s) in bytes: > > > l4re_uvmm-2vm.elf: 44692328 > > > l4re.raw: 44056496 > > > l4re.uimage: 44056560 > > > Start address: > > > --> Build-Nr: 9 > > > [bootstrap - nofpu] ==> Installing l4re.elf to local
build-tree
> > > [bootstrap - nofpu] ==> Installing l4re_uvmm-2vm to local
build-tree
> > > [bootstrap - nofpu] ==> Installing l4re_uvmm-2vm.elf to local build-tree > > > ` > > > Finally, I tried loading the l4re_uvmm-2vm.uimage and s32g2xxa-evb.dtb > > > files in U-Boot for booting, but it resulted in an error.
Can you
help me > > > identify where the issue might be? > > > > > > ` > > > L4 Bootstrapper > > > Build: #8 Thu Feb 6 14:58:40 CST 2025, 11.4.0 > > > DT: FDT sanity check failed: FDT_ERR_BADMAGIC (-9) > > > > > > L4 Bootstrapper > > > Build: #8 Thu Feb 6 14:58:40 CST 2025, 11.4.0 > > > Total RAM: 0MB > > > New region for list regions: [ 82ddd000, 855979ff] { 27baa00} > > Boot > > > Module > > > overlaps with: [ 83200000, 835dffff] { 3e0000} > > Arch > > > pfebufs@83200000 > > > Regions of list 'regions' > > > [ 34000000, 3407ffff] { 80000} Arch
pfebufs@34000000
> > > [ 34080000, 3409ffff] { 20000} Arch
pfebufs@34080000
> > > [ 80000000, 8000d0a5] { d0a6} Root dtb > > > [ 81200000, 8121d777] { 1d778} Boot bootstrap > > > [ 81200158, 81200187] { 30} Root cpu_boot > > > [ 8121e1d0, 8121eadf] { 910} Boot modinfo > > > [ 8121f000, 812e5f7f] { c6f80} Boot Module > > > [ 812e6000, 812ebcd7] { 5cd8} Boot Module > > > [ 812ec000, 8131e6cf] { 326d0} Boot Module > > > [ 8131f000, 8141258f] { f3590} Boot Module > > > [ 81413000, 8142e537] { 1b538} Boot Module > > > [ 8142f000, 814b7aa7] { 88aa8} Boot Module > > > [ 814b8000, 814c50a5] { d0a6} Boot Module > > > [ 814c6000, 82dd9a52] { 1913a53} Boot Module > > > [ 82dda000, 82ddb218] { 1219} Boot Module > > > [ 82ddc000, 82ddc22a] { 22b} Boot Module > > > [ 83200000, 835dffff] { 3e0000} Arch
pfebufs@83200000
> > > [ 835e0000, 835fffff] { 20000} Arch
pfebufs@835e0000
> > > [ 84000000, 843fffff] { 400000} Arch shm@84000000 > > > [ 85000000, 85000fff] { 1000} Arch ddr@85000000 > > > [ c0000000, c03fffff] { 400000} Arch shm@c0000000 > > > [ c0400000, c07fffff] { 400000} Arch shm@c0400000 > > > [ d0000000, d000007f] { 80} Arch shm@d0000000 > > > [ d0000080, d00000ff] { 80} Arch shm@d0000080 > > > region overlap > > > > > > Key press reboots... > > > > > > ` > > > Regards, > > > Qiang > > > > > > > > > On Wed, Jan 8, 2025 at 10:13 AM qiang xu <
qiangxu431@gmail.com>
wrote: > > > > > > > Hi Adam, > > > > > > > > Awesome, thanks for the info! > > > > > > > > Regards, > > > > Qiang > > > > > > > > On Tue, Jan 7, 2025 at 10:03 PM Adam Lackorzynski <
adam@l4re.org>
> > wrote: > > > > > > > >> Hi Qiang, > > > >> > > > >> thanks for the great feedback. > > > >> > > > >> It's correct, the L4Re microerkernel Fiasco runs in EL2
only.
It
runs > > > >> both VMs and L4Re applications side by side, so yes, it
is a
> > hypervisor > > > >> too. > > > >> > > > >> > > > >> Best regards, > > > >> Adam > > > >> > > > >> On Tue Jan 07, 2025 at 19:34:20 +0800, qiang xu wrote: > > > >> > Hi Adam, > > > >> > > > > >> > Thank you very much for your support. The explanation
was
very
> > clear. > > > >> From > > > >> > the printed information, it seems to be running fine. I
have one
> > more > > > >> > question: Can Fiasco be used as a hypervisor? From the
example
of > > > >> > l4re_VM-multi, it seems to have the ability to run
multiple
> > operating > > > >> > systems on a single platform, and in L4Re, only Fiasco
runs
in
EL2 > > > >> > privilege level. I'm not sure if I understand this
correctly,
so I > > > >> wanted > > > >> > to confirm with you. If it cannot be used as a
hypervisor,
what
> > > >> > functionality does it lack that a hypervisor would
typically
have? > > > >> > > > > >> > Regards, > > > >> > Qiang > > > >> > > > > >> > > > > >> > On Tue, Jan 7, 2025 at 7:53 AM Adam Lackorzynski <
adam@l4re.org
> > > wrote: > > > >> > > > > >> > > Hi Qiang, > > > >> > > > > > >> > > If I'm not mistaken, the provided BSP is using u-boot.
With
> > u-boot, > > > >> the > > > >> > > uimage file is a good fit. When booting up, you can
stop
at
the > > u-boot > > > >> > > prompt and do something like this: > > > >> > > # fatload mmc 0 0x80f00000 fsl-s32g274a-evb.dtb > > > >> > > # fatload mmc 0 0x80ffffc0
l4re_vm-multi-p2p_s32g.uimage
> > > >> > > # bootm 0x80ffffc0 - 0x80f00000 > > > >> > > > > > >> > > You need to copy the l4re_vm-multi-p2p_s32g.uimage
file to
the mmc > > > >> first > > > >> > > of course, for example, through Linux. > > > >> > > Alternative you could also load the elf-image or
raw-image
into > > memory > > > >> > > via your hardware debugger, whatever method the
debugger
> > supports. Do > > > >> it > > > >> > > by intercepting at the u-boot prompt. > > > >> > > > > > >> > > A third option is to use the tftp network
capabilities of
u-boot > > to > > > >> load > > > >> > > the uimage via network. > > > >> > > > > > >> > > > > > >> > > > > > >> > > Adam > > > >> > > > > > >> > > On Mon Jan 06, 2025 at 11:04:35 +0800, qiang xu wrote: > > > >> > > > Hi Adam, > > > >> > > > > > > >> > > > Thank you for your response. > > > >> > > > > > > >> > > > I found the following images in the L4Re pre-built
images
> > folder: > > > >> > > > “l4re_vm-multi-p2p_s32g.efi,”
“l4re_vm-multi-p2p_s32g.elf,”
and > > > >> > > > “l4re_vm-multi-p2p_s32g.uimage.” I would like to
understand
how > > > >> these > > > >> > > > images can be combined with the BSP built using
Yocto
and
> > placed on > > > >> the > > > >> > > SD > > > >> > > > card for booting. > > > >> > > > > > > >> > > > I have been following the examples from the L4Re
wiki
> > > >> > > > <
https://github.com/kernkonzept/manifest/wiki/MultipleVMs%3E
to > > get > > > >> > > started > > > >> > > > with L4Re. These examples run very well on QEMU, but
there
is an > > > >> issue—I > > > >> > > am > > > >> > > > unable to use GDB to debug the Fiasco kernel.I
noticed
that
L4Re > > > >> can also > > > >> > > > run on the S32G platform, so I would like to run
L4Re on
S32G > > and > > > >> use a > > > >> > > > hardware debugging tool to debug the Fiasco kernel
during
its > > > >> execution. > > > >> > > > However, the wiki does not provide instructions on
how
to
run > > L4Re > > > >> on > > > >> > > real > > > >> > > > hardware.Therefore, I would like your guidance on
how to
run the > > > >> examples > > > >> > > > from the wiki < > > > >> https://github.com/kernkonzept/manifest/wiki/MultipleVMs%3E > > > >> > > on > > > >> > > > the S32G platform and boot from an SD card. > > > >> > > > > > > >> > > > Regards, > > > >> > > > Qiang > > > >> > > > > > > >> > > > On Mon, Jan 6, 2025 at 9:56 AM Adam Lackorzynski < adam@l4re.org > > > > > > >> wrote: > > > >> > > > > > > >> > > > > Hi Qiang, > > > >> > > > > > > > >> > > > > On Sat Jan 04, 2025 at 17:03:21 +0800, qiang xu
wrote:
> > > >> > > > > > I would like to know how to run L4Re on the
S32G. I
couldn’t > > > >> find any > > > >> > > > > > related documentation. I’m a beginner in this
technical
> > field, > > > >> so > > > >> > > could > > > >> > > > > you > > > >> > > > > > provide friendly step-by-step instructions? > > > >> > > > > > > > >> > > > > One option is to use the snapshot from l4re.org
as it
has a > > > >> > > menu-driven > > > >> > > > > target selection which includes the S32G. This
hides
quite a > > few > > > >> of the > > > >> > > > > details but gives examples for the S32G right
away.
> > > >> > > > > How do you boot your S32G?
_______________________________________________ l4-hackers mailing list -- l4-hackers@os.inf.tu-dresden.de To unsubscribe send an email to l4-hackers-leave@os.inf.tu-dresden.de