summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h
diff options
context:
space:
mode:
authorThomas Haemmerle <thomas.haemmerle@wolfvision.net>2019-10-25 12:55:41 +0000
committerSascha Hauer <s.hauer@pengutronix.de>2019-10-28 11:58:37 +0100
commitaf81b650450ff6996624047ffaa121bfe99a5f03 (patch)
tree5fcb03bc195c9a0bd9c8f513df9762b1a2b06fa7 /arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h
parent22d2f676578e0051d78f5b37b7876473083b2dea (diff)
downloadbarebox-af81b650450ff6996624047ffaa121bfe99a5f03.tar.gz
barebox-af81b650450ff6996624047ffaa121bfe99a5f03.tar.xz
firmware-zynqmp: extend driver with fpga relavant functions
Port functions from xlnx-linux to get FPGA status and invoke bitstream loading. Signed-off-by: Thomas Haemmerle <thomas.haemmerle@wolfvision.net> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h')
-rw-r--r--arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h b/arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h
index 9e7a2e34f7..a04482237d 100644
--- a/arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h
+++ b/arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h
@@ -15,7 +15,17 @@
#ifndef FIRMWARE_ZYNQMP_H_
#define FIRMWARE_ZYNQMP_H_
-#define PAYLOAD_ARG_CNT 4
+#define PAYLOAD_ARG_CNT 4
+
+#define ZYNQMP_PM_VERSION(MAJOR, MINOR) ((MAJOR << 16) | MINOR)
+
+#define ZYNQMP_FPGA_BIT_AUTH_DDR BIT(1)
+#define ZYNQMP_FPGA_BIT_AUTH_OCM BIT(2)
+#define ZYNQMP_FPGA_BIT_ENC_USR_KEY BIT(3)
+#define ZYNQMP_FPGA_BIT_ENC_DEV_KEY BIT(4)
+#define ZYNQMP_FPGA_BIT_ONLY_BIN BIT(5)
+
+#define ZYNQMP_PCAP_STATUS_FPGA_DONE BIT(3)
enum pm_ioctl_id {
IOCTL_SET_PLL_FRAC_MODE = 8,
@@ -61,6 +71,8 @@ struct zynqmp_eemi_ops {
int (*clock_setparent)(u32 clock_id, u32 parent_id);
int (*clock_getparent)(u32 clock_id, u32 *parent_id);
int (*ioctl)(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, u32 *out);
+ int (*fpga_getstatus)(u32 *status);
+ int (*fpga_load)(u64 address, u32 size, u32 flags);
};
const struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void);