[PATCH v5 3/4] drivers: firmware: xilinx: Add sysfs interface
From: Jolly Shah <hidden>
Date: 2018-03-07 22:03:54
Also in:
linux-devicetree, lkml
Hi Sudeep,
-----Original Message----- From: Sudeep Holla [mailto:sudeep.holla at arm.com] Sent: Thursday, March 01, 2018 6:44 AM To: Jolly Shah <redacted> Cc: ard.biesheuvel at linaro.org; mingo at kernel.org; gregkh at linuxfoundation.org; matt at codeblueprint.co.uk; hkallweit1 at gmail.com; keescook at chromium.org; dmitry.torokhov at gmail.com; michal.simek at xilinx.com; robh+dt at kernel.org; mark.rutland at arm.com; Sudeep Holla [off-list ref]; Rajan Vaja [off-list ref]; linux-arm-kernel at lists.infradead.org; linux- kernel at vger.kernel.org; devicetree at vger.kernel.org; Jolly Shah [off-list ref] Subject: Re: [PATCH v5 3/4] drivers: firmware: xilinx: Add sysfs interface On 20/02/18 19:21, Jolly Shah wrote:quoted
Add Firmware-ggs sysfs interface which provides read/write interface to global storage registers. Signed-off-by: Jolly Shah <redacted> Signed-off-by: Rajan Vaja <redacted> --- .../ABI/stable/sysfs-driver-zynqmp-firmware | 50 ++++ drivers/firmware/xilinx/zynqmp/Makefile | 2 +- drivers/firmware/xilinx/zynqmp/firmware-ggs.c | 297+++++++++++++++++++++quoted
drivers/firmware/xilinx/zynqmp/firmware.c | 13 + include/linux/firmware/xilinx/zynqmp/firmware.h | 2 + 5 files changed, 363 insertions(+), 1 deletion(-) create mode 100644 Documentation/ABI/stable/sysfs-driver-zynqmp-firmware create mode 100644 drivers/firmware/xilinx/zynqmp/firmware-ggs.cdiff --git a/Documentation/ABI/stable/sysfs-driver-zynqmp-firmwareb/Documentation/ABI/stable/sysfs-driver-zynqmp-firmware new file mode 100644 index 0000000..b04727a--- /dev/null +++ b/Documentation/ABI/stable/sysfs-driver-zynqmp-firmware@@ -0,0 +1,50 @@ +What: /sys/devices/platform/zynqmp-firmware/ggs> +Date:January 2018quoted
+KernelVersion: 4.15.0 +Contact: "Jolly Shah" [off-list ref] +Description: + Read/Write PMU global general storage register value, + GLOBAL_GEN_STORAGE{0:3}. + Global general storage register that can be used + by system to pass information between masters. +What kind of information ? Is there any semantics for that ? Why does EEMI lack APIs for that if it's critical, giving access to such information to userspace may not be good idea.
These are for general use. Information being passed can be application specific. Sysfs call underneath maps to EEMI ioctl call to read/write these registers.
quoted
+ The register is reset during system or power-on + resets. Three registers are used by the FSBL and + other Xilinx software products: GLOBAL_GEN_STORAGE{4:6}. +FSBL ? For what is it used ?
There are total 8 such registers. 4 are reserved for customer application. Other 4 are being used by Xilinx sw products like FSBL. FSBL is using it to pass handoff information to other master.
quoted
+ Usage: + # cat /sys/.../zynqmp-firmware/ggs0 + # echo <mask> <value> > /sys/.../zynqmp-firmware/ggs0 + + Example: + # cat /sys/.../zynqmp-firmware/ggs0 + # echo 0xFFFFFFFF 0x1234ABCD > /sys/.../zynqmp-firmware/ggs0quoted
+ +Users: Xilinx + +What: /sys/devices/platform/zynqmp-firmware/pggs* +Date: January 2018 +KernelVersion: 4.15.0 +Contact: "Jolly Shah" [off-list ref] +Description: + Read/Write PMU persistent global general storage register + value, PERS_GLOB_GEN_STORAGE{0:3}. + Persistent global general storage register that + can be used by system to pass information between + masters. +Dittoquoted
+ This register is only reset by the power-on reset + and maintains its value through a system reset. + Four registers are used by the FSBL and other Xilinx + software products: PERS_GLOB_GEN_STORAGE{4:7}. + Register is reset only by a POR reset. +Ditto -- Regards, Sudeep