Glossary · 5 · Hardware SDKs and devices
Board support package (BSP)
Also known as: BSP
In embedded systems, a board support package (BSP) is the board-specific collection of code, configuration and hardware description, such as bootloader settings, device drivers, a devicetree and kernel configuration, that lets an operating system or real-time operating system run on a particular circuit board.
- Hardware SDK
- Embedded systems
In one sentence
A board support package (BSP) holds the board-specific code and configuration that let an operating system or RTOS run on a particular board.
Example
An evaluation board ships with a BSP containing the bootloader configuration, the devicetree for its sensors and a kernel configuration, so the Linux build for the board starts from a working baseline.
How it applies
- Hardware SDKs: A BSP is the part of a hardware kit that is tied to one board rather than to a processor family. The Yocto Project defines a BSP as a collection of information that defines how to support a particular hardware device, set of devices or hardware platform, including the hardware features present and any essential bootloader, kernel and device tree information.
- Embedded operating systems: For a real-time operating system (RTOS) the same role is played by a board definition. In Zephyr, adding a board means creating a board directory that builds on a supported system-on-chip and adds the board's devicetree, configuration and metadata.
- Layers above and below: The BSP sits under the device drivers and the operating system's hardware abstraction, and over the firmware in the chip. Embedded software written against the abstraction can move to another board when a BSP exists for it.
- Developer and platform SDKs: Cloud and device-management SDKs often assume a BSP that already brings up networking and storage; their getting-started guides name the boards they were tested on.
- Documentation: Document which boards and hardware revisions a BSP supports, which operating system and toolchain versions it was built with, what it leaves unconfigured and how updates are delivered. A BSP changes when the board changes, so its version belongs in release notes and field-update plans.
BSP vs. hardware abstraction layer
A hardware abstraction layer gives software a uniform interface to differing hardware. A BSP is the concrete, board-specific implementation and configuration that makes such an interface work on one board. Porting to a new board usually means writing a new BSP while the abstraction above stays the same.
External references
- Yocto Project: Board Support Packages (BSP) — Developer's Guide
- Zephyr Project: Board Porting Guide