apf27.h 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. *
  4. * Configuration settings for the Armadeus Project motherboard APF27
  5. *
  6. * Copyright (C) 2008-2013 Eric Jarrige <eric.jarrige@armadeus.org>
  7. */
  8. #ifndef __CONFIG_H
  9. #define __CONFIG_H
  10. #include <linux/stringify.h>
  11. #define CONFIG_ENV_VERSION 10
  12. #define CONFIG_BOARD_NAME apf27
  13. /*
  14. * SoC configurations
  15. */
  16. #define CONFIG_MX27 /* This is a Freescale i.MX27 Chip */
  17. #define CONFIG_MACH_TYPE 1698 /* APF27 */
  18. /*
  19. * Enable the call to miscellaneous platform dependent initialization.
  20. */
  21. /*
  22. * SPL
  23. */
  24. #define CONFIG_SPL_TARGET "u-boot-with-spl.bin"
  25. #define CONFIG_SPL_MAX_SIZE 2048
  26. /* NAND boot config */
  27. #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
  28. #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x800
  29. #define CONFIG_SYS_NAND_U_BOOT_DST CONFIG_SYS_TEXT_BASE
  30. #define CONFIG_SYS_NAND_U_BOOT_SIZE CONFIG_SYS_MONITOR_LEN - 0x800
  31. /*
  32. * BOOTP options
  33. */
  34. #define CONFIG_BOOTP_BOOTFILESIZE
  35. #define CONFIG_HOSTNAME "apf27"
  36. #define CONFIG_ROOTPATH "/tftpboot/" __stringify(CONFIG_BOARD_NAME) "-root"
  37. /*
  38. * Memory configurations
  39. */
  40. #define CONFIG_NR_DRAM_POPULATED 1
  41. #define ACFG_SDRAM_MBYTE_SYZE 64
  42. #define PHYS_SDRAM_1 0xA0000000
  43. #define PHYS_SDRAM_2 0xB0000000
  44. #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
  45. #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (512<<10))
  46. #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE \
  47. + PHYS_SDRAM_1_SIZE - 0x0100000)
  48. /*
  49. * FLASH organization
  50. */
  51. #define ACFG_MONITOR_OFFSET 0x00000000
  52. #define CONFIG_SYS_MONITOR_LEN 0x00100000 /* 1MiB */
  53. #define CONFIG_ENV_OVERWRITE
  54. #define CONFIG_ENV_RANGE 0X00080000 /* 512kB */
  55. #define CONFIG_FIRMWARE_OFFSET 0x00200000
  56. #define CONFIG_FIRMWARE_SIZE 0x00080000 /* 512kB */
  57. #define CONFIG_KERNEL_OFFSET 0x00300000
  58. #define CONFIG_ROOTFS_OFFSET 0x00800000
  59. /*
  60. * U-Boot general configurations
  61. */
  62. #define CONFIG_SYS_CBSIZE 2048 /* console I/O buffer */
  63. #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
  64. /* Boot argument buffer size */
  65. /*
  66. * Boot Linux
  67. */
  68. #define CONFIG_CMDLINE_TAG /* send commandline to Kernel */
  69. #define CONFIG_SETUP_MEMORY_TAGS /* send memory definition to kernel */
  70. #define CONFIG_INITRD_TAG /* send initrd params */
  71. #define CONFIG_BOOTFILE __stringify(CONFIG_BOARD_NAME) "-linux.bin"
  72. #define ACFG_CONSOLE_DEV ttySMX0
  73. #define CONFIG_BOOTCOMMAND "run ubifsboot"
  74. #define CONFIG_SYS_AUTOLOAD "no"
  75. /*
  76. * Default load address for user programs and kernel
  77. */
  78. #define CONFIG_LOADADDR 0xA0000000
  79. #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
  80. /*
  81. * Extra Environments
  82. */
  83. #define CONFIG_EXTRA_ENV_SETTINGS \
  84. "env_version=" __stringify(CONFIG_ENV_VERSION) "\0" \
  85. "consoledev=" __stringify(ACFG_CONSOLE_DEV) "\0" \
  86. "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
  87. "partition=nand0,6\0" \
  88. "u-boot_addr=" __stringify(ACFG_MONITOR_OFFSET) "\0" \
  89. "env_addr=" __stringify(CONFIG_ENV_OFFSET) "\0" \
  90. "firmware_addr=" __stringify(CONFIG_FIRMWARE_OFFSET) "\0" \
  91. "firmware_size=" __stringify(CONFIG_FIRMWARE_SIZE) "\0" \
  92. "kernel_addr=" __stringify(CONFIG_KERNEL_OFFSET) "\0" \
  93. "rootfs_addr=" __stringify(CONFIG_ROOTFS_OFFSET) "\0" \
  94. "board_name=" __stringify(CONFIG_BOARD_NAME) "\0" \
  95. "kernel_addr_r=A0000000\0" \
  96. "check_env=if test -n ${flash_env_version}; " \
  97. "then env default env_version; " \
  98. "else env set flash_env_version ${env_version}; env save; "\
  99. "fi; " \
  100. "if itest ${flash_env_version} < ${env_version}; then " \
  101. "echo \"*** Warning - Environment version" \
  102. " change suggests: run flash_reset_env; reset\"; "\
  103. "env default flash_reset_env; "\
  104. "fi; \0" \
  105. "check_flash=nand lock; nand unlock ${env_addr}; \0" \
  106. "flash_reset_env=env default -f -a; saveenv; run update_env;" \
  107. "echo Flash environment variables erased!\0" \
  108. "download_uboot=tftpboot ${loadaddr} ${board_name}" \
  109. "-u-boot-with-spl.bin\0" \
  110. "flash_uboot=nand unlock ${u-boot_addr} ;" \
  111. "nand erase.part u-boot;" \
  112. "if nand write.trimffs ${fileaddr} ${u-boot_addr} ${filesize};"\
  113. "then nand lock; nand unlock ${env_addr};" \
  114. "echo Flashing of uboot succeed;" \
  115. "else echo Flashing of uboot failed;" \
  116. "fi; \0" \
  117. "update_uboot=run download_uboot flash_uboot\0" \
  118. "download_env=tftpboot ${loadaddr} ${board_name}" \
  119. "-u-boot-env.txt\0" \
  120. "flash_env=env import -t ${loadaddr}; env save; \0" \
  121. "update_env=run download_env flash_env\0" \
  122. "update_all=run update_env update_uboot\0" \
  123. "unlock_regs=mw 10000008 0; mw 10020008 0\0" \
  124. /*
  125. * Serial Driver
  126. */
  127. #define CONFIG_MXC_UART
  128. #define CONFIG_MXC_UART_BASE UART1_BASE
  129. /*
  130. * NOR
  131. */
  132. /*
  133. * NAND
  134. */
  135. #define CONFIG_MXC_NAND_REGS_BASE 0xD8000000
  136. #define CONFIG_SYS_NAND_BASE CONFIG_MXC_NAND_REGS_BASE
  137. #define CONFIG_SYS_MAX_NAND_DEVICE 1
  138. #define CONFIG_MXC_NAND_HWECC
  139. #define CONFIG_SYS_NAND_LARGEPAGE
  140. #define CONFIG_SYS_NAND_PAGE_SIZE 2048
  141. #define CONFIG_SYS_NAND_BLOCK_SIZE (128 * 1024)
  142. #define CONFIG_SYS_NAND_PAGE_COUNT CONFIG_SYS_NAND_BLOCK_SIZE / \
  143. CONFIG_SYS_NAND_PAGE_SIZE
  144. #define CONFIG_SYS_NAND_SIZE (256 * 1024 * 1024)
  145. #define CONFIG_SYS_NAND_BAD_BLOCK_POS 11
  146. #define NAND_MAX_CHIPS 1
  147. #define CONFIG_FLASH_SHOW_PROGRESS 45
  148. #define CONFIG_SYS_NAND_QUIET 1
  149. /*
  150. * Partitions & Filsystems
  151. */
  152. /*
  153. * Ethernet (on SOC imx FEC)
  154. */
  155. #define CONFIG_FEC_MXC
  156. #define CONFIG_FEC_MXC_PHYADDR 0x1f
  157. /*
  158. * FPGA
  159. */
  160. #define CONFIG_FPGA_COUNT 1
  161. #define CONFIG_SYS_FPGA_WAIT 250 /* 250 ms */
  162. #define CONFIG_SYS_FPGA_PROG_FEEDBACK
  163. #define CONFIG_SYS_FPGA_CHECK_CTRLC
  164. #define CONFIG_SYS_FPGA_CHECK_ERROR
  165. /*
  166. * Fuses - IIM
  167. */
  168. #ifdef CONFIG_CMD_IMX_FUSE
  169. #define IIM_MAC_BANK 0
  170. #define IIM_MAC_ROW 5
  171. #define IIM0_SCC_KEY 11
  172. #define IIM1_SUID 1
  173. #endif
  174. /*
  175. * I2C
  176. */
  177. #ifdef CONFIG_CMD_I2C
  178. #define CONFIG_SYS_I2C
  179. #define CONFIG_SYS_I2C_MXC
  180. #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */
  181. #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */
  182. #define CONFIG_SYS_MXC_I2C1_SPEED 100000 /* 100 kHz */
  183. #define CONFIG_SYS_MXC_I2C1_SLAVE 0x7F
  184. #define CONFIG_SYS_MXC_I2C2_SPEED 100000 /* 100 kHz */
  185. #define CONFIG_SYS_MXC_I2C2_SLAVE 0x7F
  186. #define CONFIG_SYS_I2C_NOPROBES { }
  187. #ifdef CONFIG_CMD_EEPROM
  188. # define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* EEPROM 24LC02 */
  189. # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* bytes of address */
  190. #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
  191. #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 /* msec */
  192. #endif /* CONFIG_CMD_EEPROM */
  193. #endif /* CONFIG_CMD_I2C */
  194. /*
  195. * SD/MMC
  196. */
  197. #ifdef CONFIG_CMD_MMC
  198. #define CONFIG_MXC_MCI_REGS_BASE 0x10014000
  199. #endif
  200. /*
  201. * RTC
  202. */
  203. #ifdef CONFIG_CMD_DATE
  204. #define CONFIG_RTC_DS1374
  205. #define CONFIG_SYS_RTC_BUS_NUM 0
  206. #endif /* CONFIG_CMD_DATE */
  207. /*
  208. * PLL
  209. *
  210. * 31 | x |x| x x x x |x x x x x x x x x x |x x|x x x x|x x x x x x x x x x| 0
  211. * |CPLM|X|----PD---|--------MFD---------|XXX|--MFI--|-----MFN-----------|
  212. */
  213. #define CONFIG_MX27_CLK32 32768 /* 32768 or 32000 Hz crystal */
  214. #if (ACFG_SDRAM_MBYTE_SYZE == 64) /* micron MT46H16M32LF -6 */
  215. /* micron 64MB */
  216. #define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */
  217. #define PHYS_SDRAM_2_SIZE 0x04000000 /* 64 MB */
  218. #endif
  219. #if (ACFG_SDRAM_MBYTE_SYZE == 128)
  220. /* micron 128MB */
  221. #define PHYS_SDRAM_1_SIZE 0x08000000 /* 128 MB */
  222. #define PHYS_SDRAM_2_SIZE 0x08000000 /* 128 MB */
  223. #endif
  224. #if (ACFG_SDRAM_MBYTE_SYZE == 256)
  225. /* micron 256MB */
  226. #define PHYS_SDRAM_1_SIZE 0x10000000 /* 256 MB */
  227. #define PHYS_SDRAM_2_SIZE 0x10000000 /* 256 MB */
  228. #endif
  229. #endif /* __CONFIG_H */