[PATCH v3 0/7] Add eFuse access for ZynqMP

lukas.funke-oss at weidmueller.com lukas.funke-oss at weidmueller.com
Tue Jun 4 16:27:34 CEST 2024


From: Lukas Funke <lukas.funke at weidmueller.com>


This series adds a driver to read and write ZynqMP eFuses [1]. The
driver can be accessed by the 'fuse read' and 'fuse write' commands

Example:

=> fuse read 0 0xc 3
Reading bank 0:

Word 0x0000000c: 3cb16685 013af244 40000000

Note: Accessing eFuses requires eFuse access to be enabled in the
underlying PMU firmware.

Use cases are:
 - Reading/writing user specific eFuses to enable device specific
   implementations
 - Revoking SPK IDs
 - Reading SoC version/DNA

[1] https://docs.amd.com/r/en-US/ug1085-zynq-ultrascale-trm/eFUSE


Changes in v3:
- Align ZynqMP eFuse driver with Linux kernel
- Adapt versal, versal-net and zynqmp to use common chip-id function
- Enable CMD_FUSE and ZYNQMP_EFUSE for zynqmp_virt and zynqmp_kria defconfig
- Use 'dev_err' instead 'log_msg_ret' if possible

Changes in v2:
- Drop vendor specific fuse cmd, use existing fuse cmd
- Minor code refactoring (reverse x-mas tree)

Lukas Funke (7):
  configs: zynqmp_kria: Enable CMD_FUSE and ZYNQMP_EFUSE
  configs: zynqmp_virt: Enable CMD_FUSE and ZYNQMP_EFUSE
  soc: xilinx: versal: Use zynqmp_pm_get_chipid() to get chip revision
  soc: xilinx: versal-net: Use zynqmp_pm_get_chipid() to get chip
    revision
  soc: xilinx: zynqmp: Use zynqmp_pm_get_chipid() to get chip revision
  firmware: zynqmp: Add support to access efuses
  drivers: misc: Add driver to access ZynqMP efuses

 configs/xilinx_zynqmp_kria_defconfig |   2 +
 configs/xilinx_zynqmp_virt_defconfig |   2 +
 drivers/firmware/firmware-zynqmp.c   |  31 +++
 drivers/misc/Kconfig                 |   8 +
 drivers/misc/Makefile                |   1 +
 drivers/misc/zynqmp_efuse.c          | 360 +++++++++++++++++++++++++++
 drivers/soc/soc_xilinx_versal.c      |  13 +-
 drivers/soc/soc_xilinx_versal_net.c  |  13 +-
 drivers/soc/soc_xilinx_zynqmp.c      |  21 +-
 include/zynqmp_firmware.h            |   2 +
 10 files changed, 427 insertions(+), 26 deletions(-)
 create mode 100644 drivers/misc/zynqmp_efuse.c

-- 
2.30.2



More information about the U-Boot mailing list