SoCs und Hardwareplattformen: Was die Embedded-Softwareentwicklung beeinflusst
Publication
Update
Driver & BSPEmbedded system integration

The choice of an SoC or hardware platform affects not only performance and interfaces, but also the BSP, driver integration, upgradeability and the long-term maintainability of an embedded system.

In embedded projects, an SoC is not merely a computing platform. Together with the board design, memory, peripherals, boot chain and software stack, it determines how easily a system can be integrated, tested, updated and maintained in the long term.

Particularly in the case of Linux-based embedded systems, it is therefore not enough to compare CPU performance and interfaces on the basis of a datasheet. The decisive factor is whether the entire platform – including the BSP, drivers and build environment – can be reliably managed to meet the specific product requirements.

Everything you need to know at a glance


  • The choice of platform influences the effort required for initial commissioning, driver integration, kernel customisation and subsequent product maintenance
  • From a software perspective, an SoC only becomes a usable platform through the combination of board design, bootloader, device tree, BSP and drivers
  • A well-maintained, traceable BSP is usually more important than an extensive list of features in the datasheet
  • Components that are close to the mainline can facilitate kernel upgrades and maintenance; however, project-specific manufacturer customisations often remain necessary
  • Update and recovery strategies, reproducible builds and documented customisations must be taken into account right from the platform selection stage

Why is platform selection an architectural issue from a software perspective?

An embedded system does not run on an abstract processor. It is based on a specific combination of SoC, memory interface, power supply, peripherals, board layout, bootloader, operating system and application. This combination determines which functions are available, how they are initialised and how well they are supported by the chosen software stack.

 

In software development, the choice of platform has a particular impact on:

>>CriterionImpact on software development
1 BSP and the kernel base Determining how quickly a platform can be brought into operation and how much effort is required to maintain it
2 Driver position Determines whether interfaces and peripherals can be used reliably or whether development work is required
3 Boot chain Affects start time, diagnostic options, recovery and the integration of an update strategy
4 Board variants Require clearly traceable device tree and configuration adjustments
5 Build environment It forms the basis for reproducible images, version management and fault analysis
6 Product life cycle Determines the effort required for security patches, kernel upgrades and potential hardware migrations

Those who select platforms solely on the basis of nominal CPU performance, memory capacity or the number of interfaces often defer integration risks to a later stage of the project. This makes them more costly: when the hardware has already been specified, drivers are missing or an update path needs to be added retrospectively.

 

Which SoC characteristics influence software integration?

The CPU is just one component of a system-on-chip. For embedded software development, the key factors are how the entire platform is structured and which subsystems are actually used in a specific product variant.

 

Factors of relevance include, amongst others:

  • memory architecture and memory bandwidth
  • DMA and interrupt architecture
  • interfaces such as Ethernet, USB, SPI, I²C, UART or CAN
  • display, graphics and, where applicable, camera interfaces
  • audio, network and communication blocks
  • mechanisms for booting, debugging and system recovery
  • power and clock management

These characteristics have a direct impact on drivers, data paths, latencies and system integration. A comprehensive range of peripherals is not automatically an advantage. Every function that is actually used requires a robust software foundation, a transparent configuration and testing under realistic load and fault conditions.

What matters is not what an SoC offers in theory, but which functions can be reliably integrated and maintained in the long term on the intended kernel and BSP basis.

What does a Board Support Package include?

The Board Support Package, or BSP for short, provides the hardware-specific software foundation for a specific board or platform family. It bridges the gap between the general operating system foundation and the specific characteristics of the target hardware.

 

In a Linux-based system, a BSP typically comprises:

  • bootloader configuration and customisations
  • kernel configuration and, where applicable, kernel patches
  • device tree descriptions
  • drivers and firmware components
  • build configurations, layers and recipes
  • peripheral initialisation and system-specific settings

A BSP may be provided as a manufacturer’s base, as the foundation for a system-on-module supplier, or as a customised further development. It is not merely a question of whether a BSP is available. It must be assessed whether it is suitable for the planned product and whether its technical basis will remain manageable in the long term.

Testing questions for a BSP

Test questionWhy it is relevant

Are the kernel and BSP versions used maintained in a traceable manner?

 

This affects the ability to plan maintenance and fault rectification

Which patches deviate from the standard?

 

Large or poorly documented changes make updates and analyses more difficult

Are the drivers required for the specific peripherals available and tested?

 

Existing SoC functions are not sufficient without suitable drivers

Can board variants be mapped accurately?

 

Variants must remain maintainable without uncontrolled special configurations

Is the build environment reproducible?

 

Only then can images be reliably recreated, tested and updated later

SIGMA has extensive experience in the development and customisation of complete BSPs, Linux images, kernel components and drivers – particularly for ARM platforms such as NXP i.MX and TI Sitara.

Why is the driver’s position more important than the list of features?

A data sheet describes the hardware capabilities of an SoC. However, what is crucial for a product is whether the required functions are available in the intended software stack in a stable, documented and testable form.

 

The driver layer should be examined with particular care if a product relies on specialised or complex peripherals, such as:

  • display and touch interfaces
  • graphics and video paths
  • camera and image sensor integration
  • audio components
  • fieldbus and communication interfaces
  • customer-specific sensors or actuators
  • power management components

If a suitable driver is missing or an existing driver is not compatible with the kernel base being used, work is required across several layers: in the driver itself, in the device tree, during initialisation, in the build system and during validation. This may be sensible and necessary – but must be planned for as a specific scope of development.

