<div dir="ltr"><div dir="ltr">On Wed, Feb 26, 2020 at 8:39 AM Chris Johns <<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 22/2/20 1:45 am, G. S. Niteesh wrote:<br>
> Hi,<br>
> <br>
> This is regarding adding RPi support to the boot image generation tool.<br>
> <br>
> The boot process for Raspberry Pi is very unconventional. The GPU starts<br>
> first, initializes RAM, other hardware, loads the bootloaders and then starts<br>
> the ARM CPU.<br>
> <br>
> The minimum files that are required to boot an RPi are<br>
> bootcode.bin, startx.elf, fixup.dat, kernel.img, config.txt<br>
> There are also other variants of startx.elf and fixup.dat.<br>
> Please have a look<br>
> at <a href="https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md" rel="noreferrer" target="_blank">https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md</a><br>
> for information on the variants.<br>
> <br>
> From what I have tried on my Rpi3 model b v1.2 the minimum files that are<br>
> required are start_x.elf, fixup_x.dat, bootcode.bin, kernel.img, config.txt<br>
> But for this to work, we must add start_x=1 to config.txt because by default<br>
> start.elf is loaded.</blockquote><div>Hello Chris,</div><div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I would have look at how the tool maps to RPi to know if it needs more work :)<br></blockquote><div><br></div><div>Did you take a look at it?<br></div><div><br></div><div>In my opinion, there are two ways to do it.</div><div>The first would be to modify the U-Boot bootloader object to have a files field</div><div>to make sure the user provides all the necessary files(fixup.dat, startx.elf, config.txt).</div><div>So after this change the rtems-boot.ini for RPI should look something like this</div><div>[u-boot-raspberrypi]<br>uses = u-boot-arm-raspberrypi<br></div><div>..</div><div>..</div><div>first_stage = %{ubootdir}/bootcode.bin</div><div>boot_device = mmc 0<br>second_stage = uboot or startx<br></div><div>files = [config.txt, fixup.dat etc]</div><div>But also please keep in mind that if we want to support RPi4 then the first_stage</div><div>will start4x.elf since bootcode.bin is now replaced by code in the EEPROM in RPi4 SOC.</div><div><br></div><div>Another approach will be to create the default Raspberry Pi bootloader object. But having</div><div>support for U-Boot is important since it will allow for automatic testing.</div><div><br></div><div>Which one do you think is a better approach?</div><div><br></div><div>Thank you.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> <br>
> So, what should be the values for the first and second stages in rtems-boot.ini<br>
> for Rpi?<br>
<br>
Would this be bootcode.bin?<br>
<br>
> And also wouldn't it be nice if we could add a files field, which will copy the<br>
> specified files to the image? This would save a lot of typing in case of RPi<br>
<br>
Do you have an example?<br>
<br>
Chris<br>
</blockquote></div></div>