fpga_manager_arria10.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. * Copyright (C) 2017 Intel Corporation <www.intel.com>
  3. * All rights reserved.
  4. *
  5. * SPDX-License-Identifier: GPL-2.0
  6. */
  7. #ifndef _FPGA_MANAGER_ARRIA10_H_
  8. #define _FPGA_MANAGER_ARRIA10_H_
  9. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CRC_ERROR_SET_MSK BIT(0)
  10. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_EARLY_USERMODE_SET_MSK BIT(1)
  11. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_USERMODE_SET_MSK BIT(2)
  12. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_INITDONE_OE_SET_MSK BIT(3)
  13. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NSTATUS_PIN_SET_MSK BIT(4)
  14. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NSTATUS_OE_SET_MSK BIT(5)
  15. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CONDONE_PIN_SET_MSK BIT(6)
  16. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CONDONE_OE_SET_MSK BIT(7)
  17. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CVP_CONF_DONE_SET_MSK BIT(8)
  18. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_PR_READY_SET_MSK BIT(9)
  19. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_PR_DONE_SET_MSK BIT(10)
  20. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_PR_ERROR_SET_MSK BIT(11)
  21. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NCONFIG_PIN_SET_MSK BIT(12)
  22. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NCEO_OE_SET_MSK BIT(13)
  23. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL0_SET_MSK BIT(16)
  24. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL1_SET_MSK BIT(17)
  25. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL2_SET_MSK BIT(18)
  26. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL_SET_MSD (\
  27. ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL0_SET_MSK |\
  28. ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL1_SET_MSK |\
  29. ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL2_SET_MSK)
  30. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_IMGCFG_FIFOEMPTY_SET_MSK BIT(24)
  31. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_IMGCFG_FIFOFULL_SET_MSK BIT(25)
  32. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_JTAGM_SET_MSK BIT(28)
  33. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_EMR_SET_MSK BIT(29)
  34. #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL0_LSB 16
  35. #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NENABLE_NCONFIG_SET_MSK BIT(0)
  36. #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NENABLE_NSTATUS_SET_MSK BIT(1)
  37. #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NENABLE_CONDONE_SET_MSK BIT(2)
  38. #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NCONFIG_SET_MSK BIT(8)
  39. #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NSTATUS_OE_SET_MSK BIT(16)
  40. #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_CONDONE_OE_SET_MSK BIT(24)
  41. #define ALT_FPGAMGR_IMGCFG_CTL_01_S2F_NENABLE_CONFIG_SET_MSK BIT(0)
  42. #define ALT_FPGAMGR_IMGCFG_CTL_01_S2F_PR_REQUEST_SET_MSK BIT(16)
  43. #define ALT_FPGAMGR_IMGCFG_CTL_01_S2F_NCE_SET_MSK BIT(24)
  44. #define ALT_FPGAMGR_IMGCFG_CTL_02_EN_CFG_CTRL_SET_MSK BIT(0)
  45. #define ALT_FPGAMGR_IMGCFG_CTL_02_EN_CFG_DATA_SET_MSK BIT(8)
  46. #define ALT_FPGAMGR_IMGCFG_CTL_02_CDRATIO_SET_MSK 0x00030000
  47. #define ALT_FPGAMGR_IMGCFG_CTL_02_CFGWIDTH_SET_MSK BIT(24)
  48. #define ALT_FPGAMGR_IMGCFG_CTL_02_CDRATIO_LSB 16
  49. #ifndef __ASSEMBLY__
  50. struct socfpga_fpga_manager {
  51. u32 _pad_0x0_0x7[2];
  52. u32 dclkcnt;
  53. u32 dclkstat;
  54. u32 gpo;
  55. u32 gpi;
  56. u32 misci;
  57. u32 _pad_0x1c_0x2f[5];
  58. u32 emr_data0;
  59. u32 emr_data1;
  60. u32 emr_data2;
  61. u32 emr_data3;
  62. u32 emr_data4;
  63. u32 emr_data5;
  64. u32 emr_valid;
  65. u32 emr_en;
  66. u32 jtag_config;
  67. u32 jtag_status;
  68. u32 jtag_kick;
  69. u32 _pad_0x5c_0x5f;
  70. u32 jtag_data_w;
  71. u32 jtag_data_r;
  72. u32 _pad_0x68_0x6f[2];
  73. u32 imgcfg_ctrl_00;
  74. u32 imgcfg_ctrl_01;
  75. u32 imgcfg_ctrl_02;
  76. u32 _pad_0x7c_0x7f;
  77. u32 imgcfg_stat;
  78. u32 intr_masked_status;
  79. u32 intr_mask;
  80. u32 intr_polarity;
  81. u32 dma_config;
  82. u32 imgcfg_fifo_status;
  83. };
  84. /* Functions */
  85. int fpgamgr_program_init(u32 * rbf_data, size_t rbf_size);
  86. int fpgamgr_program_finish(void);
  87. int is_fpgamgr_user_mode(void);
  88. int fpgamgr_wait_early_user_mode(void);
  89. #endif /* __ASSEMBLY__ */
  90. #endif /* _FPGA_MANAGER_ARRIA10_H_ */