We have proven project experience, particularly with Linux BSPs, camera integrations and specialised drivers on i.MX platforms.

What role does the device tree play in board customisation?

In many ARM-based Linux systems, the device tree describes the specific hardware configuration. For example, it specifies which components are present, which pins and buses are used, which interrupts are assigned, and how peripherals are enabled.

 

In the case of a custom hardware platform, this includes, amongst other things:

  • pin multiplexing and GPIO mappings
  • memory and bus connections
  • interrupt mappings
  • clock sources and reset lines
  • activation of interfaces and peripherals
  • parameters for connected devices such as displays, sensors or communication modules

The device tree does not replace driver development. However, it provides the kernel with the information that existing drivers require to correctly recognise and initialise hardware. Incorrect or incomplete descriptions often lead to boot failures, unstable peripherals or runtime issues that are difficult to reproduce.

For product variants, the hardware description should be versioned, documented and clearly separated from general platform components. This improves maintainability, debugging and future migrations.

When does proximity to the main line reduce maintenance requirements?

The term ‘mainline proximity’ refers to a situation where kernel drivers and hardware descriptions are as closely aligned as possible with the official Linux kernel and its established subsystems. This can offer advantages, as components are more likely to be further developed and tested by a wider community with new kernel versions.

 

Possible advantages include:

  • reduced porting effort during kernel upgrades
  • a more transparent driver and patch base
  • better traceability of bug fixes
  • less dependence on individual, proprietary custom implementations
  • clearer prospects for long-term maintenance.

However, proximity to the mainline is not a universal selection criterion. Vendor BSPs often include support for new SoCs, specialised graphics or multimedia functions, and manufacturer-specific extensions that are not yet available – or not fully available – in the mainline kernel.

The right question is therefore not: “Is everything in the mainline?”

But rather: “What deviations are required for our product, how well are they documented, and how can they be maintained over the planned lifecycle?”

How are the boot chain, updates and recovery related to the platform?

A system is not capable of being updated simply because it has a bootloader. A robust update and recovery strategy is the result of the interaction between several components:

  1. Boot ROM and bootloader: They must support the intended boot logic, diagnostic and recovery paths.
  2. Storage allocation: Partitions or slots must be compatible with the update strategy.
  3. State management: The system must be able to detect whether a new image has booted successfully or whether a rollback is required.
  4. Update mechanism: Updates must be installable in a reproducible manner, verifiable, and able to be handled safely in the event of interruptions.
  5. Diagnostics and recovery: Faults must be traceable in the field and manageable without unnecessary intervention.

A/B strategies and fallback concepts can significantly increase robustness during field updates. However, whether they are appropriate and technically feasible depends on storage resources, bootloader functions, system architecture and product requirements.

Experience with U-Boot and the RAUC update framework is listed as ‘comprehensive’ in the competence matrix. kompetenzmatrix.md Therefore, the update concept should not be addressed only after the platform decision has been finalised, but rather during the architecture and hardware coordination phase.

Why does long-term availability mean more than just hardware that is in stock?

Long-term availability is often reduced to the availability of SoCs, memory or communication modules. Whilst this is necessary, it is not sufficient. A platform can only remain usable in the long term if its software base can also be maintained, understood and, where necessary, further developed.

A platform change during the product lifecycle is usually not merely a matter of replacing the SoC. Depending on the architecture and peripherals, the bootloader, kernel, drivers, device tree, build system, tests and application may all be affected. A software base that is assessed at an early stage therefore reduces the risk of subsequent, unplanned redesigns.

What questions should be answered before the final decision on the platform is made?

Before deciding on an SoC, system-on-module or custom board, hardware and software managers should carry out a joint technical assessment.

 

Checklist for platform selection

  • Which functions and interfaces are actually required in the production product?
  • Which of these are verifiably supported by the intended BSP and kernel version?
  • Which drivers need to be adapted, extended or developed from scratch?
  • How are board variants, device tree customisations and patches versioned?
  • Which bootloader and which memory layout support updates and recovery?
  • How are images created and tested in a reproducible manner?
  • What dependencies exist with regard to SoC, module or BSP suppliers?
  • How realistic are kernel upgrades, bug fixes and hardware migrations over the planned product lifecycle?

Such an assessment is no substitute for architectural work. However, it prevents critical risks from only becoming apparent once the hardware has already been finalised and integration is well advanced.

How do you create a robust software foundation for your hardware platform?

The best platform is not necessarily the one with the highest computing power or the longest list of features. It is the one that meets the product’s requirements whilst also providing a robust foundation for integration, updates, fault analysis and long-term maintenance.

To achieve this, the SoC, target hardware, BSP, drivers, boot chain and build process must be evaluated together right from the start. Choosing a platform is therefore an architectural decision spanning the entire product lifecycle – not merely a preliminary decision in hardware development.

Are you evaluating an embedded platform or planning the software architecture for a new device?

We work with you to assess the requirements arising from the SoC, board design, BSP, driver layer, boot chain and planned product maintenance. This enables us to identify integration and maintenance risks before they tie up time and money during implementation. Just contact us at any time.

Thomas Heinke

Thomas Heinke

Head of sales department

Thomas Heinke has more than 25 years of experience in technical project management at SIGMA Chemnitz. His expertise includes advising and supporting industrial clients, system integration, and projects in the areas of ERP, PLM, business intelligence, and AutoID/RFID. In his work, he bridges the gap between technological developments and the practical requirements of industrial applications.

More about the author

Talk to us!

We will be happy to present solutions for your industry and your processes.
Talk to the specialists for SMEs.

request now