Le précédent article concernant l'exploration de la liseuse Kobo Glo nous a permis de découvrir la plateforme jusqu'au noyau. Nous n'avions cependant pas touché au bootloader, chose que nous allons aborder maintenant. Ce sera également l'occasion de détailler la façon d'ajouter une board dans les sources de U-Boot de manière à ne rien casser du développement initial.
Le processus de boot en lui-même n'a rien de complexe. Le code en bootROM du SoC va utiliser l'état de certaines lignes d'E/S et bit de registre (OCOTP) pour déterminer le processus de boot et en particulier le média depuis lequel charger le code :
- NOR parallèle,
- flash NAND (différent type),
- ROM série (EEPROM SPI ou i2c),
- carte SD/MMC.
La plateforme i.MX50 dispose également d'une fonction de boot sécurisé appelée HAB (High Assurance Boot) permettant d'authentifier le code chargé en mémoire avant exécution. Ceci n'est cependant pas utilisé avec le Kobo Glo qui se contente d'un boot process relativement courant : BootROM, lecture/copie SD (4K) en mémoire, exécution U-Boot, initialisation du matériel pour la préparation du chargement Linux, exécution du noyau, etc.
Le dépôt github.com/kobolabs/Kobo-Reader.git dans son répertoire hw/imx507 contient une archive des sources du noyau 2.6.35.3 largement patchées, mais également de U-Boot...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première