Definition
A Board Support Package (BSP) is a platform-specific set of support files, routines, and configuration used to make software run correctly on a particular board, device under test (DUT), or virtualized hardware environment. In embedded RTOS contexts, developers create a BSP and device drivers to make an RTOS run on their platform. In verification contexts such as Core-V-Verif, BSP files align the resources expected by a test program with the resources supported by the DUT and testbench.
Role in Core-V-Verif
In the Core-V-Verif UVM environment, the core testbench memory module implements virtual peripherals by responding to reads or writes at specific data-bus addresses. The BSP is the set of additional “test-program environment” files that must match those testbench resources. This allows test programs to be compatible with the resources that the DUT/testbench actually supports.
The cited Core-V-Verif material describes BSP contents as including:
- linker scripts that define program sections and memory regions;
- control and status register configuration files;
- assembly files that perform the minimum startup work required to run a C program.
Core-V-Verif can support test programs regardless of how they are created, as long as they are compatible with the BSP. The environment distinguishes whether a program is pre-existing or generated at run time, and whether it is self-checking or not.
Role in firmware and virtualization workflows
For firmware re-hosting, BSPs are part of the hardware/software boundary: firmware is tightly coupled to non-standard embedded hardware, and RTOS-based firmware commonly depends on BSP routines and device drivers. One re-hosting approach identifies BSP and driver code in target firmware and patches it with replacement BSP routines and drivers that can work with existing emulators.
In automotive software-defined vehicle architectures, vendors may provide BSPs together with hypervisor setups and resource-allocation guidelines. This reflects the BSP’s role as part of the vendor-provided platform enablement package for deploying workloads on shared or virtualized hardware.