Skip to main content
EMBEDDED · SOFTWARE

What Is a Board Support Package (BSP)?

A board support package (BSP) is the low-level software that lets an operating system run on a particular board: the bootloader, kernel, device drivers and hardware description such as the device tree. For NVIDIA Jetson, the BSP is Jetson Linux, delivered as part of JetPack, and custom carrier boards need it adapted to their hardware.

01

What a board support package does

A board support package (BSP) is the set of low-level software that adapts an operating system to one specific circuit board. An operating system such as Linux knows how to schedule tasks and manage files, but it knows nothing about the particular processor, memory map, ports and peripherals on a board until the BSP tells it. The BSP supplies the code that starts the board, the kernel built for its processor, the drivers for its interfaces and a description of how the hardware is wired.

BSPs matter most in embedded and Arm-based systems, where every board is different and there is no standard PC-style discovery of hardware. When a carrier board adds its own interfaces, or a capture card or camera is fitted, the BSP needs matching drivers and configuration, and those have to be carried forward to each new release.

BSPs are usually written by the silicon vendor or the board manufacturer. The processor vendor provides a reference BSP for its own evaluation board, and each board maker adapts it to its design. System integrators then build the final operating system image on top, adding application software, security settings and any drivers for fitted options.

02

What is inside a BSP

The exact contents vary by vendor and operating system, but most embedded Linux BSPs contain the same building blocks.

  • //
    Bootloader. Starts the hardware, initialises memory and loads the operating system. U-Boot is common on Arm boards, and NVIDIA Jetson uses UEFI-based boot firmware on current modules.
  • //
    Kernel and patches. A Linux kernel built and configured for the processor, often with vendor patches not yet in mainline Linux.
  • //
    Device drivers. Code that lets the operating system use the board’s Ethernet, USB, storage, display, camera and serial interfaces.
  • //
    Hardware description. A device tree on Arm boards, or ACPI tables on x86, that tells the kernel which devices exist and how they are connected.
  • //
    Root file system and tools. A reference file system, flashing tools and build scripts, so the image can be built and written to the board.
03

BSPs on Arm and x86 systems

The term BSP is used most on Arm and other embedded processors. On x86 industrial PCs, much of the same job is done by standard UEFI firmware and ACPI, so a general-purpose operating system usually installs and runs with ordinary drivers.

Layer Typical Arm embedded board Typical x86 industrial PC
Boot firmware U-Boot or vendor UEFI, part of the BSP UEFI BIOS supplied with the board
Hardware description Device tree, specific to each board ACPI tables in the firmware
Kernel Vendor kernel, often patched Standard distribution kernel
Drivers Mostly delivered in the BSP Mostly in the OS, plus a few vendor drivers
Operating system install Board-specific image flashed to storage Standard Windows or Linux installer

Our FAQ on what UEFI is explains the x86 side of that table.

FAQ · 01
Is a BSP the same as firmware?
Not quite. Firmware is software stored on the hardware itself, such as the UEFI BIOS or a bootloader. A BSP is a package that includes boot firmware but also the kernel, drivers and hardware description needed to run a full operating system.
Read the full FAQ —
04

The NVIDIA Jetson BSP

On NVIDIA Jetson, the BSP is Jetson Linux, previously called Linux for Tegra (L4T). It contains the boot firmware, Linux kernel, drivers, device trees and an Ubuntu-based root file system for each Jetson module, and it is delivered as part of JetPack alongside CUDA, TensorRT and the other AI libraries. NVIDIA’s BSP describes its own developer kit carrier boards. A production carrier board with different ports, cameras or power design needs the BSP adapted: new device tree entries, pin configuration and sometimes extra drivers.

Carrier board manufacturers publish a BSP for each JetPack release they support, so the list of supported releases is as important as the ports. Our Jetson carrier boards come from manufacturers that maintain those BSPs, and our guide to choosing a Jetson carrier board covers why BSP support should be checked before the hardware is chosen.

05

Keeping a BSP current

A BSP is tied to a specific kernel and operating system release, so it has to move when they do. Security fixes, new JetPack versions and new hardware revisions all mean a new BSP build, and drivers for custom hardware must be ported each time. Production fleets often build their image with the Yocto Project, where the BSP becomes a layer that sits under the application; our article on JetPack 7.2 and Yocto on Jetson Orin explains that approach. In our drone detection case study we created drivers for the current BSP in the customer’s software stack and help them migrate to new NVIDIA releases.

06

Quick answers on board support packages

Board support packages: common questions

What does BSP stand for in embedded systems?

Board support package. In plumbing BSP means British Standard Pipe, a thread type, but in computing it is the software package that makes an operating system run on a board.

What is the difference between a BSP and a HAL?

Scope. A hardware abstraction layer is a thin software interface to peripherals, common on microcontrollers. A BSP is the full set of boot code, kernel, drivers and configuration for a board running an operating system.

Is a BSP the same as an SDK?

No. The BSP gets the operating system running on the hardware. An SDK provides the libraries and tools for building applications on top. JetPack contains both: Jetson Linux is the BSP, and CUDA and TensorRT are the SDK.

What is a BSP layer in Yocto?

A layer of recipes for one board or processor family. It holds the kernel, bootloader, device tree and drivers, so the same application layers can be built for different hardware.

Do x86 PCs need a BSP?

Rarely in the same way. UEFI firmware and ACPI let standard Windows and Linux run on most x86 boards. Specialised embedded x86 builds may still ship a BSP for custom drivers or real-time kernels.

We supply Jetson and Arm systems with the BSP, drivers and operating system image installed and validated as standard, and maintain them across releases for the life of the project.