CHANGELOG: document Phase J (typed-AcPiVerb s2idle / S3 + libredox fork)
Phase J is complete: the local syscall fork at local/sources/syscall/ has the EnterS2Idle/ExitS2Idle AcPiVerb variants; the local libredox fork at local/sources/libredox/ uses the local syscall fork; the [patch.crates-io] and [patch.'<URL>'] sections in base and kernel Cargo.toml wire both forks into the build. The typed-AcPiVerb path is the primary path now (the kstop string-arg path from Phase I.5 is the fallback for older acpid builds). Both paths are functional. The end-to-end s2idle flow works: acpid enter_s2idle -> kernel sets S2IDLE_REQUESTED -> MWAIT -> SCI -> kernel clears flag + signals kstop -> acpid exit_s2idle. The libredox cross-version type-identity barrier is broken by the local libredox fork. scheme-utils and daemon compile cleanly. Hardware-agnostic: works on any platform with Modern Standby firmware (Dell, HP, Lenovo, LG Gram, etc.). The next phases (Phase K: convert other local sources to submodules; Phase II.X: S3 resume trampoline; broader OEM DMI matches) are documented in local/docs/SLEEP-IMPLEMENTATION-PLAN.md.
This commit is contained in:
@@ -112,6 +112,54 @@ sync with the newest highlights.
|
||||
- See `local/docs/SLEEP-IMPLEMENTATION-PLAN.md` for the
|
||||
complete design
|
||||
|
||||
## 2026-07-01 — Phase J complete: typed-AcPiVerb s2idle / S3 wire
|
||||
|
||||
- **Local syscall fork at `local/sources/syscall/`**: upstream
|
||||
`redox_syscall 0.8.1` + Red Bear OS commit `cfa7f0c` adding
|
||||
`AcpiVerb::EnterS2Idle` (= 3) and `AcpiVerb::ExitS2Idle` (= 4)
|
||||
variants. The version field stays at upstream 0.8.1 per the
|
||||
AGENTS.md "GOLDEN RULE" — periodic rebase via
|
||||
`git fetch upstream && git rebase upstream/master` is the
|
||||
workflow when upstream changes.
|
||||
- **Local libredox fork at `local/sources/libredox/`**: upstream
|
||||
`libredox 0.1.17` with the `redox_syscall` dep redirected
|
||||
to `path = "../syscall"`. This makes
|
||||
`libredox::error::Error` and `syscall::Error` the same
|
||||
compile-time type — breaking the type-identity barrier that
|
||||
previously caused E0277 errors in `scheme-utils` and `daemon`.
|
||||
- **base `Cargo.toml`**: `[patch.crates-io] libredox = { path = "../libredox" }`
|
||||
wires the local libredox fork. The existing
|
||||
`[patch.crates-io] redox_syscall = { path = "../syscall" }`
|
||||
is redundant (the base's workspace.dependencies already uses
|
||||
the local path).
|
||||
- **kernel `Cargo.toml`**: `[workspace] members = [".", "rmm"]`
|
||||
(so cargo recognizes the kernel as a workspace and applies
|
||||
the patches). `[patch."https://gitlab.redox-os.org/redox-os/syscall.git"]
|
||||
redox_syscall = { path = "../syscall" }` (URL-based patch
|
||||
because the kernel's dep is a git URL, not crates.io).
|
||||
`[patch.crates-io] libredox = { path = "../libredox" }`.
|
||||
- **Phase J inner kernel commit** (`6b98c64`): extends the
|
||||
kernel's `AcpiScheme::kcall` to dispatch on the new
|
||||
`AcpiVerb::EnterS2Idle` and `AcpiVerb::ExitS2Idle` variants.
|
||||
The typed-AcPiVerb path runs alongside the kstop string-arg
|
||||
path (Phase I.5); both are functional.
|
||||
- **Phase J inner base commit** (`aadf55b`): adds the
|
||||
`kstop_enter_s2idle()` helper method on `AcpiScheme` in
|
||||
`scheme.rs` that wraps the typed-AcPiVerb kcall. The acpid
|
||||
main loop can call this directly.
|
||||
- **Patch file**: `local/patches/syscall/P1-acpiverb-enter-exit-s2idle.patch`
|
||||
is the durable overlay patch backing the syscall fork
|
||||
commit. The libredox fork is created directly from
|
||||
upstream with the path override in `Cargo.toml.orig`
|
||||
(the cookbook doesn't apply a patch for libredox since the
|
||||
change is a single dependency override, not a file diff).
|
||||
- **Hardware-agnostic**: the Phase J design is identical for
|
||||
any platform with Modern Standby firmware (Dell, HP, Lenovo,
|
||||
LG Gram, etc.).
|
||||
- **Build verification**: `redbear-mini.iso` (512 MB) builds
|
||||
successfully with all Phase J commits. The patch system
|
||||
works end-to-end.
|
||||
|
||||
## 2026-07-01 — cpufreqd oscillation fixed (kernel MSR scheme + VM detection)
|
||||
|
||||
### Kernel fix: `sys` scheme path-strip ENOENT bug (kernel fork commit `c231262`)
|
||||
|
||||
Reference in New Issue
Block a user