Skip to content

Release v0.23-beta.6: PCI Bus Enumeration and Hardware Discovery

Choose a tag to compare

@MinecAnton209 MinecAnton209 released this 12 Feb 19:53
· 125 commits to main since this release

πŸš€ Release Notes - NovumOS v0.23-beta.6

Date: February 12, 2026
Version: v0.23-beta.6

🌟 Highlights - The Hardware Discovery Update

This milestone transitions NovumOS from an isolated kernel into a system capable of exploring and identifying the hardware environment. The core introduction of PCI Bus Enumeration lays the essential foundation for future driver development for network cards, display adapters, and sound controllers.

πŸ” PCI Bus Enumeration & Discovery

  • Hardware Scanner: Implemented a full PCI bus scanning mechanism. The system now iterates through all 256 buses, 32 slots, and up to 8 functions per device to locate all active hardware.
  • Vendor & Device Database: Integrated an identification database for common vendors (Intel, AMD, VMware, Realtek, Virtio, and QEMU). NovumOS now recognizes chipsets, IDE controllers, and NICs by name.
  • Class Identification: Added logic to decode device class codes, allowing the system to distinguish between Bridges, Storage Controllers, Network Interfaces, and Display Controllers.

πŸ—οΈ Kernel & System Call Enhancements

  • 32-bit I/O Primitives: Introduced inl and outl functions for double-word (32-bit) port I/O. This is critical for accessing PCI Configuration Space and modern registers.
  • Extended Syscall Interface: Expanded the int 0x80 interface (Syscalls 16 & 17) to support 32-bit I/O operations. This enables future Ring 3 applications to interact with hardware directly via the kernel.
  • Safe Register Passing: Refactored the syscall handler in user.zig to ensure stable transmission of 32-bit arguments between CPU registers and the Zig kernel modules.

🐚 Shell & User Experience

  • New lspci Command: Added a powerful utility to list detected hardware. The output follows the classic format: Bus:Slot.Func Vendor:Device Class Description.
  • Intelligent Autocomplete: The lspci command is fully integrated into the Shell's Tab-completion engine for seamless navigation.
  • Enhanced Hex Formatting: Implemented a specialized hex-printing logic with variable bit-depth (4, 8, or 16-bit) specifically tailored for hardware reporting.

πŸ›  Infrastructure

  • System-wide Versioning: Officially updated all system constants and the Nova Interpreter to version 0.23-beta.6.
  • PCI Driver Library: Established the drivers/pci.zig module as the central hub for all future hardware-specific drivers.

Full changelog

v0.23-beta.5...v0.23-beta.6