packages/chip/docs/security/usb-pd-spec.md
Status: pre-silicon / pre-board specification. No USB controller is
selected. v0 explicitly does not claim USB-IF certification, the USB
Type-C logo, or USB Power Delivery compliance. This document records the
selection criteria and the explicit no-cert claim required by the
security-usb-storage-update-fail-closed-work-order evidence policy.
release-claims_forbidden_until in
docs/project/product-architecture-security-radio-sensors-optimization-2026-05-17.yaml
remains satisfied. Any change requires a separate work order with a
USB-IF pre-scan or full certification record archived under
docs/manufacturing/evidence/usb-storage-update/usb-if/.| Criterion | Requirement | Rationale |
|---|---|---|
| Spec compliance | USB 2.0 high-speed (480 Mb/s) device class; suspend/resume; remote-wake optional. | Required by Android USB HAL for ADB/fastboot/MTP. |
| PHY | UTMI+ level 3 or ULPI; vendor-supplied; integrated termination calibration. | Avoids analog PHY design risk in v0. |
| Protocol stack | Linux Gadget Framework (drivers/usb/gadget) compatibility; ConfigFS. | Mainline support for f_fs (fastboot), f_mtp, f_adb. |
| Endpoints | >= 16 IN / 16 OUT endpoints, including >= 4 bulk pairs. | ADB + fastboot + MTP + future. |
| DMA | Scatter-gather DMA with bus-master access only to an isolated DMA region (see IOMMU policy in arch/interconnect.md). | Limits a malicious-host blast radius. |
| Reset behavior | Bus reset must not affect any non-USB clock/power domain. | Safe under hostile-host attach. |
| Charger detect | BC 1.2 DCP / CDP / SDP detect. | Battery management policy depends on this. |
| Open IP option | Prefer a controller with publicly available register documentation and open Linux driver. | Reproducibility; audit. |
| Licensing | No NDA-only driver; if vendor IP is closed, archive the binary blob hash in release manifest. | docs/risks/risk-register.md "Local fork drift" applies. |
| Item | v0 policy |
|---|---|
| Connector | USB Type-C receptacle (mechanical only — no USB-C logo claim). |
| Orientation detect | CC1/CC2 sensed by dedicated CC controller (external chip — see §4). |
| Data role | UFP (Upstream Facing Port — device only). DRP (dual-role) not supported in v0. |
| Power role | Sink only. Source mode disabled at PCB level (no VBUS source FET). |
| VCONN | Not supplied. Active cables not supported. |
| Try.SNK behavior | Not applicable — fixed UFP. |
| Audio Accessory Mode | Disabled. |
| Debug Accessory Mode | Disabled in production board variant; permitted only on dev-board variant with explicit jumper. |
| Path | Steady | Peak | Protection |
|---|---|---|---|
| VBUS in (sink) | 3 A @ 5 V (BC 1.2 DCP) or PD-negotiated | 3 A | OVP set 6 V (5 V mode) / 14 V (PD); OCP at 3.5 A; eFuse with auto-retry inhibit on persistent fault. |
| VBUS sense ADC | n/a | n/a | Bootloader and OS read with low-pass filter. |
| Internal 5 V rail | per system | per system | Independent of VBUS to allow hot-unplug. |
PCB design must reserve eFuse + TVS placement on the VBUS lane regardless of charger-IC selection.
f_ffs; bound to userspace
adbd.fastbootd mode, it is f_ffs again with userspace fastbootd.avb-a-b-ota.md §7, not by
withholding USB enumeration.threat-model.md mitigations M13, surface S8avb-a-b-ota.md §7 fastboot lock matrixdocs/project/product-architecture-security-radio-sensors-optimization-2026-05-17.yaml
usb_storage_update_stackdocs/risks/risk-register.md "Drop-in flagship pin compatibility",
"Local fork drift"