7 repositorios
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 es un proyecto de desarrollo para crear firmware de sistema que cumpla con la especificación UEFI. Proporciona la infraestructura necesaria para inicializar plataformas de hardware y arrancar sistemas operativos a través de múltiples arquitecturas de CPU. El proyecto utiliza una arquitectura de firmware modular que desacopla los protocolos de gestión de alto nivel de las capas de transporte físico. Implementa características de seguridad críticas, incluyendo una cadena de arranque medida, primitivas criptográficas para la autenticación de imágenes y soporte para implementaciones de hardware y software de Trusted Platform Module (TPM). Su superficie de capacidades se extiende a estándares de gestión de plataformas como Redfish, IPMI y MCTP, así como a la generación de tablas ACPI dinámicas. El proyecto también incluye un conjunto completo de herramientas para compilación entre arquitecturas, simulación de firmware y emulación de plataformas virtuales para hipervisores como KVM, Xen y QEMU. El proyecto incluye un sistema de compilación multi-objetivo y orquestación de pruebas automatizadas para validar la funcionalidad del firmware tanto en entornos emulados como físicos.
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 es un bootloader embebido que inicializa los componentes de hardware y carga los kernels del sistema operativo en la memoria. Funciona como una capa de abstracción de hardware que proporciona acceso estandarizado a redes, almacenamiento y buses periféricos, sirviendo también como un cargador de arranque seguro y una interfaz de actualización de firmware. El proyecto se distingue por la implementación de secuencias de arranque seguro que verifican firmas criptográficas e interactúan con módulos TPM para establecer una confianza basada en hardware. Además, proporciona capacidades especializadas para actualizar el firmware del dispositivo mediante protocolos estandarizados como Fastboot y DFU, y actúa como un manipulador de árbol de dispositivos (device tree) para configurar los parámetros de hardware antes de que inicie el sistema operativo. El sistema cubre una amplia gama de operaciones de bajo nivel, incluyendo la inicialización de la CPU y el controlador de memoria, gestión de caché de hardware y la ejecución de aplicaciones independientes. Admite el aprovisionamiento remoto de kernels mediante la obtención de imágenes de arranque y árboles de dispositivos desde servidores a través de protocolos de red, y gestiona el comportamiento del sistema mediante variables de entorno y ejecución de scripts de comandos. El proceso de compilación incluye herramientas para el empaquetado de imágenes de arranque y la configuración de objetivos de hardware para garantizar la compatibilidad binaria con dispositivos embebidos específicos.
Prepares embedded board components, CPUs, memory controllers, and clocks before starting the operating system.
m1n1 es un bootloader de bajo nivel para hardware Apple Silicon basado en ARM64. Sirve como herramienta de firmware y entorno de experimentación para cargar kernels externos y sistemas operativos no nativos. El proyecto permite la ejecución de payloads binarios concatenados que contienen kernels, device trees y ramdisks. Proporciona una plataforma para la experimentación con firmware y el despliegue de kernels personalizados en chips Apple Silicon. El sistema cubre la abstracción de hardware de bajo nivel, incluyendo el acceso a registros mapeados en memoria, la transmisión de device trees y el bootloading por etapas. También incluye depuración serie basada en UART para registros del sistema y resolución de problemas.
Provides the ability to transmit and configure flattened device tree blobs to define hardware peripherals for the kernel.