Introduction


This page gives an overview of the zynqmp_nvmem driver which is available as part of the ZynqMP Linux distribution.
Paths, files, links and documentation on this page are given relative to the Linux kernel source tree.

HW IP Features

  • SoC revision information

Features supported in driver

  • SoC revision information

Missing Features, Known Issues and Limitations

  • None.

Kernel Configuration


Device Drivers ---> NVMEM Support ---> <*> Xilinx ZYNQMP SoC ID suppor
nvmem.png

Devicetree
nvmem_firmware {
                compatible = "xlnx,zynqmp-nvmem-fw";
                #address-cells = <1>;
                #size-cells = <1>;
 
                soc_revision: soc_revision@0 {
                        reg = <0x0 0x4>;
                };
        };
 

Test procedure

Once booted into Linux, run the below command.
hexdump -v /sys/bus/nvmem/devices/zynqmp-nvmem0/nvmem

Expected Output

########## For Silicon 1.0 ############
root@plnx_aarch64:~# hexdump -v /sys/bus/nvmem/devices/zynqmp-nvmem0/nvmem
0000000 0000
0000001
########## For Silicon 2.0 ############
root@plnx_aarch64:~# hexdump -v /sys/bus/nvmem/devices/zynqmp-nvmem0/nvmem
0000000 0001
0000001
########## For Silicon 3.0 ############
root@plnx_aarch64:~# hexdump -v /sys/bus/nvmem/devices/zynqmp-nvmem0/nvmem
0000000 0002
0000001
########## For Silicon 4.0 ############
root@plnx_aarch64:~# hexdump -v /sys/bus/nvmem/devices/zynqmp-nvmem0/nvmem
0000000 0003
0000001

Mainline Status

  • This driver is not available at Mainline.

Change Log

2017.1
Summary:
  • nvmem: zynqmp: Added zynqmp nvmem firmware driver
  • nvmem: zynqmp: Fix the size to one byte to read the correct value from the nvmem sysfs entry.
Commits:
  • c808007nvmem: zynqmp: Added zynqmp nvmem firmware driver
  • 3494c67 nvmem: zynqmp: Fix the size to one byte to read the correct value from the nvmem sysfs entry.

2017.2
  • None

2017.3
Summary:
  • zynqmp: Use new firmware.h instead of pm.h
Commits:
  • 5e81ba5zynqmp: Use new firmware.h instead of pm.h

2017.4
  • None

2018.1
Summary:
  • soc: zynqmp: Define EEMI ops structure
  • soc: zynqmp: Use new firmware APIs

Commits
  • 31c2a5esoc: zynqmp: Define EEMI ops structure
  • 0b7483csoc: zynqmp: Use new firmware APIs

2018.2
  • None


Related Links

http://www.wiki.xilinx.com/Linux+Drivers
https://github.com/Xilinx/linux-xlnx/blob/master/drivers/nvmem/zynqmp_nvmem.c