1
0

gk_mmap.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. /*!
  2. *******************************************************************************
  3. **
  4. ** \file gk_mmap.h
  5. **
  6. ** \brief GoKe memory map defines.
  7. **
  8. ** This file contains common GoKe memory map defines
  9. ** used by all drivers and applications.
  10. **
  11. ** (C) Copyright 2012-2013 by Goke Microelectronics Shanghai Branch
  12. **
  13. ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
  14. ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
  15. ** OMMISSIONS.
  16. **
  17. ** \version \$Revision: 1.0 $
  18. **
  19. ******************************************************************************/
  20. #ifndef _GK_MMAP_H_
  21. #define _GK_MMAP_H_
  22. #define GK_MMAP_DDR_SIZE_1G 0x08000000 //!< 1gbit size
  23. #define GK_MMAP_DDR_SIZE_2G 0x10000000 //!< 2gbit size
  24. #ifdef __LINUX__
  25. #define GK_MMAP_ADDR_OFFSET 0x00000000 //!< no need offset for arm11 and arc4
  26. #define GK_MMAP_DDR0_START (0x00100000 - GK_MMAP_ADDR_OFFSET) //!< ddr0 start address
  27. #define GK_MMAP_DDR1_START (0x40000000 - GK_MMAP_ADDR_OFFSET) //!< ddr1 start address
  28. #define GK_MMAP_DDR0_SIZE GK_MMAP_DDR_SIZE_1G //!< ddr0 size in byte
  29. #define GK_MMAP_DDR1_SIZE GK_MMAP_DDR_SIZE_1G //!< ddr1 size in byte
  30. #define GK_MMAP_ARC_START (0x00200000 - GK_MMAP_ADDR_OFFSET) //!< ARC4 code start address
  31. #define GK_MMAP_ARM11_START (0x01000000 - GK_MMAP_ADDR_OFFSET) //!< ARM11 code start address
  32. #define GK_MMAP_AS211_START (0x40000000 - GK_MMAP_ADDR_OFFSET) //!< AS211 code start address
  33. #else
  34. #define GK_MMAP_ADDR_OFFSET 0x00000000 //!< no need offset for arm11 and arc4
  35. #define GK_MMAP_DDR0_START (DDR_MEMORY_START_1 - GK_MMAP_ADDR_OFFSET) //!< ddr0 start address
  36. #define GK_MMAP_DDR1_START (DDR_MEMORY_START_2 - GK_MMAP_ADDR_OFFSET) //!< ddr1 start address
  37. #define GK_MMAP_DDR0_SIZE DDR_MEMORY_BYTES_1 //!< ddr0 size in byte
  38. #define GK_MMAP_DDR1_SIZE DDR_MEMORY_BYTES_2 //!< ddr1 size in byte
  39. #endif
  40. #define GK_MMAP_BOOTROM_START (0x00000000 - GK_MMAP_ADDR_OFFSET) //!< bootrom code start address
  41. #define GK_MMAP_SRAM_START (0x00080000 - GK_MMAP_ADDR_OFFSET) //!< sram code start address
  42. #define GK_MMAP_UBOOTER_START (0xF0000000 - GK_MMAP_ADDR_OFFSET) //!< Ubooter code start address
  43. // FPGA has one ddr memory only
  44. #define GK_MMAP_FRAME_BUFFER_START (0x00400000 - GK_MMAP_ADDR_OFFSET) //!< Frame data buffer for videc
  45. #define GK_MMAP_DDR0_END GK_MMAP_DDR0_SIZE //!< ddr0 end address
  46. #define GK_MMAP_DDR1_END (GK_MMAP_DDR1_START + GK_MMAP_DDR1_SIZE) //!< ddr1 end address
  47. /*
  48. *******************************************************************************
  49. **
  50. ** system memory definitions
  51. **
  52. *******************************************************************************
  53. */
  54. #define GK_MMAP_AS211_CODE_SIZE 0x00400000 //!< as211 code size
  55. #define GK_MMAP_USER_DATA_SIZE 0x00100000 //!< user data size
  56. #define GK_MMAP_COMM_DATA_SIZE 0x00003000 // current used 0x3000 (64*64*3 = size * number * cpu)
  57. #define GK_MMAP_ICC_CMD_SIZE 264 // 255+5+2 = 255 byte data + 5 byte ISO header + 2 byte SW1SW2 and 2 byte algin
  58. #define GK_MMAP_ICC_RES_SIZE 264 // 255+5+2 = 255 byte data + 5 byte ISO header + 2 byte SW1SW2
  59. #if (GK_MMAP_DDR0_SIZE == GK_MMAP_DDR_SIZE_1G)
  60. #define GK_MMAP_FRAME_BUFFER_SIZE 0x04000000 //!< Frame buffer size
  61. #define GK_MMAP_DECODER_MODULE_SIZE 0x02000000 //!< decoder module size
  62. #elif (GK_MMAP_DDR0_SIZE == GK_MMAP_DDR_SIZE_2G)
  63. #define GK_MMAP_FRAME_BUFFER_SIZE 0x08000000 //!< Frame buffer size
  64. #define GK_MMAP_DECODER_MODULE_SIZE 0x04000000 //!< decoder module size
  65. #else
  66. #define GK_MMAP_FRAME_BUFFER_SIZE 0x04000000 //!< Frame buffer size
  67. #define GK_MMAP_DECODER_MODULE_SIZE 0x02000000 //!< decoder module size
  68. #endif
  69. #define GK_MMAP_BM_SIZE 0x01C00000 //!< ALL BM size 28m bytes
  70. #define GK_MMAP_VBV_BUFFER_SIZE 0x00F00000 //!< vbv data buffer size
  71. #define GK_MMAP_ABV_BUFFER_SIZE 0x00200000 //!< abv data buffer size
  72. #define GK_MMAP_AC3_BUFFER_SIZE 0x00004000 //!< ac3 data buffer size
  73. #define GK_MMAP_TTX_BUFFER_SIZE 0x00004000 //!< ttx data buffer size
  74. #define GK_MMAP_PCR_BUFFER_SIZE 0x00000400 //!< pcr data buffer size
  75. #define GK_MMAP_SCT_BUFFER_SIZE 0x00002000 //!< sct data buffer size
  76. #define GK_MMAP_PSI_BUFFER_SIZE 0x00800000 //!< psi data buffer size
  77. #define GK_MMAP_EMM_BUFFER_SIZE 0x00000C00 //!< emm data buffer size
  78. #define GK_MMAP_PIP_BUFFER_SIZE 0 //!< pip data buffer size
  79. #define GK_MMAP_USER_DATA_START GK_MMAP_DDR0_START //!< user share data start address
  80. #define GK_MMAP_COMM_DATA_START GK_MMAP_USER_DATA_START //!< communication share data start address
  81. #define GK_MMAP_ICC_CMD_START (GK_MMAP_COMM_DATA_START + GK_MMAP_COMM_DATA_SIZE) //!< icc command data start address
  82. #define GK_MMAP_ICC_RES_START (GK_MMAP_ICC_CMD_START + GK_MMAP_ICC_CMD_SIZE) //!< icc response data start address
  83. #define GK_MMAP_USER_RESERVED_START (GK_MMAP_ICC_RES_START + GK_MMAP_ICC_RES_SIZE) //!< reserved datastart address
  84. #define GK_MMAP_BM_OFFSET (GK_MMAP_FRAME_BUFFER_START + GK_MMAP_FRAME_BUFFER_SIZE)
  85. #define GK_MMAP_VBV_BUFFER_ADDR GK_MMAP_BM_OFFSET //!< vbv buffer start address
  86. #define GK_MMAP_ABV_BUFFER_ADDR (GK_MMAP_VBV_BUFFER_ADDR+GK_MMAP_VBV_BUFFER_SIZE) //!< ABV buffer start address
  87. #define GK_MMAP_AC3_BUFFER_ADDR (GK_MMAP_ABV_BUFFER_ADDR+GK_MMAP_ABV_BUFFER_SIZE) //!< AC3 buffer start address
  88. #define GK_MMAP_TTX_BUFFER_ADDR (GK_MMAP_AC3_BUFFER_ADDR+GK_MMAP_AC3_BUFFER_SIZE) //!< TTX buffer start address
  89. #define GK_MMAP_PCR_BUFFER_ADDR (GK_MMAP_TTX_BUFFER_ADDR+GK_MMAP_TTX_BUFFER_SIZE) //!< PCR buffer start address
  90. #define GK_MMAP_PSI_BUFFER_ADDR (GK_MMAP_PCR_BUFFER_ADDR+GK_MMAP_PCR_BUFFER_SIZE) //!< PSI buffer start address
  91. #define GK_MMAP_EMM_BUFFER_ADDR (GK_MMAP_PSI_BUFFER_ADDR+GK_MMAP_PSI_BUFFER_SIZE) //!< PIP buffer start address
  92. #define GK_MMAP_PIP_BUFFER_ADDR (GK_MMAP_EMM_BUFFER_ADDR+GK_MMAP_EMM_BUFFER_SIZE) //!< PIP buffer start address
  93. #define GK_MMAP_DECODER_MODULE_ADDR (GK_MMAP_BM_OFFSET + GK_MMAP_BM_SIZE) //!< vbv buffer start address
  94. #define GK_MMAP_BUFFERS_END_ADDR (GK_MMAP_DECODER_MODULE_ADDR+GK_MMAP_DECODER_MODULE_SIZE) //!< end of bm buffer address
  95. /* DSP Debug ports */
  96. #define AHB_BASE 0x60000000
  97. #define APB_BASE 0x70000000
  98. #define DSP_DEBUG0_OFFSET 0x100000
  99. #define DSP_DEBUG1_OFFSET 0x110000
  100. #define DSP_DEBUG2_OFFSET 0x120000
  101. #define DSP_DEBUG3_OFFSET 0x130000
  102. #define DSP_DEBUG4_OFFSET 0x140000
  103. #define DSP_DEBUG5_OFFSET 0x150000
  104. #define DSP_DEBUG6_OFFSET 0x160000
  105. #define DSP_DEBUG7_OFFSET 0x170000
  106. #define DSP_DEBUG0_BASE (APB_BASE + DSP_DEBUG0_OFFSET)
  107. #define DSP_DEBUG1_BASE (APB_BASE + DSP_DEBUG1_OFFSET)
  108. #define DSP_DEBUG2_BASE (APB_BASE + DSP_DEBUG2_OFFSET)
  109. #define DSP_DEBUG3_BASE (APB_BASE + DSP_DEBUG3_OFFSET)
  110. #define DSP_DEBUG4_BASE (APB_BASE + DSP_DEBUG4_OFFSET)
  111. #define DSP_DEBUG5_BASE (APB_BASE + DSP_DEBUG5_OFFSET)
  112. #define DSP_DEBUG6_BASE (APB_BASE + DSP_DEBUG6_OFFSET)
  113. #define DSP_DEBUG7_BASE (APB_BASE + DSP_DEBUG7_OFFSET)
  114. #define MEMD_OFFSET 0x150000
  115. #define CODE_OFFSET 0x160000
  116. #define MEMD_BASE (APB_BASE + 0x150000)
  117. #define CODE_BASE (APB_BASE + 0x160000)
  118. #define DSP_DRAM_MAIN_OFFSET 0x0008
  119. #define DSP_DRAM_SUB0_OFFSET 0x0008
  120. #define DSP_DRAM_SUB1_OFFSET 0x8008
  121. #define DSP_CONFIG_MAIN_OFFSET 0x0000
  122. #define DSP_CONFIG_SUB0_OFFSET 0x0000
  123. #define DSP_CONFIG_SUB1_OFFSET 0x8000
  124. #define DSP_DRAM_MAIN_REG (CODE_BASE + 0x0008) /* CODE */
  125. #define DSP_DRAM_SUB0_REG (MEMD_BASE + 0x0008) /* ME */
  126. #define DSP_DRAM_SUB1_REG (MEMD_BASE + 0x8008) /* MD */
  127. #define DSP_CONFIG_MAIN_REG (CODE_BASE + 0x0000)
  128. #define DSP_CONFIG_SUB0_REG (MEMD_BASE + 0x0000)
  129. #define DSP_CONFIG_SUB1_REG (MEMD_BASE + 0x8000)
  130. #define DSP_TEXT_BASE_ADDR_CORE 0x900000
  131. #define DSP_TEXT_BASE_ADDR_MDXF 0x600000
  132. #define DSP_TEXT_BASE_ADDR_MEMD 0x300000
  133. /******************************************/
  134. /* Interrupt numbers of the uITRON kernel */
  135. /******************************************/
  136. #define USBVBUS_INT_VEC 0
  137. #define VOUT_INT_VEC 1
  138. #define ORC_VOUT1_INT_VEC 1
  139. #define VIN_INT_VEC 2
  140. #define VDSP_INT_VEC 3
  141. #define USBC_INT_VEC 4
  142. #define VIC2_INT_VEC_OFFSET 32
  143. #define VIC2_INT_VEC(x) ((x) + VIC2_INT_VEC_OFFSET)
  144. #define AUDIO_ORC_INT_VEC VIC2_INT_VEC(0)
  145. #define DMA_FIOS_INT_VEC VIC2_INT_VEC(1)
  146. #define ADC_LEVEL_INT_VEC VIC2_INT_VEC(2)
  147. #define VOUT1_SYNC_MISSED_INT_VEC VIC2_INT_VEC(3)
  148. #define IDC2_INT_VEC VIC2_INT_VEC(4)
  149. #define IDSP_LAST_PIXEL_INT_VEC VIC2_INT_VEC(5)
  150. #define IDSP_VSYNC_INT_VEC VIC2_INT_VEC(6)
  151. #define IDSP_SENSOR_VSYNC_INT_VEC VIC2_INT_VEC(7)
  152. #define ORC_VOUT0_INT_VEC VIC2_INT_VEC(12)
  153. /* * RTOS memory options */
  154. #define KERNEL_RAM_START 0xC0100000
  155. #define KERNEL_NONCACHEBUFFERED_SIZE 0x0050000
  156. #define RAMDISK_RAM_START 0x00000000
  157. #define RAMDISK_RAM_SIZE 0x00000000
  158. #define IDSP_RAM_START 0xC3600000 //0xC2800000
  159. #define IDSP_RAM_SIZE 0x04A00000//0x05800000
  160. /* 1 Gbits = 128 MB*/
  161. #define DRAM_START_ADDR 0xC0000000
  162. #define DRAM_SIZE 0x08000000
  163. #define DRAM_END_ADDR (DRAM_START_ADDR + DRAM_SIZE - 1)
  164. /* Align 1st payload nicely to the start of the IDSP area */
  165. #define DSP_FW_DOWNLOAD_ADDR (IDSP_RAM_START - 0x50)
  166. #define IAV_BITS_FIFO_SIZE 0x00E00000
  167. #define PJPEG_FIFO_SIZE 0x00400000
  168. #define RTOS_HEAP_END (IDSP_RAM_START - 1)
  169. #define RTOS_NCACHED_HEAP_START (RTOS_HEAP_END - KERNEL_NONCACHEBUFFERED_SIZE + 1)
  170. #define RTOS_NCACHED_HEAP_END RTOS_HEAP_END
  171. #define RTOS_NCACHED_HEAP_SIZE KERNEL_NONCACHEBUFFERED_SIZE
  172. #endif /* _GK_MMAP_H_ */