uniphier.h 6.3 KB

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