Boot image configuration organization questions

I am starting some build on my projects and noticed the config directory on the snickerdoodle image with multiple configs.

Just a question for the development team, do you see the most projects using the same default BOOT.bin file and just selecting specific configs based on the config.txt file to switch?

From what I read it looks like the BOOT.bin contains the fsbl and u-boot only.

Do you see most configs using the same BOOT.bin file and base kernel (except maybe when using like an OpenAMP config needs a specific fsbl)?

Just trying to make sure as I am writing projects that I stay in type of organization the project is expecting. Previously on my zynq projects I have built everything but looks like you guys have a really good design that makes things easier.

What I am thinking, feel free to correct me if I got anything wrong.

So when building a new project with FPGA IP I should

1. build a new Vivado project with my FPGA components
2. generate system.bit file
3. generate new devicetree.dtb based on my FPGA components and devicetree source from SDK
4. create new config directory for my config
5. add system.bit and devicetree.dtb to new config directory
6. select new directory in config.txt

Does that sounds about right? No need to rebuild kernel or u-boot if not doing anything really custom?

Thanks,
Chris


Yes, BOOT.bin only contains FSBL and U-Boot, as those are the minimum components required to boot the processing subsystem and can be used to then boot from other sources (bare-metal app or Linux). I think you have the right approach for typical project development. As you stated, you should only need a customized kernel or BOOT.bin if you are setting up a particular configuration such as OpenAMP. We've already releases sources for the most common configurations and we will be building on that will some more custom (OpenAMP, etc.) configurations to make it easier for people to get started using those setups. A particular part of the process you outlined that has proven to be tedious for some is the devicetree compilation as devicetree's are the often neglected, poorly documented and somewhat esoteric component of embedded Linux systems. We will be moving toward simplifying and automating devicetree overlay generation and application with their corresponding bitstreams, at which point we will need to revisit the config.txt bitstream/devicetree management paradigm.

On Friday, July 29, 2016 at 9:27:28 AM UTC-7, chrisnr...@gmail.com wrote:
I am starting some build on my projects and noticed the config directory on the snickerdoodle image with multiple configs.

Just a question for the development team, do you see the most projects using the same default BOOT.bin file and just selecting specific configs based on the config.txt file to switch?

From what I read it looks like the BOOT.bin contains the fsbl and u-boot only.

Do you see most configs using the same BOOT.bin file and base kernel (except maybe when using like an OpenAMP config needs a specific fsbl)?

Just trying to make sure as I am writing projects that I stay in type of organization the project is expecting. Previously on my zynq projects I have built everything but looks like you guys have a really good design that makes things easier.

What I am thinking, feel free to correct me if I got anything wrong.

So when building a new project with FPGA IP I should

1. build a new Vivado project with my FPGA components
2. generate system.bit file
3. generate new devicetree.dtb based on my FPGA components and devicetree source from SDK
4. create new config directory for my config
5. add system.bit and devicetree.dtb to new config directory
6. select new directory in config.txt

Does that sounds about right? No need to rebuild kernel or u-boot if not doing anything really custom?

Thanks,
Chris