10-02-2014 12:01 AM
I am working on the microzed board (zynq chip) of Xilinx. I am porting a linux kernel on this board and i also trying to optimize it so that it can boot in a minimum possible time. I have tried Petalinux tool provided by xilinx but could not reduced the boot time below 1.5 seconds. Now, I am trying the alternate method i.e. by replacing fsbl(first stage boot loader) by spl(secondary program loader) so that spl directly boot kernel by bypassing uboot. But, i am unable to find the right direction. Please help me regarding this.
I am following the given documents:
http://www.wiki.xilinx.com/U-Boot+Secondary+Program+Loader
www.denx.de/wiki/pub/U-Boot/.../2013-ELCE-U-Boot-Falcon-Boot.pdf
10-02-2014 06:25 AM
I didn't have good luck with u-boot SPL in my testing either, should be simple, but not documented well yet from what I could tell.
Just another data point here.
I was able to boot Linux from FSBL without any FSBL changes if the kernel is configured in a specific manner.
I did not do a lot of testing with this configuration so bear that in mind.
Note Linux must be loaded at or above 0x8800000 to prevent the Linux kernel wrapper from decompressing the kernel into the lower 1 MB of DDR which is not mapped into low memory at this point as it’s typically done in u-boot. It appears that Linux does map the lower 1 MB DDR into low memory as devmem works for address 0 but this probably needs some verifying.
Thanks
John
10-02-2014 06:20 AM
Falcon boot won't work with NAND on the Zynq, there is no NAND support for Zynq in u-boot SPL (yet?).
The master-next branch has SPL support and can boot from QSPI flash without loading "full" u-boot.
If the board has QSPI flash, the fastest would be to get the flash into memory mapped mode, point the bootloader at the kernel and devicetree in flash (must be in the first 16MB!), and then tell it to go.
An alternative approach is to reduce u-boot's features so it fits into OCM (192kB max program size, leaving 64k stack/heap). Then you don't need a second stage loader, and u-boot can completely replace the first-stage loader. I think there's a zynq-ocm.h in the u-boot configs that tries to accomplish that. If I'm not mistaken, the ephel camera's also boot that way.
10-02-2014 06:25 AM
I didn't have good luck with u-boot SPL in my testing either, should be simple, but not documented well yet from what I could tell.
Just another data point here.
I was able to boot Linux from FSBL without any FSBL changes if the kernel is configured in a specific manner.
I did not do a lot of testing with this configuration so bear that in mind.
Note Linux must be loaded at or above 0x8800000 to prevent the Linux kernel wrapper from decompressing the kernel into the lower 1 MB of DDR which is not mapped into low memory at this point as it’s typically done in u-boot. It appears that Linux does map the lower 1 MB DDR into low memory as devmem works for address 0 but this probably needs some verifying.
Thanks
John
10-13-2014 05:12 AM
Thanks for your reply.
Regards
Suheb
10-13-2014 05:33 AM
Right now bypassing u-boot is my primary requirement.
10-13-2014 05:35 AM
Yes that was what I did, booted Linux without u-boot. The process of how to do it might not meet your specific requirements (how the kernel must be built), but it does work.
Thanks
John
10-21-2014 05:10 AM
I am thankful for your reply. Can you explain me the procedure of booting linux by bypassing kernel. I tried it alot but could'nt find the right path.
Please help
10-21-2014 05:49 AM
Hi,
The process I gave above was specific, is there some part of it that didn't work? You need to be more specific with some details about what you have done and what it is doing if it's not working.
Thanks
John
10-22-2014 03:35 AM
Thanks a lot ..I am trying it again and will let you know if i get stuck.
11-04-2014 05:04 AM
Hi ...hope you are doing fine.
Did you use petalinux tool for the method explained above?
Regards
11-04-2014 08:40 AM
12-04-2014 03:39 AM
Hi
I have tried to bypass uboot but i could not make it through.
I am following the method given in the given link:
Please Help.
01-02-2015 04:57 AM
Hi Linnj
I followed the procedure for bypassing uboot given by you. I formed BOOT.BIN file using bootgen command but when i am booting from microzed board, nothing is coming on the teraterm.
Please help
01-05-2015 05:54 AM
I would rebuild FSBL to have verbose printfs so that you have output from FSBL. You need to know if FSBL is starting Linux correctly and if it's Linux not getting something like the device tree right. There were kernel configuration changes if I remember right so everything has to be setup correctly.
Thanks
John
02-12-2015 03:59 AM
07-25-2018 10:49 AM
Hello Linnj -
Would your solution work for "Zynq UltraScale+ MPSoC" system? Thank you.
Regards