Commit Graph

17 Commits

Author SHA1 Message Date
vasilito 650a70a309 Update installer patch with GRUB help text and fix fstools build
Adds --bootloader and --filesystem to installer help text. Fixes
fstools host build by symlinking local/ directory alongside recipes/
so the ext4-blockdev path dependency resolves correctly.
2026-04-17 21:24:01 +01:00
vasilito 5c2c99b21f Add installer-native GRUB bootloader support
Extends the installer to write a GRUB chainload ESP layout when
bootloader = "grub" is set in config. Changes GeneralConfig, DiskOption,
fetch_bootloaders, with_whole_disk, with_whole_disk_ext4, and both CLI
binaries. When GRUB mode is active, the ESP contains GRUB as primary
(BOOTX64.EFI), grub.cfg, and the Redox bootloader as chainload target
(EFI/REDBEAR/redbear.efi).
2026-04-17 21:14:36 +01:00
vasilito ff1e2363e8 Add bootloader auto-boot countdown with 1280x720 default resolution
5-second countdown with any-key cancel into manual mode selection. Defaults to 1280x720, falls back to EDID best resolution. UEFI only via get_key_timeout polling with BootServices.Stall.
2026-04-17 14:03:58 +01:00
vasilito e12a20e1e5 Advance base patch with acpid and xhcid fixes 2026-04-17 13:33:41 +01:00
vasilito b41d0b01e1 Update base patch and build scripts 2026-04-17 00:04:53 +01:00
vasilito a4833b69c5 Update Red Bear driver substrate
Red Bear OS Team
2026-04-16 12:43:10 +01:00
vasilito d77860bd0f Preserve relibc overlay carriers 2026-04-15 12:57:45 +01:00
vasilito 3dd64d32db Update Red Bear driver substrate 2026-04-15 12:57:45 +01:00
vasilito 31b105ad78 Add UDP traceroute netstack patch 2026-04-14 22:53:12 +01:00
vasilito 68aa94ce98 Advance Wayland and KDE package bring-up 2026-04-14 10:51:06 +01:00
vasilito 808a6eee6a Add GPU driver interrupt handling, Intel GPU PCI config, and display improvements
AMD display driver: expanded DCN pipeline setup with plane/controller/stream mapping.
Intel driver: cleaned up module structure.
New interrupt module for MSI-X vector management across GPU drivers.
PCID config endpoint patch and Intel GPU TOML for automatic driver spawning.
Expanded redox_stubs with additional kernel API shims.
2026-04-12 23:52:19 +01:00
vasilito 8fadf583ec Merge FADT shutdown, power methods, and reboot into base ACPI patch
Rebuild base/acpid patch as comprehensive unified diff combining: DMAR iterator fix, FADT shutdown via PM1a/PM1b CNT_BLK with S5 sleep types from _S5 AML, ACPI reset register reboot with keyboard controller fallback (port 0x64, 0xFE), and power methods (_PS0/_PS3/_PPC). GenericAddress now supports memory-mapped and I/O port writes. Reboot wired into main.rs event loop with reboot_requested flag. All ivrs/mcfg stub references removed. Validated with git apply --check against upstream base source.
2026-04-12 22:16:01 +01:00
vasilito d863784d9a Add MADT NMI types 0x4/0x5/0xA and LVT NMI programming
Add MadtLocalApicNmi (type 0x4), MadtLapicAddressOverride (type 0x5), and MadtLocalX2ApicNmi (type 0xA) structs with compile-time size assertions. Add enum variants and iterator cases for all three. Implement set_lvt_nmi() on LocalApic for both xAPIC (LINT0/LINT1 at offsets 0x350/0x360) and x2APIC (MSRs 0x835/0x836) with NMI delivery mode, polarity, and trigger mode from MADT flags. Process NMI entries in x86.rs MADT loop to configure per-CPU LVT NMI registers. Parse and log LAPIC address override (64-bit) for future use.
2026-04-12 22:15:41 +01:00
vasilito 39d0814ebd Add SDT checksum validation to kernel ACPI patch
Add Sdt::validate_checksum() method that sums all bytes in the table and verifies the result is zero per ACPI spec. Call it during ACPI table iteration in init() — warn on invalid checksum but do not skip the table, to avoid breaking boot on firmware with slightly incorrect checksums.
2026-04-12 21:45:22 +01:00
vasilito 88702627ec Remove broken ivrs/mcfg stubs from acpid base patch
The base patch referenced ivrs and mcfg modules that don't exist in the source tree, causing build failures. Removed the module declarations, imports, and init calls. MCFG is already handled by pcid (the PCI daemon). IVRS (AMD IOMMU) needs real implementation, not a stub. DMAR iterator fix and Dmar::init() call preserved.
2026-04-12 20:42:57 +01:00
vasilito e743624685 Fix xAPIC APIC ID extraction, annotate ICR constants in kernel patch
The critical fix: local_apic.rs id() now returns (read(0x20) >> 24) for xAPIC mode instead of the raw register value. This was causing wrong APIC IDs on Intel, leading to misrouted IPIs, missed TLB shootdowns, and the page fault during context switch at switch.rs:317.

Also adds:
- Named ICR constants (ICR_INIT_ASSERT, ICR_STARTUP) with bit-layout comments
- Comment documenting x2APIC timeout limitation (cpu_id allocated before timeout check)
- All existing changes preserved (x2APIC MADT type 9, cpuid split, memory alignment, RSDP checksum, ICR pending wait, MADT entry length guard)
2026-04-12 20:42:41 +01:00
vasilito 50b731f1b7 Red Bear OS — microkernel OS in Rust, based on Redox
Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)

Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.

Build:  make all CONFIG_NAME=redbear-full
Sync:   ./local/scripts/sync-upstream.sh
2026-04-12 19:05:00 +01:00