ARM: sunxi: Initial support for Allwinner's Security ID fuses
authorOliver Schinagl <oliver@schinagl.nl>
Tue, 3 Sep 2013 10:33:27 +0000 (12:33 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Sep 2013 20:47:36 +0000 (13:47 -0700)
commit9fd379e929a2808208b1d2d4cd9697067e83a242
treee3e7c5c4f7e2b0a3fb82d70f29b43287196cacac
parent269ce62bbc00c4e80bf3ca2aa21823f20625bcf6
ARM: sunxi: Initial support for Allwinner's Security ID fuses

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>
Documentation/ABI/testing/sysfs-driver-sunxi-sid [new file with mode: 0644]
Documentation/devicetree/bindings/misc/allwinner,sunxi-sid.txt [new file with mode: 0644]
drivers/misc/eeprom/Kconfig
drivers/misc/eeprom/Makefile
drivers/misc/eeprom/sunxi_sid.c [new file with mode: 0644]