apf27.h 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. /*
  2. *
  3. * Configuration settings for the Armadeus Project motherboard APF27
  4. *
  5. * Copyright (C) 2008-2013 Eric Jarrige <eric.jarrige@armadeus.org>
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #ifndef __CONFIG_H
  10. #define __CONFIG_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. #define CONFIG_SYS_NO_FLASH
  22. /*
  23. * SPL
  24. */
  25. #define CONFIG_SPL_TARGET "u-boot-with-spl.bin"
  26. #define CONFIG_SPL_LDSCRIPT "arch/$(ARCH)/cpu/u-boot-spl.lds"
  27. #define CONFIG_SPL_MAX_SIZE 2048
  28. #define CONFIG_SPL_TEXT_BASE 0xA0000000
  29. /* NAND boot config */
  30. #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
  31. #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x800
  32. #define CONFIG_SYS_NAND_U_BOOT_DST CONFIG_SYS_TEXT_BASE
  33. #define CONFIG_SYS_NAND_U_BOOT_SIZE CONFIG_SYS_MONITOR_LEN - 0x800
  34. /*
  35. * BOOTP options
  36. */
  37. #define CONFIG_BOOTP_SUBNETMASK
  38. #define CONFIG_BOOTP_GATEWAY
  39. #define CONFIG_BOOTP_HOSTNAME
  40. #define CONFIG_BOOTP_BOOTPATH
  41. #define CONFIG_BOOTP_BOOTFILESIZE
  42. #define CONFIG_BOOTP_DNS
  43. #define CONFIG_BOOTP_DNS2
  44. #define CONFIG_HOSTNAME CONFIG_BOARD_NAME
  45. #define CONFIG_ROOTPATH "/tftpboot/" __stringify(CONFIG_BOARD_NAME) "-root"
  46. /*
  47. * U-Boot Commands
  48. */
  49. #define CONFIG_CMD_BSP /* Board Specific functions */
  50. #define CONFIG_CMD_DATE
  51. #define CONFIG_CMD_EEPROM
  52. #define CONFIG_CMD_IMX_FUSE /* imx iim fuse */
  53. #define CONFIG_CMD_MTDPARTS /* MTD partition support */
  54. #define CONFIG_CMD_NAND /* NAND support */
  55. #define CONFIG_CMD_NAND_LOCK_UNLOCK
  56. #define CONFIG_CMD_NAND_TRIMFFS
  57. #define CONFIG_CMD_UBIFS
  58. /*
  59. * Memory configurations
  60. */
  61. #define CONFIG_NR_DRAM_POPULATED 1
  62. #define CONFIG_NR_DRAM_BANKS 2
  63. #define ACFG_SDRAM_MBYTE_SYZE 64
  64. #define PHYS_SDRAM_1 0xA0000000
  65. #define PHYS_SDRAM_2 0xB0000000
  66. #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
  67. #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (512<<10))
  68. #define CONFIG_SYS_MEMTEST_START 0xA0000000 /* memtest test area */
  69. #define CONFIG_SYS_MEMTEST_END 0xA0300000 /* 3 MiB RAM test */
  70. #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE \
  71. + PHYS_SDRAM_1_SIZE - 0x0100000)
  72. #define CONFIG_SYS_TEXT_BASE 0xA0000800
  73. /*
  74. * FLASH organization
  75. */
  76. #define ACFG_MONITOR_OFFSET 0x00000000
  77. #define CONFIG_SYS_MONITOR_LEN 0x00100000 /* 1MiB */
  78. #define CONFIG_ENV_IS_IN_NAND
  79. #define CONFIG_ENV_OVERWRITE
  80. #define CONFIG_ENV_OFFSET 0x00100000 /* NAND offset */
  81. #define CONFIG_ENV_SIZE 0x00020000 /* 128kB */
  82. #define CONFIG_ENV_RANGE 0X00080000 /* 512kB */
  83. #define CONFIG_ENV_OFFSET_REDUND \
  84. (CONFIG_ENV_OFFSET + CONFIG_ENV_RANGE) /* +512kB */
  85. #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE /* 512kB */
  86. #define CONFIG_FIRMWARE_OFFSET 0x00200000
  87. #define CONFIG_FIRMWARE_SIZE 0x00080000 /* 512kB */
  88. #define CONFIG_KERNEL_OFFSET 0x00300000
  89. #define CONFIG_ROOTFS_OFFSET 0x00800000
  90. #define CONFIG_MTDMAP "mxc_nand.0"
  91. #define MTDIDS_DEFAULT "nand0=" CONFIG_MTDMAP
  92. #define MTDPARTS_DEFAULT "mtdparts=" CONFIG_MTDMAP \
  93. ":1M(u-boot)ro," \
  94. "512K(env)," \
  95. "512K(env2)," \
  96. "512K(firmware)," \
  97. "512K(dtb)," \
  98. "5M(kernel)," \
  99. "-(rootfs)"
  100. /*
  101. * U-Boot general configurations
  102. */
  103. #define CONFIG_SYS_LONGHELP
  104. #define CONFIG_SYS_CBSIZE 2048 /* console I/O buffer */
  105. #define CONFIG_SYS_PBSIZE \
  106. (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)
  107. /* Print buffer size */
  108. #define CONFIG_SYS_MAXARGS 16 /* max command args */
  109. #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
  110. /* Boot argument buffer size */
  111. #define CONFIG_AUTO_COMPLETE
  112. #define CONFIG_CMDLINE_EDITING
  113. #define CONFIG_ENV_VARS_UBOOT_CONFIG
  114. #define CONFIG_PREBOOT "run check_flash check_env;"
  115. /*
  116. * Boot Linux
  117. */
  118. #define CONFIG_CMDLINE_TAG /* send commandline to Kernel */
  119. #define CONFIG_SETUP_MEMORY_TAGS /* send memory definition to kernel */
  120. #define CONFIG_INITRD_TAG /* send initrd params */
  121. #define CONFIG_BOOTFILE __stringify(CONFIG_BOARD_NAME) "-linux.bin"
  122. #define CONFIG_BOOTARGS "console=" __stringify(ACFG_CONSOLE_DEV) "," \
  123. __stringify(CONFIG_BAUDRATE) " " MTDPARTS_DEFAULT \
  124. " ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs "
  125. #define ACFG_CONSOLE_DEV ttySMX0
  126. #define CONFIG_BOOTCOMMAND "run ubifsboot"
  127. #define CONFIG_SYS_AUTOLOAD "no"
  128. /*
  129. * Default load address for user programs and kernel
  130. */
  131. #define CONFIG_LOADADDR 0xA0000000
  132. #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
  133. /*
  134. * Extra Environments
  135. */
  136. #define CONFIG_EXTRA_ENV_SETTINGS \
  137. "env_version=" __stringify(CONFIG_ENV_VERSION) "\0" \
  138. "consoledev=" __stringify(ACFG_CONSOLE_DEV) "\0" \
  139. "mtdparts=" MTDPARTS_DEFAULT "\0" \
  140. "partition=nand0,6\0" \
  141. "u-boot_addr=" __stringify(ACFG_MONITOR_OFFSET) "\0" \
  142. "env_addr=" __stringify(CONFIG_ENV_OFFSET) "\0" \
  143. "firmware_addr=" __stringify(CONFIG_FIRMWARE_OFFSET) "\0" \
  144. "firmware_size=" __stringify(CONFIG_FIRMWARE_SIZE) "\0" \
  145. "kernel_addr=" __stringify(CONFIG_KERNEL_OFFSET) "\0" \
  146. "rootfs_addr=" __stringify(CONFIG_ROOTFS_OFFSET) "\0" \
  147. "board_name=" __stringify(CONFIG_BOARD_NAME) "\0" \
  148. "kernel_addr_r=A0000000\0" \
  149. "check_env=if test -n ${flash_env_version}; " \
  150. "then env default env_version; " \
  151. "else env set flash_env_version ${env_version}; env save; "\
  152. "fi; " \
  153. "if itest ${flash_env_version} < ${env_version}; then " \
  154. "echo \"*** Warning - Environment version" \
  155. " change suggests: run flash_reset_env; reset\"; "\
  156. "env default flash_reset_env; "\
  157. "fi; \0" \
  158. "check_flash=nand lock; nand unlock ${env_addr}; \0" \
  159. "flash_reset_env=env default -f -a; saveenv; run update_env;" \
  160. "echo Flash environment variables erased!\0" \
  161. "download_uboot=tftpboot ${loadaddr} ${board_name}" \
  162. "-u-boot-with-spl.bin\0" \
  163. "flash_uboot=nand unlock ${u-boot_addr} ;" \
  164. "nand erase.part u-boot;" \
  165. "if nand write.trimffs ${fileaddr} ${u-boot_addr} ${filesize};"\
  166. "then nand lock; nand unlock ${env_addr};" \
  167. "echo Flashing of uboot succeed;" \
  168. "else echo Flashing of uboot failed;" \
  169. "fi; \0" \
  170. "update_uboot=run download_uboot flash_uboot\0" \
  171. "download_env=tftpboot ${loadaddr} ${board_name}" \
  172. "-u-boot-env.txt\0" \
  173. "flash_env=env import -t ${loadaddr}; env save; \0" \
  174. "update_env=run download_env flash_env\0" \
  175. "update_all=run update_env update_uboot\0" \
  176. "unlock_regs=mw 10000008 0; mw 10020008 0\0" \
  177. /*
  178. * Serial Driver
  179. */
  180. #define CONFIG_MXC_UART
  181. #define CONFIG_CONS_INDEX 1
  182. #define CONFIG_BAUDRATE 115200
  183. #define CONFIG_MXC_UART_BASE UART1_BASE
  184. /*
  185. * GPIO
  186. */
  187. #define CONFIG_MXC_GPIO
  188. /*
  189. * NOR
  190. */
  191. /*
  192. * NAND
  193. */
  194. #define CONFIG_NAND_MXC
  195. #define CONFIG_MXC_NAND_REGS_BASE 0xD8000000
  196. #define CONFIG_SYS_NAND_BASE CONFIG_MXC_NAND_REGS_BASE
  197. #define CONFIG_SYS_MAX_NAND_DEVICE 1
  198. #define CONFIG_MXC_NAND_HWECC
  199. #define CONFIG_SYS_NAND_LARGEPAGE
  200. #define CONFIG_SYS_NAND_BUSWIDTH_16BIT
  201. #define CONFIG_SYS_NAND_PAGE_SIZE 2048
  202. #define CONFIG_SYS_NAND_BLOCK_SIZE (128 * 1024)
  203. #define CONFIG_SYS_NAND_PAGE_COUNT CONFIG_SYS_NAND_BLOCK_SIZE / \
  204. CONFIG_SYS_NAND_PAGE_SIZE
  205. #define CONFIG_SYS_NAND_SIZE (256 * 1024 * 1024)
  206. #define CONFIG_SYS_NAND_BAD_BLOCK_POS 11
  207. #define NAND_MAX_CHIPS 1
  208. #define CONFIG_FLASH_SHOW_PROGRESS 45
  209. #define CONFIG_SYS_NAND_QUIET 1
  210. /*
  211. * Partitions & Filsystems
  212. */
  213. #define CONFIG_MTD_DEVICE
  214. #define CONFIG_MTD_PARTITIONS
  215. #define CONFIG_DOS_PARTITION
  216. #define CONFIG_SUPPORT_VFAT
  217. /*
  218. * UBIFS
  219. */
  220. #define CONFIG_RBTREE
  221. #define CONFIG_LZO
  222. /*
  223. * Ethernet (on SOC imx FEC)
  224. */
  225. #define CONFIG_FEC_MXC
  226. #define CONFIG_FEC_MXC_PHYADDR 0x1f
  227. #define CONFIG_MII /* MII PHY management */
  228. /*
  229. * FPGA
  230. */
  231. #ifndef CONFIG_SPL_BUILD
  232. #define CONFIG_FPGA
  233. #endif
  234. #define CONFIG_FPGA_COUNT 1
  235. #define CONFIG_FPGA_XILINX
  236. #define CONFIG_FPGA_SPARTAN3
  237. #define CONFIG_SYS_FPGA_WAIT 250 /* 250 ms */
  238. #define CONFIG_SYS_FPGA_PROG_FEEDBACK
  239. #define CONFIG_SYS_FPGA_CHECK_CTRLC
  240. #define CONFIG_SYS_FPGA_CHECK_ERROR
  241. /*
  242. * Fuses - IIM
  243. */
  244. #ifdef CONFIG_CMD_IMX_FUSE
  245. #define IIM_MAC_BANK 0
  246. #define IIM_MAC_ROW 5
  247. #define IIM0_SCC_KEY 11
  248. #define IIM1_SUID 1
  249. #endif
  250. /*
  251. * I2C
  252. */
  253. #ifdef CONFIG_CMD_I2C
  254. #define CONFIG_SYS_I2C
  255. #define CONFIG_SYS_I2C_MXC
  256. #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */
  257. #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */
  258. #define CONFIG_SYS_MXC_I2C1_SPEED 100000 /* 100 kHz */
  259. #define CONFIG_SYS_MXC_I2C1_SLAVE 0x7F
  260. #define CONFIG_SYS_MXC_I2C2_SPEED 100000 /* 100 kHz */
  261. #define CONFIG_SYS_MXC_I2C2_SLAVE 0x7F
  262. #define CONFIG_SYS_I2C_NOPROBES { }
  263. #ifdef CONFIG_CMD_EEPROM
  264. # define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* EEPROM 24LC02 */
  265. # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* bytes of address */
  266. #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
  267. #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 /* msec */
  268. #endif /* CONFIG_CMD_EEPROM */
  269. #endif /* CONFIG_CMD_I2C */
  270. /*
  271. * SD/MMC
  272. */
  273. #ifdef CONFIG_CMD_MMC
  274. #define CONFIG_GENERIC_MMC
  275. #define CONFIG_MXC_MMC
  276. #define CONFIG_MXC_MCI_REGS_BASE 0x10014000
  277. #endif
  278. /*
  279. * RTC
  280. */
  281. #ifdef CONFIG_CMD_DATE
  282. #define CONFIG_RTC_DS1374
  283. #define CONFIG_SYS_RTC_BUS_NUM 0
  284. #endif /* CONFIG_CMD_DATE */
  285. /*
  286. * PLL
  287. *
  288. * 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
  289. * |CPLM|X|----PD---|--------MFD---------|XXX|--MFI--|-----MFN-----------|
  290. */
  291. #define CONFIG_MX27_CLK32 32768 /* 32768 or 32000 Hz crystal */
  292. #if (ACFG_SDRAM_MBYTE_SYZE == 64) /* micron MT46H16M32LF -6 */
  293. /* micron 64MB */
  294. #define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */
  295. #define PHYS_SDRAM_2_SIZE 0x04000000 /* 64 MB */
  296. #endif
  297. #if (ACFG_SDRAM_MBYTE_SYZE == 128)
  298. /* micron 128MB */
  299. #define PHYS_SDRAM_1_SIZE 0x08000000 /* 128 MB */
  300. #define PHYS_SDRAM_2_SIZE 0x08000000 /* 128 MB */
  301. #endif
  302. #if (ACFG_SDRAM_MBYTE_SYZE == 256)
  303. /* micron 256MB */
  304. #define PHYS_SDRAM_1_SIZE 0x10000000 /* 256 MB */
  305. #define PHYS_SDRAM_2_SIZE 0x10000000 /* 256 MB */
  306. #endif
  307. #endif /* __CONFIG_H */