Flusso di boot BIOS e trusted boot da Mask ROM a primo audio su 11 SKU di penne di lettura, con tabelle di temporizzazione, schema di partizione A/B e procedure di recovery OTA per OEM.

Pubblicato il: apr 27, 2026 - 79 Visualizzazioni

Flusso di boot BIOS della penna di lettura e Trusted Boot: Da Mask ROM al primo audio su 11 SKU

Pubblico:Questa guida è destinata ai manager di programma OEM, agli architetti firmware e agli ingegneri di conformità che devono comprendere l'esatta sequenza di eventi dall'accensione del silicio al primo audio su una penna di lettura. Copre il bootloader mask-ROM, i bootloader di secondo stadio, la verifica delle immagini firmate, il cambio di partizione A/B e i percorsi di recupero che spediamo sugli 11 SKU interni (B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2, Y6).

L'avvio di una penna di lettura non è un singolo evento. È una pipeline a 5-7 stadi che funziona in circa 280-1.450 millisecondi a seconda dello SKU. Ogni stadio ha un compito: caricare il codice, verificare una firma, consegnare il controllo. Se un qualsiasi stadio fallisce, il successivo non viene eseguito e la penna o si riavvia, torna a un'immagine di recupero o si blocca.

Questo articolo ti guida attraverso quella pipeline, passo dopo passo, con tempi misurati su ciascuno degli 11 SKU. Ti mostreremo il layout delle partizioni A/B, i contatori di rollback, il flusso di staging OTA e i percorsi di gestione degli errori che eseguiamo nei nostri due stabilimenti. Alla fine sarai in grado di leggere le note di rilascio del firmware e sapere esattamente cosa cambia quando una versione passa da 2.4.7 a 2.5.0.

1. Perché "BIOS" è la parola sbagliata ma l'idea giusta

Una penna di lettura non ha un BIOS nel senso dei PC. Quello che ha è un bootloader mask-ROM — pochi kilobyte di codice immutabile bruciato nel silicio al momento della fabbricazione del wafer. Questo codice ROM è la radice della fiducia: non c'è software al di sotto di esso e nessun modo per sovrascriverlo.

Chiamarlo BIOS è comunque utile perché l'architettura si mappa direttamente ai concetti UEFI: ROM = fase SEC, bootloader di secondo stadio = PEI, firmware = DXE, applicazione = BDS. I fornitori, incluso noi, usano spesso BIOS in modo approssimativo nelle conversazioni B2B perché l'acquirente OEM lo capisce.

La catena di trusted-boot è la pipeline di verifica che viene eseguita sopra questa ROM. Il suo compito è garantire che ogni pezzo di codice eseguito dopo la ROM sia firmato dalla chiave privata dell'OEM. Se una firma è errata, la catena si interrompe.

2. La pipeline di avvio a 7 stadi

Ogni SKU di penna di lettura implementa gli stessi sette stadi logici. Le implementazioni differiscono nel layout della memoria flash e nei tempi.

Stadio Componente Esegue da Verifica Latenza tipica
S1 Bootloader mask ROM ROM Chiave fornitore (hard-coded) 6–14 ms
S2 Bootloader di 1° stadio (SBL) Partizione di boot NOR/eMMC RSA-2048 / ECDSA P-256 OEM 60–220 ms
S3 Bootloader di 2° stadio (se presente) Partizione di boot NOR/eMMC RSA-2048 / ECDSA P-256 OEM 40–160 ms
S4 Immagine firmware (RTOS o kernel Linux) Partizione principale NOR/eMMC RSA-2048 / ECDSA P-256 OEM 80–320 ms
S5 Partizione TrustZone / TEE Storage sicuro TrustZone Firma SE 30–120 ms
S6 Applicazione + asset audio Partizione principale Decrittazione AES-128 / AES-256 50–280 ms
S7 Driver audio + primo campione DAC n/d 14–60 ms

L'avvio a freddo completo fino al primo audio varia da 280 ms (B2) a 1.450 ms (L5). La variazione è quasi interamente in S4 e S6 — gli SKU basati su Linux hanno bisogno di più tempo per montare rootfs e inizializzare ALSA.

3. Tempi di avvio per SKU

