xea.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2019 DENX Software Engineering
  4. * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
  5. *
  6. * Copyright (C) 2018 DENX Software Engineering
  7. * Måns Rullgård, DENX Software Engineering, mans@mansr.com
  8. *
  9. * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
  10. * on behalf of DENX Software Engineering GmbH
  11. */
  12. #ifndef __CONFIGS_XEA_H__
  13. #define __CONFIGS_XEA_H__
  14. #include <linux/sizes.h>
  15. #define CONFIG_TIMESTAMP /* Print image info with timestamp */
  16. /* SPL */
  17. #define CONFIG_SPL_STACK 0x20000
  18. #define CONFIG_SYS_SPL_ARGS_ADDR 0x44000000
  19. #define CONFIG_SYS_SPI_KERNEL_OFFS SZ_1M
  20. #define CONFIG_SYS_SPI_ARGS_OFFS SZ_512K
  21. #define CONFIG_SYS_SPI_ARGS_SIZE SZ_32K
  22. #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR (SZ_512K / 0x200)
  23. #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (SZ_32K / 0x200)
  24. #define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR (SZ_1M / 0x200)
  25. #ifndef CONFIG_SPL_BUILD
  26. #define CONFIG_SPI_FLASH_MTD
  27. #endif
  28. /* Memory configuration */
  29. #define PHYS_SDRAM_1 0x40000000 /* Base address */
  30. #define PHYS_SDRAM_1_SIZE 0x10000000 /* Max 256 MB RAM */
  31. #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
  32. /* Environment */
  33. /* Booting Linux */
  34. #define CONFIG_BOOTFILE "uImage"
  35. #define CONFIG_BOOTCOMMAND "run ${bootpri} ; run ${bootsec}"
  36. #define CONFIG_LOADADDR 0x42000000
  37. #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
  38. /* Extra Environment */
  39. #define CONFIG_HOSTNAME "xea"
  40. #define CONFIG_EXTRA_ENV_SETTINGS \
  41. "bootmode=update\0" \
  42. "bootpri=mmc_mmc\0" \
  43. "bootsec=sf_swu\0" \
  44. "consdev=ttyAMA0\0" \
  45. "baudrate=115200\0" \
  46. "dtbaddr=0x44000000\0" \
  47. "dtbfile=imx28-xea.dtb\0" \
  48. "rootdev=/dev/mmcblk0p2\0" \
  49. "netdev=eth0\0" \
  50. "rdaddr=0x43000000\0" \
  51. "swufile=swupdate.img\0" \
  52. "sf_kernel_offset=0x100000\0" \
  53. "sf_kernel_size=0x400000\0" \
  54. "sf_swu_offset=0x500000\0" \
  55. "sf_swu_size=0x800000\0" \
  56. "rootpath=/opt/eldk-5.5/armv5te/rootfs-qte-sdk\0" \
  57. "do_update_mmc=" \
  58. "if mmc rescan ; then " \
  59. "mmc dev 0 ${update_mmc_part} ; " \
  60. "if dhcp ${hostname}/${update_filename} ; then " \
  61. "setexpr fw_sz ${filesize} / 0x200 ; " /* SD block size */ \
  62. "setexpr fw_sz ${fw_sz} + 1 ; " \
  63. "mmc write ${loadaddr} ${update_offset} ${fw_sz} ; " \
  64. "fi ; " \
  65. "fi\0" \
  66. "do_update_sf=" \
  67. "if sf probe ; then " \
  68. "if dhcp ${hostname}/${update_filename} ; then " \
  69. "sf erase ${update_offset} +${filesize} ; " \
  70. "sf write ${loadaddr} ${update_offset} ${filesize} ; " \
  71. "fi ; " \
  72. "fi\0" \
  73. "update_spl_filename=u-boot.sb\0" \
  74. "update_spl=" \
  75. "setenv update_filename ${update_spl_filename} ; " \
  76. "setenv update_offset 0 ; " \
  77. "run do_update_sf\0" \
  78. "update_uboot_filename=u-boot.img\0" \
  79. "update_uboot=" \
  80. "setenv update_filename ${update_uboot_filename} ; " \
  81. "setenv update_offset 0x10000 ; " \
  82. "run do_update_sf ; " \
  83. "setenv update_mmc_part 1 ; " \
  84. "setenv update_offset 0 ; " \
  85. "run do_update_mmc\0" \
  86. "update_kernel_filename=uImage\0" \
  87. "update_kernel=" \
  88. "setenv update_mmc_part 1 ; " \
  89. "setenv update_filename ${update_kernel_filename} ; " \
  90. "setenv update_offset 0x800 ; " \
  91. "run do_update_mmc ; " \
  92. "setenv update_filename ${dtbfile} ; " \
  93. "setenv update_offset 0x400 ; " \
  94. "run do_update_mmc\0" \
  95. "update_sfkernel=" \
  96. "setenv update_filename fitImage ; " \
  97. "setenv update_offset ${sf_kernel_offset} ; " \
  98. "run do_update_sf\0" \
  99. "update_swu=" \
  100. "setenv update_filename ${swufile} ; " \
  101. "setenv update_offset ${sf_swu_offset} ; " \
  102. "run do_update_sf\0" \
  103. "addcons=" \
  104. "setenv bootargs ${bootargs} " \
  105. "console=${consdev},${baudrate}\0" \
  106. "addip=" \
  107. "setenv bootargs ${bootargs} " \
  108. "ip=${ipaddr}:${serverip}:${gatewayip}:" \
  109. "${netmask}:${hostname}:${netdev}:off\0" \
  110. "addmisc=" \
  111. "setenv bootargs ${bootargs} ${miscargs}\0" \
  112. "addargs=run addcons addmisc\0" \
  113. "mmcload=" \
  114. "mmc rescan ; " \
  115. "mmc dev 0 1 ; " \
  116. "mmc read ${loadaddr} 0x800 0x2000 ; " \
  117. "mmc read ${dtbaddr} 0x400 0x80\0" \
  118. "netload=" \
  119. "dhcp ${loadaddr} ${hostname}/${bootfile} ; " \
  120. "tftp ${dtbaddr} ${hostname}/${dtbfile}\0" \
  121. "sfload=" \
  122. "sf probe ; " \
  123. "sf read ${loadaddr} ${sf_kernel_offset} ${sf_kernel_size}\0" \
  124. "usbload=" \
  125. "usb start ; " \
  126. "load usb 0:1 ${loadaddr} ${bootfile}\0" \
  127. "miscargs=panic=1\0" \
  128. "mmcargs=setenv bootargs root=${rootdev} rw rootwait\0" \
  129. "nfsargs=" \
  130. "setenv bootargs root=/dev/nfs rw " \
  131. "nfsroot=${serverip}:${rootpath},v3,tcp\0" \
  132. "mmc_mmc=" \
  133. "if run mmcload mmcargs addargs ; then " \
  134. "bootm ${loadaddr} - ${dtbaddr} ; " \
  135. "fi\0" \
  136. "mmc_nfs=" \
  137. "if run mmcload nfsargs addip addargs ; then " \
  138. "bootm ${loadaddr} - ${dtbaddr} ; " \
  139. "fi\0" \
  140. "sf_mmc=" \
  141. "if run sfload mmcargs addargs ; then " \
  142. "bootm ${loadaddr} - ${dtbaddr} ; " \
  143. "fi\0" \
  144. "sf_swu=" \
  145. "if run sfload ; then " \
  146. "sf read ${rdaddr} ${sf_swu_offset} ${sf_swu_size} ; " \
  147. "setenv bootargs root=/dev/ram0 rw ; " \
  148. "run addargs ; " \
  149. "bootm ${loadaddr} ${rdaddr} ; " \
  150. "fi\0" \
  151. "net_mmc=" \
  152. "if run netload mmcargs addargs ; then " \
  153. "bootm ${loadaddr} - ${dtbaddr} ; " \
  154. "fi\0" \
  155. "net_nfs=" \
  156. "if run netload nfsargs addip addargs ; then " \
  157. "bootm ${loadaddr} - ${dtbaddr} ; " \
  158. "fi\0" \
  159. "prebootcmd=" \
  160. "if test \"${envsaved}\" != y ; then ; " \
  161. "setenv envsaved y ; " \
  162. "saveenv ; " \
  163. "fi ; " \
  164. "if test \"${bootmode}\" = normal ; then " \
  165. "setenv bootdelay 0 ; " \
  166. "setenv bootpri mmc_mmc ; " \
  167. "elif test \"${bootmode}\" = devel ; then " \
  168. "setenv bootdelay 3 ; " \
  169. "setenv bootpri net_mmc ; " \
  170. "else " \
  171. "if test \"${bootmode}\" != update ; then " \
  172. "echo Warning: unknown bootmode \"${bootmode}\" ; " \
  173. "fi ; " \
  174. "setenv bootdelay 1 ; " \
  175. "setenv bootpri sf_swu ; " \
  176. "fi\0"
  177. /* The rest of the configuration is shared */
  178. #include <configs/mxs.h>
  179. #endif /* __CONFIGS_XEA_H__ */