Skip to main content

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.

Related terms