feat: v0.75.0 -- Wakeup control endpoint + power modes - #93
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
include/rcp/power.h+src/power.c: the RC Server power-modestate 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(notserver.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-namingsplit.
include/rcp/ep_wakeup.h+src/ep_wakeup.c: the dedicatedpower-management endpoint (
ep_type=0x01) -- wake-source pinconfiguration/monitoring, the fixed
SleepCMD(0xA5) request kindencoded entirely outside the general request_type taxonomy, and
dedicated WakeUp-message emission in place of the generic per-endpoint
trigger-signal mechanism.
(
rcp_pwrmode_check_entry()), the direct protocol-core replacement forpowerstate.c's ad-hoc Active/Sleeping/BusOff model (that legacysatellite itself is untouched -- its own client-side REPLACE work is
Satellite Rework v0.79.0).
REQ-PWRMODE-*(13) andREQ-WAKEUP-*(16) requirements added to.fusa-reqs.json, verified not to collide with the pre-existingREQ-PWR-*group (powerstate.c, legacy v0.13.0).ROADMAP.mdmilestone 75 checked off with a "Done (v0.75.0)" writeup.Test plan
cmake --build(ASan/UBSan,-Wall -Wextra -Wpedantic ...) -- clean, 0 warningsctest-- 66/66 passing, including newrcp_power(32 cases) andrcp_ep_wakeup(28 cases) suitescfusa:req/cfusa:testtags cross-checked 1:1 against.fusa-reqs.jsonby hand (no localcfusabinary available in thisenvironment -- CI's
cfusa-check/cfusa-lintjobs are theauthoritative gate)
.fusa-hara.json's pre-existing HARA002/HARA003 gap (10hazards missing risk rating/safetyGoals) is unchanged by this PR