<div dir="ltr">Also, can you point me to instructions on applying this sort of patch? All I can imagine is you clone the meta-xilinx repo, and make your changes in it.<div><br></div><div>Giordon</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Mar 7, 2017 at 10:55 AM Giordon Stark <<a href="mailto:kratsg@gmail.com">kratsg@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Thanks a lot! We've got a board over here in our e-shop so I'll poke at this and get back to you soon. It's been somewhat difficult to debug issues with booting because nothing shows up on the serial when trying to load the SD Card (presumably because the boot.bin isn't working right).</div><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Giordon</div></div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Tue, Mar 7, 2017 at 10:49 AM Nathan Rossi <<a href="mailto:nathan@nathanrossi.com" class="gmail_msg" target="_blank">nathan@nathanrossi.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 8 March 2017 at 01:33, Giordon Stark <<a href="mailto:kratsg@gmail.com" class="gmail_msg" target="_blank">kratsg@gmail.com</a>> wrote:<br class="gmail_msg">
> Thanks for the response. Short followups.<br class="gmail_msg">
><br class="gmail_msg">
> On Tue, Mar 7, 2017 at 9:04 AM Nathan Rossi <<a href="mailto:nathan@nathanrossi.com" class="gmail_msg" target="_blank">nathan@nathanrossi.com</a>> wrote:<br class="gmail_msg">
>><br class="gmail_msg">
>> On 7 March 2017 at 15:40, Giordon Stark <<a href="mailto:kratsg@gmail.com" class="gmail_msg" target="_blank">kratsg@gmail.com</a>> wrote:<br class="gmail_msg">
>> > I re-ran on the latest distro (I was on kogoroth and switched to morty).<br class="gmail_msg">
>> > Here's what I see in the list of files:<br class="gmail_msg">
>> > <a href="https://gist.github.com/kratsg/04abfb458ae95a8e167dc08cc1250e37" rel="noreferrer" class="gmail_msg" target="_blank">https://gist.github.com/kratsg/04abfb458ae95a8e167dc08cc1250e37</a><br class="gmail_msg">
>> ><br class="gmail_msg">
>> > On Mon, Mar 6, 2017 at 6:14 PM Oleg K Dzhimiev <<a href="mailto:oleg@elphel.com" class="gmail_msg" target="_blank">oleg@elphel.com</a>> wrote:<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Hello,<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >>> I have a few questions based on this:<br class="gmail_msg">
>> >>> - where is boot.bin?<br class="gmail_msg">
>> >>> - where is u-boot.img / u-boot-dtb.img?<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Check with the poky/meta/recipes-bsp/u-boot/u-boot.inc look for<br class="gmail_msg">
>> >> "deploy"<br class="gmail_msg">
>> >> function.<br class="gmail_msg">
>> >> Also, boot.bin should be the smallest in size.<br class="gmail_msg">
>> ><br class="gmail_msg">
>> ><br class="gmail_msg">
>> > I see the deploy function:<br class="gmail_msg">
>> ><br class="gmail_msg">
>> > <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-bsp/u-boot/u-boot.inc#n203" rel="noreferrer" class="gmail_msg" target="_blank">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-bsp/u-boot/u-boot.inc#n203</a><br class="gmail_msg">
>> > but this looks really confusing and hard to read. Comparing to what I<br class="gmail_msg">
>> > see<br class="gmail_msg">
>> > here<br class="gmail_msg">
>> ><br class="gmail_msg">
>> > (<a href="https://github.com/Xilinx/meta-xilinx/blob/morty/conf/machine/include/machine-xilinx-default.inc" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/Xilinx/meta-xilinx/blob/morty/conf/machine/include/machine-xilinx-default.inc</a>),<br class="gmail_msg">
>> > it looks like "SPL_BINARY" is not set and would need to be set to get<br class="gmail_msg">
>> > this<br class="gmail_msg">
>> > working. I don't know where to set this. It also looks like, similarly,<br class="gmail_msg">
>> > UBOOT_ENV is not set as well. So uEnv.txt does not get made.<br class="gmail_msg">
>><br class="gmail_msg">
>> Currently ZCU102 does not have boot.bin generated by default, for<br class="gmail_msg">
>> couple reasons.<br class="gmail_msg">
>><br class="gmail_msg">
>> 1. No one has sent patches for it, and I don't have hardware so I<br class="gmail_msg">
>> haven't tested or been able to look at getting it working<br class="gmail_msg">
>> 2. u-boot-xlnx has a few different 'zcu102' configs/psu_init setups<br class="gmail_msg">
>><br class="gmail_msg">
>> To get it working, SPL_BINARY = "spl/boot.bin" should be enough (you<br class="gmail_msg">
>> can set this in conf/local.conf or in the machine.conf) as the<br class="gmail_msg">
>> boot.bin should be being built regardless.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> How do you know that this needs to be set to spl/boot.bin instead of<br class="gmail_msg">
> boot.bin? Where does this point to?<br class="gmail_msg">
<br class="gmail_msg">
It is just pointing to the file that is copied/deployed from the<br class="gmail_msg">
u-boot build output.<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://github.com/Xilinx/u-boot-xlnx/blob/master/scripts/Makefile.spl#L156" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/Xilinx/u-boot-xlnx/blob/master/scripts/Makefile.spl#L156</a><br class="gmail_msg">
<br class="gmail_msg">
And for the xilinx boot.bin files, they always get built to spl/.<br class="gmail_msg">
<br class="gmail_msg">
><br class="gmail_msg">
>><br class="gmail_msg">
>> But you will need to use<br class="gmail_msg">
>> u-boot-xlnx, and you will likely need to select a psu_init* that works<br class="gmail_msg">
>> for your board<br class="gmail_msg">
>> (<a href="https://github.com/Xilinx/u-boot-xlnx/tree/master/board/xilinx/zynqmp" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/Xilinx/u-boot-xlnx/tree/master/board/xilinx/zynqmp</a><br class="gmail_msg">
>> there is a few for zcu102).<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> How do you select one? I don't see many options in<br class="gmail_msg">
> <a href="https://github.com/Xilinx/meta-xilinx/blob/master/recipes-bsp/u-boot/u-boot-xlnx.inc" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/Xilinx/meta-xilinx/blob/master/recipes-bsp/u-boot/u-boot-xlnx.inc</a><br class="gmail_msg">
<br class="gmail_msg">
Source modification, you need to change the defconfig for the board.<br class="gmail_msg">
You would need to do it via a patch.<br class="gmail_msg">
<br class="gmail_msg">
> .<br class="gmail_msg">
><br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> Additionally for custom psu_init files, the platform-init recipe<br class="gmail_msg">
>> provider setup is not there just yet. There are some patches on my<br class="gmail_msg">
>> nrossi/wip branch<br class="gmail_msg">
>> (<a href="https://github.com/nathanrossi/meta-xilinx/tree/nrossi/wip" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/nathanrossi/meta-xilinx/tree/nrossi/wip</a>) for it if<br class="gmail_msg">
>> interested.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> For now, i think the default will work fine as we want to boot the zynqmp<br class="gmail_msg">
> via the SPL method. After this, we'll probably want to add custom psu_init<br class="gmail_msg">
> files that configure power for external FPGAs later.<br class="gmail_msg">
><br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> ><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >>><br class="gmail_msg">
>> >>> - where is the root filesystem (eg: to populate the second partition)?<br class="gmail_msg">
>> >>> I<br class="gmail_msg">
>> >>> only see a ramdisk which goes in the first partition (*cpio.gz)<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> a. convert cpio.gz to tar.gz<br class="gmail_msg">
>> >> b. in the rootfs recipe (<a href="http://zynq-base.bb" rel="noreferrer" class="gmail_msg" target="_blank">zynq-base.bb</a>?) specify:<br class="gmail_msg">
>> >>><br class="gmail_msg">
>> >>> IMAGE_FSTYPES = "tar.gz"<br class="gmail_msg">
>> ><br class="gmail_msg">
>> ><br class="gmail_msg">
>> > Looks like this is getting made. I'm not sure why it wasn't before!<br class="gmail_msg">
>> ><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Then don't forget about bootargs.<br class="gmail_msg">
>> ><br class="gmail_msg">
>> ><br class="gmail_msg">
>> > Don't forget about it? Right now, I manually create the uEnv.txt file<br class="gmail_msg">
>> > and<br class="gmail_msg">
>> > fill it in myself (including the bootargs and uenvcmd myself manually).<br class="gmail_msg">
>> > Is<br class="gmail_msg">
>> > there a more automated way to set this?<br class="gmail_msg">
>><br class="gmail_msg">
>> You can set bootargs in the chosen node of the device tree if you<br class="gmail_msg">
>> want. But u-boot will overwrite that anyway if you set bootargs within<br class="gmail_msg">
>> the u-boot environment.<br class="gmail_msg">
>><br class="gmail_msg">
>> ><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >>> - where is uImage? is it just "Image"?<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Most likely.<br class="gmail_msg">
>> ><br class="gmail_msg">
>> ><br class="gmail_msg">
>> > How can I confirm?<br class="gmail_msg">
>><br class="gmail_msg">
>> Image is the kernel, should be in your machine's deploy/images directory.<br class="gmail_msg">
>><br class="gmail_msg">
>> The kernel does not make uImage for arm64, 'Image' is a special type<br class="gmail_msg">
>> that is new for arm64 that is a binary image packed with a info<br class="gmail_msg">
>> header. U-Boot can read them with the booti command.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Right, I knew Image was the generic linux kernel image. It just wasn't clear<br class="gmail_msg">
> to me at all if u-boot was able to read a kernel image without the u-boot<br class="gmail_msg">
> wrapper (eg: via mkimage). I know bootm and bootz exist, but wasn't aware<br class="gmail_msg">
> booti was a thing.<br class="gmail_msg">
><br class="gmail_msg">
> So then we would change<br class="gmail_msg">
><br class="gmail_msg">
> uenvcmd=fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000<br class="gmail_msg">
> ${devicetree_image} && bootm 0x3000000 - 0x2A00000<br class="gmail_msg">
><br class="gmail_msg">
> which has a bootm command to<br class="gmail_msg">
><br class="gmail_msg">
> uenvcmd=fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000<br class="gmail_msg">
> ${devicetree_image} && booti 0x3000000 - 0x2A00000<br class="gmail_msg">
><br class="gmail_msg">
> equivalently for the kernel image, correct?<br class="gmail_msg">
<br class="gmail_msg">
Yep that is all you need to change.<br class="gmail_msg">
<br class="gmail_msg">
Regards,<br class="gmail_msg">
Nathan<br class="gmail_msg">
</blockquote></div></blockquote></div>