Repository navigation
arm64: dts: apple: t6050-j714s: Add the Touch ID sensor (and read its factory seal) - #1587
Merged
Merged
Conversation
Contributor
Author
|
The |
DjDeveloperr
force-pushed
the
m5-parity/t6050-touchid
branch
from
November 11, 2026 21:07
6a2fc4a to
88c2d47
Compare
The J714s ADT puts the Mesa sensor J616s carries (sensor-id 0x3356) on spi2 at 0x505108000: 8 MHz, chip select 0, power on NUB GPIO 21 (function-mesa_pwr) and data ready on AP GPIO 138. apple_sep already has the T6050 profile for it; the device tree did not describe the sensor, so Touch ID never came up. Make the inventory's nub-gpio0 a GPIO and interrupt controller, as on T604x, with its power state from the always-on PMGR (ADT NUB_GPIO, 0x288300088). On the J714s enable it, spi2 and its power state, and add the fingerprint node with the J616s timing and SPI mode. spi2 runs from the 24 MHz reference (ADT clock-ids 451), as on T604x; the PMGR clock provider it names has no driver. The board's AP GPIO bank exposes only the pins its nodes name (pin 112 takes an SError when read). Expose 138 as well: while it was reserved, gpiolib refused the data-ready interrupt's mapping and the sensor had no interrupt. Signed-off-by: Diljit Singh <hey@djdev.me>
On the MacBook Pro M5 Pro (J714s) the factory seal on the Hardware
volume carries its manifest objects in a SEQUENCE under MANB, not the
SET that image manifests use, and it names a record kind once per
record of that kind: this Mac has two scrt records, so scrt appears
twice. Every object and property is otherwise as before. The parser
refused the seal ("malformed MANB", then "duplicate or malformed
manifest object"), so neither the calibration nor the sensor's root key
could be rebuilt and Touch ID could not start.
Accept a SEQUENCE. In it, a repeated object name keeps no properties,
so nothing (a digest, the serial number) is ever admitted from an
ambiguous object; a duplicate in a SET is still refused. The seal is
still embedded unchanged in the rebuilt record, so the enclave
verifies the factory bytes as before.
Signed-off-by: Diljit Singh <hey@djdev.me>
DjDeveloperr
force-pushed
the
m5-parity/t6050-touchid
branch
from
November 11, 2026 21:24
88c2d47 to
2521118
Compare
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.
Touch ID on the MacBook Pro 14" M5 Pro (J714s). The T6050 SEP profile was already in integration (#1325). Two gaps kept the sensor from coming up:
function-mesa_pwr), data ready on AP GPIO 138.nub_gpio0is now a GPIO and interrupt controller, as on T604x. Its power state comes from the always-on PMGR (ADT NUB_GPIO, 0x288300088).fingerprint@0is added with J616s's timing and SPI mode.gpio-reserved-ranges, next to the pins J714s: sound through the AOP (speakers and headphone jack) #1554 exposes. While it was reserved, gpiolib refused the mapping (didn't like hwirq-0x8a ... (rc=-6)) and the sensor had no interrupt. Pin 112 and everything else stay reserved.clkref. The PMGR clock provider it named has no driver.aurora-touchid-setup. It refused this Mac's factory seal, so it couldn't rebuild the calibration and the sensor root key.scrt).Validation on the J714s
Rebased onto integration/aurora e3fb611 (after #1554). With phandles kept symbolic, the J714s DTB differs from the base only by the Touch ID nodes, spi2 and its power state, nub-gpio0, and pin 138.
The kernel was 7.3.0-m5-intg2. A chainloaded lab boot used a DTB built from this branch: the default DTB plus exactly these nodes.
apple-sepandspi-applecame from integration cdd7ccf. SEP ran as the working machines run it:xart_writes=1 provision_keybag=1, the platform's guard (level 1).apple-gpio-pinctrl. The sensor binds at 8 MHz, mode 2, with hardware CS timing 20 ns. The SEP has 12 endpoints.aurora-touchid-setuprebuiltmesacal-j714s.binandmsrk-j714s.binfrom the factory records; the second run reports "identical to the rebuild".verify-no-match).tests/test_touchid_setup.pypasses 50/50; the new cases fail on the old parser.Capture currently polls: the driver logs "no data-ready interrupt" even with the node's interrupt described. That's a follow-up; enrol and match work either way.
SEP state written in the validation runs
/var/lib/aurora-sep*, plus fprintd's records.🤖 Generated with Claude Code