Consideri l'esempio di un'unità di controllo elettronica (ECU) che utilizza un tradizionale software statico incorporato. Il bootloader è un componente software utilizzato sia per avviare l'avvio del software principale della ECU, inclusa la copia del software nella RAM, sia per eseguire eventuali controlli sul software prima dell'avvio. Il bootloader è anche responsabile dell'aggiornamento del software, della ricezione, del controllo e della scrittura del software aggiornato in memoria, solitamente memoria Flash. Quindi, viene comunemente usato anche il termine Flash Bootloader.
Gli stessi bootloader vengono utilizzati nello sviluppo e nella produzione?
Comunemente lo stesso bootloader può essere utilizzato nello sviluppo di veicoli e delle centraline associate e nella normale produzione, con protezioni per garantire che le ECU di produzione abbiano molte capacità di sviluppo o bootloader ingegneristici disattivati. Durante lo sviluppo dei veicoli è spesso opportuno rimuovere i meccanismi di sicurezza dei bootloader di produzione per consentire una rapida implementazione del software di sviluppo.
Bootloader sicuro
Sempre più spesso tutti i bootloader devono essere sicuri. Tuttavia, tradizionalmente questa è stata una distinzione, di solito implementata per proteggere le funzionalità relative alla sicurezza, alla protezione e talvolta alle prestazioni.
I bootloader di solito controllano la memoria software della ECU all'avvio e ricevono il software prima di un aggiornamento software e in memoria dopo.
I meccanismi includono comunemente:
- Autenticazione del software ricevuto e/o presente in memoria al momento dell'avvio, spesso utilizzando un hash del file binario del software per verificare la correttezza generata da un processo di compilazione sicuro delle versioni software rilasciate ufficialmente.
- Autenticazione del mittente tramite seed e chiave, protezione dei dati sicuri all'interno della ECU mediante memoria protetta e mappe di memoria per definire aree accessibili/riscrivibili.
Doppio bootloader
Alcune implementazioni dei bootloader sono in due parti, da cui il termine dual bootloader. In questo caso, il bootloader principale non è aggiornabile, come parte della protezione del bootloader. Riguarda l'avvio del modulo e l'aggiornamento del bootloader secondario. Il bootloader secondario può essere aggiornato, tramite un processo sicuro, che consente di modificare il processo di aggiornamento del software, ad esempio la mappa della memoria, consentendone normalmente il blocco. Questo tipo di bootloader è meno comune ora a causa dei nuovi metodi per proteggere il processo di aggiornamento utilizzando hardware sicuro integrato, ad esempio HSM (Hardware Secure Module).
Nota, questo termine è come dual boot, dove sono disponibili due blocchi di avvio o memorie complete, che consentono di effettuare un aggiornamento sulla versione non utilizzata mentre una versione è attiva. Ciò richiede memoria aggiuntiva in ogni ECU che supporta questo metodo di aggiornamento.
Bootloader Embedded Capital Embedded
Bootloader Embedded Capital Embedded supporta aggiornamenti affidabili della ECU durante lo sviluppo, nella produzione del veicolo e durante la vita del veicolo, tramite strumenti di diagnostica connessi o metodologie over-the-air. Il protocollo UDS standardizzato ISO 14229 viene utilizzato su una gamma di comuni bus di rete veicolari, Ethernet, CAN/CAN-FD, LIN, FlexRay ed è anche possibile utilizzare altri metodi come i protocolli di calibrazione ASAM. La cybersecurity è un aspetto chiave del flusso di aggiornamento del software e le funzionalità che consentono l'autenticazione del software e le opzioni di avvio sicuro fanno parte della soluzione. Per soddisfare i requisiti specifici degli OEM (produttori di apparecchiature originali) e degli MCU, è disponibile un ampio supporto per un'ampia gamma di progetti ECU.
Qual è la differenza tra OTA e FOTA?
L'aggiornamento OTA (over the air), o FOTA (firmware over the air), è un metodo per ottenere la ricezione di nuovo software per un dispositivo integrato, ad esempio la centralina elettronica automobilistica, in modo remoto, non tramite uno strumento di assistenza connesso direttamente in un'officina. Ciò potrebbe richiedere alcune funzionalità di tester diagnostico integrate in una ECU di coordinamento e/o capacità di ripristino e autotest nel bootloader stesso.