The bring-up sequence, build-system choices, and pitfalls that make or break a hardware program's timeline.
Board support package development is the part of a hardware program that gets the least schedule respect and causes the most schedule damage. It's easy to underestimate because it sits between two teams — hardware and application software — and neither one owns it end to end. The result, more often than not, is a BSP timeline built on optimism rather than the actual bring-up sequence. Here's the checklist we run through on every embedded Linux program, roughly in the order it needs to happen.
U-Boot (or your SoC vendor's preferred bootloader) has to boot and hand off to the kernel before any other bring-up work is meaningful. Confirm DDR initialization, boot media (eMMC/NAND/SPI-NOR) access, and console UART output first. Every hour spent debugging a driver before the bootloader reliably brings up DDR and console is an hour you'll likely redo.
Start from your SoC vendor's reference device tree and kernel defconfig, not a clean-sheet configuration — vendor BSPs encode a lot of hard-won hardware knowledge you don't want to rediscover. From there, strip unused nodes and drivers rather than adding to a minimal base; a leaner kernel config means faster builds and a smaller attack surface for the lifetime of the product.
Bring-up order matters more than most schedules account for. The dependency chain is real:
Both are legitimate choices — the right one depends on product complexity and team size, not which is "more professional."
Better for complex products with multiple SKUs, long-term maintenance needs, and layered customization. Steeper learning curve, more powerful package/recipe management at scale.
Faster to learn and faster to build, well suited to simpler single-purpose devices where the full Yocto layer/recipe model is more overhead than the product needs.
A BSP isn't done at first boot — it's done when it's validated and maintainable for the product's field life:
Our team handles BSP bring-up, driver development, and Yocto/Buildroot builds for OEM and ODM hardware programs end to end.
A practical decision framework for OEM and ODM teams building their next broadband gateway.
Read ArticleThe kernel networking stack has a ceiling. Here's how DPDK's poll-mode drivers push past it.
Read Article