What is BSP in Embedded System?
EMBEDDED BSP :
In embedded system Board support package(BSP) is a layer of software containing hardware specific drivers and routines which allows real-time operating system to work under particular hardware system that may be computer or CPU card. The hardware system is integrated with RTOS itself.
BSP supports standard interface between hardware and operating system.
The operation performed by BSP are
- Interrupt controller initialization.
- The Processor initialization.
- Segment configuration.
- The Bus initialization.
- Clock initialization.
- Initialization of RAM setting.
- It will load and run bootloader from FLash.
A Board Support Package (BSP) is used to start up and run the embedded target processor and is fundamental software for use with the evaluation board and its OOBE. The BSP does not include much more than what is needed to support a minimum number of peripherals on an eval board; only enough so that the user can at least demonstrate that the SoC peripherals work and that the SoC can be easily programmed to carry out the main features that the vendor advertises.
A board support package is one of the first software packages that is developed for use with a particular chip or its evaluation board.
The BSP has a boot-up program called the “boot loader” or a boot manager, and there’s a different BSP for different operating systems since the BSP contains drivers that enable the peripherals to communicate with the operating system.
The BSP provides a file structure and will initialize several systems, including the processor, any communication buses, clocks, and memory, as well as start up the boot loader. The BSP may also initialize peripherals and set some environmental parameters for working with the embedded operating system (OS).
A Board Support Package (BSP) provides a standardized interface between hardware and the operating system. A BSP does not directly access hardware. Although a BSP does provide an interface to device drivers which in turn allows the kernel to communicate with the hardware’s assets such as device controllers, the microprocessor (CPU), memory, internal and external busses. .
The BSP provides a common application programming interface (API) and a stable environment for the real-time operating system. The standard interface defines both BSP conventions and validation procedures.
Wind River provides a standardized BSP validation procedure for engineers who are developing their own BSP’s. Validation is very efficient with a BSP designed for VxWorks because the BSP testing can be performed without having to test the operating system at the same time.
Unlike Wind River’s real-time operating systems, most operating systems can not separate the testing of the BSP from the testing of the operating system itself making code coverage during testing a much larger and more inaccurate process.
The BSP validation test suite provided by Wind River is repeatable and as such can be performed by the company developing a BSP as well as by others because of this standard. Wind River’s partners can request that the WindLink partner program grant “Tornado Certified” status to a new BSP after passing the validation procedure as part of an overall certification process.
The validation procedures include tests for:
- Package validation
- Installation tests
- Functional test Code review process including certification from the WindLink partner program The Tornado BSP standard includes conventions to be used by developers that fall into four main categories:
- Coding Conventions
- Documentation guidelines
- BSP Packaging
Driver guidelines One strength of VxWorks is that it provides a high degree of architectural and hardware independence for application code because of this API. Application code and VxWorks can both migrate from one architecture to another because the BSP and related device drivers offer a consistent interface and modular design.
To further illustrate the BSP’s ability to interface hardware to software: Those construction workers that lay carpet for our floors use another example of this type of API in the home and office.
The carpet layer uses two-sided sticky tape to quickly attach just about any style carpet to any architectural floor plan beneath it. The BSP acts like this two-sided sticky tape attaching the embedded hardware to the operating system that uses it.
Description of BSP technical features :
There is a file named target.nr defined in the BSP documentation standards containing a list of technical features supported and unsupported for a particular COTS or reference board.
The list of features describes what a BSP is expected to do during hardware initialization when the CPU executes its first instructions as well as what hardware assets should be presented to the operating system. This information is summarized here. Boot Monitor
- Describe the methods and devices available for booting RTOS on this board. (sm, SCSI, Ethernet, vendor-bug ROMs, open firmware, visionWARE, etc).
- Describe the network support available for booting; bootp, proxy-arp, etc… Default Ram size Additional supported memory options Cache support Flash and ROM memory • How are ROMs made and installed. (How do they split.) Can FLASH ROMs be burned on board. If so, how. Timer support in addition to the system clock
- Describe routines that are associated with the speed of CPU and Timers Devices supported:
- The chip drivers included are:
templateSio.c – template serial driver .
templateTimer.c – template timer driver
templateVme.c – template VMEbus driver
templateNvram.c – template non-volatile RAM driver