Re: How to L4Re on the S32G
qiang xu <[email protected]> Thu, 6 Feb 2025 19:53:49 +0800
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <CACFR-a6AaO7C59LQ9vWZ7yLJcZg=2cEs190aDLRYuPE4Pfaz=g@mail.gmail.com> |
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]