[U-Boot] [PATCH v3 1/4] rockchip: efuse: add (misc) driver for RK3399 non-secure efuse block

sjg at google.com sjg at google.com
Wed May 24 00:48:17 UTC 2017


This adds a simple driver for reading the efuse block of the RK3399.
It should be easy enough to add drivers for other devices (e.g. the
RK3328, RK3368, etc.) by passing the device details via driver_data.

Unlike the kernel driver (using the nvmem subsystem), we don't expose
the efuse as multiple named cells, but rather as a linear memory that
can be read using misc_read(...).

The primary use case (as of today) is the generation of a 'serial#'
(and a 'cpuid#') environment variable for the RK3399-Q7 (Puma)
system-on-module.

Note that this adds a debug-only (i.e. only if DEBUG is defined)
command 'rk3399_dump_efuses' that dumps the efuse block's content.
N.B.: The name 'rk3399_dump_efuses' was intentionally chosen to
      include a SoC-name (together with a comment in the function) to
      remind whoever adds support for additional SoCs that this
      function currently makes assumptions regarding the size of the
      fuse-box based on the RK3399. The hope is that the function is
      adjusted to reflect any changes resulting from generalising the
      driver for multiple SoCs and is then renamed.

Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>

Reviewed-by: Simon Glass <sjg at chromium.org>

---

Changes in v3:
- uses uclass_get_device_by_driver() to ensure we don't pick up the wrong
  misc-device

Changes in v2: None

 drivers/misc/Kconfig          |  14 ++++
 drivers/misc/Makefile         |   1 +
 drivers/misc/rockchip-efuse.c | 162 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 177 insertions(+)
 create mode 100644 drivers/misc/rockchip-efuse.c

Applied to u-boot-rockchip, thanks!


More information about the U-Boot mailing list