144937214SPrabhakar Kushwaha /* 244937214SPrabhakar Kushwaha * Copyright (C) 2014 Freescale Semiconductor 344937214SPrabhakar Kushwaha * 444937214SPrabhakar Kushwaha * SPDX-License-Identifier: GPL-2.0+ 544937214SPrabhakar Kushwaha */ 644937214SPrabhakar Kushwaha 744937214SPrabhakar Kushwaha #ifndef __LS2_COMMON_H 844937214SPrabhakar Kushwaha #define __LS2_COMMON_H 944937214SPrabhakar Kushwaha 1044937214SPrabhakar Kushwaha #define CONFIG_REMAKE_ELF 1144937214SPrabhakar Kushwaha #define CONFIG_FSL_LAYERSCAPE 1244937214SPrabhakar Kushwaha #define CONFIG_MP 1344937214SPrabhakar Kushwaha #define CONFIG_GICV3 1444937214SPrabhakar Kushwaha #define CONFIG_FSL_TZPC_BP147 1544937214SPrabhakar Kushwaha 16*08c5130dSBharat Bhushan #include <asm/arch/stream_id_lsch3.h> 1744937214SPrabhakar Kushwaha #include <asm/arch/config.h> 1844937214SPrabhakar Kushwaha 1944937214SPrabhakar Kushwaha /* Link Definitions */ 2044937214SPrabhakar Kushwaha #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_FSL_OCRAM_BASE + 0xfff0) 2144937214SPrabhakar Kushwaha 2244937214SPrabhakar Kushwaha /* We need architecture specific misc initializations */ 2344937214SPrabhakar Kushwaha 2444937214SPrabhakar Kushwaha /* Link Definitions */ 25a646f669SYuan Yao #ifndef CONFIG_QSPI_BOOT 2644937214SPrabhakar Kushwaha #ifdef CONFIG_SPL 2744937214SPrabhakar Kushwaha #define CONFIG_SYS_TEXT_BASE 0x80400000 2844937214SPrabhakar Kushwaha #else 2944937214SPrabhakar Kushwaha #define CONFIG_SYS_TEXT_BASE 0x30100000 3044937214SPrabhakar Kushwaha #endif 31a646f669SYuan Yao #endif 3244937214SPrabhakar Kushwaha 3344937214SPrabhakar Kushwaha #define CONFIG_SUPPORT_RAW_INITRD 3444937214SPrabhakar Kushwaha 3544937214SPrabhakar Kushwaha #define CONFIG_SKIP_LOWLEVEL_INIT 3644937214SPrabhakar Kushwaha 3744937214SPrabhakar Kushwaha #ifndef CONFIG_SPL 3844937214SPrabhakar Kushwaha #define CONFIG_FSL_DDR_INTERACTIVE /* Interactive debugging */ 3944937214SPrabhakar Kushwaha #endif 4044937214SPrabhakar Kushwaha #ifndef CONFIG_SYS_FSL_DDR4 4144937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_RAW_TIMING 4244937214SPrabhakar Kushwaha #endif 4344937214SPrabhakar Kushwaha 4444937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_INTLV_256B /* force 256 byte interleaving */ 4544937214SPrabhakar Kushwaha 4644937214SPrabhakar Kushwaha #define CONFIG_VERY_BIG_RAM 4744937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000UL 4844937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY 0 4944937214SPrabhakar Kushwaha #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE 5044937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_BLOCK2_BASE 0x8080000000ULL 5144937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS 2 5244937214SPrabhakar Kushwaha 5344937214SPrabhakar Kushwaha /* 5444937214SPrabhakar Kushwaha * SMP Definitinos 5544937214SPrabhakar Kushwaha */ 5644937214SPrabhakar Kushwaha #define CPU_RELEASE_ADDR secondary_boot_func 5744937214SPrabhakar Kushwaha 5844937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS 5944937214SPrabhakar Kushwaha #ifdef CONFIG_SYS_FSL_HAS_DP_DDR 6044937214SPrabhakar Kushwaha #define CONFIG_SYS_DP_DDR_BASE 0x6000000000ULL 6144937214SPrabhakar Kushwaha /* 6244937214SPrabhakar Kushwaha * DDR controller use 0 as the base address for binding. 6344937214SPrabhakar Kushwaha * It is mapped to CONFIG_SYS_DP_DDR_BASE for core to access. 6444937214SPrabhakar Kushwaha */ 6544937214SPrabhakar Kushwaha #define CONFIG_SYS_DP_DDR_BASE_PHY 0 6644937214SPrabhakar Kushwaha #define CONFIG_DP_DDR_CTRL 2 6744937214SPrabhakar Kushwaha #define CONFIG_DP_DDR_NUM_CTRLS 1 6844937214SPrabhakar Kushwaha #endif 6944937214SPrabhakar Kushwaha 7044937214SPrabhakar Kushwaha /* Generic Timer Definitions */ 7144937214SPrabhakar Kushwaha /* 7244937214SPrabhakar Kushwaha * This is not an accurate number. It is used in start.S. The frequency 7344937214SPrabhakar Kushwaha * will be udpated later when get_bus_freq(0) is available. 7444937214SPrabhakar Kushwaha */ 7544937214SPrabhakar Kushwaha #define COUNTER_FREQUENCY 25000000 /* 25MHz */ 7644937214SPrabhakar Kushwaha 7744937214SPrabhakar Kushwaha /* Size of malloc() pool */ 7844937214SPrabhakar Kushwaha #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2048 * 1024) 7944937214SPrabhakar Kushwaha 8044937214SPrabhakar Kushwaha /* I2C */ 8144937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C 8244937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC 8344937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ 8444937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ 8544937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ 8644937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C4 /* enable I2C bus 4 */ 8744937214SPrabhakar Kushwaha 8844937214SPrabhakar Kushwaha /* Serial Port */ 8944937214SPrabhakar Kushwaha #define CONFIG_CONS_INDEX 1 9044937214SPrabhakar Kushwaha #define CONFIG_SYS_NS16550_SERIAL 9144937214SPrabhakar Kushwaha #define CONFIG_SYS_NS16550_REG_SIZE 1 923564208eSHou Zhiqiang #define CONFIG_SYS_NS16550_CLK (get_serial_clock()) 9344937214SPrabhakar Kushwaha 9444937214SPrabhakar Kushwaha #define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } 9544937214SPrabhakar Kushwaha 9644937214SPrabhakar Kushwaha /* IFC */ 9744937214SPrabhakar Kushwaha #define CONFIG_FSL_IFC 9844937214SPrabhakar Kushwaha 9944937214SPrabhakar Kushwaha /* 10044937214SPrabhakar Kushwaha * During booting, IFC is mapped at the region of 0x30000000. 10144937214SPrabhakar Kushwaha * But this region is limited to 256MB. To accommodate NOR, promjet 10244937214SPrabhakar Kushwaha * and FPGA. This region is divided as below: 10344937214SPrabhakar Kushwaha * 0x30000000 - 0x37ffffff : 128MB : NOR flash 10444937214SPrabhakar Kushwaha * 0x38000000 - 0x3BFFFFFF : 64MB : Promjet 10544937214SPrabhakar Kushwaha * 0x3C000000 - 0x40000000 : 64MB : FPGA etc 10644937214SPrabhakar Kushwaha * 10744937214SPrabhakar Kushwaha * To accommodate bigger NOR flash and other devices, we will map IFC 10844937214SPrabhakar Kushwaha * chip selects to as below: 10944937214SPrabhakar Kushwaha * 0x5_1000_0000..0x5_1fff_ffff Memory Hole 11044937214SPrabhakar Kushwaha * 0x5_2000_0000..0x5_3fff_ffff IFC CSx (FPGA, NAND and others 512MB) 11144937214SPrabhakar Kushwaha * 0x5_4000_0000..0x5_7fff_ffff ASIC or others 1GB 11244937214SPrabhakar Kushwaha * 0x5_8000_0000..0x5_bfff_ffff IFC CS0 1GB (NOR/Promjet) 11344937214SPrabhakar Kushwaha * 0x5_C000_0000..0x5_ffff_ffff IFC CS1 1GB (NOR/Promjet) 11444937214SPrabhakar Kushwaha * 11544937214SPrabhakar Kushwaha * For e.g. NOR flash at CS0 will be mapped to 0x580000000 after relocation. 11644937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE has the final address (core view) 11744937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE_PHYS has the final address (IFC view) 11844937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE_PHYS_EARLY has the temporary IFC address 11944937214SPrabhakar Kushwaha * CONFIG_SYS_TEXT_BASE is linked to 0x30000000 for booting 12044937214SPrabhakar Kushwaha */ 12144937214SPrabhakar Kushwaha 12244937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE 0x580000000ULL 12344937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE_PHYS 0x80000000 12444937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE_PHYS_EARLY 0x00000000 12544937214SPrabhakar Kushwaha 12644937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH1_BASE_PHYS 0xC0000000 12744937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH1_BASE_PHYS_EARLY 0x8000000 12844937214SPrabhakar Kushwaha 12944937214SPrabhakar Kushwaha #ifndef __ASSEMBLY__ 13044937214SPrabhakar Kushwaha unsigned long long get_qixis_addr(void); 13144937214SPrabhakar Kushwaha #endif 13244937214SPrabhakar Kushwaha #define QIXIS_BASE get_qixis_addr() 13344937214SPrabhakar Kushwaha #define QIXIS_BASE_PHYS 0x20000000 13444937214SPrabhakar Kushwaha #define QIXIS_BASE_PHYS_EARLY 0xC000000 13544937214SPrabhakar Kushwaha #define QIXIS_STAT_PRES1 0xb 13644937214SPrabhakar Kushwaha #define QIXIS_SDID_MASK 0x07 13744937214SPrabhakar Kushwaha #define QIXIS_ESDHC_NO_ADAPTER 0x7 13844937214SPrabhakar Kushwaha 13944937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_BASE 0x530000000ULL 14044937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_BASE_PHYS 0x30000000 14144937214SPrabhakar Kushwaha 14244937214SPrabhakar Kushwaha /* MC firmware */ 14344937214SPrabhakar Kushwaha /* TODO Actual DPL max length needs to be confirmed with the MC FW team */ 14444937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DPC_MAX_LENGTH 0x20000 14544937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_DPC_OFFSET 0x00F00000 14644937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DPL_MAX_LENGTH 0x20000 14744937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_DPL_OFFSET 0x00F20000 1483c1d218aSYork Sun /* For LS2085A */ 14944937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_AIOP_IMG_MAX_LENGTH 0x200000 15044937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET 0x07000000 15144937214SPrabhakar Kushwaha 15244937214SPrabhakar Kushwaha /* 15344937214SPrabhakar Kushwaha * Carve out a DDR region which will not be used by u-boot/Linux 15444937214SPrabhakar Kushwaha * 15544937214SPrabhakar Kushwaha * It will be used by MC and Debug Server. The MC region must be 15644937214SPrabhakar Kushwaha * 512MB aligned, so the min size to hide is 512MB. 15744937214SPrabhakar Kushwaha */ 158b63a9506SYork Sun #ifdef CONFIG_FSL_MC_ENET 15952c11d4fSPratiyush Mohan Srivastava #define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE (512UL * 1024 * 1024) 16044937214SPrabhakar Kushwaha #endif 16144937214SPrabhakar Kushwaha 16244937214SPrabhakar Kushwaha /* Command line configuration */ 16344937214SPrabhakar Kushwaha #define CONFIG_CMD_ENV 16444937214SPrabhakar Kushwaha 16544937214SPrabhakar Kushwaha /* Miscellaneous configurable options */ 16644937214SPrabhakar Kushwaha #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) 16744937214SPrabhakar Kushwaha 16844937214SPrabhakar Kushwaha /* Physical Memory Map */ 16944937214SPrabhakar Kushwaha /* fixme: these need to be checked against the board */ 17044937214SPrabhakar Kushwaha #define CONFIG_CHIP_SELECTS_PER_CTRL 4 17144937214SPrabhakar Kushwaha 17244937214SPrabhakar Kushwaha #define CONFIG_NR_DRAM_BANKS 3 17344937214SPrabhakar Kushwaha 17444937214SPrabhakar Kushwaha #define CONFIG_HWCONFIG 17544937214SPrabhakar Kushwaha #define HWCONFIG_BUFFER_SIZE 128 17644937214SPrabhakar Kushwaha 1771d3a76faSAlison Wang /* Allow to overwrite serial and ethaddr */ 1781d3a76faSAlison Wang #define CONFIG_ENV_OVERWRITE 1791d3a76faSAlison Wang 18044937214SPrabhakar Kushwaha /* Initial environment variables */ 18144937214SPrabhakar Kushwaha #define CONFIG_EXTRA_ENV_SETTINGS \ 18244937214SPrabhakar Kushwaha "hwconfig=fsl_ddr:bank_intlv=auto\0" \ 18344937214SPrabhakar Kushwaha "loadaddr=0x80100000\0" \ 18444937214SPrabhakar Kushwaha "kernel_addr=0x100000\0" \ 18544937214SPrabhakar Kushwaha "ramdisk_addr=0x800000\0" \ 18644937214SPrabhakar Kushwaha "ramdisk_size=0x2000000\0" \ 18744937214SPrabhakar Kushwaha "fdt_high=0xa0000000\0" \ 18844937214SPrabhakar Kushwaha "initrd_high=0xffffffffffffffff\0" \ 18944937214SPrabhakar Kushwaha "kernel_start=0x581200000\0" \ 19044937214SPrabhakar Kushwaha "kernel_load=0xa0000000\0" \ 19144937214SPrabhakar Kushwaha "kernel_size=0x2800000\0" \ 19216ed8560SPrabhakar Kushwaha "console=ttyAMA0,38400n8\0" \ 19316ed8560SPrabhakar Kushwaha "mcinitcmd=fsl_mc start mc 0x580300000" \ 19416ed8560SPrabhakar Kushwaha " 0x580800000 \0" 19544937214SPrabhakar Kushwaha 19644937214SPrabhakar Kushwaha #define CONFIG_BOOTARGS "console=ttyS0,115200 root=/dev/ram0 " \ 197b22b1dc6SPratiyush Mohan Srivastava "earlycon=uart8250,mmio,0x21c0500 " \ 19844937214SPrabhakar Kushwaha "ramdisk_size=0x2000000 default_hugepagesz=2m" \ 1999e71bb9cSAshish Kumar " hugepagesz=2m hugepages=256" 2009f3e1b8aSPrabhakar Kushwaha #define CONFIG_BOOTCOMMAND "fsl_mc apply dpl 0x580700000 &&" \ 2019f3e1b8aSPrabhakar Kushwaha " cp.b $kernel_start $kernel_load" \ 20244937214SPrabhakar Kushwaha " $kernel_size && bootm $kernel_load" 20344937214SPrabhakar Kushwaha 20444937214SPrabhakar Kushwaha /* Monitor Command Prompt */ 20544937214SPrabhakar Kushwaha #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ 20644937214SPrabhakar Kushwaha #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 20744937214SPrabhakar Kushwaha sizeof(CONFIG_SYS_PROMPT) + 16) 20844937214SPrabhakar Kushwaha #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot args buffer */ 20944937214SPrabhakar Kushwaha #define CONFIG_SYS_LONGHELP 21044937214SPrabhakar Kushwaha #define CONFIG_CMDLINE_EDITING 1 21144937214SPrabhakar Kushwaha #define CONFIG_AUTO_COMPLETE 21244937214SPrabhakar Kushwaha #define CONFIG_SYS_MAXARGS 64 /* max command args */ 21344937214SPrabhakar Kushwaha 21444937214SPrabhakar Kushwaha #define CONFIG_PANIC_HANG /* do not reset board on panic */ 21544937214SPrabhakar Kushwaha 21644937214SPrabhakar Kushwaha #define CONFIG_SPL_BSS_START_ADDR 0x80100000 21744937214SPrabhakar Kushwaha #define CONFIG_SPL_BSS_MAX_SIZE 0x00100000 21844937214SPrabhakar Kushwaha #define CONFIG_SPL_FRAMEWORK 21944937214SPrabhakar Kushwaha #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" 22044937214SPrabhakar Kushwaha #define CONFIG_SPL_MAX_SIZE 0x16000 22144937214SPrabhakar Kushwaha #define CONFIG_SPL_STACK (CONFIG_SYS_FSL_OCRAM_BASE + 0x9ff0) 22244937214SPrabhakar Kushwaha #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 22344937214SPrabhakar Kushwaha #define CONFIG_SPL_TEXT_BASE 0x1800a000 22444937214SPrabhakar Kushwaha 22544937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_U_BOOT_DST 0x80400000 22644937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_NAND_U_BOOT_DST 22744937214SPrabhakar Kushwaha #define CONFIG_SYS_SPL_MALLOC_SIZE 0x00100000 22844937214SPrabhakar Kushwaha #define CONFIG_SYS_SPL_MALLOC_START 0x80200000 22974cac00cSYuan Yao #define CONFIG_SYS_MONITOR_LEN (640 * 1024) 23044937214SPrabhakar Kushwaha 23144937214SPrabhakar Kushwaha #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ 23244937214SPrabhakar Kushwaha 233bcb55f67SAneesh Bansal /* Hash command with SHA acceleration supported in hardware */ 234bcb55f67SAneesh Bansal #ifdef CONFIG_FSL_CAAM 235bcb55f67SAneesh Bansal #define CONFIG_CMD_HASH 236bcb55f67SAneesh Bansal #define CONFIG_SHA_HW_ACCEL 237bcb55f67SAneesh Bansal #endif 238bcb55f67SAneesh Bansal 23944937214SPrabhakar Kushwaha #endif /* __LS2_COMMON_H */ 240