SKU S1 ROM S2 SBL S3 2° S4 FW S5 TEE S6 App S7 Audio Totale
B1 8 ms 90 ms n/a 120 ms n/a 80 ms 22 ms 320 ms
B2 6 ms 70 ms n/a 90 ms n/a 84 ms 30 ms 280 ms
F8 10 ms 110 ms 80 ms 240 ms 60 ms 700 ms 50 ms 1,250 ms
K7 7 ms 80 ms n/a 140 ms 40 ms 60 ms 33 ms 360 ms
KF1 7 ms 80 ms n/a 140 ms 40 ms 60 ms 33 ms 360 ms
L5 12 ms 130 ms 100 ms 290 ms 80 ms 760 ms 78 ms 1,450 ms
P2 14 ms 130 ms n/a 160 ms n/d 90 ms 26 ms 420 ms
Q6 7 ms 75 ms n/d 100 ms n/d 92 ms 26 ms 300 ms
Q8 7 ms 75 ms n/d 100 ms n/d 92 ms 26 ms 300 ms
T2 11 ms 120 ms 90 ms 280 ms 70 ms 720 ms 58 ms 1.350 ms
Y6 10 ms 110 ms 80 ms 260 ms 70 ms 800 ms 70 ms 1.400 ms

B2 è il nostro avvio a freddo più veloce. L5 è il più lento. Il delta di 1,17 s è importante: è la differenza tra un'esperienza utente "tocca e parla" e un'esperienza "aspetta, poi parla".

Consiglio per l'acquirente: Chiedete all'OEM una scomposizione della pipeline di avvio, non solo il tempo totale. Una penna che si avvia in 700 ms con 200 ms di verifica crittografica è verificabile. Una penna che si avvia in 700 ms ma non può spiegare la scomposizione è una scatola nera.

4. Layout Partizioni A/B

Ogni penna di lettura basata su Linux (F8, L5, T2, Y6) utilizza uno schema di partizione A/B per il firmware. Questo è lo standard aureo per la sicurezza OTA perché permette alla penna di tornare all'immagine precedente nota come buona se una nuova immagine non riesce ad avviarsi.

Reading pen eMMC partition layout (L5 example, 8 GB)

Lo schema A/B su L5 riserva 3,2 GB per le partizioni di boot e di sistema (4 × 800 MB) e 4,6 GB per i dati utente. La partizione TrustZone TEE è di 200 MB e include il proxy SE e la regione di archiviazione sicura per le chiavi OEM.

5. Layout Partizioni RTOS

Gli SKU basati su RTOS (B1, B2, K7, KF1, P2, Q6, Q8) non necessitano del pieno A/B perché le loro immagini firmware sono di 1,4–3,0 MB e si adattano comodamente in NOR a doppio banco con uno scambio hardware. Il layout su B2 si presenta così:

Offset Dimensione Contenuto Verificato da
0x00000000 16 KB SBL Mask ROM (RSA-2048)
0x00004000 1,0 MB Slot firmware A SBL (RSA-2048)
0x00104000 1.0 MB Slot firmware B SBL (RSA-2048)
0x00204000 4.0 MB Audio OID + asset Firmware (AES-128-CTR)
0x00604000 1.0 MB OTA staging Firmware (AES-128-CTR)
0x00704000 64 KB NVM utente (archivio chiavi) TrustZone-M SAU
0x00714000 64 KB Flag di boot + contatore rollback Hardware write-once

Il contatore rollback è un contatore monotono a 32 bit che incrementa a ogni boot riuscito. Se l'SBL rileva un valore del contatore inferiore all'ultimo valore valido noto, effettua il fallback allo slot B. Questo protegge da un attaccante che effettua il downgrade del firmware a una versione precedente vulnerabile.

6. Macchina a stati Verified Boot

La macchina a stati che governa il passaggio A/B è condivisa tra la nostra lineup con lievi variazioni. La macchina a stati viene eseguita nell'SBL:

Stato corrente Evento Stato successivo Azione
Boot A Verificato OK Boot A Incrementa contatore
Boot A Verifica fallita Boot B Prova slot B
Boot B Verificato OK Boot B Incrementa contatore
Boot B Verifica fallita Recovery Attesa immagine USB
Recovery Immagine firmata ricevuta Recovery Flash nuova immagine
Recovery Verifica immagine fallita Brick Attesa recovery firmato HSM
Boot A o B OTA staging completata Reboot staging Cambia slot al prossimo boot
Reboot staging Verificato OK Boot (nuovo slot) Promuovi slot, decrementa finestra rollback

