Commit Graph

41 Commits

Author SHA1 Message Date
vasilito f33d645fef Add all I2C/GPIO/UCSI driver sources to P2 patches
Recreate 11 driver crates lost during upstream source refresh:
- i2c-interface: shared I2C types (adapter info, transfer request/response)
- i2cd: /scheme/i2c adapter registry scheme daemon
- intel-lpss-i2cd: Intel LPSS/SerialIO I2C controller (ACPI-enumerated)
- dw-acpi-i2cd: DesignWare ACPI I2C controller
- amd-mp2-i2cd: AMD MP2 I2C controller (PCI-enumerated)
- i2c-hidd: I2C HID client daemon (PNP0C50/ACPI0C50 scanning, _DSM, HID protocol)
- intel-thc-hidd: Intel THC QuickI2C transport daemon
- gpiod: /scheme/gpio controller registry scheme daemon
- intel-gpiod: Intel ACPI GPIO registrar
- i2c-gpio-expanderd: I2C GPIO expander companion bridge
- ucsid: UCSI scheme daemon (/scheme/ucsi/summary, connectors, health)

P2-acpi-i2c-resources.patch: 6726 lines (was 1265)
P2-boot-runtime-fixes.patch: 319 lines (unchanged)
Both patches verified to apply cleanly on top of redox.patch
2026-04-22 23:55:16 +01:00
vasilito 1ed0558ddb Regenerate P2 patches against current upstream (463f76b9 + redox.patch)
Both P2 patches were stale — generated against an older upstream HEAD whose
context lines shifted after redox.patch modified the same files. Regenerated
from scratch against the current upstream commit so they apply cleanly.

P2-boot-runtime-fixes: hwd I2C candidate logging, pcid-spawner initfs detach,
pcid sendfd PCI fd handoff (319 lines)
P2-acpi-i2c-resources: new acpi-resource shared decoder crate (688 lines),
acpid /scheme/acpi/resources/ endpoint, resources.rs re-export shim,
sleep.rs restore (1265 lines)
2026-04-22 23:09:41 +01:00
vasilito 6158ec5cba Add ACPI I2C resources scheme endpoint and shared acpi-resource crate
- Add /scheme/acpi/resources/<device> endpoint to acpid for _CRS evaluation
- Extract acpi-resource shared crate (917 lines) with ResourceDescriptor types
- Eliminate duplicate type definitions in 5 consumers (i2c-hidd, dw-acpi-i2cd,
  intel-thc-hidd, i2c-gpio-expanderd, ucsid)
