rtems-boot-image tool: Raspberry Pi

Chris Johns chrisj at rtems.org
Sun Apr 5 22:51:21 UTC 2020



On 2020-04-05 16:34, G. S. Niteesh wrote:
> Hii,
> It has been quite a few days since the last mail.
> Chris, can you please take a look at this when you are free?

I am sorry for not tracking this thread. I would like to work on this 
but currently it is not high on my list as I work on getting a release 
done. I am pleased to see the tool getting attention and I think it is 
an important tool for RTEMS to have so please do not take my lack of 
attention as an indication I do not think it is important.

Thanks
Chris

> 
> Thanks,
> Niteesh
> 
> On Mon, Mar 23, 2020 at 1:23 AM Christian Mauderer <list at c-mauderer.de 
> <mailto:list at c-mauderer.de>> wrote:
> 
>     Hello Niteesh,
> 
>     thanks for the (private) remainder. This thread really stopped quite
>     some time ago. A lot of us are quite busy right now but that shouldn't
>     happen. If you don't get a response for some question: Please give it
>     about a week of time and then just ping the thread.
> 
>     On 05/03/2020 11:06, G. S. Niteesh wrote:
>      > On Wed, Feb 26, 2020 at 8:39 AM Chris Johns <chrisj at rtems.org
>     <mailto:chrisj at rtems.org>
>      > <mailto:chrisj at rtems.org <mailto:chrisj at rtems.org>>> wrote:
>      >
>      >     On 22/2/20 1:45 am, G. S. Niteesh wrote:
>      >     > Hi,
>      >     >
>      >     > This is regarding adding RPi support to the boot image
>     generation
>      >     tool.
>      >     >
>      >     > The boot process for Raspberry Pi is very unconventional.
>     The GPU
>      >     starts
>      >     > first, initializes RAM, other hardware, loads the
>     bootloaders and
>      >     then starts
>      >     > the ARM CPU.
>      >     >
>      >     > The minimum files that are required to boot an RPi are
>      >     > bootcode.bin, startx.elf, fixup.dat, kernel.img, config.txt
>      >     > There are also other variants of startx.elf and fixup.dat.
>      >     > Please have a look
>      >     >
>      >     at
>     https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md
>      >     > for information on the variants.
>      >     >
>      >     > From what I have tried on my Rpi3 model b v1.2 the minimum
>     files
>      >     that are
>      >     > required are start_x.elf, fixup_x.dat, bootcode.bin,
>     kernel.img,
>      >     config.txt
>      >     > But for this to work, we must add start_x=1 to config.txt
>     because
>      >     by default
>      >     > start.elf is loaded.
>      >
>      > Hello Chris,
>      >
>      >
>      >     I would have look at how the tool maps to RPi to know if it needs
>      >     more work :)
>      >
>      >
>      > Did you take a look at it?
> 
>     Chris is most likely too busy with the release right now.
> 
>      >
>      > In my opinion, there are two ways to do it.
>      > The first would be to modify the U-Boot bootloader object to have a
>      > files field
>      > to make sure the user provides all the necessary files(fixup.dat,
>      > startx.elf, config.txt).
>      > So after this change the rtems-boot.ini for RPI should look something
>      > like this
>      > [u-boot-raspberrypi]
>      > uses = u-boot-arm-raspberrypi
>      > ..
>      > ..
>      > first_stage = %{ubootdir}/bootcode.bin
>      > boot_device = mmc 0
>      > second_stage = uboot or startx
>      > files = [config.txt, fixup.dat etc]
>      > But also please keep in mind that if we want to support RPi4 then the
>      > first_stage
>      > will start4x.elf since bootcode.bin is now replaced by code in the
>      > EEPROM in RPi4 SOC.
> 
>     As far as I understand that approach it more or less tells: To start a
>     raspberry you need U-Boot. U-Boot needs the fixup.dat, startx.elf and
>     config.txt to boot. But that sounds a bit wrong. On Raspberry U-Boot is
>     purely optional, isn't it? So from a high-level view it would be more a
> 
>     - Raspberry needs fixup.dat, startx.elf and config.txt
>     - That can start either:
>        - an application or
>        - an U-Boot which can then start an application (or do other things)
> 
>      >
>      > Another approach will be to create the default Raspberry Pi
>     bootloader
>      > object. But having
>      > support for U-Boot is important since it will allow for automatic
>     testing.
> 
>     That approach sounds more correct. But I don't really know the
>     rtems-boot-image tool. That makes it a lot harder for me to tell whether
>     that approach works well. From that ignorant position I would say that
>     it would be nice to have a boot-image command that can be called with or
>     without a option (like --with-u-boot). Alternatively maybe two targets
>     would be possible. One raspiboot-u-boot-pi1 and one raspiboot-raw-pi1.
> 
>     But your best bet might is to wait for Chris to get free again and
>     answer that question. He knows the boot image tool and can tell you a
>     lot better which concept works best.
> 
>     Best regards
> 
>     Christian
> 
>      >
>      > Which one do you think is a better approach?
>      >
>      > Thank you.
>      >
>      >
>      >     >
>      >     > So, what should be the values for the first and second
>     stages in
>      >     rtems-boot.ini
>      >     > for Rpi?
>      >
>      >     Would this be bootcode.bin?
>      >
>      >     > And also wouldn't it be nice if we could add a files field,
>     which
>      >     will copy the
>      >     > specified files to the image? This would save a lot of
>     typing in
>      >     case of RPi
>      >
>      >     Do you have an example?
>      >
>      >     Chris
>      >
>      >
>      > _______________________________________________
>      > devel mailing list
>      > devel at rtems.org <mailto:devel at rtems.org>
>      > http://lists.rtems.org/mailman/listinfo/devel
>      >
> 


More information about the devel mailing list