La "finestra rollback" è il numero di boot dopo il quale un nuovo firmware è considerato stabile. Il nostro default è 4 boot riusciti; se la penna si blocca nei primi 4 boot dopo un OTA, l'SBL effettua automaticamente il rollback allo slot precedente.

7. Flusso di Staging e Recupero OTA

Il flusso OTA su una SKU Linux funziona così:

  1. Il server OEM crea l'immagine del firmware con firma RSA-2048 / ECDSA P-256.
  2. L'immagine viene crittografata con AES-128-CTR per il trasporto.
  3. La penna scarica l'immagine via Wi-Fi (F8, L5, T2, Y6) o BLE (K7, KF1, Q6, Q8).
  4. TrustZone TEE decritta e verifica la firma rispetto alla chiave root OEM nel SE.
  5. L'immagine decrittata viene scritta nello slot inattivo (es. sistema B).
  6. I flag di boot vengono impostati su "boot da B al prossimo riavvio".
  7. La penna si riavvia nello slot B ed esegue 4 cicli di boot.
  8. Se i 4 boot hanno successo, lo slot B viene promosso; il contatore di rollback viene incrementato.
  9. Se un qualsiasi boot fallisce, lo slot A viene ripristinato e un flag viene inviato al server OTA.

L'OTA basata su RTOS è simile ma più piccola: immagini da 1,4–3,0 MB, l'OTA richiede 8–25 secondi via BLE su K7 / Q6 / Q8 rispetto ai 40–90 secondi via Wi-Fi su L5.

8. Tecniche di Ottimizzazione del Tempo di Boot

Applichiamo cinque tecniche per mantenere competitivo il tempo di boot:

Tecnica SKU che la utilizzano Risparmio
Parallelizzare l'inizializzazione di SBL e SE F8, L5, T2, Y6 60–110 ms
Saltare l'inizializzazione UART/JTAG in produzione Tutte 12–20 ms
Usare kernel compresso + decompressione anticipata F8, L5, T2, Y6 80–150 ms
Pre-decodificare il primo audio OID durante SBL B1, B2, P2 18–30 ms
Disabilitare le mitigazioni Spectre/Meltdown (RTOS) B1, B2, P2, Q6, Q8 8–14 ms

Le SKU basate su Linux non disabilitano le mitigazioni Spectre/Meltdown perché gestiscono contenuti non fidati dalla libreria OID. Le SKU basate su RTOS lo fanno perché l'intero loro firmware è firmato.

9. Modalità Comuni di Fallimento del Boot che Abbiamo Osservato

Su oltre 47.000 unità spedite dal 2023, ecco la ripartizione dei fallimenti di cold-boot sul campo:

Modalità di fallimento Frequenza Risoluzione
Underflow del contatore (attacco downgrade) 0,02 % Reflash presso il centro assistenza
Ciclo di switch A/B 0,18 % Forzare slot A via USB
Scrittura staging OTA interrotta 0,34 % Auto-ripristino dallo staging
Interruzione di corrente durante il boot 0,91 % Boot da slot B
Usura eMMC 0,06 % Sostituzione in garanzia
Flag tamper SE impostato 0,04 % Re-inizializzazione centro assistenza
Calo di tensione della batteria 0,22 % Boot da stato freddo

Il fallimento per interruzione di corrente durante il boot allo 0,91 % è la singola causa principale di ticket di assistenza sul campo. Abbiamo aggiunto un banco di condensatori da 1,2 ms sul firmware L5 4.1.5 che mantiene il rail VCCQ eMMC attraverso un brown-out di 12 ms; questo ha ridotto il tasso di fallimento allo 0,31 % nelle successive 8.000 unità.

10. Cosa cambia nei prossimi 18 mesi

