at91rm9200ek.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. /*
  2. * Copyright (C) 2010 Andreas Bießmann <biessmann.devel@googlemail.com>
  3. *
  4. * based on previous work by
  5. *
  6. * Ulf Samuelsson <ulf@atmel.com>
  7. * Rick Bronson <rick@efn.org>
  8. *
  9. * Configuration settings for the AT91RM9200EK board.
  10. *
  11. * SPDX-License-Identifier: GPL-2.0+
  12. */
  13. #ifndef __AT91RM9200EK_CONFIG_H__
  14. #define __AT91RM9200EK_CONFIG_H__
  15. #include <linux/sizes.h>
  16. /*
  17. * set some initial configurations depending on configure target
  18. *
  19. * at91rm9200ek_config -> boot from 0x0 in NOR Flash at CS0
  20. * at91rm9200ek_ram_config -> continue booting from 0x20100000 in RAM; lowlevel
  21. * initialisation was done by some preloader
  22. */
  23. #ifdef CONFIG_RAMBOOT
  24. #define CONFIG_SKIP_LOWLEVEL_INIT
  25. #define CONFIG_SYS_TEXT_BASE 0x20100000
  26. #else
  27. #define CONFIG_SYS_TEXT_BASE 0x10000000
  28. #endif
  29. /*
  30. * AT91C_XTAL_CLOCK is the frequency of external xtal in hertz
  31. * AT91C_MAIN_CLOCK is the frequency of PLLA output
  32. * AT91C_MASTER_CLOCK is the peripherial clock
  33. * CONFIG_SYS_HZ_CLOCK is the value for CCR in tc0 (divider 2 is implicitely
  34. * set in arch/arm/cpu/arm920t/at91/timer.c)
  35. * CONFIG_SYS_HZ is the tick rate for timer tc0
  36. */
  37. #define AT91C_XTAL_CLOCK 18432000
  38. #define CONFIG_SYS_AT91_SLOW_CLOCK 32768
  39. #define AT91C_MAIN_CLOCK ((AT91C_XTAL_CLOCK / 4) * 39)
  40. #define AT91C_MASTER_CLOCK (AT91C_MAIN_CLOCK / 3 )
  41. #define CONFIG_SYS_HZ_CLOCK (AT91C_MASTER_CLOCK / 2)
  42. /* CPU configuration */
  43. #define CONFIG_AT91RM9200
  44. #define CONFIG_AT91RM9200EK
  45. #define CONFIG_CPUAT91
  46. #define USE_920T_MMU
  47. #include <asm/hardware.h> /* needed for port definitions */
  48. #define CONFIG_CMDLINE_TAG
  49. #define CONFIG_SETUP_MEMORY_TAGS
  50. #define CONFIG_INITRD_TAG
  51. #define CONFIG_BOARD_EARLY_INIT_F
  52. /*
  53. * Memory Configuration
  54. */
  55. #define CONFIG_NR_DRAM_BANKS 1
  56. #define CONFIG_SYS_SDRAM_BASE 0x20000000
  57. #define CONFIG_SYS_SDRAM_SIZE SZ_32M
  58. #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
  59. #define CONFIG_SYS_MEMTEST_END \
  60. (CONFIG_SYS_MEMTEST_START + CONFIG_SYS_SDRAM_SIZE - SZ_256K)
  61. /*
  62. * LowLevel Init
  63. */
  64. #ifndef CONFIG_SKIP_LOWLEVEL_INIT
  65. #define CONFIG_SYS_USE_MAIN_OSCILLATOR
  66. /* flash */
  67. #define CONFIG_SYS_EBI_CFGR_VAL 0x00000000
  68. #define CONFIG_SYS_SMC_CSR0_VAL 0x00003284 /* 16bit, 2 TDF, 4 WS */
  69. /* clocks */
  70. #define CONFIG_SYS_PLLAR_VAL 0x20263E04 /* 179.712000 MHz for PCK */
  71. #define CONFIG_SYS_PLLBR_VAL 0x10483E0E /* 48.054857 MHz (divider by 2 for USB) */
  72. /* PCK/3 = MCK Master Clock = 59.904000MHz from PLLA */
  73. #define CONFIG_SYS_MCKR_VAL 0x00000202
  74. /* sdram */
  75. #define CONFIG_SYS_PIOC_ASR_VAL 0xFFFF0000 /* Configure PIOC as peripheral (D16/D31) */
  76. #define CONFIG_SYS_PIOC_BSR_VAL 0x00000000
  77. #define CONFIG_SYS_PIOC_PDR_VAL 0xFFFF0000
  78. #define CONFIG_SYS_EBI_CSA_VAL 0x00000002 /* CS1=CONFIG_SYS_SDRAM */
  79. #define CONFIG_SYS_SDRC_CR_VAL 0x2188c155 /* set up the CONFIG_SYS_SDRAM */
  80. #define CONFIG_SYS_SDRAM CONFIG_SYS_SDRAM_BASE /* address of the SDRAM */
  81. #define CONFIG_SYS_SDRAM1 (CONFIG_SYS_SDRAM_BASE+0x80)
  82. #define CONFIG_SYS_SDRAM_VAL 0x00000000 /* value written to CONFIG_SYS_SDRAM */
  83. #define CONFIG_SYS_SDRC_MR_VAL 0x00000002 /* Precharge All */
  84. #define CONFIG_SYS_SDRC_MR_VAL1 0x00000004 /* refresh */
  85. #define CONFIG_SYS_SDRC_MR_VAL2 0x00000003 /* Load Mode Register */
  86. #define CONFIG_SYS_SDRC_MR_VAL3 0x00000000 /* Normal Mode */
  87. #define CONFIG_SYS_SDRC_TR_VAL 0x000002E0 /* Write refresh rate */
  88. #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
  89. /*
  90. * Hardware drivers
  91. */
  92. /*
  93. * Choose a USART for serial console
  94. * CONFIG_DBGU is DBGU unit on J10
  95. * CONFIG_USART1 is USART1 on J14
  96. */
  97. #define CONFIG_ATMEL_USART
  98. #define CONFIG_USART_BASE ATMEL_BASE_DBGU
  99. #define CONFIG_USART_ID 0/* ignored in arm */
  100. #define CONFIG_BAUDRATE 115200
  101. /*
  102. * Command line configuration.
  103. */
  104. /*
  105. * Network Driver Setting
  106. */
  107. #define CONFIG_DRIVER_AT91EMAC
  108. #define CONFIG_SYS_RX_ETH_BUFFER 16
  109. #define CONFIG_RMII
  110. #define CONFIG_MII
  111. /*
  112. * NOR Flash
  113. */
  114. #define CONFIG_FLASH_CFI_DRIVER
  115. #define CONFIG_SYS_FLASH_CFI
  116. #define CONFIG_SYS_FLASH_BASE 0x10000000
  117. #define PHYS_FLASH_1 CONFIG_SYS_FLASH_BASE
  118. #define PHYS_FLASH_SIZE SZ_8M
  119. #define CONFIG_SYS_MAX_FLASH_BANKS 1
  120. #define CONFIG_SYS_MAX_FLASH_SECT 256
  121. #define CONFIG_SYS_FLASH_PROTECTION
  122. /*
  123. * USB Config
  124. */
  125. #define CONFIG_USB_ATMEL 1
  126. #define CONFIG_USB_ATMEL_CLK_SEL_PLLB
  127. #define CONFIG_USB_OHCI_NEW 1
  128. #define CONFIG_DOS_PARTITION 1
  129. #define CONFIG_SYS_USB_OHCI_CPU_INIT 1
  130. #define CONFIG_SYS_USB_OHCI_REGS_BASE ATMEL_USB_HOST_BASE
  131. #define CONFIG_SYS_USB_OHCI_SLOT_NAME "at91rm9200"
  132. #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 15
  133. /*
  134. * Environment Settings
  135. */
  136. #define CONFIG_ENV_IS_IN_FLASH
  137. /*
  138. * after u-boot.bin
  139. */
  140. #define CONFIG_ENV_ADDR \
  141. (CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN)
  142. #define CONFIG_ENV_SIZE SZ_64K /* sectors are 64K here */
  143. /* The following #defines are needed to get flash environment right */
  144. #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE
  145. #define CONFIG_SYS_MONITOR_LEN SZ_256K
  146. /*
  147. * Boot option
  148. */
  149. /* default load address */
  150. #define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE + SZ_16M
  151. #define CONFIG_ENV_OVERWRITE
  152. /*
  153. * Shell Settings
  154. */
  155. #define CONFIG_CMDLINE_EDITING
  156. #define CONFIG_SYS_LONGHELP
  157. #define CONFIG_AUTO_COMPLETE
  158. #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
  159. #define CONFIG_SYS_MAXARGS 16 /* max number of command args */
  160. /* Print Buffer Size */
  161. #define CONFIG_SYS_PBSIZE \
  162. (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
  163. /*
  164. * Size of malloc() pool
  165. */
  166. #define CONFIG_SYS_MALLOC_LEN ROUND(3 * CONFIG_ENV_SIZE + SZ_128K, \
  167. SZ_4K)
  168. #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_4K \
  169. - GENERATED_GBL_DATA_SIZE)
  170. #endif /* __AT91RM9200EK_CONFIG_H__ */