- Add P2-acpi-i2c-resources.patch (48KB) with all source changes
- Update ACPI-I2C-HID-IMPLEMENTATION-PLAN.md to reflect actual codebase state
2026-04-22 22:44:30 +01:00
vasilito 2cb285b8be acpi-i2c-hid: implement wave 1 boot-path diagnostics and service wiring 2026-04-22 21:31:19 +01:00
vasilito 5c9afa7ba6 Update USB boot docs and relibc patch overlays 2026-04-22 14:30:28 +01:00
vasilito cdd081c664 Integrate Red Bear boot and packaging updates 2026-04-22 10:22:09 +01:00
vasilito c30327aeab Consolidate relibc overlay patch chain 2026-04-21 16:15:17 +01:00
vasilito 9f126d91d4 Expand base overlay patches and controller proofs 2026-04-20 18:37:35 +01:00
vasilito fc42011e83 Refine relibc overlay patches and test wiring 2026-04-20 18:37:35 +01:00
vasilito e3d776aa9a Advance redbear-full Wayland, greeter, and Qt integration
Consolidate the active desktop path around redbear-full while landing the greeter/session stack and the runtime fixes needed to keep Wayland and KWin bring-up moving forward.
2026-04-19 17:59:58 +01:00
vasilito 4b40fc2826 Simplify relibc test recipe replay 2026-04-19 09:26:57 +01:00
vasilito 718b71ad2b Fix cookbook redoxer stage root selection 2026-04-19 09:26:57 +01:00
vasilito 9d1dd4ad13 Preserve base overlay carrier updates 2026-04-18 21:38:31 +01:00
vasilito 94b4fc0992 Consolidate relibc overlay patch chain
Keep the relibc compatibility work in tracked local patch carriers and align the recipe with the full durable patch stack so clean reapply and rebuild paths stay reproducible.
2026-04-18 21:36:07 +01:00
vasilito ed0b32c7dd Expand redox-drm DRM scheme, amdgpu port, and update patches 2026-04-18 17:58:44 +01:00
vasilito e1d04c7a6d Fix relibc strtold linkage for C++ consumers
Keep the relibc overlay consistent so the generated stdlib header preserves C linkage for strtold and the existing toolchain can still satisfy stale C++ callers while it is refreshed.
2026-04-18 10:36:46 +01:00
vasilito 12c5cffb04 Add Intel Alder Lake/Raptor Lake/Meteor Lake/Arrow Lake GPU IDs to ihdgd
Regenerate aggregate base patch to include ihdgd device ID additions
for modern Intel integrated GPUs (12th-14th Gen, Core Ultra, Arrow Lake).
This allows pcid-spawner to match and load ihdgd on current Intel laptops.
2026-04-18 07:06:00 +01:00
vasilito 182952a5cf Add relibc syscall priority patch and clean up IOMMU recipe 2026-04-18 00:48:58 +01:00
vasilito 2227b1e53f Update installer patch for GRUB bootloader and ext4 filesystem support 2026-04-18 00:48:58 +01:00
vasilito 7460bc8190 Refresh kernel ACPI and SMP patches for AMD bare metal support 2026-04-18 00:48:58 +01:00
vasilito 76d3fa012e Add Linux-compatible grub-install and grub-mkconfig wrappers
Create grub-install and grub-mkconfig scripts in local/scripts/ that
match GNU GRUB CLI conventions for users migrating from Linux. Support
standard switches: --target, --efi-directory, --bootloader-id,
--removable, -o/--output, --verbose, --help, --version. Unsupported
Linux options are accepted and ignored for script compatibility.

Also fix ESP FAT type: force FAT32 in both with_whole_disk and
with_whole_disk_ext4 (UEFI spec requires FAT32, fatfs auto-selects
FAT16 for partitions under 32 MiB). Fix --write-bootloader to export
GRUB EFI in GRUB mode. Fix CLI example in GRUB plan. Update AGENTS.md
and GRUB-INTEGRATION-PLAN.md with Linux-compatible CLI docs.
2026-04-17 22:47:01 +01:00
vasilito 6c361066e2 Fix GRUB reassessment findings: clean-build gap, validation, robustness
- Add grub package to redbear-full-grub.toml so make all works from
  a clean tree (the installer needs grub.efi before it runs)
- Fix stat -f%z (macOS-only) to stat -c%s (Linux) in GRUB recipe
- Normalize bootloader config value to lowercase in install_inner so
  bootloader = "GRUB" from config files is accepted
- Add bad-cluster marker (0x0FFFFFF7) check in fat_tool.py
  _next_cluster to prevent potential infinite loops on degraded media
- Fix file handle leak in fat_tool.py if _read_bpb raises
- Clean up temp directory in fetch_bootloaders on error
- Update AGENTS.md with GRUB recipe and installer documentation
- Update GRUB plan with clean-build prerequisite note
2026-04-17 22:21:08 +01:00
vasilito 1341c9077a Regenerate installer patch with GRUB quality fixes 2026-04-17 22:03:27 +01:00
vasilito 1b7578132e Add fail-hard validation for GRUB bootloader mode in installer
When bootloader = "grub" is set, the installer now:
- Rejects unknown bootloader values (only "redox" and "grub" accepted)
- Enforces minimum efi_partition_size of 8 MiB for GRUB mode
- Fails with a clear error if grub.efi or grub.cfg are missing from
  the GRUB package output instead of silently falling back
2026-04-17 21:36:44 +01:00
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