Genode on i.MX6Q Sabre Lite

Yevgeny Lavrov ylavrov13 at ...9...
Wed Sep 13 00:31:43 CEST 2017


Hi,

With Genode 17.08 released, what is the current level of support for
Genode/seL4 on i.MX6 platform? I've applied my previous changes to Genode
to enable it on Sabre Lite platform, and currently I have no problems
running test scenarios under default hw kernel. But when attempting to run
Genode with seL4, the boot process hangs up once it reaches "Jumping to
kernel-image entry point..."

ELF-loader started on CPU: ARM Ltd. Cortex-A9 r2p10
     paddr=[20000000..201bc01f]
ELF-loading image 'kernel'
     paddr=[10000000..10039fff]
     vaddr=[e0000000..e0039fff]
     virt_entry=e0000000
ELF-loading image 'genode.elf'
     paddr=[1003a000..10261fff]
     vaddr=[2000000..2227fff]
     virt_entry=2000000
Enabling MMU and paging
Jumping to kernel-image entry point...

I've tried to introduce debug statements like Genode's log( ) for core
component and kernel_debugger_outstring( ) for seL4 side, but it never
reaches any of them. Is it even possible to run a simple Genode scenario
(e.g., run/log or run/init) on seL4 on ARM at the moment?

Thank you

On Mon, Jun 26, 2017 at 12:14 AM, Yevgeny Lavrov <ylavrov13 at ...9...>
wrote:

> Hi, Norman
>
> > I wonder, how exactly are you running the image on the board?
> I normally just copy created image over to SD card and then run it via
> bootelf command.
>
> > In contrast, on ARM, everything (seL4 kernel + Genode) must be contained
> in a single image. The details of how such an image is assembled is
> kernel-specific
> This might explain why the image didn't give me any output. I ended up
> with two images: image.elf & sel4.elf instead of just image.elf in my
> <sabre_lite>/var/run/log/
>
> > Consequently, there must exist a seL4-specific tool for creating it. Can
> you please elaborate, which tool you use and which particular steps you
> take?
> Didn't think of any tool for combining image.elf & sel4.elf together until
> I got your reply. Only thought of modifying /tool/run/boot_dir/sel4 file.
> I'll give Hinnerks elfloader-tool a try today.
>
> > Have you tried to run a non-Genode-based seL4 image on the hardware? I
> would not try to run
> > Genode on the device before running a simple seL4 example first.
>
> Yes, this was my starting point. All seL4 apps ran w/o any problems.
>
> Thanks
>
> On Fri, Jun 23, 2017 at 7:20 PM, Hinnerk van Bruinehsen <
> h.v.bruinehsen at ...491...> wrote:
>
>> On Fri, Jun 23, 2017 at 12:00:42PM +0200, Norman Feske wrote:
>> > Hello Yevgeny,
>> >
>> > On 23.06.2017 05:31, Yevgeny Lavrov wrote:
>> > > Running the image on board gave no result, apart from msg: ## Starting
>> > > application at 0x10001000 ...
>> >
>> > I wonder, how exactly are you running the image on the board? In
>> > particular, how is the image created?
>> >
>> > I am asking because the boot procedure on ARM is different from
>> > x86/multiboot. On x86, the kernel and the Genode ELF image are loaded by
>> > the boot loader (e.g., Grub) as separate boot modules. The kernel is
>> > started by the boot loader. At the startup of the kernel, the kernel
>> > finds the physical memory location of the Genode ELF image in the
>> > multiboot information and ELF-loads core by using this information. In
>> > contrast, on ARM, everything (seL4 kernel + Genode) must be contained in
>> > a single image. The details of how such an image is assembled is
>> > kernel-specific. Consequently, there must exist a seL4-specific tool for
>> > creating it. Can you please elaborate, which tool you use and which
>> > particular steps you take?
>> >
>> > Another potential pitfall would be the use of the wrong UART or the use
>> > of a kernel configuration without debug support. The latter is needed
>> > for the kernel-provided UART driver. Have you tried to run a
>> > non-Genode-based seL4 image on the hardware? I would not try to run
>> > Genode on the device before running a simple seL4 example first.
>>
>> Hi,
>>
>> I'm using a fork of seL4's elfloader-tool that I've hacked together to
>> create an image that acutally boots (at least it gets into the genode
>> userland image where it is failing).
>> To be clear: I need to add calls to kernel_debugger_outstring as I get
>> a data fault before the logging infrastructure works (I guess due to
>> exception handling not being initialized before the fail occurs).
>>
>> I'm using an am335x based board so I can't test if this works for other
>> hardware, but if anyone is interested you can find my elfloader fork at
>> https://github.com/N8Fear/elfloader-tool
>>
>> The bootable image is then created by running the script from the
>> elfloader dir
>> TOOLPREFIX=arm-none-eabi- PLAT=am335x ./gen_boot_image.sh
>> <path to genode>/build/wega_am335x/var/run/log/sel4
>> <path to genode>/build/wega_am335x/var/run/log/image.elf
>> /tmp/out.elf
>>
>> PLAT and TOOLPREFIX need to be changed accordingly and when building the
>> prelinked elfloader binary PLAT and ARMV needs to be adjusted as well
>> (take a look at the Makefile).
>>
>> I guess for your board you should try PLAT=imx6 for building and for
>> creating the image.
>>
>> I guess I should do some cleanup if anyone else wants to use the
>> stuff...
>>
>> With kind regards,
>> Hinnerk
>>
>>
>>
>> ------------------------------------------------------------
>> ------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> genode-main mailing list
>> genode-main at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20170912/12414ad9/attachment.html>


More information about the users mailing list