Search code examples
operating-systemembeddedu-bootbsp

How are BSP and U-Boot different for an embedded dev board?


I am new to embedded world and trying to understand the difference between a BSP (Board Support Package) and U-Boot utility. My understanding is that both of them reside on ROM area of the target board. When the board's power is turned ON then first the processor control goes to U-Boot that initializes the board peripherals as well provide boot parameters for the OS to boot-up.

When the OS is launched it needs the BSP to communicate to the board's peripherals.

Is this correct understanding or am I missing something here?


Solution

  • Das U-Boot is a bootloader. It is a piece of software which runs when you turn on the processor. It's job is to load the main software and get it ready to start.

    A board support package is all the software that you need to run software on one particular board which is different from what you would need to run on a different board.

    A BSP might include a boot loader and that boot loader might be u-boot. If the processor on the board does not need a bootloader or it is pre-programmed in ROM then the BSP might not include a boot loader.

    The BSP will also include various other things such as header files or a device tree to tell you which peripherals are connected to which ports and pins, and maybe drivers for those peripherals.