docs: LG Gram Round 6-7 assessment + plan status update
Assessment doc: added Round 6 (16 relibc stub replacements, sem_open, ioctl soundness) and Round 7 (kernel 3 blocking errors + ~40 warnings, relibc netdb fix, all committed and pushed) sections with deliverables and commit maps. LG-GRAM plan: updated Status line through Round 7.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# LG Gram 16Z90TP-G.AL89C — Host Compatibility Plan
|
||||
|
||||
**Created:** 2026-07-20
|
||||
**Status:** Implementation in progress — Phases 0, 3.2, 3.4, 3.5, 3.6, 4.1–4.4, 5.0–5.5, 6.1, 9.1, 9.6 complete. **Round 1 (2026-07-26): `SystemQuirkFlags` consumer wiring landed end-to-end** — `force_s2idle`, `no_legacy_pm1b`, `kbd_deactivate_fixup` wired in acpid+ps2d. **Round 2 (2026-07-26): build blockers fixed** (relibc unsafe-block; acpid `common` path). **Lid-switch symmetric wiring**: close → `enter_s2idle()`, open → `exit_s2idle()`. **Round 3 (2026-07-26): kernel SMBIOS scan + `acpi_irq1_skip_override` consumer landed** — `acpi/smbios.rs` + `ioapic::handle_src_override` IRQ1 skip. Kernel page-fault `todo!()` bombs fixed. **Round 4 (2026-07-26): `_fenv` POSIX stubs implemented (11 functions)**. **Phase 9.1 MWAIT idle loop confirmed complete** (implemented by parallel session). **base cook succeeds** — all LG Gram changes verified for `x86_64-unknown-redox`. See `local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md`.
|
||||
**Status:** Implementation in progress — Phases 0, 3.2, 3.4, 3.5, 3.6, 4.1–4.4, 5.0–5.5, 6.1, 9.1, 9.6 complete. **Round 1 (2026-07-26): `SystemQuirkFlags` consumer wiring landed end-to-end** — `force_s2idle`, `no_legacy_pm1b`, `kbd_deactivate_fixup` wired in acpid+ps2d. **Round 2 (2026-07-26): build blockers fixed** (relibc unsafe-block; acpid `common` path). **Lid-switch symmetric wiring**: close → `enter_s2idle()`, open → `exit_s2idle()`. **Round 3 (2026-07-26): kernel SMBIOS scan + `acpi_irq1_skip_override` consumer landed** — `acpi/smbios.rs` + `ioapic::handle_src_override` IRQ1 skip. Kernel page-fault `todo!()` bombs fixed. **Round 4 (2026-07-26): `_fenv` POSIX stubs implemented (11 functions)**. **Phase 9.1 MWAIT idle loop confirmed complete** (implemented by parallel session). **base cook succeeds** — all LG Gram changes verified for `x86_64-unknown-redox`. **Round 5 (2026-07-26): relibc cross-compile denied warnings fixed** (last build blocker); relibc + base both cook successfully. **Round 6 (2026-07-26): 16 relibc `unimplemented!()` stubs replaced with real POSIX implementations** + `sem_open` family + ioctl soundness fixes. **Round 7 (2026-07-27): kernel 3 blocking errors + ~40 warnings fixed** (SMBIOS unsafe blocks, MWAIT idle E0133, unused imports/vars/mut/unsafe cleanup); **relibc `netdb/mod.rs` compile failure fixed** (AF_UNSPEC/AF_INET6 imports + `getnetbyaddr` logic bug); **kernel cook = zero errors, zero warnings**; all work committed and pushed (`bd656d7f` kernel, `92f9d629` relibc, `5d5f3fa679` parent). See `local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md`.
|
||||
**Source evidence:** Host dmesg (Linux 7.1.3-1-MANJARO), six-point codebase recon
|
||||
(drivers/PCI-ID inventory, redox-drm Intel state, redbear-iwlwifi state, IOMMU/kernel
|
||||
state, ACPI/power state, USB/input/audio state)
|
||||
|
||||
@@ -1,11 +1,83 @@
|
||||
# LG Gram 16Z90TP-G.AL89C — Compatibility Assessment (2026-07-26)
|
||||
|
||||
**Round:** 5 of N
|
||||
**Scope:** Fix relibc cross-compile denied warnings (last LG Gram build blocker), verify ISO build, document results.
|
||||
**Round:** 7 of N
|
||||
**Scope:** Fix kernel build errors (3 blocking + all warnings), fix relibc compile failure, commit and push everything.
|
||||
**Methodology:** Plan doc cross-checked against full code inventory by explore agent across 15 subsystems + CHANGELOG history + HARDWARE-VALIDATION-MATRIX + boot-logs + evidence directories.
|
||||
|
||||
---
|
||||
|
||||
## Round 7 deliverables (landed 2026-07-27)
|
||||
|
||||
### Kernel 3 blocking ERRORS fixed (`smbios.rs`)
|
||||
|
||||
The SMBIOS scan code (Round 3 work) had `unsafe-op-in-unsafe-fn` violations (denied in edition 2024):
|
||||
|
||||
1. **`map_physical_range` unsafe blocks** (lines 83, 180): Calls to `map_physical_range()` (a `pub(crate) unsafe fn`) were made inside `unsafe fn` bodies without explicit `unsafe { }` blocks. Wrapped both call sites.
|
||||
2. **Lifetime propagation**: `bytes` from mapped SMBIOS memory was explicitly typed as `&'static [u8]` since mapped ACPI memory persists for kernel lifetime. Propagated `&'static` through `dmi_string`, `decode_type_1`, `decode_type_2` function signatures.
|
||||
|
||||
### Kernel E0133 WARNINGS fixed (`interrupt/mod.rs`)
|
||||
|
||||
MWAIT idle loop (Round 4 discovery) had inline `asm!` and unsafe calls inside `unsafe fn` without explicit `unsafe { }` blocks:
|
||||
|
||||
1. `mwiat_loop` (line ~102): inline `asm!` wrapped in `unsafe { }`.
|
||||
2. `idle_loop` (lines ~144, 152, 153): `enable_and_halt()` + `mwiat_loop()` calls wrapped in `unsafe { }`.
|
||||
|
||||
### Kernel unnecessary-unsafe warnings fixed
|
||||
|
||||
- `cpuid.rs:9`: removed `unsafe {}` wrapper around now-safe `__cpuid_count` intrinsic.
|
||||
- `tsc.rs:102`: removed `unsafe {}` wrapper around now-safe `rdtsc` intrinsic.
|
||||
|
||||
### Kernel general warning cleanup (~40 warnings across 19 files)
|
||||
|
||||
- Removed unused imports: `rmm/lib.rs`, `acpi/mod.rs`, `rsdt.rs`, `rxsdt.rs`, `slit.rs`, `srat/`, `xsdt.rs`, `context/mod.rs`, `memory/mod.rs`, `numa.rs`, `scheme/user.rs`, `syscall/fs.rs`.
|
||||
- Prefixed unused variables with `_`.
|
||||
- Removed unnecessary `mut`.
|
||||
- Removed unnecessary `unsafe {}` blocks: `stop.rs`, `srat/mod.rs`, `memory/mod.rs`.
|
||||
|
||||
**Subagent bug fixed:** The warning-cleanup subagent incorrectly removed `use rmm::PhysicalAddress;` from `rxsdt.rs` (it IS used at lines 14, 19, 22). Restored.
|
||||
|
||||
### Relibc `netdb/mod.rs` compile failure fixed
|
||||
|
||||
1. **Missing imports** (E0425): Added `AF_UNSPEC`, `AF_INET6` to the import from `sys_socket::constants`.
|
||||
2. **`getnetbyaddr` logic bug**: `n_ref.n_net` (a `uint32_t` holding the network number) was incorrectly treated as a raw pointer — `is_null()` check and dereference were nonsensical. Fixed to `let matched = net == u32::from_be(n_ref.n_net);`.
|
||||
|
||||
### Build verification: kernel AND relibc cook SUCCESSFULLY
|
||||
|
||||
| Recipe | Round 7 result | Verified |
|
||||
|---|---|---|
|
||||
| **kernel** | ✅ SUCCESSFUL — zero errors, zero warnings | `repo cook kernel --force-rebuild` |
|
||||
| **relibc** | ✅ SUCCESSFUL | `repo cook relibc` |
|
||||
| **redox-driver-sys** | ✅ 80/80 cargo tests pass | host unit tests |
|
||||
|
||||
### All Round 7 work committed and pushed
|
||||
|
||||
| Repo | Branch | Commit | Status |
|
||||
|---|---|---|---|
|
||||
| kernel fork | `submodule/kernel` | `bd656d7f` | ✅ pushed |
|
||||
| relibc fork | `submodule/relibc` | `92f9d629` | ✅ pushed |
|
||||
| parent | `0.3.1` | `5d5f3fa679` | ✅ pushed |
|
||||
|
||||
---
|
||||
|
||||
## Round 6 deliverables (landed 2026-07-26)
|
||||
|
||||
### 16 relibc `unimplemented!()` stubs replaced with real implementations
|
||||
|
||||
Systematic replacement of all active `unimplemented!()` stubs in relibc with real POSIX implementations:
|
||||
|
||||
- `1442195b` — replaced all active `unimplemented!()` stubs with real implementations (14 stubs across netdb, socket, semaphore, mman, resource, uio headers)
|
||||
- `ef52efde` — replaced last 2 active stubs (remaining netent and protoent helpers)
|
||||
|
||||
### POSIX `sem_open` family implemented (relibc `92f9d629`)
|
||||
|
||||
Full `sem_open`/`sem_close`/`sem_unlink`/`sem_post`/`sem_wait`/`sem_trywait`/`sem_timedwait` implementation using named shared memory segments under `/dev/shm/sem.*`.
|
||||
|
||||
### ioctl soundness fixes (relibc `92f9d629`)
|
||||
|
||||
`ioctl()` variadic argument handling hardened to prevent undefined behavior on mismatched request/argument types.
|
||||
|
||||
---
|
||||
|
||||
## Round 5 deliverables (landed 2026-07-26)
|
||||
|
||||
### Relibc cross-compile denied warnings fixed — LAST LG Gram build blocker
|
||||
@@ -366,3 +438,26 @@ Parent repo commit includes: updated submodule pointers for `local/sources/relib
|
||||
| RedBear-OS (parent) | `0.3.1` | `6d8ef13dc1` | `LG Gram Round 1: redox-driver-sys stub replacements + doc reference fixes` |
|
||||
| RedBear-OS/base fork | `submodule/base` | `45452c5a` | `acpid+ps2d: wire SystemQuirkFlags consumers (LG Gram Round 1)` |
|
||||
| RedBear-OS/base fork | `submodule/base` | `263a41a9` | `bootstrap: fix broken INITNSMGR-CONCURRENCY-DESIGN.md reference` |
|
||||
|
||||
---
|
||||
|
||||
## Round 7 commit map
|
||||
|
||||
| Repo | Branch | Commit | Subject |
|
||||
|---|---|---|---|
|
||||
| RedBear-OS/kernel fork | `submodule/kernel` | `bd656d7f` | `kernel: LG Gram SMBIOS scan + MWAIT idle + warning cleanup` |
|
||||
| RedBear-OS/relibc fork | `submodule/relibc` | `92f9d629` | `relibc: implement POSIX sem_open and ioctl soundness fixes` (includes netdb getnetbyaddr fix) |
|
||||
| RedBear-OS (parent) | `0.3.1` | `5d5f3fa679` | `submodule bump: kernel + relibc for LG Gram Round 7` |
|
||||
|
||||
**Verification:** `repo cook kernel --force-rebuild` = zero errors, zero warnings. `repo cook relibc` = success. `redox-driver-sys` 80/80 cargo tests pass.
|
||||
|
||||
---
|
||||
|
||||
## Round 6 commit map
|
||||
|
||||
| Repo | Branch | Commit | Subject |
|
||||
|---|---|---|---|
|
||||
| RedBear-OS/relibc fork | `submodule/relibc` | `1442195b` | `relibc: replace all active unimplemented!() stubs with real implementations` |
|
||||
| RedBear-OS/relibc fork | `submodule/relibc` | `ef52efde` | `relibc: replace last 2 active unimplemented!() stubs with real implementations` |
|
||||
|
||||
(Round 6 relibc commits were swept into the parallel agent's `92f9d629` push and the parent `5d5f3fa679` submodule bump.)
|
||||
|
||||
Reference in New Issue
Block a user