helios4.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2018 Dennis Gilmore <dgilmore@redhat.com>
  4. */
  5. #ifndef _CONFIG_HELIOS4_H
  6. #define _CONFIG_HELIOS4_H
  7. #include <linux/sizes.h>
  8. /*
  9. * High Level Configuration Options (easy to change)
  10. */
  11. /*
  12. * TEXT_BASE needs to be below 16MiB, since this area is scrubbed
  13. * for DDR ECC byte filling in the SPL before loading the main
  14. * U-Boot into it.
  15. */
  16. #define CONFIG_SYS_TCLK 250000000 /* 250MHz */
  17. /*
  18. * Commands configuration
  19. */
  20. /*
  21. * SDIO/MMC Card Configuration
  22. */
  23. #define CONFIG_SYS_MMC_BASE MVEBU_SDIO_BASE
  24. /* USB/EHCI configuration */
  25. #define CONFIG_EHCI_IS_TDI
  26. #define CONFIG_ENV_MIN_ENTRIES 128
  27. /*
  28. * SATA/SCSI/AHCI configuration
  29. */
  30. #define CONFIG_SCSI_AHCI_PLAT
  31. #define CONFIG_SYS_SCSI_MAX_SCSI_ID 2
  32. #define CONFIG_SYS_SCSI_MAX_LUN 2
  33. #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \
  34. CONFIG_SYS_SCSI_MAX_LUN)
  35. #ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI
  36. /* Environment in SPI NOR flash */
  37. #endif
  38. #ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC
  39. /* Environment in MMC */
  40. #define CONFIG_SYS_MMC_ENV_DEV 0
  41. /* stay within first 1M */
  42. #endif
  43. #define CONFIG_PHY_MARVELL /* there is a marvell phy */
  44. #define PHY_ANEG_TIMEOUT 8000 /* PHY needs a longer aneg time */
  45. /* Keep device tree and initrd in lower memory so the kernel can access them */
  46. #define RELOCATION_LIMITS_ENV_SETTINGS \
  47. "fdt_high=0x10000000\0" \
  48. "initrd_high=0x10000000\0"
  49. /* SPL */
  50. /*
  51. * Select the boot device here
  52. *
  53. * Currently supported are:
  54. * SPL_BOOT_SPI_NOR_FLASH - Booting via SPI NOR flash
  55. * SPL_BOOT_SDIO_MMC_CARD - Booting via SDIO/MMC card (partition 1)
  56. */
  57. #define SPL_BOOT_SPI_NOR_FLASH 1
  58. #define SPL_BOOT_SDIO_MMC_CARD 2
  59. #ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI
  60. #define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SPI_NOR_FLASH
  61. #endif
  62. #ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC
  63. #define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SDIO_MMC_CARD
  64. #endif
  65. /* Defines for SPL */
  66. #define CONFIG_SPL_SIZE (140 << 10)
  67. #define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
  68. #define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
  69. #define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
  70. #ifdef CONFIG_SPL_BUILD
  71. #define CONFIG_SYS_MALLOC_SIMPLE
  72. #endif
  73. #define CONFIG_SPL_STACK (0x40000000 + ((192 - 16) << 10))
  74. #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
  75. #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
  76. /* SPL related SPI defines */
  77. #define CONFIG_SPL_SPI_FLASH_SUPPORT
  78. #define CONFIG_SPL_SPI_LOAD
  79. #define CONFIG_SPL_SPI_SUPPORT
  80. #define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
  81. #endif
  82. #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
  83. /* SPL related MMC defines */
  84. #define CONFIG_SPL_MMC_SUPPORT
  85. #define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)
  86. #define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
  87. #ifdef CONFIG_SPL_BUILD
  88. #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
  89. #endif
  90. #endif
  91. /*
  92. * mv-common.h should be defined after CMD configs since it used them
  93. * to enable certain macros
  94. */
  95. #include "mv-common.h"
  96. /* Include the common distro boot environment */
  97. #ifndef CONFIG_SPL_BUILD
  98. #ifdef CONFIG_MMC
  99. #define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0)
  100. #else
  101. #define BOOT_TARGET_DEVICES_MMC(func)
  102. #endif
  103. #ifdef CONFIG_USB_STORAGE
  104. #define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0)
  105. #else
  106. #define BOOT_TARGET_DEVICES_USB(func)
  107. #endif
  108. #ifdef CONFIG_SATA
  109. #define BOOT_TARGET_DEVICES_SATA(func) func(SATA, sata, 0)
  110. #else
  111. #define BOOT_TARGET_DEVICES_SATA(func)
  112. #endif
  113. #define BOOT_TARGET_DEVICES(func) \
  114. BOOT_TARGET_DEVICES_MMC(func) \
  115. BOOT_TARGET_DEVICES_USB(func) \
  116. BOOT_TARGET_DEVICES_SATA(func) \
  117. func(PXE, pxe, na) \
  118. func(DHCP, dhcp, na)
  119. #define KERNEL_ADDR_R __stringify(0x800000)
  120. #define FDT_ADDR_R __stringify(0x100000)
  121. #define RAMDISK_ADDR_R __stringify(0x1800000)
  122. #define SCRIPT_ADDR_R __stringify(0x200000)
  123. #define PXEFILE_ADDR_R __stringify(0x300000)
  124. #define LOAD_ADDRESS_ENV_SETTINGS \
  125. "kernel_addr_r=" KERNEL_ADDR_R "\0" \
  126. "fdt_addr_r=" FDT_ADDR_R "\0" \
  127. "ramdisk_addr_r=" RAMDISK_ADDR_R "\0" \
  128. "scriptaddr=" SCRIPT_ADDR_R "\0" \
  129. "pxefile_addr_r=" PXEFILE_ADDR_R "\0"
  130. #include <config_distro_bootcmd.h>
  131. #define CONFIG_EXTRA_ENV_SETTINGS \
  132. RELOCATION_LIMITS_ENV_SETTINGS \
  133. LOAD_ADDRESS_ENV_SETTINGS \
  134. "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \
  135. "console=ttyS0,115200\0" \
  136. BOOTENV
  137. #endif /* CONFIG_SPL_BUILD */
  138. #endif /* _CONFIG_HELIOS4_H */