mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
9fd379e929
Allwinner has electric fuses (efuse) on their line of chips. This driver reads those fuses, seeds the kernel entropy and exports them as a sysfs node. These fuses are most likely to be programmed at the factory, encoding things like Chip ID, some sort of serial number, etc. and appear to be reasonably unique. While in theory, these should be writeable by the user, it will probably be inconvenient to do so. Allwinner recommends that a certain input pin, labeled 'efuse_vddq', be connected to GND. To write these fuses however, a 2.5 V programming voltage needs to be applied to this pin. Even so, they can still be used to generate a board-unique mac from, board unique RSA key and seed the kernel RNG. On sun7i additional storage is available, this is initially used for an UEFI BOOT key, Secure JTAG key, HDMI-HDCP key and vendor specific keys. Currently supported are the following known chips: Allwinner sun4i (A10) Allwinner sun5i (A10s, A13) Allwinner sun7i (A20) Signed-off-by: Oliver Schinagl <oliver@schinagl.nl> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
23 lines
1.0 KiB
Plaintext
23 lines
1.0 KiB
Plaintext
What: /sys/devices/*/<our-device>/eeprom
|
|
Date: August 2013
|
|
Contact: Oliver Schinagl <oliver@schinagl.nl>
|
|
Description: read-only access to the SID (Security-ID) on current
|
|
A-series SoC's from Allwinner. Currently supports A10, A10s, A13
|
|
and A20 CPU's. The earlier A1x series of SoCs exports 16 bytes,
|
|
whereas the newer A20 SoC exposes 512 bytes split into sections.
|
|
Besides the 16 bytes of SID, there's also an SJTAG area,
|
|
HDMI-HDCP key and some custom keys. Below a quick overview, for
|
|
details see the user manual:
|
|
0x000 128 bit root-key (sun[457]i)
|
|
0x010 128 bit boot-key (sun7i)
|
|
0x020 64 bit security-jtag-key (sun7i)
|
|
0x028 16 bit key configuration (sun7i)
|
|
0x02b 16 bit custom-vendor-key (sun7i)
|
|
0x02c 320 bit low general key (sun7i)
|
|
0x040 32 bit read-control access (sun7i)
|
|
0x064 224 bit low general key (sun7i)
|
|
0x080 2304 bit HDCP-key (sun7i)
|
|
0x1a0 768 bit high general key (sun7i)
|
|
Users: any user space application which wants to read the SID on
|
|
Allwinner's A-series of CPU's.
|