Stanno arrivando due modifiche. Prima, il firmware 4.3.0 su L5 e T2 introdurrà l'avvio UEFI con la catena U-Boot Linux sostituita da U-Boot 2024.10 + GRUB 2.12. Questo renderà l'avvio più ispezionabile per gli acquirenti OEM che desiderano concatenare le proprie distro. Secondo, il firmware K7 / KF1 2.0.0 introdurrà una Root of Trust (RoT) hardware ancorata nell'elemento sicuro OPTIGA Trust M, sostituendo l'attuale approccio software-only TrustZone-M SAU.

Entrambe le modifiche sono retrocompatibili: il flusso di avvio esistente continua a funzionare, ma una nuova modalità sblocca UEFI o RoT hardware per le gare d'appalto che lo richiedono.

11. Come leggere i numeri di versione del nostro firmware

Le nostre versioni firmware seguono il pattern MAJOR.MINOR.PATCH. Ad esempio, il firmware B2 2.4.7 significa versione major 2, minor 4, patch 7. Le regole sono:

  • MAJOR aumenta quando c'è una modifica incompatibile (es. passaggio da FreeRTOS a Zephyr, cambiamento del layout rootfs).
  • MINOR aumenta quando c'è una nuova funzionalità (es. aggiunta di una nuova lingua, un nuovo codec OID).
  • PATCH aumenta quando c'è una correzione di bug o un backport di sicurezza.

Regole di rollback: è possibile eseguire il rollback di MINOR e PATCH liberamente. Il rollback di MAJOR richiede il consenso esplicito dell'OEM. Questo vi protegge dal downgrade accidentale a un branch end-of-life.

L'attuale lineup di versioni firmware è 1.9.5 (K7/KF1), 2.0.3 (P2), 2.4.7 (B1/B2), 2.6.4 (T2/Y6), 3.1.2 (F8), 3.3.1 (Q6/Q8), 4.2.0 (L5). Pubblichiamo le note di rilascio del firmware nel nostro portale OEM ogni 6 settimane.

Letture correlate

Richiedi un preventivo — Ottieni una risposta rapida dalla fabbrica

Frequently Asked Questions

Qual è il tipico tempo di avvio a freddo di una penna di lettura?
I nostri 11 SKU hanno un avvio a freddo fino al primo audio che va da 280 ms (B2) a 1.450 ms (L5). Le penne basate su RTOS hanno una media di 320 ms; quelle basate su Linux hanno una media di 1.360 ms. Il divario di 4× è dovuto quasi interamente al mount del rootfs, all'inizializzazione ALSA e alla configurazione TEE sui SKU Linux.
La penna di lettura utilizza partizioni A/B?
Sì su tutti i SKU Linux (F8, L5, T2, Y6) — due partizioni di boot e due partizioni di sistema rispettivamente da 32 MB e 1,4 GB. Gli SKU RTOS (B1, B2, K7, KF1, P2, Q6, Q8) utilizzano NOR dual-bank con hardware swap e un contatore rollback monotonico a 32 bit.
Cosa succede se un aggiornamento OTA non riesce durante il flashing?
La partizione attiva rimane intatta. L'SBL rileva che lo slot di staging è incompleto o con firma non valida al successivo avvio e torna allo slot precedente funzionante. La penna continua a funzionare normalmente e attende un nuovo OTA. Dal 2023 abbiamo misurato un tasso di fallimento dello staging OTA dello 0,34% su 12.000 aggiornamenti distribuiti.
Un acquirente OEM può firmare le proprie immagini firmware?
Sì. A ogni acquirente viene assegnata la propria coppia di chiavi RSA-2048 o ECDSA P-256 generata su un HSM Thales. L'OEM firma l'immagine firmware offline o tramite il nostro portale OEM, quindi la invia al server OTA. L'SE della penna verifica la firma rispetto alla chiave root OEM durante l'avvio.
Qual è la differenza tra un BIOS e un bootloader mask ROM su una penna di lettura?
Una penna di lettura non ha un BIOS PC. Ha un bootloader mask ROM — pochi kilobyte di codice immutabile bruciato nel silicio in fabbrica. Questo codice ROM è la root of trust e verifica il bootloader di secondo stadio (SBL) archiviato nella memoria flash. Chiamarlo BIOS è una scorciatoia utile per gli acquirenti OEM familiari con i concetti UEFI.
Il tuo carrello
La tua esperienza su questo sito migliorerà consentendo i cookie. Cookie Policy
Chat on WhatsApp