Watch
1
0
Fork
You've already forked SouveraineOS
0
Commit graph SouveraineOS/docs/tasks/44-fingerprint-fpc1020.md
Author SHA1 Message Date
Fimeg
bde961c6f2 saf: one spine — device, state, and work under the index
PAF becomes saf/device (history kept), STATE.md dissolves
into saf/state.md with the dated era archived, the substrate
SAF moves up from souveraine, and every agreement points at
saf/INDEX.md and nowhere else. one map, nothing to remember
2026-08-18 09:47:30 -04:00
Fimeg
a1c184d355 docs: define temporary FPC Polkit bridge 2026-08-10 20:46:28 -04:00
Fimeg
9b54eb41eb docs: set the shared-state authority spine 2026-08-10 20:09:54 -04:00
Fimeg
34cc8e97f9 task 44: there is no API to design
fprintd, gazed, sailfish-fpd and biometryd are the same interface four
times. Take that shape and face and finger become one surface with two
backends. Mapped every call onto the recovered TA commands; the gaps
are persistence and the auth token, both already named.
2026-08-09 09:58:15 -04:00
Fimeg
d09978df14 task 44: the factor is a daemon, and the listener is not its job
Prior art checked: sailfish-fpd-community needs hybris, wrobelda's
libfprint branch is the only match-on-chip-over-QSEE example, and
nobody has done FPC over QSEE natively. One listener receiver per
device means the supplicant is a separate owner from the fp daemon.
2026-08-09 09:54:49 -04:00
Fimeg
5134b4e19f task 44: the command protocol is recovered 2026-08-09 09:21:58 -04:00
Fimeg
499dc5e159 task-44: the assert reaches evdev, and the 1444 run is explained
KEY_WAKEUP lands on event4 at the same timestamp as the hardware edge, so the
existing XF86WakeUp bind can already see it. arm generates its own edge, which
means re-arm-on-interrupt feeds itself - that was the 1444 events, not the
sensor. wakeup_enable takes enable/disable, not 1.
2026-08-01 19:27:16 -04:00
Fimeg
be4ceedbd1 task-44: the TA clears the latch, and the sensor does not free-run
fpctzappfingerprint loads from cold boot and answers; init/idle/arm all 0x0.
gpio121 goes idle-low after the sequence - the latch that killed piece 1 is
cleared, so a rising edge is possible for the first time. init accounts for 68
of the edges; armed and untouched is a flat 0 over 15s, so the 1444-event run
was the re-arm loop. Open: whether a finger raises an edge.

Reconcile the file with the code it now contradicts (the sysfs is shipped on
purpose) and register arbitrary signed-TA loading as a new Tier-0 primitive.
2026-08-01 19:01:42 -04:00
Fimeg
c614b3a83e task-44: piece 1 built; two corrections to the task's own premises
The staged vendor driver is the fpc_fingerprint variant, which blueline does
not build (b1c1_defconfig sets CONFIG_FPR_FPC=y, the other copy). The shipping
one has an empty vreg_conf[] and manages no regulators at all.

The TZ pointer was wrong: secure_load_tz_frontier.md is superseded and covers
hyp-assign/XPU, not TA loading. tz_listener_archaeology.md plus the four
qseecom commits are the record, and they already show TZ answering us -
version query succeeds, listener 0x5000 registers live. What is missing is
app loading, not the channel.

Pins confirmed against this unit's DTBO; the FPC1075 caution is resolved.
2026-08-01 09:16:46 -04:00
Fimeg
1b7a14e4c2 tasks: archive what shipped, say what is left, add fingerprint/haptics/camera
13 (grip) and 35 (sessiond deadlock) are done; both moved to archive/ with
closing notes. Index regrouped by state with a one-line what's-left per task
instead of a flat table of history; the archive prose moved to archive/README.

Corrected stale statuses: 29 shipped (read-only pending polkit), 31's component
and squeeze are live and only its contents are open, 42's layer 1 is built, 34
no longer blocks grip, 43 was numbered 42.

New: 44 fingerprint (DT + shim sat unused in staging/ since 07-07), 45 haptics
(settle which chip drives the motor before porting cs40l2x), 46 camera (drivers
and CAMSS are already in-tree; blueline's DT has no camera node).
2026-07-28 18:20:23 -04:00