Want to run L4Re on Raspberry PI.

Adam Lackorzynski adam at os.inf.tu-dresden.de
Thu Jun 13 17:48:59 CEST 2019

On Wed Jun 12, 2019 at 00:34:02 +0200, Paul Boddie wrote:
> On Tuesday 11. June 2019 23.32.43 Adam Lackorzynski wrote:
> > On Tue Jun 11, 2019 at 02:00:00 +0200, Paul Boddie wrote:
> > > Unfortunately, nothing more is shown and there is no register dump. Maybe
> > > I have to compile in some kind of exception handler or something.
> > 
> > No, it's built-in. So my suggestion would be to narrow it down by
> > putting some more printfs etc. in the code so see where it diverts.
> > But understandably this is pretty cumbersome with the SD card.
> Indeed, but it was more cumbersome blitting patterns to the display on the Ben 
> NanoNote to trace progress through the bootstrap code and kernel. :-)
> Previously, I did generate debugging statements, and initially it seemed that 
> the code didn't get beyond calc_modules_size, seemingly failing to loop over 
> more than one module. However, splitting up the following statement...
> s += l4_round_size(mbi->module(i).size(), p2align);
> ...and inserting other debugging statements did seem to persuade the code to 
> proceed until move_module was called. Thus, output like this can be generated:
> Counting 5 modules...
> Module 0...
> Size: 648904...
> Module 1...
> Size: 41840...
> Module 2...
> Size: 218336...
> Module 3...
> Size: 87208...
> Module 4...
> Size: 132812...
> Total: 1142784
> In fact, this is from my most recent attempt at instrumenting the code in this 
> way.
> > Could you put the hello.elf online so that I could have a look to check
> > for the assumption with the wrong instruction?
> Perhaps take a look at the following:
> http://www.boddie.org.uk/downloads/armv6_hello.elf
> http://www.boddie.org.uk/downloads/armv6zk_hello.elf

I see a couple of floating point instructions and it would be
interesting to know whether one of those triggers it. Sorry for not
saying this earlier, but could you place a version with debugging
symbols (of bootstrap) online, i.e. one where I could see where
move_modules is.

Thanks, Adam
> I rebuilt the toolchain using the raspberrypi0_defconfig instead of manually 
> selecting Raspberry Pi Zero in the configuration menu, just to make sure that 
> there wasn't some important difference.
> Then, I rebuilt Fiasco and L4Re. The ARMv6 and ARMv6zK payloads were generated 
> from separate ARMv6 and ARMv6zK builds of L4Re.
> The result is unchanged from before, meaning that either the generated code 
> has no influence on the result - it does differ slightly, but mostly involves 
> the usual reordering done when such settings are altered - or "bad" 
> instructions are somehow being generated anyway.
> Thanks for taking an interest in this! I imagine that I am probably doing 
> something wrong, but hopefully my mistakes can be used to teach others what to 
> do.

More information about the l4-hackers mailing list