-
Notifications
You must be signed in to change notification settings - Fork 6
Jargon
-
root
password: a strong password that secures the system from tampering. Also referred to as the "update" or "system" password. -
backup
key: a BIP-39 passphrase that maps to the AES-256 key used to encrypt backups. The technical application of this key is to encrypt the FPGA gateware; it is the only way to recover an eFuse locked device. -
unlock
PIN: a weak password that is routinely polled to confirm user presence. Its disclosure will reveal anything in the.System
Basis, such as wifi setup, time zone, and any credentials that were stored in the default basis. -
Basis
passwords: a "name + password" combo used to unlock a secret basis. Secret data, such as other passwords, TOTP tokens, U2F tokens, should be stored in a secret Basis. See docs on the PDDB for more information.
To understand the code and documentation in the Precursor repositories on GitHub, it helps to be familiar with the following terms:
-
EC, short for Embedded Controller, refers to the combination of the iCE40 FPGA and its gateware configured with a Litex VexRISC-V "minimal" RV32I core and an SPI controller from PicoRV32. EC denotes the place where firmware for Precursor's untrusted domain runs. The EC manages battery charging and the wifi radio, among other things. See Guided Tour of the Precursor Motherboard.
-
SoC refers to the combination of the Spartan 7 FPGA and its gateware configured with a VexRISC-V RV32IMAC core and crypto accelerators. SoC denotes the place where firmware for Precursor's trusted domain runs. The SoC manages keyboard input and display output, and it runs OS and application code. See What is a System-on-Chip (SoC), and Why Do We Care if They are Open Source?
-
FPC is short for Flexible Printed Circuit. Precursor uses three flexible printed circuits inside the case as cables to connect components. Two FPCs connect the display and backlight to the mainboard. Another FPC, sometimes referred to as "the FPC", connects the mainboard to GPIO breakout pads, battery pads (some mainboard revisions use other battery connectors), vibration motor, and speaker. The JTAG debug cable is also an FPC.
-
EVT, DVT, and PVT are short for Engineering Validation Test, Design Validation Test, and Production Validation Test. EVT, DVT, and PVT are often used in the engineering and manufacturing of consumer electronics products to denote iterative phases of prototyping. "Test" refers to making a design, producing a small batch of prototypes according to that design, evaluating the prototypes, then using what was learned to create an improved design revision.
The important thing to understand when looking at Precursor design files on GitHub, is that files labeled EVT or DVT are for early design revisions. The final, or nearly final, revisions will be labeled PVT. Changes can still happen in the PVT phase for reasons like correcting problems with manufacturing yield. Photographs of PVT prototypes may not match the final PVT design revision that ships to campaign backers. In particular, the final production run will have a custom battery pack.
originally vendored from https://github.com/samblenny/pre_docs/blob/main/README.md