Engineering Trusted, Recoverable and Lifecycle-Ready Firmware From First Boot to Field Update. Boot ROM. Bootloader. Root of Trust. Image Authentication. Secure Boot. Firmware Manifest. Digital Signature. Anti-Rollback. A/B Slots. Trial Boot. Health Confirmation. Automatic Revert. Recovery. Power-Loss Safety. OTA. Secure Provisioning. Release Control. Lifecycle Management.
Firmware eventually changes. Because products need: Bug Fixes, Security Updates, Performance Improvements, New Features, Component Compatibility, Protocol Updates. Field Corrections and sometimes: Emergency Recovery.
That means one of the most important questions in product architecture is: How Will This Device Safely Change Its Own Software After It Leaves the Factory?
365PCB Bootloader, OTA & Secure Firmware Update engineering therefore treats Firmware Update as: A Controlled Transition Between Two Trusted Product Configurations.
Don't Start With the OTA Server
First ask: How long will this product be deployed? Can it be physically serviced? How expensive is a failed update? Does it have reliable internet? Can users interrupt power? Does it contain safety-critical behavior? Can the hardware revision change? Update Architecture Begins With Product Lifecycle.
A finished electronic product can be represented as:
PCB Revision
BOM Variant
Firmware
Bootloader
Configuration
Calibration
Security Credentials
Changing Firmware Changes the Product.
The bootloader executes before the main application and determines: What Software Is Allowed to Run Next.
Depending on platform it may perform:
image discovery
image validation
selection
update
recovery
handoff.
The Bootloader Is the Software Gatekeeper of the Product.
Startup code prepares:
CPU
memory
for execution.
A production bootloader may additionally manage: Trust, Version, Image Slots, Recovery, Updates.
Startup Gets the Processor Running.
Bootloader Decides What It Should Run.
A typical chain might conceptually be: Hardware Reset → ROM Boot → Root-of-Trust Verification → First-Stage Bootloader → Second-Stage Bootloader where applicable → Application / Operating System
Every Stage Inherits Trust From the Stage Before It.
Many SoCs contain immutable Boot ROM.
It may establish:
boot source
initial verification
hardware-security state
depending on silicon. The First Trusted Code Should Be Difficult to Replace.
A hardware or immutable software root can anchor: Which Signing Authority the Device Trusts.
This may involve:
protected key hashes
fuses
ROM state
secure storage
depending on platform. Secure Boot Requires a Starting Point That the Attacker Cannot Simply Rewrite.
Conceptually: ROM trusts Bootloader → Bootloader trusts Application → Application trusts later software/configuration.
Trust Should Be Extended — Not Assumed.
Secure Boot answers: Is This Software Authorized to Execute?
It typically combines: Integrity, Authenticity.
Has the software changed from the expected artifact? A cryptographic digest can provide evidence of content integrity. One Changed Bit Changes the Digest.
Integrity alone does not answer: Who created this firmware?
Digital signatures can establish that the image was approved by an authorized signing authority.
Hash Says "Unchanged."
Signature Says "Authorized."
A hash stored beside an image can potentially be replaced together with the image if no stronger trust mechanism protects it.
Integrity Metadata Must Be Authenticated Too.
Conceptually: Firmware Build → Hash → Authorized Signing Process → Signed Image / Manifest → Device Verification
Release Trust Begins Before Firmware Reaches the Device.
The signing private key is extremely sensitive.
Because: Whoever Controls the Authorized Signing Key May Be Able to Create Software the Device Trusts. Therefore signing-key protection is a major product-security responsibility.
The device generally needs trusted information enabling signature verification. Verification Authority Must Be Anchored in the Device.
A signed firmware image may still be readable.
Authenticity ≠ Confidentiality.
RFC 9019 specifically distinguishes these properties: authentication and integrity protection are required elements of its architecture, while firmware confidentiality is optional.
Encryption may be useful where:
IP confidentiality
transport exposure
matters.
But: An Encrypted Malicious Image Is Still Malicious. Authentication remains fundamental.
A device must know: Who Authorized the Image.
Not merely: Can I decrypt it?
A firmware image alone cannot answer every update question.
A manifest can describe:
Version
Target
Digest
Dependencies
Sequence
Location
Authorization Information
The Manifest Describes the Meaning of the Update.
RFC 9019 defines a transport-independent architecture for IoT firmware update, while RFC 9124 defines the information model that a secure update manifest needs to represent.
Delivery Method and Update Authorization Should Be Separate Concepts.
As of August 2026, IETF SUIT work continues beyond RFC 9019/9124. The CBOR-based manifest serialization is in the RFC publication process, while update-management extensions remain active Standards-Track work rather than a finalized RFC.
For365PCB: Do Not Market Draft Work as a Final Standard.
But understand where secure-update architecture is heading.
The updater itself may evolve.
Therefore the device should know: Which Manifest Format It Is Parsing.
Software version answers: Which product release is this?
But security may need something stronger than ordinary semantic versioning.
Trusted Firmware-M documents an anti-rollback architecture using an independent security counter rather than relying only on normal image version numbers.
Product Version and Security Version Are Not Necessarily the Same Thing.
Firmware: 3.5 may contain a critical security fix.
Later: 4.0 exists.
You may want to allow: 4.0 → 3.5 for functional recovery,
but never: 3.5 → 3.4, because 3.4 contains a known vulnerability.
Security History Needs Its Own Policy.
Anti-rollback prevents an attacker from installing an: Older but Correctly Signed Vulnerable Firmware.
An old firmware may have been genuinely signed when originally released.
Years later it may contain: Known Vulnerabilities.
Signature Authenticity Does Not Prove Current Security Acceptability.
RFC 9124 includes a monotonically increasing sequence value specifically to support rollback protection in firmware-manifest architecture.
Time Moves Forward. Security State Should Be Able to Move Forward Too.
An anti-rollback counter must itself resist unauthorized rollback.
Otherwise: The Attacker Rolls Back the Counter First.
Implementation depends strongly on processor/security architecture.
A sophisticated system can contain independently updateable: Bootloader, Secure Firmware, Application, Radio Firmware, FPGA, AI Model.
Each Software Component May Need Its Own Version and Security Policy.
Updating multiple images creates dependencies.
Example: Application v5
requires: Radio Firmware ≥ v3.
Software Compatibility Becomes a Dependency Graph.
The update system should know: Which components must exist before this one can run?
Update Order Is Architecture.
Firmware intended for: Board Rev C
may be electrically wrong for: Rev A.
Securely Signed Wrong Firmware Is Still Wrong Firmware.
Update acceptance can include:
model
board revision
processor
peripheral variant
where required.
Authenticate Applicability — Not Only Authenticity
RFC 9124 includes the idea of a component identifier so an update manifest can indicate which software/storage component a payload targets.
The Device Must Know What Is Being Updated.
For example: Model Standard
and: Model Pro
may use the same MCU but different hardware. Shared Processor Does Not Mean Shared Firmware.
If image compatibility cannot be established: Don't Guess.
Reject or enter a controlled recovery path.
One major architectural decision: How Many Firmware Copies Can the Device Store?
Simplest: Current Image is overwritten.
Advantages:
low flash cost.
Disadvantage: Recovery becomes much harder if update is interrupted.
Maintain: Slot A
and: Slot B.
One contains: Current Known-Good.
The other can receive: Candidate Update.
Running A. Download B. Verify B. Boot B.
If healthy: Commit B.
If unhealthy: Return to A.
This principle is foundational: Never Destroy the Last Known-Good Software Before the Replacement Has Proven Itself.
43 — Storage Cost
A/B consumes more flash/storage.
Reliability Costs Memory.
The correct trade depends on product consequence.
Instead of executing directly from separate banks, some bootloaders swap images between:
primary
secondary
regions. Update Layout Depends on Flash Architecture.
MCUboot provides one mature reference architecture for secure boot/update on 32-bit microcontroller systems.
Its current design supports multiple image-management strategies and cryptographic validation.
Framework Choice Should Follow the Processor and Product Requirements.
One especially useful mechanism is: Test Boot.
MCUboot can install/select a new image temporarily.
The application then has the opportunity to prove: I Am Healthy.
If the candidate firmware completes its required self-checks: Mark Image Confirmed.
Then it becomes permanent.
MCUboot explicitly supports this test → confirm flow.
If the test image fails to confirm itself: MCUboot can return to the prior image on a later boot.
Failure to Prove Health Becomes a Rollback Trigger.
This concept should exist independent of any particular bootloader implementation: Install → Trial → Validate → Commit
or: Revert. Deployment Should Include a Probation Period.
The processor reaches: main().
That does not prove:
sensor works
network works
configuration migrates
actuator works.
Boot Health Must Be Defined at Product Level.
The new application may need to demonstrate selected: Critical Services Running, Configuration Valid, Memory Valid, Watchdog Healthy, Required Peripheral Ready, before commit.
"Healthy" Should Be a Defined Requirement.
If firmware confirms immediately at startup:
then crashes 3 seconds later: Recovery Was Defeated by Premature Confirmation.
The product should define a reasonable validation period or event set. Confirmation Timing Is Product-Specific.
Bad firmware may: Boot → Crash → Reset → Boot → Crash.
Endless Reset Is Not Recovery.
A boot architecture may count repeated failed attempts.
After threshold: Revert / Recovery.
The boot system should understand, where supported: Watchdog, Software Reset, Brownout, Power-On.
Why the Device Rebooted Changes Update Diagnosis.
A watchdog reset shortly after new firmware installation may be strong health evidence.
Recovery Architecture and Watchdog Architecture Should Work Together.
Before replacing software controlling physical hardware: What State Is the Product In?
Outputs may need controlled behavior depending on product.
For some products: update can happen while normal operation continues.
For others: Update Requires Maintenance Mode.
Industrial products may allow installation only during:
planned downtime.
Update Timing Is an Operational Requirement.
Separate: Acquire Image
from: Activate Image.
Download at a Convenient Time. Install at a Safe Time.
A device may download while still running old firmware. Network Activity and Product Behavior Can Be Decoupled.
If connection dies at: 87%
should the transfer restart from zero?
Not necessarily. Transfer Resumability Can Reduce Time and Energy.
Large payloads can be divided into controlled blocks.
Each block can be tracked according to architecture.
Network Failure Should Not Necessarily Destroy Previous Progress.
TLS protects: The Connection.
Firmware signature protects: The Artifact.
Both solve different problems.
An important secure-update property is: The Distribution Server Does Not Necessarily Need to Be Trusted With Firmware Authorization.
If the artifact itself is authenticated by the device, distribution and authorization can remain separate.
This transport-independent principle is central to the SUIT architecture.
Not every product has cloud connectivity. Updates may arrive through:
local service channel
removable media
nearby gateway
depending on product. Secure Update Should Not Depend Exclusively on Internet Transport.
Whether update arrives via: Network
or: Local Interface, the authorization policy should remain consistent. Transport Does Not Define Trust.
RFC 9124 distinguishes a delivered payload from the final installed firmware because payloads can be:
compressed
encrypted
differential.
What Is Downloaded Is Not Always What Ultimately Executes.
Firmware can be compressed to reduce: transfer size. But decompression requires:
RAM
compute
temporary storage.
Smaller Network Payload Can Require More Device Resources.
A delta carries only differences between: Old
and: New, software.
Potential advantage: Less Network Traffic.
Delta requires exact understanding of:
source version
transformation
final verification.
Smaller Payload Means More Dependency on Existing State.
After applying delta: Verify the Resulting Complete Image.
Not merely: delta file downloaded correctly.
Delta intended for: v1.4
cannot automatically be applied to: v1.3.
Differential Update Has a Source-State Requirement.
A mature architecture may retain a full-image path if delta update cannot apply. Optimization Should Not Remove Recovery Options.
MCU update architecture is heavily influenced by:
erase size
· write size
· bank structure
· XIP constraints.
Flash Physics Shapes Bootloader Architecture.
Flash may erase in relatively large sectors.
Updating One Byte Can Require Erasing Much More Than One Byte.
Program operations may have alignment rules. Update Algorithm Must Match the Memory Device.
Power disappearing during modification creates one of the most important failure cases. Update Must Be Designed Around Interruption.
MCUboot's swap architecture stores state so interrupted image swaps can resume rather than assuming uninterrupted power. Power Failure Should Be an Expected Event in Update Design.
The product should move between: Known State A
and: Known State B
without becoming: Unrecoverable State 47%.
A robust firmware update behaves like a transaction: Prepare → Verify → Activate → Confirm → Commit.
Don't Commit Before Success Is Known.
If reset occurs:
bootloader should know: What phase were we in?
Recovery Requires Durable State.
Selected architectures preserve update-progress metadata. Update State Should Survive the Event It Is Designed to Recover From.
But update metadata can itself become corrupt. Recovery Metadata Needs Integrity Too.
Where reliability requirements justify it, critical update state can use redundancy or validation. Recovery Infrastructure Also Needs Recovery Thinking.
Marginal power during flash writes can be especially dangerous. Power Integrity Is Firmware Update Integrity.
Battery devices may require: Sufficient Energy before installation begins.
A device at: 2% battery
may have enough energy to download but not safely complete installation. Download Readiness ≠ Installation Readiness. 90 — External Power Requirement
Some products may update only when:
charging
externally powered.
Update Policy Can Protect Against Energy Failure.
Before downloading: Is enough storage available?
Do not discover shortage at 99%.
Compressed/encrypted image processing may require temporary RAM. Update Resource Requirements Should Be Budgeted.
Storage programming and system stability can depend on the product's qualified operating conditions. Installation Should Respect the Product's Valid Operating Envelope.
Don't update while:
critical operation
calibration
production cycle
requires continuity. Update Is a Product State Transition.
OTA simply means: Update Delivery Occurs Remotely.
It does not automatically mean: Secure Update.
The server/fleet platform decides:
who gets update
when
which version.
Fleet Selection Is Part of Update Safety.
The image must actually reach the device.
Orchestration and Delivery Are Different Layers.
Cloud deployment should reference: Controlled Release Artifacts.
Not developer folders containing: final_v7_really_final.bin.
A release should identify: Firmware Version, Security Counter, Supported Hardware, Build ID, Image Hash, Signing State, Dependencies.
Release Metadata Is Product Configuration Evidence.
Two builds both called: 2.1.0
should not be indistinguishable if binary content differs. Every Shipping Binary Should Be Uniquely Identifiable.
Hash identifies exact artifact. Version Name Describes Release. Hash Describes Bytes.
The engineering organization should be able to determine: Which source/configuration created this image?
Firmware Should Be Traceable Backward to Its Build Inputs.
Release should connect to:
source revision
toolchain
configuration.
Binary Without Source Identity Is Lifecycle Risk.
Compiler changes can change: Binary.
Therefore: Toolchain Version Is Product Configuration.
Automated, controlled build infrastructure reduces reliance on:
one engineer's laptop.
Release Engineering Is Security Engineering.
Ideally, software build and privileged signing authorization are controlled deliberately. Building Code and Authorizing Code Are Different Responsibilities.
Not every successful CI build should automatically become: Authorized Field Firmware.
Development units may trust a separate development key. Development Trust and Production Trust Should Be Intentionally Separated.
Production devices should not casually trust developer/debug credentials. Debug Convenience Must Not Define Product Trust.
Potentially separate authorization domains for: Production, Recovery, Manufacturing, depending on threat model.
One Key Should Not Necessarily Control Every Privileged Operation.
Signing keys may eventually need replacement. Secure Boot Architecture Should Consider Trust Evolution Before the First Key Expires or Is Compromised.
A device may need a controlled method to trust: Future Authorized Keys.
Changing signing authority must itself be authorized by an already trusted authority. Trust Cannot Appear From Nowhere.
If an old signing key becomes compromised: Can Devices Stop Trusting It?
This is an architectural requirement, not merely a PKI problem.
Large ecosystems may separate: Firmware Author
from: Device Operator.
RFC 9019 explicitly discusses architectures in which authorization can involve different actors rather than assuming one universal authority. Who Can Write Firmware and Who Can Authorize Deployment May Be Different Organizations.
Engineering team creates software. Security/release process authorizes software. Operations deploys software. Different Responsibilities Can Reduce One-Account Catastrophe.
Some systems may include a separately controlled recovery authority.
Recovery Authority Should Be Powerful Enough to Recover — and Protected Accordingly.
A device may maintain minimal trusted software capable of:
accepting valid replacement software
diagnosing update failure.
Recovery Environment Should Be Smaller and More Stable Than the Main Application Where Practical.
On larger systems: Main OS
and: Recovery Environment can be separated.
Repair the System From Outside the Broken System.
Recovery can be entered due to:
repeated failures
explicit service request
invalid main image
depending on product. Recovery Entry Conditions Should Be Controlled.
Some products retain a factory/service recovery path. Remote Recovery Is Valuable. Physical Recovery Can Be the Last Safety Net.
If the main application is corrupted: The Update Mechanism Needed to Repair It Should Not Depend Entirely on That Application Remaining Healthy.
High-consequence products may benefit from a strongly protected minimal recovery component. Keep the Rescue Path Outside the Failure Domain Where Possible.
Recovery mode should not mean: security disabled. Emergency Recovery Must Still Authenticate Software.
Manufacturing may program an initial:
Bootloader
Application
Security Configuration.
Factory Programming Creates the Initial Trusted State.
Manufacturing may also establish:
device identity
trust anchors
counters
debug policy.
The Secure Update Lifecycle Begins on the Production Line.
Ask: How does a blank MCU become a production-trusted device?
Manufacturing Provisioning Needs a Defined State Transition.
Conceptually: Blank → Manufacturing → Keys / Trust Anchors Installed → Production Locked → Released.
Manufacturing Security Should Be Explicit.
After programming: Verify That the Intended Trust State Actually Exists.
A finished unit should boot using: Its Production Trust Configuration. Not an engineering bypass.
Interfaces such as: JTAG / SWD
are extraordinarily useful during development. Production may need:
restriction
authentication
locking
depending on threat model. Debug Port Is an Alternate Firmware-Control Path.
Secure boot may lose much of its value if unrestricted debug access can rewrite or inspect critical device state. Security Architecture Must Consider Every Privileged Path.
Permanently disabling all debug may make field failure analysis difficult. Security and Serviceability Need a Deliberate Trade-Off.
Some modern platforms support controlled debug authorization. Production Debug Does Not Have to Mean Production-Wide Open Access.
Eventually: The Bootloader Itself May Need an Update.
This is more dangerous than updating an ordinary application.
If main application breaks: bootloader can repair it.
If bootloader breaks: Who Repairs the Bootloader?
Bootloader update can change:
signature algorithms
key policies
image format.
Updating the Verifier Changes the Trust System Itself.
New bootloader must understand:
existing application
future application
existing recovery state.
Boot Infrastructure Needs Backward / Forward Planning.
Some systems isolate a minimal immutable or highly protected first stage from an updateable second stage. Keep the Smallest Root of Trust as Stable as Practical.
Every line of highly privileged boot code increases: Code That Must Be Trusted. Smaller Trusted Code Is Easier to Review.
Use established cryptographic mechanisms appropriate to:
processor
ecosystem
regulatory requirements.
Don't Invent a Proprietary Signature Algorithm.
Products with long lifetimes should consider: What happens if today's algorithm must be replaced?
Manifest/image architecture may need to know which validation mechanism applies. Crypto Versioning Is Lifecycle Architecture.
On constrained MCUs:
signature size
verification time
matter.
Security Has Resource Cost.
Secure boot may add startup latency. Security Performance Should Be Budgeted — Not Removed Because It Is Measurable.
Suitable SoCs may accelerate:
hashing
signature verification.
Hardware Acceleration Can Reduce Security Cost.
If verification depends on hardware crypto:
clock
power
hardware initialization
must be trustworthy enough to use it. Secure Boot Is Still Hardware/Software Co-Design.
Trust anchors and security counters require suitable protection. A Trusted Counter Stored in Unprotected Ordinary Flash May Not Be Trusted Enough for Every Threat Model.
Platforms supporting isolated execution environments may perform selected boot/security services inside more privileged domains.
Put High-Value Security Decisions Behind Hardware Boundaries Where Appropriate.
A TrustZone-style platform may have: Secure Firmware
and: Non-Secure Application. Updating One Can Affect Compatibility With the Other.
If Secure and Non-Secure images update separately: Version Dependencies Become Critical.
Trusted Firmware-M's anti-rollback design explicitly discusses independently updateable software needing independent security-counter policy.
Modern products may also update: FPGA bitstreams.
Firmware Update Is Not Limited to MCU Code.
A malicious or incompatible FPGA image can completely change hardware behavior.
Programmable Logic Is Executable Product Configuration.
Wi-Fi/Bluetooth/cellular modules may carry independent firmware. One PCB Can Contain Several Update Lifecycles.
A large system can contain: Main CPU, BMS MCU, Motor MCU, Radio MCU.
Product Update May Become Distributed Update.
Application v8 may expect: Motor MCU protocol v3.
Multi-Controller Products Need Compatibility Matrices.
If several controllers need updates: Which One Goes First?
Suppose: Controller A updated
but: Controller B failed.
Is the Mixed Version Safe?
This must be defined before field deployment.
One solution is designing components so consecutive versions can coexist temporarily. Upgrade Paths Need Intermediate Valid States.
Conceptually: Stage Compatible Components → Verify → Activate Coordinated Version.
Distributed Updates May Need Transaction Semantics Across Devices.
A Linux gateway may manage several subordinate MCU updates. Update Authority Can Be Hierarchical.
Gateway authorization should not necessarily replace device-level artifact authentication. Defense in Depth.
For connected products, the device bootloader is only one end. Cloud side must coordinate:
targeting
rollout
monitoring.
Secure Device Update + Safe Fleet Deployment Are Different Problems.
Start with: Internal / Small Cohort
before entire fleet. The First Validation Unit Should Not Be the Entire Customer Base.
Example concept: 1% → 5% → 25% → 100%.
Exact strategy depends on fleet/product. Increase Exposure With Evidence.
Observe:
boot success
rollback
crash
connectivity
product-specific health.
OTA Progress Should Be Health-Gated.
If failure rate exceeds allowed threshold: Stop. Do not keep shipping the same problem.
Deploy first to: Hardware Rev C
before Rev B if architecture differs. Fleet Metadata Is Update Safety Infrastructure.
Some products may stage by:
region
site
customer group.
Rollout Strategy Should Match Operational Risk.
Avoid updating: all devices simultaneously
when availability matters. Fleet Availability Is Scheduling Architecture.
Millions of devices downloading simultaneously create:
network
CDN
backend
load. OTA Is Distributed Systems Engineering.
Devices can avoid synchronized retry storms. Recovery Traffic Should Not Create a Second Outage.
Device may:
poll
receive notification
depending on architecture. Update Discovery and Update Transfer Are Different Phases.
Device requests artifact when ready. Device Can Retain Control of Installation Timing.
Cloud tells selected device: update available / begin process. Remote Control Still Requires Local Validation.
Fleet operator needs to know: Pending, Downloading, Verified, Installing, Trial, Confirmed, Failed, Rolled Back.
Update State Should Be Observable.
The IETF SUIT working group is actively extending the ecosystem toward update-management controls and secure update-status reporting. As of mid-2026 those documents are still in the standards-development/publication process rather than completed final RFCs.
Secure Updating Is Becoming a Full Management Protocol — Not Just a Manifest Format.
"Update Failed" is not enough.
Possible causes:
Network
Storage
Signature
Compatibility
Anti-Rollback
Install
Boot
Health Check
Failure Classification Accelerates Field Diagnosis.
Track:
elapsed time
retries
rollback
reason.
Update System Should Diagnose Itself.
For business-critical deployments: Who released which firmware to which devices when?
Remote Firmware Change Needs Accountability.
Record: artifact, authorization, deployment cohort.
Software Change History Is Product History.
When a critical vulnerability is found: How Quickly Can the Fleet Reach a Patched State?
This is a real product capability.
A security patch released does nothing for: Devices That Never Receive It.
A device may return after six months offline. It Still Needs a Secure Upgrade Path From Its Old Version.
Don't test only: v9 → v10.
Field fleet may contain: v4 → v10.
Lifecycle Creates Long Upgrade Paths.
Sometimes device must pass through: v4 → v6 → v10
because storage/schema changes require intermediate migration. Update Graph May Not Be One Direct Edge.
Firmware changes may alter persistent configuration format. Code Upgrade + Data Migration Must Be Coordinated.
Do not destroy the only valid old configuration before new one is validated. The Known-Good Principle Applies to Data Too.
A difficult problem:
New firmware writes: New Database Format.
Then firmware rolls back.
Can old firmware still understand the data? Software Rollback and Data Rollback Are Different Problems.
Where appropriate, design data structures to survive adjacent software versions. Persistent Data Can Limit Rollback Freedom.
Firmware update should not accidentally erase:
factory calibration.
Software Image and Unit-Specific Calibration Have Different Lifecycles.
Likewise: Update Must Preserve Product Identity.
Firmware installation should not casually overwrite:
certificates
private identity.
Product Software Is Replaceable. Product Identity Is Usually Persistent.
Architect storage according to lifecycle:
Boot
Application
Configuration
Calibration
Identity
Update Slot
Different Data Needs Different Protection.
A Firmware update should not automatically imply: Customer Data Reset.
Separate lifecycle operations.
Sometimes recovery does require clearing corrupted state. Data Destruction Should Be an Explicit Recovery Policy.
Decommissioning may require removal of selected credentials/data. End-of-Life Is Part of Security Lifecycle.
Secure verification adds work.
Measure:
ROM
Bootloader
Hash
Signature
Application Start.
Secure Boot Should Meet Product Startup Requirement.
Larger images take longer to hash. Image Size Affects Boot Architecture.
Optimization should never undermine required trust. Performance Optimization Must Preserve Security Property.
Execute-in-place platforms execute code directly from flash. Update Slot and Execution Address Architecture Matter.
Other systems copy/load images before execution. Boot Strategy Changes Validation and memory requirements.
MCUboot's current design also supports a revert model for direct-XIP and RAM-load configurations, illustrating that trial/revert behavior is not limited to one swap topology.
Recovery Policy Can Be Independent of One Flash-Copy Algorithm.
MCUboot stores update-state metadata used to decide:
test
permanent
revert
behavior and to resume interrupted operations. Bootloader Needs Persistent Knowledge of Previous Update Decisions.
Firmware metadata can contain:
version
size
flags
and similar information depending on format. Binary Needs Context.
RFC 9124 requires payload digest information in its manifest information model. Verify the Artifact You Actually Received.
Verify the complete intended image region as appropriate to architecture. Unverified Tail Data Should Not Become Executable Surprise.
If signature fails: Do Not Execute.
But also preserve enough diagnostic state to understand:
corrupted transfer?
wrong signing authority?
wrong artifact?
If anti-rollback policy rejects image: Report Policy Rejection Clearly.
Don't report generic: invalid image.
Wrong hardware revision should produce: Compatibility Rejection rather than boot-looping.
If flash write fails: Do Not Mark Update Successful.
Where architecture permits: verify downloaded candidate before reboot. Reject Bad Image While Known-Good Application Is Still Running.
Secure boot may verify again before execution. Download Validation and Execution Authorization Are Distinct Trust Checkpoints.
Cloud verifies.
Device application verifies.
Bootloader verifies.
One Missed Check Should Not Automatically Become Arbitrary Code Execution.
Ask:
Can attacker modify flash?
Can attacker control network?
Can attacker access debug?
Can attacker physically access product?
Secure Update Should Match the Actual Threat Model.
Not every consumer or industrial product requires defense against sophisticated invasive laboratory attacks.
Security Depth Should Follow Product Risk.
For connected products, remote compromise is often especially important because: One Vulnerability Can Reach Many Devices.
Could unauthorized software enter during:
factory
distributor
service?
Secure Boot Can Extend Trust Through the Supply Chain.
A perfect bootloader cannot save you if an attacker legitimately obtains: The Production Signing Authority.
Device Security and DevSecOps Security Are One System.
Protect:
Source
CI
Artifacts
Signing
Release Metadata
Firmware Trust Begins Upstream of the Device.
Release artifacts should be:
immutable
identifiable
controlled
according to engineering process. Don't Replace an Artifact While Keeping the Same Version Name.
Firmware releases increasingly need visibility into included:
third-party libraries
versions.
You Cannot Patch a Vulnerability You Cannot Locate.
Map: SBOM
to: exact firmware artifact.
Component Inventory Should Describe What Actually Shipped.
When library X becomes vulnerable:
query:
Which firmware versions contain it?
Then:
Which physical devices run those versions?
SBOM + Fleet Inventory Turns Vulnerability Data Into Action.
Security patch may need accelerated release.
But:
Urgency Does Not Remove Validation.
A rushed bricking update is not a security success.
Maintain a process capable of: Build → Review → Sign → Canary → Deploy
rapidly but safely. Incident Response Should Be Practiced Before an Incident.
Firmware update mechanism must remain useful even years later. The Updater Itself Is Long-Lived Infrastructure.
A 15-year product cannot assume: Today's entire trust system remains unchanged for 15 years.
Future migration may require:
new algorithms
keys
bootloader support.
Long-Lived Security Requires Planned Evolution.
If the root key must change: How Will Already-Deployed Devices Learn the New Trust Anchor?
This should be considered early.
At End of Life:
will updates stop?
how are final security releases handled?
Product Support Policy Is Part of Update Architecture.
RFC 9019 even highlights availability of security fixes after product discontinuation/vendor failure as an ecosystem concern.
Update Infrastructure Has Organizational Lifetime Too.
Authorized service technicians may need controlled:
recovery
diagnostics.
Serviceability Should Not Require Bypassing Product Trust.
New PCB may have:
new serial identity
old enclosure/customer configuration.
Hardware Replacement Needs Secure Re-Provisioning.
Returned product may require:
ownership reset
credential changes
software qualification.
Refurbishment Is Another Lifecycle State.
Useful information can include:
Boot Reason
Selected Slot
Image Version
Validation Result
Rollback Reason
Bootloader Should Explain Its Decision.
If device reverted: cloud/service system should know:
Why.
Preserve selected information before destroying the failed image/configuration. Recovery Should Not Erase the Root Cause.
Correlate:
New Firmware
Crash Context
Reset Cause
Hardware Revision
Update Failure Analysis Is Product Failure Analysis.
New firmware may increase:
CPU
radio duty cycle
power load.
Suddenly hardware becomes unstable. Software Update Can Expose Hidden Hardware Margin.
New code increases current peaks. Weak PDN causes resets. A Firmware Regression Can Be an Electrical Regression.
New algorithm increases sustained CPU load. Product begins throttling or overheating. Update Validation Must Include Physical Product Behavior.
New radio firmware changes:
duty cycle
transmit behavior.
Software Can Change EMC / RF Behavior.
Certain firmware changes may affect a product's existing compliance assumptions. Software Change Can Become Regulatory Change. Project-specific review may therefore be required.
Secure signature only proves: Authorized Software.
It does not prove: Correct Software.
Need both: Cryptographic Validation
and: Product Validation.
Before signing/deploying:
functional tests
regression
update/rollback tests.
Signing Should Authorize a Qualified Release — Not Create Qualification.
Test: Old → New
not only: Fresh Flash → New.
Real Customers Upgrade From History.
Where rollback is allowed: Test It.
Where forbidden: Test Rejection.
Controlled validation should interrupt power at multiple update stages. Prove Recovery — Don't Merely Read the Code and Assume It.
Unexpected resets can occur during:
download
verify
install
trial.
Every Phase Should Have Defined Restart Behavior.
Device should reject corrupted image. Error Path Is a Product Feature.
Correctly formatted but unauthorized image should not execute. Authentication Should Be Tested Negatively.
A valid image for another product should be rejected. Applicability Is Part of Update Security.
Older valid signed image should be rejected when security policy forbids it. Anti-Rollback Needs Verification.
Verify update policy under insufficient energy condition. Preconditions Should Actually Prevent Unsafe Installation.
Drop connectivity repeatedly. Download Should Recover Without Corrupting Product State.
If no space exists: Fail Before Damaging Current Software.
Release intentionally faulty test image in engineering environment.
Verify: Device returns to known-good.
This is an important recovery validation concept.
New image boots but intentionally fails one required product check. Does the system refuse confirmation?
One component update succeeds, another fails. Verify the designed compatibility/recovery policy.
Repeatedly update: A → B → A → B
in validation.
Update System Itself Has Endurance.
Boot metadata and counters may be written frequently. Update Architecture Should Respect Nonvolatile Memory Endurance.
Do not rewrite the same metadata location unnecessarily. Recovery Metadata Is Still Flash Data.
Test across multiple production units. One MCU Sample Does Not Prove Flash / Power Margin for Every Unit.
Update behavior may need qualification across required product:
temperature
supply
conditions. Field Update Happens Outside the Engineering Lab.
Hardware-in-the-loop can automate:
power cycles
network loss
update states.
Update Recovery Can Be Regression-Tested Automatically.
Every release candidate can automatically exercise:
Install
Boot
Confirm
Rollback
on real hardware where infrastructure permits. OTA Reliability Should Be a Continuous Test.
Factory firmware may differ from shipping firmware. The Bootloader Must Know Which Images Production Units Are Authorized to Run.
Before shipment: Factory Mode → Production Firmware → Production Trust Policy
Shipping State Should Be Deliberate.
After production flash: Verify the intended artifact.
Production record: Serial Number → PCB Rev → Bootloader → Firmware Hash
Every Unit Should Know What Software It Was Born With.
Later cloud records: Serial → Current Firmware → Update History
Manufacturing Traceability Can Continue Into Field Software Lifecycle.
Suppose firmware v6 causes failures only on: PCB Rev B.
Fleet + Manufacturing Data Can Reveal Hardware/Software Interaction.
A cloud company sees: Update failed.
A firmware company sees: Watchdog reset.
A PCB company sees: Board passed production.
An integrated ODM can ask:
Firmware?
Bootloader?
Flash?
Power?
Hardware Revision?
Component Lot?
Thermal?
Update Reliability Is a Whole-Product Property.
If the device cannot power reliably during Flash programming: Perfect OTA Software Cannot Save It.
Before PCB release, consider:
flash capacity
hardware recovery path
debug/service access
secure-storage capability.
OTA Requirements Are Hardware Requirements.
If A/B is required: Allocate Storage Before Hardware Freezes.
Do not discover after PCB completion: We need twice the flash.
If product needs stronger trust anchoring: Plan It During Architecture.
Not after EVT.
If field service requires a physical recovery channel: The Connector / Test Pads May Need to Exist on the PCB.
SoC boot-mode pins can sometimes create alternate boot paths. Hardware Boot Configuration Is Part of Secure Boot Architecture.
Factory boot mechanisms should not accidentally remain exploitable in production configuration. Manufacturing Convenience Needs a Production Exit Strategy.
Production must be able to:
Program
Verify
Provision
Test
without weakening shipping security. Security Is a Manufacturing Process Requirement.
EVT asks: Does the complete boot/update architecture work on the real hardware?
Validate:
boot
flash layout
signature
recovery
diagnostics.
Development builds should expose enough information to understand:
image choice
validation
reset.
You Cannot Engineer Recovery Blindly.
DVT asks: Can the device survive realistic update failures?
Test:
power loss
network failure
corrupted image
rollback
different hardware.
Verify:
Unauthorized Image Rejected
Old Vulnerable Image Rejected
Production Trust Enforced
Security Requirements Need Behavioral Test Evidence.
PVT asks: Can production reliably create the correct trusted software state on every unit?
Validate:
programming
keys
hardware ID
firmware version
boot policy.
Spot-check or automate verification of:
signing authority
security state
bootloader
firmware.
Trust Should Be Manufactured Repeatably.
After shipment: Update → Monitor → Patch → Recover → Evolve Trust
Secure Update Is a Multi-Year Product Service.
At the highest level: Product Lifecycle Requirements → Threat Model → Hardware Root of Trust → Boot ROM → Bootloader Architecture → Trust Chain → Image Format → Firmware Manifest → Cryptographic Digest → Digital Signature → Hardware Applicability → Security Counter → Anti-Rollback → Flash / Partition Architecture → A/B or Swap Strategy → Candidate Download → Candidate Verification → Power-Failure-Safe Installation → Trial Boot → Product Health Check → Confirmation → Commit → Automatic Revert → Recovery Environment → Key Rotation → Bootloader Update Strategy → Multi-Image Dependencies → Configuration Migration → Factory Provisioning → Production Trust Lock → Release Signing → Fleet OTA Campaign → Canary Rollout → Health Monitoring → Campaign Pause / Rollback → Field Diagnostics → Vulnerability Response → Long-Term Trust Evolution → Recoverable Product Software Lifecycle
That is the difference between: Downloading Firmware
and: Engineering Secure Update.
Typical Bootloader, OTA & Secure Firmware Update Deliverables
Depending on project scope, a 365PCB ODM secure-update program may include:
Boot Architecture Requirements
Firmware Update Requirements
Threat-Model Inputs
Hardware Root-of-Trust Inputs
Boot ROM Review
Bootloader Architecture
First-Stage Bootloader Inputs
MCUboot Integration
Custom Bootloader Inputs
Boot Flow Definition
Chain-of-Trust Architecture
Secure Boot Architecture
Image Authentication
Image Integrity Validation
Firmware Signature Integration
Image Header Definition
Firmware Manifest Architecture
SUIT Architecture Feasibility Inputs
Firmware Versioning
Security Counter Architecture
Anti-Rollback
Hardware Compatibility Rules
Product Variant Compatibility
Component Identifier Strategy
Multi-Image Architecture
Software Dependency Management
Flash Partition Architecture
Single-Slot Feasibility
Dual-Slot / A-B Architecture
Swap-Based Update Architecture
Direct-XIP Update Inputs
RAM-Load Boot Inputs
Candidate Image Storage
Update State Metadata
Power-Fail-Safe Update
Interrupted Update Recovery
Update Atomicity
Trial Boot
Image Confirmation
Health-Confirmation Architecture
Automatic Revert
Boot-Attempt Counter
Boot-Loop Protection
Reset-Cause Integration
Watchdog / Boot Integration
Known-Good Image Strategy
Recovery Image
Recovery Partition Inputs
Service-Recovery Architecture
Firmware Payload Download
Chunked Download
Resume Support
Compressed Update Inputs
Delta Update Feasibility
Full-Image Fallback
Final-Image Verification
Offline Update Inputs
Local Update Inputs
OTA Integration
Device Update State Machine
Download / Install Separation
Update Preconditions
Battery / Power Preconditions
Storage Preconditions
Maintenance-Window Inputs
Firmware Signing Workflow
Release Authorization Workflow
Signing-Key Architecture Inputs
Development / Production Key Separation
Key Rotation Inputs
Key Revocation Inputs
Recovery-Key Inputs
Crypto-Agility Inputs
Secure Storage Inputs
Trusted Counter Inputs
Secure / Non-Secure Image Integration
TrustZone / TFM Inputs
Debug-Port Policy Inputs
Secure Debug Inputs
Bootloader Update Architecture
Bootloader Recovery Strategy
FPGA Image Update Inputs
Wireless-Module Update Inputs
Peripheral-MCU Update Inputs
Distributed Firmware Update
Cross-Component Compatibility Matrix
Firmware Release Manifest
Firmware Build ID
Firmware Hash Traceability
Reproducible-Build Inputs
CI / Release Pipeline Inputs
Secure Artifact Repository Inputs
SBOM Linkage
Vulnerability-to-Firmware Mapping
OTA Campaign Architecture
Fleet Targeting
Staged Deployment
Canary Deployment
Rollout Gates
Campaign Pause / Abort
Fleet Update Monitoring
Update Status Reporting
Update Failure Classification
Fleet Rollback Inputs
Configuration Migration
Persistent Data Compatibility
Calibration Preservation
Identity / Credential Preservation
Firmware Update Logging
Update Audit Trail
Field Recovery
Credential Lifecycle Inputs
Long-Term Security Maintenance
Firmware Lifecycle Planning
Bootloader Lifecycle Planning
Firmware Update Unit Tests
Corrupted-Image Testing
Wrong-Signature Testing
Wrong-Hardware Testing
Anti-Rollback Testing
Power-Loss Testing
Reset Injection
Network-Failure Testing
Storage-Failure Testing
Trial-Boot Failure Testing
Automatic-Revert Testing
Boot-Loop Testing
Multi-Image Failure Testing
Update Endurance Testing
HIL OTA Testing
Automated Hardware Regression
Production Programming Inputs
Production Secure Provisioning
Initial Trust Establishment
Production Firmware Verification
Hardware / Firmware Traceability
EVT Bootloader Validation
DVT Secure Update Validation
PVT Provisioning Validation
Field Update Diagnostics
Secure Firmware Update Architecture Documentation
The actual engineering depth should follow: Processor + Flash Architecture + Security Threat + Product Consequence + Connectivity + Hardware Variants + Fleet Size + Service Life + Recovery Requirement.
Bring Us the Product Lifecycle — Not Just the Firmware File
You can begin with: MCU / SoC, Existing Bootloader, Existing Firmware, Flash Architecture, Hardware Revision, Current OTA System, Secure Boot Requirement, Existing Signing System, Product Lifecycle, Fleet Size, Recovery Requirements, Current Bricking Problem.
or simply: Tell Us What Software Must Be Allowed to Run — and What the Product Must Do When a New Version Fails.
365PCB can help translate: Hardware Root of Trust → Bootloader → Firmware Authentication → Safe Installation → Recovery → Manufacturing → Fleet Lifecycle.
Don't Just Download the Firmware.
Define the Trust Root.
Authenticate the Image.
Verify the Complete Artifact.
Check Hardware Compatibility.
Prevent Unauthorized Rollback.
Preserve the Known-Good Image.
Design for Power Loss.
Trial the New Firmware.
Verify Product Health.
Confirm Only After Success.
Revert Automatically When Necessary.
Protect the Signing Keys.
Plan Key Rotation.
Control the Bootloader.
Protect Persistent Data.
Preserve Calibration and Identity.
Test Every Failure Path.
Provision Trust Correctly in Manufacturing.
Stage Fleet Deployment.
Monitor the Rollout.
Maintain the Update System for the Product Lifetime.
365PCB Bootloader, OTA & Secure Firmware Update engineering connects:
Hardware + Root of Trust + Bootloader + Firmware + Cryptography + Recovery + Manufacturing + IoT + Fleet Operations