uniphier.h 6.0 KB

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