1a684729aSLey Foon Tan /* SPDX-License-Identifier: GPL-2.0 2a684729aSLey Foon Tan * 3a684729aSLey Foon Tan * Copyright (C) 2017-2018 Intel Corporation <www.intel.com> 4a684729aSLey Foon Tan * 5a684729aSLey Foon Tan */ 6a684729aSLey Foon Tan 7a684729aSLey Foon Tan #ifndef __CONFIG_SOCFGPA_STRATIX10_H__ 8a684729aSLey Foon Tan #define __CONFIG_SOCFGPA_STRATIX10_H__ 9a684729aSLey Foon Tan 10a684729aSLey Foon Tan #include <asm/arch/base_addr_s10.h> 11a684729aSLey Foon Tan #include <asm/arch/handoff_s10.h> 12a684729aSLey Foon Tan 13a684729aSLey Foon Tan /* 14a684729aSLey Foon Tan * U-Boot general configurations 15a684729aSLey Foon Tan */ 16a684729aSLey Foon Tan #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE 17a684729aSLey Foon Tan #define CONFIG_LOADADDR 0x2000000 18a684729aSLey Foon Tan #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 19a684729aSLey Foon Tan #define CONFIG_REMAKE_ELF 20a684729aSLey Foon Tan /* sysmgr.boot_scratch_cold4 & 5 (64bit) will be used for PSCI_CPU_ON call */ 21a684729aSLey Foon Tan #define CPU_RELEASE_ADDR 0xFFD12210 22a684729aSLey Foon Tan #define CONFIG_SYS_CACHELINE_SIZE 64 23a684729aSLey Foon Tan #define CONFIG_SYS_MEM_RESERVE_SECURE 0 /* using OCRAM, not DDR */ 24a684729aSLey Foon Tan 25a684729aSLey Foon Tan /* 26a684729aSLey Foon Tan * U-Boot console configurations 27a684729aSLey Foon Tan */ 28a684729aSLey Foon Tan #define CONFIG_SYS_MAXARGS 64 29a684729aSLey Foon Tan #define CONFIG_SYS_CBSIZE 2048 30a684729aSLey Foon Tan #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 31a684729aSLey Foon Tan sizeof(CONFIG_SYS_PROMPT) + 16) 32a684729aSLey Foon Tan #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 33a684729aSLey Foon Tan 34a684729aSLey Foon Tan /* Extend size of kernel image for uncompression */ 35a684729aSLey Foon Tan #define CONFIG_SYS_BOOTM_LEN (32 * 1024 * 1024) 36a684729aSLey Foon Tan 37a684729aSLey Foon Tan /* 38a684729aSLey Foon Tan * U-Boot run time memory configurations 39a684729aSLey Foon Tan */ 40a684729aSLey Foon Tan #define CONFIG_SYS_INIT_RAM_ADDR 0xFFE00000 41a684729aSLey Foon Tan #define CONFIG_SYS_INIT_RAM_SIZE 0x40000 42a684729aSLey Foon Tan #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR \ 43a684729aSLey Foon Tan + CONFIG_SYS_INIT_RAM_SIZE \ 44a684729aSLey Foon Tan - S10_HANDOFF_SIZE) 45a684729aSLey Foon Tan #define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_SP_ADDR) 46a684729aSLey Foon Tan #define CONFIG_SYS_MALLOC_LEN (5 * 1024 * 1024) 47a684729aSLey Foon Tan 48a684729aSLey Foon Tan /* 49a684729aSLey Foon Tan * U-Boot environment configurations 50a684729aSLey Foon Tan */ 51a684729aSLey Foon Tan #define CONFIG_ENV_SIZE 0x1000 52a684729aSLey Foon Tan #define CONFIG_SYS_MMC_ENV_DEV 0 /* device 0 */ 53a684729aSLey Foon Tan #define CONFIG_ENV_OFFSET 512 /* just after the MBR */ 54a684729aSLey Foon Tan 55a684729aSLey Foon Tan /* 56a684729aSLey Foon Tan * QSPI support 57a684729aSLey Foon Tan */ 58a684729aSLey Foon Tan #ifdef CONFIG_CADENCE_QSPI 59a684729aSLey Foon Tan /* Enable it if you want to use dual-stacked mode */ 60a684729aSLey Foon Tan /*#define CONFIG_QSPI_RBF_ADDR 0x720000*/ 61a684729aSLey Foon Tan 62a684729aSLey Foon Tan /* Flash device info */ 63a684729aSLey Foon Tan 64a684729aSLey Foon Tan /*#define CONFIG_ENV_IS_IN_SPI_FLASH*/ 65a684729aSLey Foon Tan #ifdef CONFIG_ENV_IS_IN_SPI_FLASH 66a684729aSLey Foon Tan #undef CONFIG_ENV_OFFSET 67a684729aSLey Foon Tan #undef CONFIG_ENV_SIZE 68a684729aSLey Foon Tan #define CONFIG_ENV_OFFSET 0x710000 69a684729aSLey Foon Tan #define CONFIG_ENV_SIZE (4 * 1024) 70a684729aSLey Foon Tan #define CONFIG_ENV_SECT_SIZE (4 * 1024) 71a684729aSLey Foon Tan #endif /* CONFIG_ENV_IS_IN_SPI_FLASH */ 72a684729aSLey Foon Tan 73a684729aSLey Foon Tan #ifndef CONFIG_SPL_BUILD 74a684729aSLey Foon Tan #define CONFIG_MTD_DEVICE 75a684729aSLey Foon Tan #define CONFIG_MTD_PARTITIONS 76a684729aSLey Foon Tan #define MTDIDS_DEFAULT "nor0=ff705000.spi.0" 77a684729aSLey Foon Tan #endif /* CONFIG_SPL_BUILD */ 78a684729aSLey Foon Tan 79a684729aSLey Foon Tan #ifndef __ASSEMBLY__ 80a684729aSLey Foon Tan unsigned int cm_get_qspi_controller_clk_hz(void); 81a684729aSLey Foon Tan #define CONFIG_CQSPI_REF_CLK cm_get_qspi_controller_clk_hz() 82a684729aSLey Foon Tan #endif 83a684729aSLey Foon Tan 84a684729aSLey Foon Tan #endif /* CONFIG_CADENCE_QSPI */ 85a684729aSLey Foon Tan 86a684729aSLey Foon Tan /* 87a684729aSLey Foon Tan * Boot arguments passed to the boot command. The value of 88a684729aSLey Foon Tan * CONFIG_BOOTARGS goes into the environment value "bootargs". 89a684729aSLey Foon Tan * Do note the value will override also the chosen node in FDT blob. 90a684729aSLey Foon Tan */ 91a684729aSLey Foon Tan #define CONFIG_BOOTARGS "earlycon" 92a684729aSLey Foon Tan #define CONFIG_BOOTCOMMAND "run fatscript; run mmcload;run linux_qspi_enable;" \ 93a684729aSLey Foon Tan "run mmcboot" 94a684729aSLey Foon Tan 95a684729aSLey Foon Tan #define CONFIG_EXTRA_ENV_SETTINGS \ 96a684729aSLey Foon Tan "loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ 97a684729aSLey Foon Tan "bootfile=Image\0" \ 98a684729aSLey Foon Tan "fdt_addr=8000000\0" \ 99a684729aSLey Foon Tan "fdtimage=socfpga_stratix10_socdk.dtb\0" \ 100a684729aSLey Foon Tan "mmcroot=/dev/mmcblk0p2\0" \ 101a684729aSLey Foon Tan "mmcboot=setenv bootargs " CONFIG_BOOTARGS \ 102a684729aSLey Foon Tan " root=${mmcroot} rw rootwait;" \ 103a684729aSLey Foon Tan "booti ${loadaddr} - ${fdt_addr}\0" \ 104a684729aSLey Foon Tan "mmcload=mmc rescan;" \ 105a684729aSLey Foon Tan "load mmc 0:1 ${loadaddr} ${bootfile};" \ 106a684729aSLey Foon Tan "load mmc 0:1 ${fdt_addr} ${fdtimage}\0" \ 107a684729aSLey Foon Tan "linux_qspi_enable=if sf probe; then " \ 108a684729aSLey Foon Tan "echo Enabling QSPI at Linux DTB...;" \ 109a684729aSLey Foon Tan "fdt addr ${fdt_addr}; fdt resize;" \ 110a684729aSLey Foon Tan "fdt set /soc/spi@ff8d2000 status okay;" \ 111a684729aSLey Foon Tan "fdt set /soc/clkmgr/clocks/qspi_clk clock-frequency " \ 112a684729aSLey Foon Tan " ${qspi_clock}; fi; \0" \ 113a684729aSLey Foon Tan "scriptaddr=0x02100000\0" \ 114a684729aSLey Foon Tan "scriptfile=u-boot.scr\0" \ 115a684729aSLey Foon Tan "fatscript=if fatload mmc 0:1 ${scriptaddr} ${scriptfile};" \ 116a684729aSLey Foon Tan "then source ${scriptaddr}; fi\0" 117a684729aSLey Foon Tan 118a684729aSLey Foon Tan /* 119a684729aSLey Foon Tan * Generic Interrupt Controller Definitions 120a684729aSLey Foon Tan */ 121a684729aSLey Foon Tan #define CONFIG_GICV2 122a684729aSLey Foon Tan 123a684729aSLey Foon Tan /* 124a684729aSLey Foon Tan * External memory configurations 125a684729aSLey Foon Tan */ 126a684729aSLey Foon Tan #define PHYS_SDRAM_1 0x0 127a684729aSLey Foon Tan #define PHYS_SDRAM_1_SIZE (1 * 1024 * 1024 * 1024) 128a684729aSLey Foon Tan #define CONFIG_SYS_SDRAM_BASE 0 129a684729aSLey Foon Tan #define CONFIG_SYS_MEMTEST_START 0 130a684729aSLey Foon Tan #define CONFIG_SYS_MEMTEST_END PHYS_SDRAM_1_SIZE - 0x200000 131a684729aSLey Foon Tan 132a684729aSLey Foon Tan /* 133a684729aSLey Foon Tan * SDRAM controller 134a684729aSLey Foon Tan */ 135a684729aSLey Foon Tan #define CONFIG_ALTERA_SDRAM 136a684729aSLey Foon Tan 137a684729aSLey Foon Tan /* 138a684729aSLey Foon Tan * Serial / UART configurations 139a684729aSLey Foon Tan */ 140a684729aSLey Foon Tan #define CONFIG_SYS_NS16550_CLK 100000000 141a684729aSLey Foon Tan #define CONFIG_SYS_NS16550_MEM32 142a684729aSLey Foon Tan 143a684729aSLey Foon Tan /* 144a684729aSLey Foon Tan * Timer & watchdog configurations 145a684729aSLey Foon Tan */ 146a684729aSLey Foon Tan #define COUNTER_FREQUENCY 400000000 147a684729aSLey Foon Tan 148a684729aSLey Foon Tan /* 149a684729aSLey Foon Tan * SDMMC configurations 150a684729aSLey Foon Tan */ 151a684729aSLey Foon Tan #ifdef CONFIG_CMD_MMC 152a684729aSLey Foon Tan #define CONFIG_SYS_MMC_MAX_BLK_COUNT 256 153a684729aSLey Foon Tan #endif 154a684729aSLey Foon Tan /* 155a684729aSLey Foon Tan * Flash configurations 156a684729aSLey Foon Tan */ 157a684729aSLey Foon Tan #define CONFIG_SYS_MAX_FLASH_BANKS 1 158a684729aSLey Foon Tan 159a684729aSLey Foon Tan /* Ethernet on SoC (EMAC) */ 160a684729aSLey Foon Tan #if defined(CONFIG_CMD_NET) 161a684729aSLey Foon Tan #define CONFIG_DW_ALTDESCRIPTOR 162a684729aSLey Foon Tan #endif /* CONFIG_CMD_NET */ 163a684729aSLey Foon Tan 164a684729aSLey Foon Tan /* 165a684729aSLey Foon Tan * L4 Watchdog 166a684729aSLey Foon Tan */ 167a684729aSLey Foon Tan #ifdef CONFIG_SPL_BUILD 168a684729aSLey Foon Tan #define CONFIG_HW_WATCHDOG 169a684729aSLey Foon Tan #define CONFIG_DESIGNWARE_WATCHDOG 170a684729aSLey Foon Tan #define CONFIG_DW_WDT_BASE SOCFPGA_L4WD0_ADDRESS 171a684729aSLey Foon Tan #ifndef __ASSEMBLY__ 172a684729aSLey Foon Tan unsigned int cm_get_l4_sys_free_clk_hz(void); 173a684729aSLey Foon Tan #define CONFIG_DW_WDT_CLOCK_KHZ (cm_get_l4_sys_free_clk_hz() / 1000) 174a684729aSLey Foon Tan #endif 175a684729aSLey Foon Tan #define CONFIG_WATCHDOG_TIMEOUT_MSECS 3000 176a684729aSLey Foon Tan #endif 177a684729aSLey Foon Tan 178a684729aSLey Foon Tan /* 179a684729aSLey Foon Tan * SPL memory layout 180a684729aSLey Foon Tan * 181a684729aSLey Foon Tan * On chip RAM 182a684729aSLey Foon Tan * 0xFFE0_0000 ...... Start of OCRAM 183a684729aSLey Foon Tan * SPL code, rwdata 184a684729aSLey Foon Tan * empty space 185a684729aSLey Foon Tan * 0xFFEx_xxxx ...... Top of stack (grows down) 186a684729aSLey Foon Tan * 0xFFEy_yyyy ...... Global Data 187a684729aSLey Foon Tan * 0xFFEz_zzzz ...... Malloc prior relocation (size CONFIG_SYS_MALLOC_F_LEN) 188a684729aSLey Foon Tan * 0xFFE3_F000 ...... Hardware handdoff blob (size 4KB) 189a684729aSLey Foon Tan * 0xFFE3_FFFF ...... End of OCRAM 190a684729aSLey Foon Tan * 191a684729aSLey Foon Tan * SDRAM 192a684729aSLey Foon Tan * 0x0000_0000 ...... Start of SDRAM_1 193a684729aSLey Foon Tan * unused / empty space for image loading 194a684729aSLey Foon Tan * Size 64MB ...... MALLOC (size CONFIG_SYS_SPL_MALLOC_SIZE) 195a684729aSLey Foon Tan * Size 1MB ...... BSS (size CONFIG_SPL_BSS_MAX_SIZE) 196a684729aSLey Foon Tan * 0x8000_0000 ...... End of SDRAM_1 (assume 2GB) 197a684729aSLey Foon Tan * 198a684729aSLey Foon Tan */ 19935704697SDalon Westergreen #define CONFIG_SPL_TARGET "spl/u-boot-spl.hex" 200a684729aSLey Foon Tan #define CONFIG_SPL_TEXT_BASE CONFIG_SYS_INIT_RAM_ADDR 201a684729aSLey Foon Tan #define CONFIG_SPL_MAX_SIZE CONFIG_SYS_INIT_RAM_SIZE 202a684729aSLey Foon Tan #define CONFIG_SPL_STACK CONFIG_SYS_INIT_SP_ADDR 203a684729aSLey Foon Tan #define CONFIG_SPL_BSS_MAX_SIZE 0x100000 /* 1 MB */ 204a684729aSLey Foon Tan #define CONFIG_SPL_BSS_START_ADDR (PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE \ 205a684729aSLey Foon Tan - CONFIG_SPL_BSS_MAX_SIZE) 206a684729aSLey Foon Tan #define CONFIG_SYS_SPL_MALLOC_SIZE (CONFIG_SYS_MALLOC_LEN) 207a684729aSLey Foon Tan #define CONFIG_SYS_SPL_MALLOC_START (CONFIG_SPL_BSS_START_ADDR \ 208a684729aSLey Foon Tan - CONFIG_SYS_SPL_MALLOC_SIZE) 209a684729aSLey Foon Tan #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x3C00000 210a684729aSLey Foon Tan 211a684729aSLey Foon Tan /* SPL SDMMC boot support */ 212a684729aSLey Foon Tan #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1 213*f6d600b3SDalon Westergreen #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot.img" 214a684729aSLey Foon Tan 215a684729aSLey Foon Tan #endif /* __CONFIG_H */ 216