diff options
author | Thomas Haemmerle <thomas.haemmerle@wolfvision.net> | 2019-10-25 12:55:41 +0000 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-10-28 11:58:37 +0100 |
commit | af81b650450ff6996624047ffaa121bfe99a5f03 (patch) | |
tree | 5fcb03bc195c9a0bd9c8f513df9762b1a2b06fa7 /arch/arm/mach-zynqmp/include/mach/firmware-zynqmp.h | |
parent | 22d2f676578e0051d78f5b37b7876473083b2dea (diff) | |
download | barebox-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.h | 14 |
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); |