Showing results for 
Search instead for 
Did you mean: 
Registered: ‎12-17-2017

BSP vs FSBL and its impact on uboot and kernel

I am confused between the function of BSP and FSBL, and its impact on uboot and kernel. My question is three fold:

  1. BSP initializes the arm processor, clock, ram, etc. But since FSBL is what is being loaded after control is passed from the BootROM, I assume FSBL contains the Board support Package (I base this on the workflow of building FSBL in Xilinx SDK) and therefore (bsp part of) FSBL does all initialization and configurations necessary to launch the secondary boot loader (u-boot). Is this assumption and boot sequence correct?
  2. What is the purpose of having linux-xlnx and u-boot-xlnx repositories separate from original linux and denx repos? My understanding says that since all the initialization is carried out in the FSBL, so I could use vanilla linux kernel source and u-boot source, compile it for arm and run it on zynq. But are there any additional components in xilinx maintained clone of the kernel and u-boot which are specific to zynq processors?
  3. Are there any initializations which take place in u-boot and kernel which are specific to zynq boards which are not done in the FSBL? I am not concerned about the general linux boot procedure where storage media is initialized to read and load kernel, fdt and platform drivers are linked together, etc.
Tags (3)
1 Reply
Registered: ‎09-12-2007

Re: BSP vs FSBL and its impact on uboot and kernel

When you export from Vivado to SDK. The tools will create a HDF file. This is a container file that will contain the ps_init.c/h files with the config settings used in the PS configuration wizard in IPI. 


Also, included in the HDF is a HWH (Hardware Handoff file). This is used during the BSP creation to let the SW know; what HW is used in both the PS and the PL so it will pull in the correct drivers. Also, the processor setup, so it knows what compiler options to use.


When you use the SDK to create the FSBL, this will automatically create the BSP for you. The BSP here will include the xilifs (filesystem), and xilrsa (encryption) libraries that are used by the FSBL. So, the FSBL uses the BSP, and the PS config files.


For the linux-xlnx, and u-boot-xlnx, there a defconfig files to config the kernel, and u-boot for the specific architecture. Also, there a devicetree files here too, and u-boot config.h files. 





0 Kudos