# Das U-Boot

Das U-Boot (subtitulat "el carregador d'arrencada universal" i sovint escurçat a U-Boot; vegeu Historial per obtenir més informació sobre el nom) és un carregador d'arrencada de codi obert utilitzat en dispositius incrustats per realitzar diverses tasques d'inicialització de maquinari de baix nivell i arrencada. el nucli del sistema operatiu del dispositiu. Està disponible per a diverses arquitectures d'ordinadors, com ara 68k, ARM, Blackfin, MicroBlaze, MIPS, Nios, SuperH, PPC, RISC-V i x86.

## Funcionalitat

U-Boot és un carregador d'arrencada de primera i de segona etapa. Es carrega per la ROM del sistema (per exemple, la ROM en xip d'una CPU ARM) des d'un dispositiu d'arrencada compatible, com ara una targeta SD, una unitat SATA, un flash NOR (per exemple, utilitzant SPI o I²C) o un flaix NAND. Si hi ha restriccions de mida, U-Boot es pot dividir en dues etapes: la plataforma carregaria un petit SPL (Secundari Program Loader), que és una versió reduïda d'U-Boot, i l'SPL faria una configuració inicial de maquinari. (per exemple, inicialització de DRAM utilitzant la memòria cau de la CPU com a RAM) i carregueu la versió més gran i amb totes les funcions d'U-Boot. Independentment de si s'utilitza l'SPL, U-Boot realitza tant la primera etapa (per exemple, la configuració de controladors de memòria i SDRAM) com l'arrencada de la segona etapa (realitzant diversos passos per carregar un sistema operatiu modern des d'una varietat de dispositius que s'han de configurar, presentar un menú perquè els usuaris puguin interactuar i controlar el procés d'arrencada, etc.).
U-Boot implementa un subconjunt de l'especificació UEFI tal com es defineix a l'especificació Embedded Base Boot Requirements (EBBR). Els binaris UEFI com GRUB o el nucli de Linux es poden arrencar mitjançant el gestor d'arrencada o des de la interfície de línia d'ordres.
U-Boot executa una interfície de línia d'ordres en una consola o un port sèrie. Mitjançant la CLI, els usuaris poden carregar i arrencar un nucli, possiblement canviant els paràmetres del valor predeterminat. També hi ha ordres per llegir la informació del dispositiu, llegir i escriure memòria flash, descarregar fitxers (nuclis, imatges d'arrencada, etc.) des del port sèrie o de la xarxa, manipular arbres de dispositius i treballar amb variables d'entorn (que es poden escriure a l'emmagatzematge persistent)., i s'utilitzen per controlar el comportament de l'U-Boot, com ara l'ordre d'arrencada per defecte i el temps d'espera abans de l'arrencada automàtica, així com les dades de maquinari com ara l'adreça MAC d'Ethernet).
A diferència dels carregadors d'arrencada de PC que enfosqueixen o trien automàticament les ubicacions de memòria del nucli i altres dades d'arrencada, U-Boot requereix que les seves ordres d'arrencada especifiquen explícitament les adreces de memòria física com a destinacions per copiar dades (nucli, disc ram, arbre de dispositius, etc.) i per saltar al nucli i com a arguments per al nucli. Com que les ordres d'U-Boot són de nivell bastant baix, es necessiten diversos passos per arrencar un nucli, però això també fa que U-Boot sigui més flexible que altres carregadors d'arrencada, ja que les mateixes ordres es poden utilitzar per a tasques més generals. Fins i tot és possible actualitzar U-Boot mitjançant U-Boot, simplement llegint el nou carregador d'arrencada des d'algun lloc (emmagatzematge local, o des del port sèrie o xarxa) a la memòria i escrivint aquestes dades a l'emmagatzematge persistent on pertany el carregador d'arrencada.
U-Boot té suport per a USB, de manera que pot utilitzar un teclat USB per operar la consola (a més de l'entrada des del port sèrie) i pot accedir i arrencar des de dispositius d'emmagatzematge massiu USB com ara lectors de targetes SD.

## Usos

* Els Chromebooks basats en ARM s'envien amb U-Boot. Els Chromebooks basats en Celeron i i5 l'utilitzen com a càrrega útil per al coreboot.
* La sèrie d'ordinadors AmigaOne basada en PowerPC que executen AmigaOS utilitzen U-Boot, en particular els Sam440ep i Sam460ex d'ACube Systems Srl, i l'AmigaOne X5000 d'A-Eon, el successor de l'AmigaOne X1000.
* Els dispositius d'Ubiquiti Networks utilitzen U-Boot.
* Els dispositius Amazon Kindle i Kobo eReader utilitzen U-Boot com a carregador d'arrencada.
* TP-Link i diversos altres encaminadors sense fils MIPS compatibles amb OpenWRT/LEDE utilitzen U-Boot per a la càrrega d'arrencada.
* Els encaminadors mòbils Teltonika utilitzen un carregador d'arrencada basat en U-Boot.
* El Falcon i el Drac de SpaceX utilitzen U-Boot.
* Asahi Linux l'utilitza com a càrrega útil per a m1n1 per arrencar Linux a Apple Silicon Mac.

## Referències

* ↑ «Preparing a Uboot image for Altera's Cyclone V SoC FPGA» (en anglès).
* ↑ «U-Boot on i.MX6» (en anglès), 18-06-2013.
* ↑ «Bootloaders:u-boot:features [Analog Devices Open Source| Mixed-signal and Digital Signal Processing ICs]» (en anglès). Arxivat de l'original el 2017-09-05. [Consulta: 15 juny 2016].
* ↑ «U Boot · AsahiLinux/docs Wiki» (en anglès). GitHub. [Consulta: 29 abril 2022].