controlcenterdc.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2014 Stefan Roese <sr@denx.de>
  4. * Copyright (C) 2016 Mario Six <mario.six@gdsys.cc>
  5. */
  6. #ifndef _CONFIG_CONTROLCENTERDC_H
  7. #define _CONFIG_CONTROLCENTERDC_H
  8. /*
  9. * High Level Configuration Options (easy to change)
  10. */
  11. #define CONFIG_CUSTOMER_BOARD_SUPPORT
  12. #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
  13. #define CONFIG_BOARD_LATE_INIT
  14. /*
  15. * TEXT_BASE needs to be below 16MiB, since this area is scrubbed
  16. * for DDR ECC byte filling in the SPL before loading the main
  17. * U-Boot into it.
  18. */
  19. #define CONFIG_SYS_TCLK 250000000 /* 250MHz */
  20. #define CONFIG_LOADADDR 1000000
  21. /*
  22. * Commands configuration
  23. */
  24. #define CONFIG_CMD_I2C
  25. #define CONFIG_CMD_SPI
  26. /* SPI NOR flash default params, used by sf commands */
  27. #define CONFIG_SF_DEFAULT_BUS 1
  28. #define CONFIG_SF_DEFAULT_SPEED 1000000
  29. #define CONFIG_SF_DEFAULT_MODE SPI_MODE_3
  30. /*
  31. * SDIO/MMC Card Configuration
  32. */
  33. #define CONFIG_SYS_MMC_BASE MVEBU_SDIO_BASE
  34. /*
  35. * SATA/SCSI/AHCI configuration
  36. */
  37. #define CONFIG_SCSI_AHCI_PLAT
  38. #define CONFIG_SYS_SCSI_MAX_SCSI_ID 2
  39. #define CONFIG_SYS_SCSI_MAX_LUN 1
  40. #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \
  41. CONFIG_SYS_SCSI_MAX_LUN)
  42. /* USB/EHCI configuration */
  43. #define CONFIG_EHCI_IS_TDI
  44. /* Environment in SPI NOR flash */
  45. #define CONFIG_ENV_SPI_BUS 1
  46. #define CONFIG_ENV_OFFSET (1 << 20) /* 1MiB in */
  47. #define CONFIG_ENV_SIZE (64 << 10) /* 64KiB */
  48. #define CONFIG_ENV_SECT_SIZE (256 << 10) /* 256KiB sectors */
  49. #define CONFIG_PHY_MARVELL /* there is a marvell phy */
  50. #define PHY_ANEG_TIMEOUT 8000 /* PHY needs a longer aneg time */
  51. /* PCIe support */
  52. #ifndef CONFIG_SPL_BUILD
  53. #define CONFIG_PCI
  54. #define CONFIG_PCI_MVEBU
  55. #define CONFIG_PCI_PNP
  56. #define CONFIG_PCI_SCAN_SHOW
  57. #endif
  58. /*
  59. * Software (bit-bang) MII driver configuration
  60. */
  61. #define CONFIG_BITBANGMII /* bit-bang MII PHY management */
  62. #define CONFIG_BITBANGMII_MULTI
  63. /* SPL */
  64. /*
  65. * Select the boot device here
  66. *
  67. * Currently supported are:
  68. * SPL_BOOT_SPI_NOR_FLASH - Booting via SPI NOR flash
  69. * SPL_BOOT_SDIO_MMC_CARD - Booting via SDIO/MMC card (partition 1)
  70. */
  71. #define SPL_BOOT_SPI_NOR_FLASH 1
  72. #define SPL_BOOT_SDIO_MMC_CARD 2
  73. #define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SPI_NOR_FLASH
  74. /* Defines for SPL */
  75. #define CONFIG_SPL_SIZE (160 << 10)
  76. #if defined(CONFIG_SECURED_MODE_IMAGE)
  77. #define CONFIG_SPL_TEXT_BASE 0x40002614
  78. #define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x2614)
  79. #else
  80. #define CONFIG_SPL_TEXT_BASE 0x40000030
  81. #define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x30)
  82. #endif
  83. #define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
  84. #define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
  85. #ifdef CONFIG_SPL_BUILD
  86. #define CONFIG_SYS_MALLOC_SIMPLE
  87. #endif
  88. #define CONFIG_SPL_STACK (0x40000000 + ((212 - 16) << 10))
  89. #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
  90. #define CONFIG_SPL_LIBCOMMON_SUPPORT
  91. #define CONFIG_SPL_LIBGENERIC_SUPPORT
  92. #define CONFIG_SPL_I2C_SUPPORT
  93. #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
  94. /* SPL related SPI defines */
  95. #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x30000
  96. #define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
  97. #endif
  98. #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
  99. /* SPL related MMC defines */
  100. #define CONFIG_SPL_MMC_SUPPORT
  101. #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1
  102. #define CONFIG_SYS_MMC_U_BOOT_OFFS (168 << 10)
  103. #define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
  104. #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR (CONFIG_SYS_U_BOOT_OFFS / 512)
  105. #ifdef CONFIG_SPL_BUILD
  106. #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
  107. #endif
  108. #endif
  109. /*
  110. * Environment Configuration
  111. */
  112. #define CONFIG_ENV_OVERWRITE
  113. #define CONFIG_BAUDRATE 115200
  114. #define CONFIG_HOSTNAME "ccdc"
  115. #define CONFIG_ROOTPATH "/opt/nfsroot"
  116. #define CONFIG_BOOTFILE "ccdc.img"
  117. #define CONFIG_PREBOOT /* enable preboot variable */
  118. #define CONFIG_EXTRA_ENV_SETTINGS \
  119. "netdev=eth1\0" \
  120. "consoledev=ttyS1\0" \
  121. "u-boot=u-boot.bin\0" \
  122. "bootfile_addr=1000000\0" \
  123. "keyprogram_addr=3000000\0" \
  124. "keyprogram_file=keyprogram.img\0" \
  125. "fdtfile=controlcenterdc.dtb\0" \
  126. "load=tftpboot ${loadaddr} ${u-boot}\0" \
  127. "mmcdev=0:2\0" \
  128. "update=sf probe 1:0;" \
  129. " sf erase 0 +${filesize};" \
  130. " sf write ${fileaddr} 0 ${filesize}\0" \
  131. "upd=run load update\0" \
  132. "fdt_high=0x10000000\0" \
  133. "initrd_high=0x10000000\0" \
  134. "loadkeyprogram=tpm flush_keys;" \
  135. " mmc rescan;" \
  136. " ext4load mmc ${mmcdev} ${keyprogram_addr} ${keyprogram_file};"\
  137. " source ${keyprogram_addr}:script@1\0" \
  138. "gpio1=gpio@22_25\0" \
  139. "gpio2=A29\0" \
  140. "blinkseq='0 0 0 0 2 0 2 2 3 1 3 1 0 0 2 2 3 1 3 3 2 0 2 2 3 1 1 1 " \
  141. "2 0 2 2 3 1 3 1 0 0 2 0 3 3 3 1 2 0 0 0 3 1 1 1 0 0 0 0'\0" \
  142. "bootfail=for i in ${blinkseq}; do" \
  143. " if test $i -eq 0; then" \
  144. " gpio clear ${gpio1}; gpio set ${gpio2};" \
  145. " elif test $i -eq 1; then" \
  146. " gpio clear ${gpio1}; gpio clear ${gpio2};" \
  147. " elif test $i -eq 2; then" \
  148. " gpio set ${gpio1}; gpio set ${gpio2};" \
  149. " else;" \
  150. " gpio clear ${gpio1}; gpio set ${gpio2};" \
  151. " fi; sleep 0.12; done\0"
  152. #define CONFIG_NFSBOOTCOMMAND \
  153. "setenv bootargs root=/dev/nfs rw " \
  154. "nfsroot=${serverip}:${rootpath} " \
  155. "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off " \
  156. "console=${consoledev},${baudrate} ${othbootargs}; " \
  157. "tftpboot ${bootfile_addr} ${bootfile}; " \
  158. "bootm ${bootfile_addr}"
  159. #define CONFIG_MMCBOOTCOMMAND \
  160. "setenv bootargs root=/dev/mmcblk0p3 rw rootwait " \
  161. "console=${consoledev},${baudrate} ${othbootargs}; " \
  162. "ext2load mmc 0:2 ${bootfile_addr} ${bootfile}; " \
  163. "bootm ${bootfile_addr}"
  164. #define CONFIG_BOOTCOMMAND \
  165. "if env exists keyprogram; then;" \
  166. " setenv keyprogram; run nfsboot;" \
  167. " fi;" \
  168. " run dobootfail"
  169. /*
  170. * mv-common.h should be defined after CMD configs since it used them
  171. * to enable certain macros
  172. */
  173. #include "mv-common.h"
  174. #endif /* _CONFIG_CONTROLCENTERDC_H */