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 <[email protected]> wrote:
> 
> > Hi Adam,
> >
> > Awesome, thanks for the info!
> >
> > Regards,
> > Qiang
> >
> > On Tue, Jan 7, 2025 at 10:03 PM Adam Lackorzynski <[email protected]> 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 <[email protected]> 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> 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>
> >> > > on
> >> > > > the S32G platform and boot from an SD card.
> >> > > >
> >> > > > Regards,
> >> > > > Qiang
> >> > > >
> >> > > > On Mon, Jan 6, 2025 at 9:56 AM Adam Lackorzynski <[email protected]>
> >> 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 -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to