tianhuo-c860.h 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. /*
  2. * Copyright (C) 2017-2020 Alibaba Group Holding Limited
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef __CONFIG_H
  7. #define __CONFIG_H
  8. #include <linux/sizes.h>
  9. // #define DEBUG
  10. #define SSEG0_BASEADDRESS 0x0
  11. #define SSEG1_BASEADDRESS 0xe0000000
  12. #define CONFIG_NR_DRAM_BANKS 1
  13. #define CONFIG_BOARD_EARLY_INIT_R
  14. #define CONFIG_BOARD_EARLY_INIT_F
  15. #define CONFIG_SYS_HZ 1000
  16. #define CPU_DEFAULT_FREQ 50000000
  17. #define LSP_DEFAULT_FREQ 50000000
  18. #define HSP_DEFAULT_FREQ 25000000
  19. #define LSP_CLOCK (LSP_DEFAULT_FREQ / 1000000)
  20. #define CONFIG_SYS_CLK_FREQ CPU_DEFAULT_FREQ
  21. /* Physical Memory Map */
  22. #define PHYS_SRAM_1 0xff800000
  23. #define PHYS_SDRAM_1 0x0
  24. #define PHYS_SDRAM_1_SIZE 0x18000000 /* 384M */
  25. #define CONFIG_SYS_TEXT_BASE 0x17800000
  26. #define CONFIG_SYS_LOAD_ADDR 0x80000000
  27. #define CONFIG_SYS_SRAM_BASE PHYS_SRAM_1
  28. #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0x80000 - 0x8)
  29. #define CONFIG_SYS_MALLOC_LEN SZ_4M
  30. #define CONFIG_SYS_BOOTM_LEN SZ_64M
  31. #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
  32. #define CONFIG_SYS_CACHELINE_SIZE 128
  33. #define CONFIG_SPL_STACK (CONFIG_SYS_SRAM_BASE + 0x8000 - 0x8)
  34. #define CONFIG_SPL_MAX_FOOTPRINT 0x4000
  35. #ifdef CONFIG_SPL_BUILD
  36. #define INTC_BASEADDRESS 0xfff70000
  37. #define TIMER_BASEADDRESS 0xffc32000
  38. #define ERAGON_MMC0_BASE 0xf7080000
  39. #else
  40. #define INTC_BASEADDRESS 0xbff70000
  41. #define TIMER_BASEADDRESS 0xbfc32000
  42. #define ERAGON_MMC0_BASE 0xb7080000
  43. #endif
  44. #define UBOOT_INTERNAL_VERSION "0.2"
  45. #define CONFIG_BOARD_PRINTF_SUPPORT
  46. #define CONFIG_BOARD_CONSOLE_SUPPORT
  47. #define CONFIG_BOARD_MMC_SUPPORT
  48. #define CONFIG_BOARD_SPIFLASH_SUPPORT
  49. #define CONFIG_SUPPORT_EMMC_BOOT
  50. #define HAVE_BLOCK_DEVICE
  51. #define TIMER_ID 0
  52. #define TIME_IRQ 4
  53. #define CONFIG_BAUDRATE 115200
  54. #define TIMEOUT_COUNT_TIMER TIMER0
  55. #define TIMEOUT_VALUE 500
  56. #define CONFIG_SYS_CBSIZE 256 /* This is Console Buffer size */
  57. #define CONFIG_SYS_MAXARGS 16
  58. /* NAND configuration */
  59. #ifdef CONFIG_CMD_NAND
  60. #define CONFIG_NAND_ERAGON 1
  61. #define CONFIG_SYS_ERAGON_NAND_HWECC
  62. #define CONFIG_SYS_MAX_NAND_DEVICE 1
  63. #define CONFIG_SYS_NAND_BASE 0x4E000000
  64. #endif
  65. /* Network Configuration */
  66. #define CONFIG_DW_ALTDESCRIPTOR
  67. #define CONFIG_MII 1
  68. #define CONFIG_PHY_MARVELL 1
  69. #define CONFIG_NET_RETRY_COUNT 20
  70. #define PHYS_FLASH_1 0x00000000 /* Flash Bank #0 */
  71. #define CONFIG_SYS_FLASH_BASE PHYS_FLASH_1
  72. #define CONFIG_SYS_MAX_FLASH_BANKS 1
  73. #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x070000)
  74. #define CONFIG_SYS_MMC_ENV_DEV 0
  75. /* Image address in Flash */
  76. #define FLASH_SPL_READ_ADDR 0x0
  77. #define FLASH_SPL_SIZE 0x10000 /* 64K */
  78. #define FLASH_FDT_READ_ADDR 0x30000 /* 192K */
  79. #define FLASH_FDT_SIZE 0x10000
  80. #define FLASH_UBOOT_READ_ADDR 0x40000 /* 256K */
  81. #define FLASH_UBOOT_SIZE 0x80000
  82. #ifdef CONFIG_IS_ASIC
  83. #define TFTP_LOAD_DTB "tftpboot ${dtb_load_addr_virt} c860/tianhuo_ck860_evb.dtb ; "
  84. #define TFTP_LOAD_SLAVE_DTB "tftpboot ${dtb_load_addr_virt} c810/tianhuo_ck810_evb.dtb ; "
  85. #else
  86. #define TFTP_LOAD_DTB "tftpboot ${dtb_load_addr_virt} c860/tianhuo_ck860.dtb ; "
  87. #define TFTP_LOAD_SLAVE_DTB "tftpboot ${dtb_load_addr_virt} c810/tianhuo_ck810.dtb ; "
  88. #endif
  89. #define CONFIG_EXTRA_ENV_SETTINGS \
  90. "fdt_start_sector=0x180\0" /* fdt start sector = FLASH_FDT_READ_ADDR / 0x200 */ \
  91. "uboot_start_sector=0x200\0" /* uboot start sector = CONFIG_FLASH_UBOOT_READ_ADDR / 0x200 */ \
  92. "dtb_start_sector=0x1000\0" /* dtb start sector -> 2MB */ \
  93. "dtb_size_sectors=0x1000\0" /* dtb size in sectors -> 2MB */ \
  94. "linux_start_sector=0x2000\0" /* linux start sector -> 4MB */ \
  95. "linux_size_sectors=0xa000\0" /* linux size in sectors -> 20MB */ \
  96. "slave_spl_start_sector=0x800\0" /* uboot spl slave start sector */ \
  97. "slave_fdt_start_sector=0x980\0" /* slave fdt start sector */ \
  98. "slave_uboot_start_sector=0xa00\0" /* slave uboot start sector */ \
  99. "slave_dtb_start_sector=0x21000\0" \
  100. "slave_linux_start_sector=0x22000\0" \
  101. "sram_addr_virt=0xbf800000\0" /* PHYS_SRAM_1 */ \
  102. "slave_spl_load_addr_virt=0x8e000000\0" \
  103. "slave_spl_load_addr_phys=0x0e000000\0" \
  104. "dtb_load_addr_virt=0x8f000000\0" \
  105. "dtb_load_addr_phys=0x0f000000\0" \
  106. "linux_load_addr_virt=0x90000000\0" \
  107. "linux_load_addr_phys=0x10000000\0" \
  108. "update_fdt=" \
  109. "tftpboot ${dtb_load_addr_virt} c860/dt.dtb ; " \
  110. "setexpr fw_sz ${filesize} / 0x200 ; " \
  111. "setexpr fw_sz ${fw_sz} + 1 ; " \
  112. "mmc dev 0 1 ; " /* uboot -> eMMC BOOT PARTITION #1 */ \
  113. "mmc write ${dtb_load_addr_phys} ${fdt_start_sector} ${fw_sz} ; " \
  114. "mmc dev 0 0 ; " /* restore to USER PARTITION */ \
  115. "\0" \
  116. "update_uboot=" \
  117. "tftpboot ${dtb_load_addr_virt} c860/u-boot.bin ; " \
  118. "setexpr fw_sz ${filesize} / 0x200 ; " \
  119. "setexpr fw_sz ${fw_sz} + 1 ; " \
  120. "mmc dev 0 1 ; " /* uboot -> eMMC BOOT PARTITION #1 */ \
  121. "mmc write ${dtb_load_addr_phys} ${uboot_start_sector} ${fw_sz} ; " \
  122. "mmc dev 0 0 ; " /* restore to USER PARTITION */ \
  123. "\0" \
  124. "update_dtb=" \
  125. TFTP_LOAD_DTB \
  126. "setexpr fw_sz ${filesize} / 0x200 ; " \
  127. "setexpr fw_sz ${fw_sz} + 1 ; " \
  128. "mmc write ${dtb_load_addr_phys} ${dtb_start_sector} ${fw_sz} ; " \
  129. "setenv dtb_size_sectors ${fw_sz} ; " \
  130. "saveenv ; " \
  131. "\0" \
  132. "update_linux=" \
  133. "tftpboot ${linux_load_addr_virt} c860/uImage ; " \
  134. "setexpr fw_sz ${filesize} / 0x200 ; " \
  135. "setexpr fw_sz ${fw_sz} + 1 ; " \
  136. "mmc write ${linux_load_addr_phys} ${linux_start_sector} ${fw_sz} ; " \
  137. "setenv linux_size_sectors ${fw_sz} ; " \
  138. "saveenv ; " \
  139. "\0" \
  140. "update_slave_spl=" \
  141. "tftpboot ${dtb_load_addr_virt} c810/u-boot-spl.bin ; " \
  142. "setexpr fw_sz ${filesize} / 0x200 ; " \
  143. "setexpr fw_sz ${fw_sz} + 1 ; " \
  144. "mmc dev 0 1 ; " /* uboot -> eMMC BOOT PARTITION #1 */ \
  145. "mmc write ${dtb_load_addr_phys} ${slave_spl_start_sector} ${fw_sz} ; " \
  146. "mmc dev 0 0 ; " /* restore to USER PARTITION */ \
  147. "\0" \
  148. "update_slave_fdt=" \
  149. "tftpboot ${dtb_load_addr_virt} c810/dt.dtb ; " \
  150. "setexpr fw_sz ${filesize} / 0x200 ; " \
  151. "setexpr fw_sz ${fw_sz} + 1 ; " \
  152. "mmc dev 0 1 ; " /* uboot -> eMMC BOOT PARTITION #1 */ \
  153. "mmc write ${dtb_load_addr_phys} ${slave_fdt_start_sector} ${fw_sz} ; " \
  154. "mmc dev 0 0 ; " /* restore to USER PARTITION */ \
  155. "\0" \
  156. "update_slave_uboot=" \
  157. "tftpboot ${dtb_load_addr_virt} c810/u-boot.bin ; " \
  158. "setexpr fw_sz ${filesize} / 0x200 ; " \
  159. "setexpr fw_sz ${fw_sz} + 1 ; " \
  160. "mmc dev 0 1 ; " /* uboot -> eMMC BOOT PARTITION #1 */ \
  161. "mmc write ${dtb_load_addr_phys} ${slave_uboot_start_sector} ${fw_sz} ; " \
  162. "mmc dev 0 0 ; " /* restore to USER PARTITION */ \
  163. "\0" \
  164. "update_slave_dtb=" \
  165. TFTP_LOAD_SLAVE_DTB \
  166. "setexpr fw_sz ${filesize} / 0x200 ; " \
  167. "setexpr fw_sz ${fw_sz} + 1 ; " \
  168. "mmc write ${dtb_load_addr_phys} ${slave_dtb_start_sector} ${fw_sz} ; " \
  169. "\0" \
  170. "update_slave_linux=" \
  171. "tftpboot ${linux_load_addr_virt} c810/uImage ; " \
  172. "setexpr fw_sz ${filesize} / 0x200 ; " \
  173. "setexpr fw_sz ${fw_sz} + 1 ; " \
  174. "mmc write ${linux_load_addr_phys} ${slave_linux_start_sector} ${fw_sz} ; " \
  175. "\0" \
  176. "boot_slave=" \
  177. "mmc dev 0 1 ; " /* uboot -> eMMC BOOT PARTITION #1 */ \
  178. "mmc read ${slave_spl_load_addr_phys} ${slave_spl_start_sector} 0x40;" \
  179. "mmc dev 0 0 ; " /* restore to USER PARTITION */ \
  180. "cp ${slave_spl_load_addr_virt} ${sram_addr_virt} 0x8000;" \
  181. "bootslave ${sram_addr_virt}; " \
  182. "\0"
  183. #undef CONFIG_BOOTCOMMAND
  184. #define CONFIG_BOOTCOMMAND \
  185. "mmc read ${dtb_load_addr_phys} ${dtb_start_sector} ${dtb_size_sectors} ; " \
  186. "mmc read ${linux_load_addr_phys} ${linux_start_sector} ${linux_size_sectors} ; " \
  187. "run boot_slave; " \
  188. "bootm ${linux_load_addr_virt} "
  189. #endif /* __CONFIG_H */