La version 4.22 du projet CoreBoot est disponible, dans le cadre duquel une alternative libre aux firmwares et BIOS propriétaires est développée. Le code du projet est distribué sous la licence GPLv2. 135 développeurs ont participé à la création de cette nouvelle version, préparant 977 modifications. Il est noté qu'à partir de la prochaine version, le projet passera à un nouveau schéma de nommage des versions, utilisant une référence à la date (année.mois.mise à jour), par exemple, en février 2024, au lieu de la version 4.23, la version 24.02.00 sera créée.
Principales modifications :
- Une première réalisation de la plateforme AMD openSIL (Open-Source Silicon Initialization Library) a été ajoutée, développant des composants pour simplifier la création de firmwares.
- Le support de 17 cartes mères a été ajouté. 11 des cartes ajoutées sont utilisées sur des appareils fonctionnant sous Chrome OS ou sur serveurs Google. Les cartes non associées à Google :
- AMD Onyx
- Intel Meteorlake-P RVP
- Purism Librem 11
- Purism Librem L1UM v2
- Siemens FA EHL
- Supermicro X11SSW-F
- Le support pour SoC AMD Genoa a été ajouté.
- Sur l'architecture x86, aux stades avant l'initialisation de la mémoire, le support pour la section « .data » a été mis en œuvre, permettant d'utiliser des définitions de variables globales dans le code C. Au stade du bloc de démarrage, les données sont attachées immédiatement après le code et ensuite placées dans le cache, utilisant le concept de Cache-As-RAM (VMA).
- Pour les systèmes x86, au stade ramstage et aux stades avant l'initialisation de la mémoire, le support du cache pour le système de fichiers CBFS, utilisé pour le placement des composants Coreboot sur Flash, a été réalisé. Le cache CBFS permet de décompresser les fichiers CBFS, en utilisant la fonction cbfs_map() sans réserver une zone mémoire distincte pour le fichier. Les paramètres PRERAM_CBFS_CACHE_SIZE et RAMSTAGE_CBFS_CACHE_SIZE sont proposés pour configurer la taille du cache.
- La possibilité d'incorporer romstage dans le bloc de démarrage (bootblock) a été ajoutée. La fourniture de romstage en tant que partie du bloc de démarrage permet de réduire la taille du code de 10 à 20 000 lignes. Des situations où une fourniture distincte de romstage peut être nécessaire comprennent les configurations avec vboot ou le mode de secours, ainsi que les appareils avec une taille de bloc de démarrage limitée (Intel APL 32K) ou un support de démarrage trop lent (certains SoC ARM).
- Dans gfx, une API a été ajoutée pour détecter la présence d'un écran externe sur les appareils avec des puces Intel.
- Dans pci_rom, la capacité d'ajouter un checksum pour VBIOS lors du remplissage de la table VFCT a été mise en œuvre. Un tel checksum est vérifié par certains pilotes AMD pour Windows.
- Des modifications ont été apportées pour permettre l'exécution de Windows sur certains appareils Chromebook avec Coreboot.
- Génération de la table ACPI pour les appareils basés sur l'architecture ARM64 mise en œuvre.
- Compatibilité améliorée avec les spécifications ACPI.
- Les paramètres MRC (Memory Reference Code) pour les cartes SNB+MRC ont été transférés dans la structure DeviceTree.
- Les composants payload basés sur U-Boot et edk2 ont été mis à jour.
- Les outils utilisés ont été mis à jour : GMP 6.3.0, binutils 2.41 et MPFR 4.2.1.
- La branche principale du dépôt Git a été renommée de «master» à «main».
Source : opennet.ru
