Roadmap
Summary of the roadmap files in each repository. bedrock-core is at 0.0.3.
bedrock-core
ROADMAP.mdStable kernel API and test infrastructure
- Public API in bedrock.h marked as stable or experimental
- Host-native HAL for x86-64 Linux
- Unit tests for tasks, scheduler, semaphore, mutex, message queue, sleep list and pool allocator
- CI pipeline on GitHub Actions: Cortex-M build and host tests
- br_version.h with version macros
RISC-V port
- arch/riscv32 with CLINT mtime/mtimecmp timer, RV32I context switch and mstatus.MIE interrupt control
- boards/qemu-riscv32-virt with linker script, startup code and 16550 UART
- Same examples/main.c running on both architectures
- RISC-V target in chorus.build and Kconfig, CI for both architectures
Shell and introspection
- Interrupt-driven UART receive
- Shell with line editing and commands: tasks, mem, uptime, version, reboot
- br_console formatted output
- Stack high-water mark, per-task CPU statistics, idle hook
Driver model
- br_device_t with register and find, and open, close, read, write, ioctl operations
- GPIO, SPI, I2C and interrupt-driven UART drivers
- Timer and counter driver for PWM and capture
- Driver authoring guide
Filesystem module
- Block device HAL
- littlefs integration or a minimal FAT reader
- Thin VFS layer: mount, open, read, write, close
- RAM-backed block device for QEMU tests
Networking module
- Network interface HAL
- lwIP, picoTCP or a minimal UDP/IP stack
- Socket-like API, loopback interface, QEMU network backend
- UDP echo server example
Third architecture and real hardware
- One of AVR, x86 or Xtensa
- Real boards for ARM and RISC-V, for example STM32F4-Discovery and Sipeed Longan Nano
Memory protection
- MPU on Cortex-M and PMP on RISC-V, per-task regions
- Unprivileged tasks with a system call interface
- Fault handlers with diagnostic output
- Kernel code audit
API freeze
- No breaking changes to bedrock.h after this version
- Complete API reference and a getting-started tutorial
- Benchmarks: context switch, interrupt latency, IPC throughput, footprint
- Static analysis and release notes template
genesis
ROADMAP.mdMinimum bootloader
- RV32IMA and RV64GC from one codebase
- M-mode bare-metal and S-mode via OpenSBI
- NS16550A UART, CLINT timer, logger, panic handler
- make targets: build, run, debug, size, disasm, clean
DTB parsing and memory map
- Read-only FDT parser, memory and UART discovery
Kernel image loading
- Header validation, relocation, hartid and DTB in a0/a1
VirtIO block device
- MMIO transport, polling block driver, kernel load from disk
Configuration and multi-boot
- INI config, boot menu over UART, fallback entry