[meta-xilinx] Bitstream/Boot.bin/etc - Providers/Virtual targets
Mike Looijmans
mike.looijmans at topic.nl
Mon Feb 10 22:40:20 PST 2014
One of the things I had to change in the meta-topic layer was the false
assumption that there would be only one bitstream in an image. This is not the
case. Which and how many bitstreams are to be installed depends on a choice of
applications. So don't be tempted to have a single virtual/bitstream provider.
We're typically using one bitstream that's to be loaded at boot, but many
images have extra bitstreams, both full and partial, to do their jobs, and
will happily switch between them.
As for virtual/platform-loader, I don't think other platforms are using this
either, so think carefully before moving away from the OE established practices.
Personally, I'd rather see just the one bootloader to find them all and in
darkness bind them. The FSBL has licensing issues and cannot be built from
sources, so I'd rule that one out. Leaving ezynq and u-boot-spl, which do
similar things (and I haven't had time to play with them). I'd rather see them
combined into a single package.
I'm thinking about adding pinmux capability to the kernel to solve the issue
of requiring bootloader changes when adding extra functionality into logic.
The most sensible thing to do would be that if you activate a module, say the
SPI0 controller, and the bootloader didn't set it up, you can safely assume
that the component hardware is to be activated and connected to EMIO. This
covers about 95% of use cases with very little effort. I'm not totally sure if
this would work, I'm assuming the EMIO pins are "fixed" here.
Mike.
On 02/11/2014 02:57 AM, Nathan Rossi wrote:
> Hi All,
>
> So there are layers/recipes out there where everyone is getting bitstream/boot.bin/fsbl/etc going in Yocto. We are hoping to get some of the features into the base meta-xilinx layer (including the boot-gen stuff). One of the questions that needs to be answered is how to describe the dependencies, so that a machine can include its relevant pieces.
>
> For example, a bitstream could be defined a number of ways including recipes that generate the bitstream from Vivado/EDK projects (like in the meta-topic layer of Mike's), or recipes that use bitstream that are locally provided as a source in the layer, or again as a remote source uri for download. Getting the bitstream into the dependency chain could easily be done by using the 'PROVIDERS' feature of packages and defining a virtual provider, e.g. 'virtual/bitstream'. In this example the machine would define "PREFERRED_PROVIDER_virtual/bitstream = 'packagenamehere'".
>
> The same could be done for the 'virtual/boot-image' which would be for binary bitstream blobs, as well as boot.bin images.
>
> And this could also extend to the third case the platform loaders (e.g. fsbl, ezynq and u-boot-spl) which could be "virtual/platform-loader".
>
> I am throwing these out as ideas, all feedback is welcome :).
>
> Regards,
> Nathan
>
>
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx
>
More information about the meta-xilinx
mailing list