<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.<br>
<br>
I would have look at how the tool maps to RPi to know if it needs more work :)<br>
<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?</blockquote><div>For all models of RPi except RPi4 use bootcode.bin as the first stage. But for RPi4 the bootcode.bin</div><div>is replaced by boot code in EEPROM.</div><div>Then the second stage would be start*.elf. And we might have an extra stage depending on whether</div><div>U-Boot is used or not.</div><div><br></div><div>Please note that I have mentioned start*.elf. There are variants of start.elf, I have mentioned them</div><div>below. But I guess start_x.elf could be used as the default firmware since it has everything that a</div><div>user needs.</div><div>start.elf: The basic firmware for the GPU</div><div>start_x.elf:  Basic firmware with camera driver and extra video codecs</div><div>start_db.elf: Debug version of the firmware (but not sure whether start.elf or start_x,elf)</div><div>start_cd.elf: is a cut-down version with no support hardware blocks like codecs and 3D.</div><div>And there are variants of start.elf for RPi4 ( start4.elf, start4x.elf, start4db.elf and start4cd.elf)<br></div><div><br></div><div>There is also an additional file fixup*.dat which is required for booting. And also it is necessary</div><div>to make sure that they are matched pairs with start*.elf.</div><div><br></div><div><div>This below site has all this mentioned very clearly.</div><div></div></div><div><a href="https://www.raspberrypi.org/documentation/configuration/boot_folder.md" target="_blank">https://www.raspberrypi.org/documentation/configuration/boot_folder.md</a><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> 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?</blockquote><div>Incase of RPi we have to provide additional files like config.txt and fixup*.dat and maybe in</div><div>the user like to provide other additional files then it would nice to make the "file" field to support</div><div>folders instead of repeating the field again and again for every additional file.</div><div><br></div><div>Thank you,</div><div>Niteesh.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Chris<br>
</blockquote></div></div>