bk4r1.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2018
  4. * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
  5. *
  6. * Copyright 2016 3ADEV <http://3adev.com>
  7. * Written-by: Albert ARIBAUD <albert.aribaud@3adev.fr>
  8. *
  9. * Configuration settings for BK4R1.
  10. */
  11. #ifndef __CONFIG_H
  12. #define __CONFIG_H
  13. /* Define the BK4r1-specific env commands */
  14. #define BK4_EXTRA_ENV_SETTINGS \
  15. "bootlimit=3\0" \
  16. "eraseuserdata=false\0" \
  17. "altbootcmd=led 5 on; " \
  18. "boot\0" \
  19. "set_gpio103=mw 0x400ff0c4 0x0080; mw 0x4004819C 0x000011bf\0" \
  20. "set_gpio102=mw 0x400ff0c4 0x40; mw 0x40048198 0x000011bf\0" \
  21. "set_gpio96=mw 0x40048180 0x282; mw 0x400ff0c4 0x1\0"\
  22. "set_gpio122=mw 0x400481e8 0x0282; mw 0x400ff0c4 0x04000000\0"\
  23. "set_gpio6=mw 0x40048018 0x282; mw 0x400ff008 0x40\0"\
  24. "manage_userdata=" MANAGE_USERDATA "\0"\
  25. "ncenable=true\0"\
  26. "ncserverip=192.168.0.77\0"\
  27. "if_netconsole=ping $ncserverip\0"\
  28. "start_netconsole=setenv ncip $serverip; setenv bootdelay 10;" \
  29. "setenv stdin nc; setenv stdout nc; setenv stderr nc; version;\0" \
  30. "preboot=" BK4_NET_INIT \
  31. "if ${ncenable}; then run if_netconsole start_netconsole; fi\0"
  32. /* BK4r1 boot command sets GPIO103/PTC30 to force USB hub out of reset*/
  33. #define BK4_BOOTCOMMAND "run set_gpio122; run set_gpio96; sf probe; " \
  34. "run manage_userdata; "
  35. /* Enable PREBOOT variable */
  36. /* Set ARP_TIMEOUT to 500ms */
  37. #define CONFIG_ARP_TIMEOUT 500UL
  38. /* Set ARP_TIMEOUT_COUNT to 3 repetitions */
  39. #define CONFIG_NET_RETRY_COUNT 5
  40. /* BK4r1 net init sets GPIO122/PTE17 to enable Ethernet */
  41. #define BK4_NET_INIT "run set_gpio122;"
  42. /* Check if userdata volume shall be erased */
  43. #define MANAGE_USERDATA "if ${eraseuserdata}; " \
  44. "then ubi part system; " \
  45. "ubi remove userdata; " \
  46. "ubi create userdata; " \
  47. "ubi detach; " \
  48. "setenv eraseuserdata false; " \
  49. "saveenv; " \
  50. "fi; "
  51. /* Autoboot options */
  52. #define CONFIG_AUTOBOOT_KEYED
  53. #define CONFIG_AUTOBOOT_PROMPT \
  54. "Enter passphrase to stop autoboot, booting in %d seconds\n"
  55. #define CONFIG_AUTOBOOT_STOP_STR "123"
  56. #include <asm/arch/imx-regs.h>
  57. #include <linux/sizes.h>
  58. #define CONFIG_SKIP_LOWLEVEL_INIT
  59. /* Enable passing of ATAGs */
  60. #define CONFIG_CMDLINE_TAG
  61. /* Size of malloc() pool */
  62. #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 4 * SZ_1M)
  63. /* Allow to overwrite serial and ethaddr */
  64. #define CONFIG_ENV_OVERWRITE
  65. /* NAND support */
  66. #define CONFIG_SYS_NAND_ONFI_DETECTION
  67. #define CONFIG_SYS_MAX_NAND_DEVICE 1
  68. #define IMX_FEC1_BASE ENET1_BASE_ADDR
  69. /* QSPI Configs*/
  70. #ifdef CONFIG_FSL_QSPI
  71. #define FSL_QSPI_FLASH_SIZE (SZ_16M)
  72. #define FSL_QSPI_FLASH_NUM 2
  73. #define CONFIG_SYS_FSL_QSPI_LE
  74. #endif
  75. #define CONFIG_LOADADDR 0x82000000
  76. /* We boot from the gfxRAM area of the OCRAM. */
  77. #define CONFIG_BOARD_SIZE_LIMIT 520192
  78. /* boot command, including the target-defined one if any */
  79. #define CONFIG_BOOTCOMMAND BK4_BOOTCOMMAND "run bootcmd_nand"
  80. /* Extra env settings (including the target-defined ones if any) */
  81. #define CONFIG_EXTRA_ENV_SETTINGS \
  82. BK4_EXTRA_ENV_SETTINGS \
  83. "autoload=no\0" \
  84. "fdt_high=0xffffffff\0" \
  85. "initrd_high=0xffffffff\0" \
  86. "blimg_file=u-boot.vyb\0" \
  87. "blimg_addr=0x81000000\0" \
  88. "dtbkernel_file=fitImage\0" \
  89. "dtbkernel_addr=0x82000000\0" \
  90. "ram_file=uRamdisk\0" \
  91. "ram_addr=0x83000000\0" \
  92. "filesys=rootfs.ubifs\0" \
  93. "sys_addr=0x81000000\0" \
  94. "nfs_root=/path/to/nfs/root\0" \
  95. "tftptimeout=1000\0" \
  96. "tftptimeoutcountmax=1000000\0" \
  97. "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
  98. "ipaddr=192.168.0.60\0" \
  99. "serverip=192.168.0.1\0" \
  100. "bootargs_base=setenv bootargs rw " \
  101. "console=ttyLP1,115200n8\0" \
  102. "bootargs_sd=setenv bootargs ${bootargs} " \
  103. "root=/dev/mmcblk0p2 rootwait\0" \
  104. "bootargs_nand=setenv bootargs ${bootargs} " \
  105. "ubi.mtd=5 rootfstype=" \
  106. "ubifs root=ubi0:rootfs${active_workset}\0" \
  107. "bootargs_ram=setenv bootargs ${bootargs} " \
  108. "root=/dev/ram rw initrd=${ram_addr}\0" \
  109. "bootargs_mtd=setenv bootargs ${bootargs} ${mtdparts}\0" \
  110. "bootcmd_sd=run bootargs_base bootargs_sd bootargs_mtd; " \
  111. "fatload mmc 0:2 ${dtbkernel_addr} ${dtbkernel_file}; " \
  112. "bootm ${dtbkernel_addr}\0" \
  113. "bootcmd_nand=sf probe;run bootargs_base bootargs_nand bootargs_mtd; " \
  114. "ubi part dtbkernel; " \
  115. "ubi readvol ${dtbkernel_addr} dtbkernel${active_workset}; " \
  116. "led 0 on; " \
  117. "bootm ${dtbkernel_addr}\0" \
  118. "bootcmd_ram=run bootargs_base bootargs_ram bootargs_mtd; " \
  119. "nand read ${fdt_addr} dtb; " \
  120. "nand read ${kernel_addr} kernel; " \
  121. "nand read ${ram_addr} root; " \
  122. "bootz ${kernel_addr} ${ram_addr} ${fdt_addr}\0" \
  123. "update_bootloader_from_sd=if fatload mmc 0:2 ${blimg_addr} " \
  124. "${blimg_file}; " \
  125. "then sf probe; " \
  126. "mtdparts default; " \
  127. "nand erase.part bootloader; " \
  128. "nand write ${blimg_addr} bootloader ${filesize}; fi\0" \
  129. "update_bootloader_from_tftp=if tftp ${blimg_addr} "\
  130. "${tftpdir}${blimg_file}; "\
  131. "then sf probe; " \
  132. "mtdparts default; " \
  133. "nand erase.part bootloader; " \
  134. "nand write ${blimg_addr} bootloader ${filesize}; fi\0" \
  135. "update_dtbkernel_from_sd=if fatload mmc 0:2 ${dtbkernel_addr} " \
  136. "${dtbkernel_file}; " \
  137. "then sf probe; " \
  138. "ubi part dtbkernel; " \
  139. "ubi write ${dtbkernel_addr} dtbkernel${active_workset} " \
  140. "${filesize}; " \
  141. "ubi detach; fi\0" \
  142. "update_dtbkernel_from_tftp=if tftp ${dtbkernel_addr} " \
  143. "${tftpdir}${dtbkernel_file}; " \
  144. "then sf probe; " \
  145. "ubi part dtbkernel; " \
  146. "ubi write ${dtbkernel_addr} dtbkernel${active_workset} " \
  147. "${filesize}; " \
  148. "ubi detach; fi\0" \
  149. "update_ramdisk_from_sd=if fatload mmc 0:2 ${ram_addr} " \
  150. "${ram_file}; " \
  151. "then sf probe; " \
  152. "mtdparts default; " \
  153. "nand erase.part initrd; " \
  154. "nand write ${ram_addr} initrd ${filesize}; fi\0" \
  155. "update_ramdisk_from_tftp=if tftp ${ram_addr} ${tftpdir}${ram_file}; " \
  156. "then sf probe; " \
  157. "nand erase.part initrd; " \
  158. "nand write ${ram_addr} initrd ${filesize}; fi\0" \
  159. "update_rootfs_from_sd=if fatload mmc 0:2 ${sys_addr} " \
  160. "${filesys}; " \
  161. "then sf probe; " \
  162. "ubi part system; " \
  163. "ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \
  164. "ubi detach; fi\0" \
  165. "update_rootfs_from_tftp=if tftp ${sys_addr} ${tftpdir}${filesys}; " \
  166. "then sf probe; " \
  167. "ubi part system; " \
  168. "ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \
  169. "ubi detach; fi\0" \
  170. "setup_dtbkernel=nand erase.part dtbkernel; " \
  171. "ubi part dtbkernel; " \
  172. "ubi create dtbkernel1 972000 s; " \
  173. "ubi create dtbkernel2 972000 s; " \
  174. "ubi detach\0" \
  175. "setup_system=nand erase.part system; " \
  176. "ubi part system; " \
  177. "ubi create rootfs1 15E15000 d; " \
  178. "ubi create rootfs2 15E15000 d; " \
  179. "ubi create userdata; " \
  180. "ubi detach\0" \
  181. "setup_nor1=" BK4_NET_INIT \
  182. "if tftp ${sys_addr} ${tftpdir}ubinor1.img; " \
  183. "then sf probe 0:0; " \
  184. "sf erase 0 01000000; " \
  185. "mtdparts default; " \
  186. "ubi part nor; " \
  187. "ubi create nor1fs; " \
  188. "ubi write ${sys_addr} nor1fs ${filesize}; " \
  189. "ubi detach; fi\0" \
  190. "setup_nor2=" BK4_NET_INIT \
  191. "if tftp ${sys_addr} ${tftpdir}ubinor2.img; " \
  192. "then sf probe 0:1; " \
  193. "sf erase 0 01000000; " \
  194. "mtdparts default; " \
  195. "ubi part nor; " \
  196. "ubi create nor2fs; " \
  197. "ubi write ${sys_addr} nor2fs ${filesize}; " \
  198. "ubi detach; fi\0" \
  199. "prepare_install_bk4r1_envs=" \
  200. "echo 'Preparing envs for SD card recovery!';" \
  201. "setenv ipaddr 192.168.0.99;" \
  202. "setenv serverip 192.168.0.50;" \
  203. "\0" \
  204. "install_bk4r1rs="\
  205. "led 0 on; " \
  206. "nand erase.chip; mtdparts default; "\
  207. "led 1 on; "\
  208. "run setup_dtbkernel; " \
  209. "run setup_system; " \
  210. "led 2 on;" \
  211. "run update_bootloader_from_sd; "\
  212. "run update_dtbkernel_from_sd; "\
  213. "run update_rootfs_from_sd; "\
  214. "setenv bootcmd 'run bootcmd_nand'; "\
  215. "saveenv; " \
  216. "led 3 on; " \
  217. "echo Finished - Please Power off, REMOVE SDCARD and set boot" \
  218. "source to NAND\0" \
  219. "active_workset=1\0"
  220. /* Miscellaneous configurable options */
  221. #define CONFIG_SYS_MEMTEST_START 0x80010000
  222. #define CONFIG_SYS_MEMTEST_END 0x87C00000
  223. #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
  224. /* Physical memory map */
  225. #define PHYS_SDRAM (0x80000000)
  226. #define PHYS_SDRAM_SIZE (SZ_512M)
  227. #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
  228. #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
  229. #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
  230. #define CONFIG_SYS_INIT_SP_OFFSET \
  231. (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
  232. #define CONFIG_SYS_INIT_SP_ADDR \
  233. (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
  234. #endif /* __CONFIG_H */