Article

Board Support Package (BSP) vs. Device Driver: What’s the Difference?

“We need a BSP” and “we need device drivers” get used almost interchangeably in early conversations about a new hardware platform, but they describe different layers of the same stack. Getting the distinction right matters for scoping a bring-up project accurately.

What a device driver is

A device driver is the software that lets an operating system (or an RTOS) talk to one specific piece of hardware — a sensor, a display, a radio, a storage chip. It translates between the generic calls the OS or application code makes and the specific register-level commands that particular chip understands. One board typically needs many device drivers, one per peripheral.

What a Board Support Package is

A BSP is the broader package that gets an entire board booting on a given OS or RTOS: the bootloader, the base kernel configuration (for embedded Linux) or core startup code (for an RTOS), the collection of device drivers for everything on that specific board, and the build configuration that ties it all together. A device driver is a component; a BSP is the assembled platform those drivers — along with boot code and kernel config — plug into.

Why the distinction changes project scope

“We need a driver for this new sensor” is a scoped, contained task if the board already boots and has a working BSP. “We need this new SoC brought up” is a much larger project: bootloader, kernel or RTOS port, and a full set of device drivers for storage, networking, and every other peripheral on the board, before any application firmware work can even begin. Conflating the two during early scoping is one of the most common reasons hardware timelines slip.

How we scope this

We ask early which situation a project is actually in — an existing, working BSP that needs one or two new peripheral drivers, versus a brand-new SoC or board revision that needs a BSP built from scratch — because the two are different-sized projects with different timelines, even though both get described as “driver work” in early conversations. See our BSP & device driver development page for how we approach both.

FAQ

What is a Board Support Package (BSP)?

A Board Support Package is the collection of low-level software that gets a specific hardware board booting and running on a given OS or RTOS — the bootloader, base kernel or startup configuration, and the full set of device drivers for that board’s peripherals, packaged together.

Is a device driver part of the BSP, or separate?

A device driver is one component inside a BSP. The BSP is the assembled platform — bootloader, kernel/RTOS configuration, and build setup — and the device drivers for each peripheral (sensors, radios, storage, etc.) are individual pieces that plug into it.

Do we need a custom BSP for every new board revision?

Not always — a minor board revision that keeps the same SoC and peripherals often just needs updated or new device drivers on top of an existing BSP. A new SoC, or a board with substantially different peripherals, typically does need a new or significantly reworked BSP.

How long does BSP bring-up typically take for a new SoC?

It varies with how much of a starting point exists. With a reasonable vendor reference BSP to build from, a working image with core drivers can often land in 6-8 weeks; a bring-up on a newer or less-documented SoC with little existing support can take meaningfully longer.

Have a project in mind?

Tell us what you're trying to ship — a quick call is usually enough to know if we're a fit.

Contact Us