Firmware
What is BSP?
Board Support Package
A board support package (BSP) is the firmware layer — drivers, init code, configuration — that adapts an OS or app to a specific hardware board.
The BSP is what makes generic software run on your custom board, bringing up clocks, memory, and peripherals. A clean BSP is essential when moving from an evaluation board to production hardware.
What a BSP contains
A board support package is the board-specific software layer between the hardware and the operating system or application. It typically includes the bootloader configuration, clock and pin setup, memory map, device drivers for on-board peripherals, the device tree (for Linux or Zephyr) and the build configuration that produces a bootable image.
Why the BSP matters
Every custom board needs its own BSP, even when it uses the same processor as an evaluation kit. A clean BSP shortens bring-up, keeps the product maintainable across OS updates, and is often the first deliverable in a firmware project after the hardware arrives.
BSP for Linux, RTOS and bare metal
For embedded Linux the BSP is usually a Yocto layer or Buildroot configuration with U-Boot and kernel patches. For Zephyr it is a board definition with devicetree and Kconfig files. For FreeRTOS or bare metal it is the startup code, HAL configuration and drivers.
BSP FAQ
- What does BSP mean in software?
- BSP means board support package: the drivers, boot code and configuration that let an operating system or application run on a specific hardware board.
- Who writes the BSP?
- Silicon vendors provide a reference BSP for their evaluation boards; the product team or its firmware partner adapts it to the custom board.