Skip to content

feat: v0.75.0 -- Wakeup control endpoint + power modes - #93

Merged
SoundMatt merged 1 commit into
mainfrom
feat/v0.75.0-wakeup-power-modes
Jul 28, 2026
Merged

feat: v0.75.0 -- Wakeup control endpoint + power modes#93
SoundMatt merged 1 commit into
mainfrom
feat/v0.75.0-wakeup-power-modes

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

  • Adds include/rcp/power.h + src/power.c: the RC Server power-mode
    state machine (Normal/StandBy/Sleep/Unpowered, extraction §3.3-3.4) --
    the general hot/cold-start transition table, and the four-step
    hot-start-from-Sleep handshake (network-interface re-enable, repeated
    WakeUp attempts until echoed or a repeat-limit is hit, ack-queue
    resume, and the network-level TC14/TC10 wake bypass) as an explicit,
    directly-testable state machine. Cross-references lifecycle.h (not
    server.h) for lifecycle-state concerns, per the Reconcile TC18 module naming with RELAY spec v1.14 §13.7.2 #87/Reconcile module naming with RELAY spec v1.14 §13.7.2 #88 module-naming
    split.
  • Adds include/rcp/ep_wakeup.h + src/ep_wakeup.c: the dedicated
    power-management endpoint (ep_type=0x01) -- wake-source pin
    configuration/monitoring, the fixed SleepCMD (0xA5) request kind
    encoded entirely outside the general request_type taxonomy, and
    dedicated WakeUp-message emission in place of the generic per-endpoint
    trigger-signal mechanism.
  • Entry-refusal gating for StandBy/Sleep requests
    (rcp_pwrmode_check_entry()), the direct protocol-core replacement for
    powerstate.c's ad-hoc Active/Sleeping/BusOff model (that legacy
    satellite itself is untouched -- its own client-side REPLACE work is
    Satellite Rework v0.79.0).
  • New REQ-PWRMODE-* (13) and REQ-WAKEUP-* (16) requirements added to
    .fusa-reqs.json, verified not to collide with the pre-existing
    REQ-PWR-* group (powerstate.c, legacy v0.13.0).
  • ROADMAP.md milestone 75 checked off with a "Done (v0.75.0)" writeup.

Test plan

  • cmake --build (ASan/UBSan, -Wall -Wextra -Wpedantic ...) -- clean, 0 warnings
  • ctest -- 66/66 passing, including new rcp_power (32 cases) and
    rcp_ep_wakeup (28 cases) suites
  • cfusa:req/cfusa:test tags cross-checked 1:1 against
    .fusa-reqs.json by hand (no local cfusa binary available in this
    environment -- CI's cfusa-check/cfusa-lint jobs are the
    authoritative gate)
  • Confirmed .fusa-hara.json's pre-existing HARA002/HARA003 gap (10
    hazards missing risk rating/safetyGoals) is unchanged by this PR
  • CI (this PR) -- pending

…stone 75)

Adds include/rcp/power.h + src/power.c as new, additive protocol-core
surface for the RC Server power-mode state machine (extraction sect3.3-3.4):
Normal/StandBy/Sleep/Unpowered modes, the general hot/cold-start transition
table, and the four-step hot-start-from-Sleep handshake (network-interface
re-enable, repeated WakeUp attempts until echoed or a repeat-limit is hit,
ack-queue resume, and the network-level TC14/TC10 wake bypass) as an
explicit, directly-testable state machine. Cross-references lifecycle.h
(not server.h) for lifecycle-state concerns, per the #87/#88 module-naming
split. Uses its own REQ-PWRMODE-* requirement prefix, verified not to
collide with the pre-existing REQ-PWR-* group already used by the legacy
powerstate.c satellite (untouched here; its own REPLACE work is Satellite
Rework v0.79.0).

Adds include/rcp/ep_wakeup.h + src/ep_wakeup.c as the dedicated
power-management endpoint (ep_type=0x01): wake-source pin
configuration/monitoring, the fixed SleepCMD (0xA5) request kind encoded
entirely outside the general request_type taxonomy, and dedicated
WakeUp-message emission in place of the generic per-endpoint
trigger-signal mechanism. SleepCMD entry requests are gated by power.h's
rcp_pwrmode_check_entry(), the direct protocol-core replacement for
powerstate.c's ad-hoc Active/Sleeping/BusOff model.

tests/test_power.c (32 cases) and tests/test_ep_wakeup.c (28 cases) pass,
alongside the full existing ctest suite (66/66, ASan/UBSan-clean).

Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit ddfa6b4 into main Jul 28, 2026
20 checks passed
@SoundMatt
SoundMatt deleted the feat/v0.75.0-wakeup-power-modes branch July 28, 2026 22:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant