[meta-xilinx] FSBL.elf and BOOT.BIN using bitbake and SDCard booting
Giordon Stark
kratsg at gmail.com
Tue Oct 11 21:00:58 PDT 2016
Hi,
Still unable to find it:
kratsg at dc:~/d4/poky/build/tmp/work/gfex_prototype2-poky-linux-gnueabi/u-boot-spl-xlnx/v2015.04-xilinx+gitAUTOINC+1160fbcc61-r0$
ls
0001-microblaze-Fix-style-issues-in-header-files.patch deploy-u-boot-spl-xlnx
microblaze-Fix-EMAC-Lite-initialization.patch pkgdata
u-boot-spl-xlnx.spec
0002-microblaze-Fix-C99-gnu99-compatiblity-for-inline-fun.patch git
microblaze-generic_defconfig-Disable-configs.patch
pseudo zynq-Add-Zynq-PicoZed-board-support.patch
configure.sstate image package sysroot-destdir
deploy-rpms license-destdir packages-split temp
For the headers, I don't know what you mean by
"include/configs/zynq_zc70x.h" beacuse I have no idea what path you're
referring to...
On Tue, Oct 11, 2016 at 12:59 PM Oleg K Dzhimiev <oleg at elphel.com> wrote:
> u-boot-xlnx/spl/ or u-boot-spl-xlnx/spl/
>
> kratsg at dc:~/d4/poky/build/tmp/work/gfex_prototype2-poky-linux-gnueabi$
> find -name u-boot-spl.cfg
>
>
> Define it in *include/configs/zynq_zc70x.h* before zynq-common.h gets
> included:
>
> #define CONFIG_ZYNQ_SDHCI
> #include <configs/zynq-common.h>
>
>
>
> On 11 October 2016 at 11:41, Giordon Stark <kratsg at gmail.com> wrote:
>
> Hi Oleg,
>
> still looking for it?
>
> kratsg at dc:~/d4/poky/build/tmp/work/gfex_prototype2-poky-linux-gnueabi$ ls
> base-files device-tree linux-xlnx packagegroup-core-boot
> sysvinit-inittab u-boot-xlnx
> depmodwrapper-cross fsbl-platform-init packagegroup-base
> shadow-securetty u-boot-spl-xlnx zynq-base
> kratsg at dc:~/d4/poky/build/tmp/work/gfex_prototype2-poky-linux-gnueabi$ pwd
> /users/kratsg/d4/poky/build/tmp/work/gfex_prototype2-poky-linux-gnueabi
>
> also, where would I define it, if I needed to?
>
> On Tue, Oct 11, 2016 at 12:32 PM Oleg K Dzhimiev <oleg at elphel.com> wrote:
>
> It could be that FAT support is off in SPL. Check
> poky/build/tmp/work/......../spl/u-boot-spl.cfg - it should have at least:
>
> #define CONFIG_ZYNQ_SDHCI
>
> #define CONFIG_SPL_MMC_SUPPORT
>
> #define CONFIG_SPL_FAT_SUPPORT
>
>
> Attaching a copy of mine.
>
> Based on zynq_zc70x.h
> <https://github.com/Xilinx/u-boot-xlnx/blob/master/include/configs/zynq_zc70x.h> and
> zynq-common.h
> <https://github.com/Xilinx/u-boot-xlnx/blob/master/include/configs/zynq-common.h> -
> you need to have CONFIG_ZYNQ_SDHCI defined.
>
> On 11 October 2016 at 10:45, Giordon Stark <kratsg at gmail.com> wrote:
>
> While we're at it, let me summarize the situation:
>
> Using the FSBL method I've documented here (
> https://github.com/kratsg/meta-l1calo/wiki/Prepare-and-Boot-Hardware#fsbl-method)
> -- bitbake to generate uImage, uramdisk.image.gz, devicetree.dtb, and
> u-boot.elf. Then I create fsbl and then boot image using Xilinx SDK, put
> all these files on the SD card and the SD card boots.
>
> If I use the SPL method, I am unable to boot this way with the following
> error message:
>
> U-Boot SPL 2015.04 (Oct 05 2016 - 13:12:31)
> mmc boot
> reading fpga.bin
> spl_load_image_fat: error reading image fpga.bin, err - -1
> spl: error reading image fpga.bin, err - 1
> reading system.dtb
> spl_load_image_fat_os: error reading image system.dtb, err - -1
> reading u-boot-dtb.img
> spl_load_image_fat: error reading image u-boot-dtb.img, err - -1
> ### ERROR ### Please RESET the board ###
>
>
> So at least I know it works via the FSBL method but not the SPL method. My
> second question is related to a comment you made. Let's say I have a custom
> ELF that is written to set up / configure the clocks and I need this to run
> as well. How do I add this in for the FSBL method and for the SPL method? I
> assume for the FSBL method, I just add this in my boot image and it will
> load this for me.
>
> Giordon
>
> On Tue, Oct 11, 2016 at 8:56 AM Giordon Stark <kratsg at gmail.com> wrote:
>
> Hi,
>
> Adding u-boot-dtb.img changes nothing according to the engineers working
> on the board. They still see the same error message previously quoted.
>
> Something else must be off?
>
> Giordon
>
> On Tue, Oct 11, 2016 at 12:00 AM Nathan Rossi <nathan at nathanrossi.com>
> wrote:
>
> On Tue, Oct 11, 2016 at 1:17 PM, Giordon Stark <kratsg at gmail.com> wrote:
>
> > On Mon, Oct 10, 2016 at 9:59 PM Nathan Rossi <nathan at nathanrossi.com>
> wrote:
>
> >>
>
> >> On Tue, Oct 11, 2016 at 12:15 PM, Giordon Stark <kratsg at gmail.com>
> wrote:
>
> >>
>
> >> > Thanks, some elaboration below!
>
> >>
>
> >> >
>
> >>
>
> >> > On Mon, Oct 10, 2016 at 8:58 PM Nathan Rossi <nathan at nathanrossi.com>
>
> >> > wrote:
>
> >>
>
> >> >>
>
> >>
>
> >> >> On Tue, Oct 11, 2016 at 9:49 AM, Giordon Stark <kratsg at gmail.com>
>
> >> >> wrote:
>
> >>
>
> >> >>
>
> >>
>
> >> >> > Hi,
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >>
>
> >>
>
> >> >> > I am using bitbake to build on top of a custom machine [eg: using
> my
>
> >>
>
> >> >>
>
> >>
>
> >> >> > devicetree] and then generating the following files which I renamed
>
> >> >> > into
>
> >>
>
> >> >> > a
>
> >>
>
> >> >>
>
> >>
>
> >> >> > format appropriate for meta-xilinx
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >>
>
> >>
>
> >> >> > -rwxr-xr-x 1 kratsg 59K Oct 5 17:31 BOOT.BIN
>
> >>
>
> >> >>
>
> >>
>
> >> >> > -rw-r--r-- 1 kratsg 22K Oct 5 17:30 devicetree.dtb
>
> >>
>
> >> >>
>
> >>
>
> >> >> > -rw-r--r-- 1 kratsg 3.2M Oct 5 17:30 uImage
>
> >>
>
> >> >>
>
> >>
>
> >> >> > -rw-r--r-- 1 kratsg 26M Oct 5 17:15 uramdisk.image.gz
>
> >>
>
> >> >>
>
> >>
>
> >> >> > -rwxr-xr-x 1 kratsg 2.4M Oct 5 17:30 u-boot.elf
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >>
>
> >>
>
> >> >> > The machine is defined here:
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >> >
>
> >> >> >
> https://github.com/kratsg/meta-l1calo/blob/master/conf/machine/gfex-prototype2.conf
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >>
>
> >>
>
> >> >> > The image I make (bitbake zynq-base) is defined here:
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >> >
>
> >> >> >
> https://github.com/kratsg/meta-l1calo/blob/master/recipes-core/images/zynq-base.bb
>
> >>
>
> >> >>
>
> >>
>
> >> >> >
>
> >>
>
> >> >>
>
> >>
>
> >> >> > So i'm hoping this is relatively straightforward. Now I get a
> little
>
> >>
>
> >> >>
>
> >>
>
> >> >> > confused about actually booting this on the board using the SD
> Card.
>
> >>
>
> >> >>
>
> >>
>
> >> >> > According to the docs
>
> >>
>
> >> >>
>
> >>
>
> >> >> > (
> https://github.com/Xilinx/meta-xilinx/blob/master/docs/BOOT.sdcard)
>
> >> >> > it
>
> >>
>
> >> >>
>
> >>
>
> >> >> > seems that I need to only use four files generated from bitbake:
>
> >>
>
> >> >>
>
> >>
>
> >> >> > devicetree.dtb, uImage, uramdisk.image.gz, and u-boot.elf; and then
>
> >> >> > use
>
> >>
>
> >> >> > the
>
> >>
>
> >> >>
>
> >>
>
> >> >> > Xilinx SDK to create an FSBL.elf, use the u-boot.elf from bitbake,
>
> >> >> > and
>
> >>
>
> >> >>
>
> >>
>
> >> >> > create a boot image (BOOT.BIN). Why isn't this able to be done
> using
>
> >>
>
> >> >>
>
> >>
>
> >> >> > bitbake? When I try everything without using the Xilinx SDK, I see
>
> >> >> > the
>
> >>
>
> >> >> > error
>
> >>
>
> >> >>
>
> >>
>
> >> >> > message [1].
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >> Those docs are a bit old, for the last release I re-wrote the
>
> >>
>
> >> >>
>
> >>
>
> >> >> documentation as README.booting.md in the root of meta-xilinx.
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >> >>
> https://github.com/Xilinx/meta-xilinx/blob/master/README.booting.md#loading-via-sd
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >
>
> >>
>
> >> > Awesome, I was not aware that the docs were rewritten. I didn't even
>
> >> > realize
>
> >>
>
> >> > there was a README.booting.md at the top level. Perhaps that can be
>
> >>
>
> >> > clarified somewhere?
>
> >>
>
> >>
>
> >>
>
> >> It is mentioned in the README, maybe removing the old docs will remove
>
> >>
>
> >> any confusion?
>
> >
>
> >
>
> > That might be best! Or perhaps move that new README.booting into the docs
>
> > directory to replace?
>
> >
>
> >>
>
> >>
>
> >>
>
> >>
>
> >> >
>
> >>
>
> >> >>
>
> >>
>
> >> >>
>
> >>
>
> >> >> Also I am not sure about your question regarding boot.bin generation.
>
> >>
>
> >> >>
>
> >>
>
> >> >> But if you machine provides the ps7_init_gpl* files (your machine is
>
> >>
>
> >> >>
>
> >>
>
> >> >> including zc706, so they are available) it is able to build
> u-boot-spl
>
> >>
>
> >> >>
>
> >>
>
> >> >> (which does the same job as FSBL) and wrap that in the boot.bin
> format
>
> >>
>
> >> >>
>
> >>
>
> >> >> for use. If you need FSBL specifically then that is a separate issue.
>
> >>
>
> >> >
>
> >>
>
> >> >
>
> >>
>
> >> > For right now, we are using a custom board with a ZC706. We'll move to
>
> >> > the
>
> >>
>
> >> > Zynq+ in the next generation (as well as bump up versions of
> everything
>
> >> > from
>
> >>
>
> >> > Jethro). So I imagine we will always have these ps7_init_gpl available
>
> >> > (I
>
> >>
>
> >> > imagine you refer to these:
>
> >>
>
> >> >
>
> >> >
> https://github.com/Xilinx/meta-xilinx/tree/master/recipes-bsp/platform-init/platform-init/picozed-zynq7
> ).
>
> >>
>
> >>
>
> >>
>
> >> So ZynqMP is a bit different, there is U-Boot SPL support. However
>
> >>
>
> >> this is not exposed yet in meta-xilinx, but will be in the future.
>
> >>
>
> >>
>
> >>
>
> >> The directory you linked has the ps7_init_gpl* files which are
>
> >>
>
> >> specific for the picozed board. The platform-init recipe though would
>
> >>
>
> >> be one of the ways you can supply the ps7_init for your machine should
>
> >>
>
> >> you need to. For zc706 the ps7_init_gpl* files are actually in the
>
> >>
>
> >> U-Boot source tree
>
> >>
>
> >>
>
> >> (
> http://git.denx.de/?p=u-boot.git;a=tree;f=board/xilinx/zynq;h=2fc205e4e97071b73a16c00dec1d6804e418343f;hb=HEAD
> ).
>
> >>
>
> >>
>
> >
>
> > I see. Interesting I didn't realize this was in the U-Boot source tree. A
>
> > bit confusing where some files are located, but ok.
>
> >
>
> >>
>
> >>
>
> >> >
>
> >>
>
> >> > I do not totally understand how/why this can replace the FSBL
> entirely?
>
> >>
>
> >> >
>
> >> >
> http://www.wiki.xilinx.com/U-Boot+Secondary+Program+Loader#Task%20Description-Build%20U-Boot%20SPL
>
> >>
>
> >> > seems to indicate it is not fully supported by Xilinx. In fact, I
> never
>
> >>
>
> >> > understood how the FSBL normally worked because I understood the
> process
>
> >> > as
>
> >>
>
> >> > ROM Code -> SPL -> U-BOOT -> Kernel.
>
> >>
>
> >>
>
> >>
>
> >> That is the boot flow yes. And correct it is not "supported" by
>
> >>
>
> >> Xilinx, so you cannot expect to contact Xilinx support channels with
>
> >>
>
> >> regards to SPL. But support for SPL is definitely available in the
>
> >>
>
> >> community whether it be here on meta-xilinx or with U-Boot itself.
>
> >>
>
> >
>
> > Ok, so it should be possible to boot up boards with Xilinx processors via
>
> > this method, not strictly relying on FSBL, but using SPL.
>
> >
>
> >>
>
> >>
>
> >>
>
> >> FSBL is actually not a very complex program, all of the complex
>
> >>
>
> >> register initialization done for DDR, PLL, etc setup is actually
>
> >>
>
> >> contained in the ps7_init_gpl* code files generated by Vivado (in the
>
> >>
>
> >> HDF).
>
> >>
>
> >>
>
> >>
>
> >>
>
> >> If you are interested you can actually see the source for FSBL here
>
> >>
>
> >>
>
> >>
> https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_apps/zynq_fsbl/src
> .
>
> >>
>
> >> However it is important to note that FSBL is licensed under a
>
> >>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-xilinx/attachments/20161012/7d5cbe7c/attachment.html>
More information about the meta-xilinx
mailing list