ps7_init_gpl.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /******************************************************************************
  2. *
  3. * (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved.
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. *
  7. *
  8. *******************************************************************************/
  9. /****************************************************************************/
  10. /**
  11. *
  12. * @file ps7_init.h
  13. *
  14. * This file can be included in FSBL code
  15. * to get prototype of ps7_init() function
  16. * and error codes
  17. *
  18. *****************************************************************************/
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. //typedef unsigned int u32;
  23. /** do we need to make this name more unique ? **/
  24. //extern u32 ps7_init_data[];
  25. extern unsigned long * ps7_ddr_init_data;
  26. extern unsigned long * ps7_mio_init_data;
  27. extern unsigned long * ps7_pll_init_data;
  28. extern unsigned long * ps7_clock_init_data;
  29. extern unsigned long * ps7_peripherals_init_data;
  30. #define OPCODE_EXIT 0U
  31. #define OPCODE_CLEAR 1U
  32. #define OPCODE_WRITE 2U
  33. #define OPCODE_MASKWRITE 3U
  34. #define OPCODE_MASKPOLL 4U
  35. #define OPCODE_MASKDELAY 5U
  36. #define NEW_PS7_ERR_CODE 1
  37. /* Encode number of arguments in last nibble */
  38. #define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 )
  39. #define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr
  40. #define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val
  41. #define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val
  42. #define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask
  43. #define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask
  44. /* Returns codes of PS7_Init */
  45. #define PS7_INIT_SUCCESS (0) // 0 is success in good old C
  46. #define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now
  47. #define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out
  48. #define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init
  49. #define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit
  50. #define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init
  51. /* Silicon Versions */
  52. #define PCW_SILICON_VERSION_1 0
  53. #define PCW_SILICON_VERSION_2 1
  54. #define PCW_SILICON_VERSION_3 2
  55. /* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */
  56. #define PS7_POST_CONFIG
  57. /* Freq of all peripherals */
  58. #define APU_FREQ 666666687
  59. #define DDR_FREQ 533333374
  60. #define DCI_FREQ 10158731
  61. #define QSPI_FREQ 200000000
  62. #define SMC_FREQ 10000000
  63. #define ENET0_FREQ 125000000
  64. #define ENET1_FREQ 10000000
  65. #define USB0_FREQ 60000000
  66. #define USB1_FREQ 60000000
  67. #define SDIO_FREQ 50000000
  68. #define UART_FREQ 50000000
  69. #define SPI_FREQ 10000000
  70. #define I2C_FREQ 111111115
  71. #define WDT_FREQ 111111115
  72. #define TTC_FREQ 50000000
  73. #define CAN_FREQ 10000000
  74. #define PCAP_FREQ 200000000
  75. #define TPIU_FREQ 200000000
  76. #define FPGA0_FREQ 100000000
  77. #define FPGA1_FREQ 100000000
  78. #define FPGA2_FREQ 33333336
  79. #define FPGA3_FREQ 50000000
  80. /* For delay calculation using global registers*/
  81. #define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200
  82. #define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204
  83. #define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208
  84. #define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218
  85. int ps7_config( unsigned long*);
  86. int ps7_init();
  87. int ps7_post_config();
  88. char* getPS7MessageInfo(unsigned key);
  89. void perf_start_clock(void);
  90. void perf_disable_clock(void);
  91. void perf_reset_clock(void);
  92. void perf_reset_and_start_timer();
  93. int get_number_of_cycles_for_delay(unsigned int delay);
  94. #ifdef __cplusplus
  95. }
  96. #endif