Board Support Package for Linux

Autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et dolore feugait

Board Support Package for Linux

Board Support Package for demo boards

When developing an embedded system, you will be attracted by new system on chip (SoC) with functionality that can significantly improve the overall performance of the final product. Board Support Package for Linux or other operating systems are here to help you taking the best of it.

Most chip manufacturers provide evaluation boards. You can use those to decide whether you want to spend your time and budget on that particular CPU. These boards can also be named demo boards, demo cards or system development kits (SDKs). Such boards usually allows you to get the sense of what it takes to boot, program and run a program.

The SDK (System Development Kit) is usually more complete. It may be part of a package that includes additional softwares but there are no absolute rule here in this mater.the definition changes from one manufacturer to another.Most chip manufacturers provide evaluation boards which you can use to decide whether you want to spend your time and budget on that particular CPU. These boards can also be named demo boards, demo cards or system development kits (SDKs). Such boards usually allows you to get the sense of what it takes to boot, program and run a sample program. The SDK is usually more complete and may be part of a package that includes additional softwares but there are no absolute rule here in this mater and the definition changes from one manufacturer to another.

evaluation board
THis is what an evaluation board often looks like, a CPU and many input and outputs (I/O).

MCU does include more and more functionalities, this is why this it is crutial to test not only the hardware but also the software that comes with it. The initial BSP from an evaluation board is often the first step for your custom board’s BSP.

The advantages of a Linux based BSP

A Board Support Package (BSP) is a collection of software used to boot and run the embedded system. It is the essential software needed to work with a board. With a proper BSP all you need to do is boot the system and start developping. For demonstration boards, it handles the minimal set of peripherals needed so user can ensure they can leverage the SoC main features and use the components on the board. A BSP is often the first software developed to be used in conjunction with a particular chip or its evaluation card.

The BSP inlcudes, low level boot programs (also know as first stage bootloader) a boot program or “bootloader” (usually the second stage of the boot process), an operating system and the compatible drivers for this specific OS. As drivers are specific to a given operating system, if multiple operating system (e.g., Linux, Zephyr, FreeRTOS, VxWorks, ThreadX) are supported, manufacturers will provide multiple BSP. It will initialize all the internal SoC components, clocks, communication buses, the DDR, the Flash memory and so on. Then it sometimes provides a root filesystem ( also called Rootfs, the file structure needed by an OS to work) and might even include a minimal set of softwares needed for communication or user interactions.

Nowadays, semi-conductor manufacturers often deliver a Linux-based BSP with an evaluation board that contains the complete hardware support for the board. Linux is really popular because it is “free as in free speech” and thus is agnostic between semiconductor providers. Often, semi-conductor vendor maintains a branch of the Linux kernel tree with all the low level support required for they SoC. This is great as it allows you to switch quite easily from one manufacturer to an other as long as you keep Linux a the main embedded operating system (OS).

Create a custom Linux Board Support Package

As Linux is open-source, no one has to pay any fee to use it, therefor it is free to build a custom BSP based on an existing one. And this is where things become great: you can start developing your embedded software on an evaluation board, while designing your own board, then customize your own BPS and run your embedded software with a few to no modifications. Furthermore, there are device drivers for almost any components you will find on the market, it will ease your BSP development, and drasticly reduce your time to market.

Things becomes even greater if all the specific code and drivers for a given CPU are included within the official Linux sources tree. It often means that the code has been tested extensively, that there are many users, that updates will not depend on the good will of a given manufacturing. Instead you will benefit from all the hard work continuously done by the community.

The Cherry on top of the embedded Linux cake is the ecosystem: You will have access to thousands of libraries and open-source software to create your own custom applications. You can use use any language so it is easier to find developers.

Linux Board Support Package FAQ

What is Board Support Package?

A board support package is set of software that allow to boot and run an electronic board. Often it contains a bootloader, an embedded operating system (OS) and a base file hierarchy ( Rootfs). It does not include application specific software.

Why is Linux popular for embedded systems BSP?

Linux is an open-source Hardware Abstraction Layer (HAL) it is well designed and and well maintained. Users can develop their applications regardless of the hardware underneath. As Linux is free (as free speech) to use and to modify it is relatively easy to adapt an existing Board Support Packages from a demonstration board for any custom design as long as the CPU is supported.

Can I run my proprietary embedded application under Linux

Yes ! Linux is open-source, but you don’t have to open-source your own user-space software. You are good as long as you don’t link your program to GPL libraries and even in such cases you often can pay a licence to obtain a commercial version of a library (eg: Qt).

Is Linux OK for real-time applications ?

Despite not being a real time operating system (RTOS), Linux is suitable for many real-time applications. As it is possible to configure a real time scheduler. However it can not be as precise and is not suitable for “hard” real time devices, but they are not that common.

Are Yocto and Buildroot Board Support Packages?

No, Yocto and Buildroot are tools that can help you generate custom BSP for an electronic board. They take care of the Bootloader (usually Uboot or Barebox), Linux itself and they populate the base filesystem (rootfs) with all the necessary software.

Julien Grossholtz

As an expert in embedded software, I assist companies in the creation of their smart devices and IoTs.

Leave a Reply