km8360.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. /*
  2. * (C) Copyright 2012
  3. * Holger Brunck, Keymile GmbH Hannover, <holger.brunck@keymile.com>
  4. * Christian Herzig, Keymile AG Switzerland, <christian.herzig@keymile.com>
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #ifndef __CONFIG_H
  9. #define __CONFIG_H
  10. /* KMBEC FPGA (PRIO) */
  11. #define CONFIG_SYS_KMBEC_FPGA_BASE 0xE8000000
  12. #define CONFIG_SYS_KMBEC_FPGA_SIZE 64
  13. #if defined CONFIG_KMETER1
  14. #define CONFIG_HOSTNAME kmeter1
  15. #define CONFIG_KM_BOARD_NAME "kmeter1"
  16. #define CONFIG_KM_DEF_NETDEV "netdev=eth2\0"
  17. #elif defined CONFIG_KMCOGE5NE
  18. #define CONFIG_HOSTNAME kmcoge5ne
  19. #define CONFIG_KM_BOARD_NAME "kmcoge5ne"
  20. #define CONFIG_KM_DEF_NETDEV "netdev=eth1\0"
  21. #define CONFIG_CMD_NAND
  22. #define CONFIG_NAND_ECC_BCH
  23. #define CONFIG_BCH
  24. #define CONFIG_NAND_KMETER1
  25. #define CONFIG_SYS_MAX_NAND_DEVICE 1
  26. #define NAND_MAX_CHIPS 1
  27. #define CONFIG_SYS_NAND_BASE CONFIG_SYS_KMBEC_FPGA_BASE /* PRIO_BASE_ADDRESS */
  28. #define CONFIG_KM_UBI_PARTITION_NAME_BOOT "ubi0"
  29. #define CONFIG_KM_UBI_PARTITION_NAME_APP "ubi1"
  30. #define MTDIDS_DEFAULT "nor0=boot,nand0=app"
  31. #define MTDPARTS_DEFAULT "mtdparts=" \
  32. "boot:" \
  33. "768k(u-boot)," \
  34. "128k(env)," \
  35. "128k(envred)," \
  36. "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");" \
  37. "app:" \
  38. "-(" CONFIG_KM_UBI_PARTITION_NAME_APP ");"
  39. #else
  40. #error ("Board not supported")
  41. #endif
  42. /*
  43. * High Level Configuration Options
  44. */
  45. #define CONFIG_QE /* Has QE */
  46. #define CONFIG_MPC8360 /* MPC8360 CPU specific */
  47. #define CONFIG_SYS_TEXT_BASE 0xF0000000
  48. /* include common defines/options for all 83xx Keymile boards */
  49. #include "km/km83xx-common.h"
  50. /*
  51. * System IO Setup
  52. */
  53. #define CONFIG_SYS_SICRH (SICRH_UC1EOBI | SICRH_UC2E1OBI)
  54. /*
  55. * Hardware Reset Configuration Word
  56. */
  57. #define CONFIG_SYS_HRCW_LOW (\
  58. HRCWL_CSB_TO_CLKIN_4X1 | \
  59. HRCWL_CORE_TO_CSB_2X1 | \
  60. HRCWL_CE_PLL_VCO_DIV_2 | \
  61. HRCWL_CE_TO_PLL_1X6)
  62. #define CONFIG_SYS_HRCW_HIGH (\
  63. HRCWH_CORE_ENABLE | \
  64. HRCWH_FROM_0X00000100 | \
  65. HRCWH_BOOTSEQ_DISABLE | \
  66. HRCWH_SW_WATCHDOG_DISABLE | \
  67. HRCWH_ROM_LOC_LOCAL_16BIT | \
  68. HRCWH_BIG_ENDIAN | \
  69. HRCWH_LALE_EARLY | \
  70. HRCWH_LDP_CLEAR)
  71. /**
  72. * DDR RAM settings
  73. */
  74. #define CONFIG_SYS_DDR_SDRAM_CFG (\
  75. SDRAM_CFG_SDRAM_TYPE_DDR2 | \
  76. SDRAM_CFG_SREN | \
  77. SDRAM_CFG_HSE)
  78. #define CONFIG_SYS_DDR_SDRAM_CFG2 0x00401000
  79. #ifdef CONFIG_KMCOGE5NE
  80. /**
  81. * KMCOGE5NE has 512 MB RAM
  82. */
  83. #define CONFIG_SYS_DDR_CS0_CONFIG (\
  84. CSCONFIG_EN | \
  85. CSCONFIG_AP | \
  86. CSCONFIG_ODT_WR_ONLY_CURRENT | \
  87. CSCONFIG_BANK_BIT_3 | \
  88. CSCONFIG_ROW_BIT_13 | \
  89. CSCONFIG_COL_BIT_10)
  90. #else
  91. #define CONFIG_SYS_DDR_CS0_CONFIG (CSCONFIG_EN | CSCONFIG_AP | \
  92. CSCONFIG_ROW_BIT_13 | \
  93. CSCONFIG_COL_BIT_10 | \
  94. CSCONFIG_ODT_WR_ONLY_CURRENT)
  95. #endif
  96. #define CONFIG_SYS_DDR_CLK_CNTL (\
  97. DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05)
  98. #define CONFIG_SYS_DDR_INTERVAL (\
  99. (0x080 << SDRAM_INTERVAL_BSTOPRE_SHIFT) | \
  100. (0x203 << SDRAM_INTERVAL_REFINT_SHIFT))
  101. #define CONFIG_SYS_DDR_CS0_BNDS 0x0000007f
  102. #define CONFIG_SYS_DDRCDR (\
  103. DDRCDR_EN | \
  104. DDRCDR_Q_DRN)
  105. #define CONFIG_SYS_DDR_MODE 0x47860452
  106. #define CONFIG_SYS_DDR_MODE2 0x8080c000
  107. #define CONFIG_SYS_DDR_TIMING_0 (\
  108. (2 << TIMING_CFG0_MRS_CYC_SHIFT) | \
  109. (8 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) | \
  110. (6 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) | \
  111. (2 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) | \
  112. (0 << TIMING_CFG0_WWT_SHIFT) | \
  113. (0 << TIMING_CFG0_RRT_SHIFT) | \
  114. (0 << TIMING_CFG0_WRT_SHIFT) | \
  115. (0 << TIMING_CFG0_RWT_SHIFT))
  116. #define CONFIG_SYS_DDR_TIMING_1 ((TIMING_CFG1_CASLAT_50) | \
  117. (2 << TIMING_CFG1_WRTORD_SHIFT) | \
  118. (2 << TIMING_CFG1_ACTTOACT_SHIFT) | \
  119. (3 << TIMING_CFG1_WRREC_SHIFT) | \
  120. (7 << TIMING_CFG1_REFREC_SHIFT) | \
  121. (3 << TIMING_CFG1_ACTTORW_SHIFT) | \
  122. (8 << TIMING_CFG1_ACTTOPRE_SHIFT) | \
  123. (3 << TIMING_CFG1_PRETOACT_SHIFT))
  124. #define CONFIG_SYS_DDR_TIMING_2 (\
  125. (0xa << TIMING_CFG2_FOUR_ACT_SHIFT) | \
  126. (3 << TIMING_CFG2_CKE_PLS_SHIFT) | \
  127. (2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) | \
  128. (2 << TIMING_CFG2_RD_TO_PRE_SHIFT) | \
  129. (4 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) | \
  130. (5 << TIMING_CFG2_CPO_SHIFT) | \
  131. (0 << TIMING_CFG2_ADD_LAT_SHIFT))
  132. #define CONFIG_SYS_DDR_TIMING_3 0x00000000
  133. /* EEprom support */
  134. #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
  135. /*
  136. * Local Bus Configuration & Clock Setup
  137. */
  138. #define CONFIG_SYS_LCRR_DBYP LCRR_DBYP
  139. #define CONFIG_SYS_LCRR_EADC LCRR_EADC_2
  140. #define CONFIG_SYS_LCRR_CLKDIV LCRR_CLKDIV_4
  141. /*
  142. * PAXE on the local bus CS3
  143. */
  144. #define CONFIG_SYS_PAXE_BASE 0xA0000000
  145. #define CONFIG_SYS_PAXE_SIZE 256
  146. #define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_PAXE_BASE
  147. #define CONFIG_SYS_LBLAWAR3_PRELIM 0x8000001C /* 512MB window size */
  148. #define CONFIG_SYS_BR3_PRELIM (\
  149. CONFIG_SYS_PAXE_BASE | \
  150. (1 << BR_PS_SHIFT) | \
  151. BR_V)
  152. #define CONFIG_SYS_OR3_PRELIM (\
  153. MEG_TO_AM(CONFIG_SYS_PAXE_SIZE) | \
  154. OR_GPCM_CSNT | \
  155. OR_GPCM_ACS_DIV2 | \
  156. OR_GPCM_SCY_2 | \
  157. OR_GPCM_TRLX | \
  158. OR_GPCM_EAD)
  159. #ifdef CONFIG_KMCOGE5NE
  160. /*
  161. * BFTIC3 on the local bus CS4
  162. */
  163. #define CONFIG_SYS_BFTIC3_BASE 0xB0000000
  164. #define CONFIG_SYS_BFTIC3_SIZE 256
  165. #define CONFIG_SYS_BR4_PRELIM (\
  166. CONFIG_SYS_BFTIC3_BASE |\
  167. (1 << BR_PS_SHIFT) | \
  168. BR_V)
  169. #define CONFIG_SYS_OR4_PRELIM (\
  170. MEG_TO_AM(CONFIG_SYS_BFTIC3_SIZE) |\
  171. OR_GPCM_CSNT | \
  172. OR_GPCM_ACS_DIV2 |\
  173. OR_GPCM_SCY_2 |\
  174. OR_GPCM_TRLX |\
  175. OR_GPCM_EAD)
  176. #endif
  177. /*
  178. * MMU Setup
  179. */
  180. /* PAXE: icache cacheable, but dcache-inhibit and guarded */
  181. #define CONFIG_SYS_IBAT5L (\
  182. CONFIG_SYS_PAXE_BASE | \
  183. BATL_PP_10 | \
  184. BATL_MEMCOHERENCE)
  185. #define CONFIG_SYS_IBAT5U (\
  186. CONFIG_SYS_PAXE_BASE | \
  187. BATU_BL_256M | \
  188. BATU_VS | \
  189. BATU_VP)
  190. #define CONFIG_SYS_DBAT5L (\
  191. CONFIG_SYS_PAXE_BASE | \
  192. BATL_PP_10 | \
  193. BATL_CACHEINHIBIT | \
  194. BATL_GUARDEDSTORAGE)
  195. #define CONFIG_SYS_DBAT5U CONFIG_SYS_IBAT5U
  196. #ifdef CONFIG_KMCOGE5NE
  197. /* BFTIC3: icache cacheable, but dcache-inhibit and guarded */
  198. #define CONFIG_SYS_IBAT6L (\
  199. CONFIG_SYS_BFTIC3_BASE | \
  200. BATL_PP_10 | \
  201. BATL_MEMCOHERENCE)
  202. #define CONFIG_SYS_IBAT6U (\
  203. CONFIG_SYS_BFTIC3_BASE | \
  204. BATU_BL_256M | \
  205. BATU_VS | \
  206. BATU_VP)
  207. #define CONFIG_SYS_DBAT6L (\
  208. CONFIG_SYS_BFTIC3_BASE | \
  209. BATL_PP_10 | \
  210. BATL_CACHEINHIBIT | \
  211. BATL_GUARDEDSTORAGE)
  212. #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U
  213. /* DDR/LBC SDRAM next 256M: cacheable */
  214. #define CONFIG_SYS_IBAT7L (\
  215. CONFIG_SYS_SDRAM_BASE2 |\
  216. BATL_PP_10 |\
  217. BATL_CACHEINHIBIT |\
  218. BATL_GUARDEDSTORAGE)
  219. #define CONFIG_SYS_IBAT7U (\
  220. CONFIG_SYS_SDRAM_BASE2 |\
  221. BATU_BL_256M |\
  222. BATU_VS |\
  223. BATU_VP)
  224. /* enable POST tests */
  225. #define CONFIG_POST (CONFIG_SYS_POST_MEMORY|CONFIG_SYS_POST_MEM_REGIONS)
  226. #define CONFIG_POST_EXTERNAL_WORD_FUNCS /* use own functions, not generic */
  227. #define CPM_POST_WORD_ADDR CONFIG_SYS_MEMTEST_END
  228. #define CONFIG_TESTPIN_REG gprt3 /* for kmcoge5ne */
  229. #define CONFIG_TESTPIN_MASK 0x20 /* for kmcoge5ne */
  230. #define CONFIG_CMD_DIAG /* so that testpin is inquired for POST test */
  231. #else
  232. #define CONFIG_SYS_IBAT6L (0)
  233. #define CONFIG_SYS_IBAT6U (0)
  234. #define CONFIG_SYS_IBAT7L (0)
  235. #define CONFIG_SYS_IBAT7U (0)
  236. #define CONFIG_SYS_DBAT6L CONFIG_SYS_IBAT6L
  237. #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U
  238. #endif
  239. #define CONFIG_SYS_DBAT7L CONFIG_SYS_IBAT7L
  240. #define CONFIG_SYS_DBAT7U CONFIG_SYS_IBAT7U
  241. #endif /* CONFIG */