7 dépôts
Low-level configuration of hardware components like interrupt controllers, serial ports, and disk interfaces during boot.
Distinct from Hardware-Specific Boot Configurators: Candidates focus on boot-configurator tools or network booting, not the kernel's internal device driver initialization.
Explore 7 awesome GitHub repositories matching operating systems & systems programming · Hardware Device Initializations. Refine with filters or upvote what's useful.
This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM microcontrollers. It provides the embedded software necessary to implement the USB Human Interface Device standard, allowing hardware to communicate keystrokes and mouse movements to a host computer. The framework distinguishes itself by offering a comprehensive toolchain for custom hardware development, including a command line interface for project scaffolding, firmware flashing, and configuration linting. It supports a variety of flexible configuration methods, allowing users to
Provides a startup sequence to configure low-level hardware components before the board becomes active.
xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an instructional kernel for x86 and RISC-V architectures, featuring a virtual memory manager and support for symmetric multiprocessing. The system is designed to demonstrate core OS principles through a simplified re-implementation of Unix Version 6. It provides a controlled environment for studying system calls, trap handling, and process lifecycles. Its capability surface covers process management, including scheduling and context switching, and memory management via page tables for
Configures the interrupt controller, console, serial ports, and disk interfaces during the system boot sequence.
edk2 est un projet de développement pour créer un firmware système conforme à la spécification UEFI. Il fournit l'infrastructure nécessaire pour initialiser les plateformes matérielles et démarrer les systèmes d'exploitation sur plusieurs architectures CPU. Le projet utilise une architecture de firmware modulaire qui découple les protocoles de gestion de haut niveau des couches de transport physiques. Il implémente des fonctionnalités de sécurité critiques, notamment une chaîne de démarrage mesurée (measured boot), des primitives cryptographiques pour l'authentification d'images et la prise en charge des implémentations matérielles et logicielles du Trusted Platform Module (TPM). Sa surface de capacité s'étend aux standards de gestion de plateforme tels que Redfish, IPMI et MCTP, ainsi qu'à la génération de tables ACPI dynamiques. Le projet inclut également une suite complète d'outils pour la compilation multi-architecture, la simulation de firmware et l'émulation de plateforme virtuelle pour des hyperviseurs comme KVM, Xen et QEMU. Le projet inclut un système de build multi-cible et une orchestration de tests automatisés pour valider la fonctionnalité du firmware dans des environnements émulés et physiques.
Performs low-level configuration of processors, memory, and peripherals during the early boot process.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Uses device tree blobs to automatically allocate memory and interrupt resources for hardware components.
This repository contains the pre-compiled firmware, bootloader binaries, device tree overlay files, and Linux kernel modules that power Raspberry Pi single-board computers. It provides the foundational system firmware that initializes the hardware and loads an operating system. The boot architecture relies on a proprietary VideoCore GPU that co-processes early initialization, memory partitioning, device tree overlay loading, and mailbox-based peripheral configuration before handing control to the main CPU. This multi-stage boot process uses a chain of small binary stages and loads a raw kerne
Configuring Raspberry Pi hardware peripherals at boot using device tree blobs and overlay files.
U-Boot est un bootloader embarqué qui initialise les composants matériels et charge les noyaux de systèmes d'exploitation en mémoire. Il fonctionne comme une couche d'abstraction matérielle fournissant un accès standardisé au réseau, au stockage et aux bus périphériques, tout en servant de chargeur de démarrage sécurisé et d'interface de mise à jour de firmware. Le projet se distingue par l'implémentation de séquences de démarrage sécurisées qui vérifient les signatures cryptographiques et s'interfacent avec des modules TPM pour établir une confiance ancrée dans le matériel. Il fournit en outre des capacités spécialisées pour mettre à jour le firmware des appareils via des protocoles standardisés tels que Fastboot et DFU, et agit comme un manipulateur d'arborescence de périphériques (device tree) pour configurer les paramètres matériels avant le démarrage du système d'exploitation. Le système couvre un large éventail d'opérations de bas niveau, incluant l'initialisation du CPU et du contrôleur mémoire, la gestion du cache matériel et l'exécution d'applications autonomes. Il prend en charge le provisionnement distant du noyau en récupérant des images de démarrage et des arborescences de périphériques depuis des serveurs via des protocoles réseau, et gère le comportement du système via des variables d'environnement et l'exécution de scripts de commande. Le processus de build inclut des outils pour l'empaquetage d'images de démarrage et la configuration de cibles matérielles afin d'assurer la compatibilité binaire avec des appareils embarqués spécifiques.
Prepares embedded board components, CPUs, memory controllers, and clocks before starting the operating system.
m1n1 est un bootloader bas niveau pour le matériel Apple Silicon basé sur ARM64. Il sert d'outil de firmware et d'environnement d'expérimentation pour charger des noyaux externes et des systèmes d'exploitation non natifs. Le projet permet l'exécution de charges utiles binaires concaténées contenant des noyaux, des device trees et des ramdisks. Il fournit une plateforme pour l'expérimentation de firmware et le déploiement de noyaux personnalisés sur les puces Apple Silicon. Le système couvre l'abstraction matérielle bas niveau, incluant l'accès aux registres mappés en mémoire, la transmission de device trees et le bootloading par étapes. Il inclut également un débogage série via UART pour les journaux système et le dépannage.
Provides the ability to transmit and configure flattened device tree blobs to define hardware peripherals for the kernel.