Generički firmware za virtualizaciju u autoindustriji

share

O projektu

Projekt obuhvaća razvoj programske podrške jedne od upravljačkih jedinica u modernom automobilu. Konkretnije, radi se o jedinici koja obavlja funkciju komunikacijskog servera i funkcionalnosti iz "Body and Security" domene. Ideja je razviti jednu jedinicu na moćnom višejezgrenom modulu koja u sebi može objediniti više funkcionalnosti koje su tradicionalno bile distribuirane u više upravljačkih jedinica. Time se rasterećuju komunikacijski kanali i pojednostavljuje certifikacija, ali se i uvodi novi problem. Više funkcionalnosti koje trebaju biti izolirane su implementirane na istom modulu. Zbog toga se koristi princip virtualizacije kako bi se funkcionalnosti držale odvojenima. Radi se o velikom projektu unutar kojega se razvija/koristi mnoštvo programskih komponenata (bootloader u nekoliko slojeva, hypervisor, AUTOSAR, specijalizirane linux distribucije, TEE - en. Trusted Execution Environment baziran na ARM TF-A i sl.).

 Frimware update

Problem

Klijent je odlučio unaprijediti najniži dio programske podrške (bootloadere i firmware) i pretvoriti ih u komponente koje se više puta mogu koristiti i u različitim budućim projektima uz različite konfiguracije. Na taj se način može dobiti gotova komponenta koja se sa stanovišta budućih projekata može promatrati kao crna kutija i više nije nužno ulagati dodatne kapacitete u njezin razvoj. Razdvajanje konfiguracija od logike uglavnom nije velik problem, ali postaje dodatno složeno kada se radi o jezicima niže razine i aplikacijama sa sigurnosnim implikacijama. Još jedna od otežavajućih okolnosti jest činjenica da je trajanje podizanja sustava ili vrijeme proteklo od paljenja do spremnosti za rad (en. BooFirmware updatet time) od kritične važnosti pa dodana funkcionalnost mora imati minimalan utjecaj na performanse.  

Rješenje i tehnologija

Firmware je pisan za Renesas R-Car platformu baziranu na ARMv7 i ARMv8 arhitekturama. Kao baza za TEE - Trusted Execution Environment poslužila je Renesasova ARM Trusted firmware implementacija. Logika klijentovog firmwarea je minimalno izmijenjena kako bi se iz nje izdvojila konfiguracija kao zasebni entitet. Također je razvijena programska podrška za generiranje, testiranje, spajanje konfiguracije s gotovim binarnim datotekama firmwarea te na kraju autentifikaciju konfiguracije u samom firmwareu. Rješenje je većim dijelom razvijeno u C-u, manjim dijelom u ARM assembleru, s ponekim bash i python skriptama vezanima za produciranje binarnih datoteka koje se pokrecu na sklopovlju.

Shematski prikaz - Renesas R-Car platforma

 Shema Renesas r car platform

Rezultati/ishodi

  • Originalni projekt iz kojega je potekao inicijalni firmware sada koristi novu implementaciju kao gotovu komponentu uz odgovarajuću konfiguraciju.
  • Planirana su daljnja unaprijeđenja i u smislu povećanja konfigurabilnosti i u smislu boljih alata za generiranje i testiranje konfiguracije.
  • S obzirom na to da se radi o ugrađenoj programskoj podršci koja se izvršava direktno na sklopovlju (bez operativnog sustava) kompetencije tima su najjače u C-u, ARM assembleru, poznavanju ARM arhitekture i općenito u razvoju programske podrške za bare metal sustave.