uniphier.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2012-2015 Panasonic Corporation
  4. * Copyright (C) 2015-2016 Socionext Inc.
  5. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  6. */
  7. /* U-Boot - Common settings for UniPhier Family */
  8. #ifndef __CONFIG_UNIPHIER_H__
  9. #define __CONFIG_UNIPHIER_H__
  10. #ifndef CONFIG_SPL_BUILD
  11. #include <config_distro_bootcmd.h>
  12. #ifdef CONFIG_CMD_MMC
  13. #define BOOT_TARGET_DEVICE_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
  14. #else
  15. #define BOOT_TARGET_DEVICE_MMC(func)
  16. #endif
  17. #ifdef CONFIG_CMD_UBIFS
  18. #define BOOT_TARGET_DEVICE_UBIFS(func) func(UBIFS, ubifs, 0)
  19. #else
  20. #define BOOT_TARGET_DEVICE_UBIFS(func)
  21. #endif
  22. #ifdef CONFIG_CMD_USB
  23. #define BOOT_TARGET_DEVICE_USB(func) func(USB, usb, 0)
  24. #else
  25. #define BOOT_TARGET_DEVICE_USB(func)
  26. #endif
  27. #define BOOT_TARGET_DEVICES(func) \
  28. BOOT_TARGET_DEVICE_MMC(func) \
  29. BOOT_TARGET_DEVICE_UBIFS(func) \
  30. BOOT_TARGET_DEVICE_USB(func)
  31. #else
  32. #define BOOTENV
  33. #endif
  34. #define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024)
  35. #define CONFIG_TIMESTAMP
  36. #define CONFIG_SYS_MONITOR_BASE 0
  37. #define CONFIG_SYS_MONITOR_LEN 0x00200000 /* 2MB */
  38. #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
  39. /* Boot Argument Buffer Size */
  40. #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
  41. #if !defined(CONFIG_ARM64)
  42. /* Time clock 1MHz */
  43. #define CONFIG_SYS_TIMER_RATE 1000000
  44. #endif
  45. #define CONFIG_SYS_MAX_NAND_DEVICE 1
  46. #define CONFIG_SYS_NAND_ONFI_DETECTION
  47. #define CONFIG_SYS_NAND_REGS_BASE 0x68100000
  48. #define CONFIG_SYS_NAND_DATA_BASE 0x68000000
  49. #define CONFIG_SYS_NAND_BAD_BLOCK_POS 0
  50. /*
  51. * Network Configuration
  52. */
  53. #define CONFIG_SERVERIP 192.168.11.1
  54. #define CONFIG_IPADDR 192.168.11.10
  55. #define CONFIG_GATEWAYIP 192.168.11.1
  56. #define CONFIG_NETMASK 255.255.255.0
  57. #define CONFIG_SYS_LOAD_ADDR 0x85000000
  58. #define CONFIG_SYS_BOOTM_LEN (32 << 20)
  59. #if defined(CONFIG_ARM64)
  60. /* ARM Trusted Firmware */
  61. #define BOOT_IMAGES \
  62. "second_image=unph_bl.bin\0" \
  63. "third_image=fip.bin\0"
  64. #else
  65. #define BOOT_IMAGES \
  66. "second_image=u-boot-spl.bin\0" \
  67. "third_image=u-boot.bin\0"
  68. #endif
  69. #define CONFIG_ROOTPATH "/nfs/root/path"
  70. #define CONFIG_NFSBOOTCOMMAND \
  71. "setenv bootargs $bootargs root=/dev/nfs rw " \
  72. "nfsroot=$serverip:$rootpath " \
  73. "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off;" \
  74. "run __nfsboot"
  75. #ifdef CONFIG_FIT
  76. #define CONFIG_BOOTFILE "fitImage"
  77. #define KERNEL_ADDR_R_OFFSET "0x05100000"
  78. #define LINUXBOOT_ENV_SETTINGS \
  79. "tftpboot=tftpboot $kernel_addr_r $bootfile &&" \
  80. "bootm $kernel_addr_r\0" \
  81. "__nfsboot=run tftpboot\0"
  82. #else
  83. #ifdef CONFIG_ARM64
  84. #define CONFIG_BOOTFILE "Image"
  85. #define LINUXBOOT_CMD "booti"
  86. #define KERNEL_ADDR_R_OFFSET "0x02080000"
  87. #else
  88. #define CONFIG_BOOTFILE "zImage"
  89. #define LINUXBOOT_CMD "bootz"
  90. #define KERNEL_ADDR_R_OFFSET "0x00208000"
  91. #endif
  92. #define LINUXBOOT_ENV_SETTINGS \
  93. "boot_common=setexpr bootm_low $kernel_addr_r '&' fe000000 && " \
  94. LINUXBOOT_CMD " $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \
  95. "tftpboot=tftpboot $kernel_addr_r $bootfile && " \
  96. "tftpboot $fdt_addr_r $fdtfile &&" \
  97. "tftpboot $ramdisk_addr_r $ramdisk_file &&" \
  98. "setenv ramdisk_addr_r $ramdisk_addr_r:$filesize &&" \
  99. "run boot_common\0" \
  100. "__nfsboot=tftpboot $kernel_addr_load $bootfile && " \
  101. "tftpboot $fdt_addr_r $fdtfile &&" \
  102. "setenv ramdisk_addr_r - &&" \
  103. "run boot_common\0"
  104. #endif
  105. #define CONFIG_EXTRA_ENV_SETTINGS \
  106. "fdt_addr_r_offset=0x05100000\0" \
  107. "kernel_addr_r_offset=" KERNEL_ADDR_R_OFFSET "\0" \
  108. "ramdisk_addr_r_offset=0x06000000\0" \
  109. "ramdisk_file=rootfs.cpio.gz\0" \
  110. "netdev=eth0\0" \
  111. "initrd_high=0xffffffffffffffff\0" \
  112. "loadaddr_offset=0x05000000\0" \
  113. "script=boot.scr\0" \
  114. "scriptaddr=0x85000000\0" \
  115. "nor_base=0x42000000\0" \
  116. "emmcboot=mmcsetn && run bootcmd_mmc${mmc_first_dev}\0" \
  117. "nandboot=run bootcmd_ubifs0\0" \
  118. "norboot=run tftpboot\0" \
  119. "sdboot=sdsetn && run bootcmd_mmc${sd_first_dev}\0" \
  120. "usbboot=run bootcmd_usb0\0" \
  121. "emmcscript=setenv devtype mmc && " \
  122. "mmcsetn && " \
  123. "setenv devnum ${mmc_first_dev} && " \
  124. "run loadscript_fat\0" \
  125. "nandscript=echo Running ${script} from ubi ... && " \
  126. "ubi part UBI && " \
  127. "ubifsmount ubi0:boot && " \
  128. "ubifsload ${loadaddr} ${script} && " \
  129. "source $loadaddr\0" \
  130. "sdscript=setenv devtype mmc && " \
  131. "sdsetn && " \
  132. "setenv devnum ${sd_first_dev} && " \
  133. "run loadscript_fat\0" \
  134. "norscript=echo Running ${script} from tftp ... && " \
  135. "tftpboot ${script} &&" \
  136. "source $loadaddr\0" \
  137. "usbscript=usb start && " \
  138. "setenv devtype usb && " \
  139. "setenv devnum 0 && " \
  140. "run loadscript_fat\0" \
  141. "loadscript_fat=echo Running ${script} from ${devtype}${devnum} ... && " \
  142. "load ${devtype} ${devnum}:1 ${loadaddr} ${script} && " \
  143. "source $loadaddr\0" \
  144. "sramupdate=setexpr tmp_addr $nor_base + 0x50000 &&" \
  145. "tftpboot $tmp_addr $second_image && " \
  146. "setexpr tmp_addr $nor_base + 0x70000 && " \
  147. "tftpboot $tmp_addr $third_image\0" \
  148. "emmcupdate=mmcsetn &&" \
  149. "mmc dev $mmc_first_dev &&" \
  150. "mmc partconf $mmc_first_dev 0 1 1 &&" \
  151. "tftpboot $second_image && " \
  152. "mmc write $loadaddr 0 100 && " \
  153. "tftpboot $third_image && " \
  154. "mmc write $loadaddr 100 f00\0" \
  155. "nandupdate=nand erase 0 0x00100000 &&" \
  156. "tftpboot $second_image && " \
  157. "nand write $loadaddr 0 0x00020000 && " \
  158. "tftpboot $third_image && " \
  159. "nand write $loadaddr 0x00020000 0x001e0000\0" \
  160. "sdupdate=sdsetn &&" \
  161. "mmc dev $sd_first_dev &&" \
  162. "tftpboot $second_image && " \
  163. "mmc write $loadaddr 0 100 && " \
  164. "tftpboot $third_image && " \
  165. "mmc write $loadaddr 100 f00\0" \
  166. "usbupdate=usb start &&" \
  167. "tftpboot $second_image && " \
  168. "usb write $loadaddr 0 100 && " \
  169. "tftpboot $third_image && " \
  170. "usb write $loadaddr 100 f00\0" \
  171. BOOT_IMAGES \
  172. LINUXBOOT_ENV_SETTINGS \
  173. BOOTENV
  174. #define CONFIG_SYS_BOOTMAPSZ 0x20000000
  175. #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE)
  176. /* only for SPL */
  177. #define CONFIG_SPL_STACK (0x00100000)
  178. #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x20000
  179. /* subtract sizeof(struct image_header) */
  180. #define CONFIG_SYS_UBOOT_BASE (0x130000 - 0x40)
  181. #define CONFIG_SPL_TARGET "u-boot-with-spl.bin"
  182. #define CONFIG_SPL_MAX_FOOTPRINT 0x10000
  183. #define CONFIG_SPL_MAX_SIZE 0x10000
  184. #define CONFIG_SPL_BSS_MAX_SIZE 0x2000
  185. #define CONFIG_SPL_PAD_TO 0x20000
  186. #endif /* __CONFIG_UNIPHIER_H__ */