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 1644937214SPrabhakar Kushwaha #include <asm/arch/ls2080a_stream_id.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 #define CONFIG_ARCH_MISC_INIT 2444937214SPrabhakar Kushwaha 25bcb55f67SAneesh Bansal #define CONFIG_FSL_CAAM /* Enable SEC/CAAM */ 26bcb55f67SAneesh Bansal 2744937214SPrabhakar Kushwaha /* Link Definitions */ 28a646f669SYuan Yao #ifndef CONFIG_QSPI_BOOT 2944937214SPrabhakar Kushwaha #ifdef CONFIG_SPL 3044937214SPrabhakar Kushwaha #define CONFIG_SYS_TEXT_BASE 0x80400000 3144937214SPrabhakar Kushwaha #else 3244937214SPrabhakar Kushwaha #define CONFIG_SYS_TEXT_BASE 0x30100000 3344937214SPrabhakar Kushwaha #endif 34a646f669SYuan Yao #endif 3544937214SPrabhakar Kushwaha 3644937214SPrabhakar Kushwaha #ifdef CONFIG_EMU 3744937214SPrabhakar Kushwaha #define CONFIG_SYS_NO_FLASH 3844937214SPrabhakar Kushwaha #endif 3944937214SPrabhakar Kushwaha 4044937214SPrabhakar Kushwaha #define CONFIG_SUPPORT_RAW_INITRD 4144937214SPrabhakar Kushwaha 4244937214SPrabhakar Kushwaha #define CONFIG_SKIP_LOWLEVEL_INIT 4344937214SPrabhakar Kushwaha #define CONFIG_BOARD_EARLY_INIT_F 1 4444937214SPrabhakar Kushwaha 4544937214SPrabhakar Kushwaha #ifndef CONFIG_SPL 4644937214SPrabhakar Kushwaha #define CONFIG_FSL_DDR_INTERACTIVE /* Interactive debugging */ 4744937214SPrabhakar Kushwaha #endif 4844937214SPrabhakar Kushwaha #ifndef CONFIG_SYS_FSL_DDR4 4944937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_RAW_TIMING 5044937214SPrabhakar Kushwaha #endif 5144937214SPrabhakar Kushwaha 5244937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_INTLV_256B /* force 256 byte interleaving */ 5344937214SPrabhakar Kushwaha 5444937214SPrabhakar Kushwaha #define CONFIG_VERY_BIG_RAM 5544937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000UL 5644937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY 0 5744937214SPrabhakar Kushwaha #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE 5844937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_BLOCK2_BASE 0x8080000000ULL 5944937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS 2 6044937214SPrabhakar Kushwaha 6144937214SPrabhakar Kushwaha /* 6244937214SPrabhakar Kushwaha * SMP Definitinos 6344937214SPrabhakar Kushwaha */ 6444937214SPrabhakar Kushwaha #define CPU_RELEASE_ADDR secondary_boot_func 6544937214SPrabhakar Kushwaha 6644937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS 6744937214SPrabhakar Kushwaha #ifdef CONFIG_SYS_FSL_HAS_DP_DDR 6844937214SPrabhakar Kushwaha #define CONFIG_SYS_DP_DDR_BASE 0x6000000000ULL 6944937214SPrabhakar Kushwaha /* 7044937214SPrabhakar Kushwaha * DDR controller use 0 as the base address for binding. 7144937214SPrabhakar Kushwaha * It is mapped to CONFIG_SYS_DP_DDR_BASE for core to access. 7244937214SPrabhakar Kushwaha */ 7344937214SPrabhakar Kushwaha #define CONFIG_SYS_DP_DDR_BASE_PHY 0 7444937214SPrabhakar Kushwaha #define CONFIG_DP_DDR_CTRL 2 7544937214SPrabhakar Kushwaha #define CONFIG_DP_DDR_NUM_CTRLS 1 7644937214SPrabhakar Kushwaha #endif 7744937214SPrabhakar Kushwaha 7844937214SPrabhakar Kushwaha /* Generic Timer Definitions */ 7944937214SPrabhakar Kushwaha /* 8044937214SPrabhakar Kushwaha * This is not an accurate number. It is used in start.S. The frequency 8144937214SPrabhakar Kushwaha * will be udpated later when get_bus_freq(0) is available. 8244937214SPrabhakar Kushwaha */ 8344937214SPrabhakar Kushwaha #define COUNTER_FREQUENCY 25000000 /* 25MHz */ 8444937214SPrabhakar Kushwaha 8544937214SPrabhakar Kushwaha /* Size of malloc() pool */ 8644937214SPrabhakar Kushwaha #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2048 * 1024) 8744937214SPrabhakar Kushwaha 8844937214SPrabhakar Kushwaha /* I2C */ 8944937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C 9044937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC 9144937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ 9244937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ 9344937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ 9444937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C4 /* enable I2C bus 4 */ 9544937214SPrabhakar Kushwaha 9644937214SPrabhakar Kushwaha /* Serial Port */ 9744937214SPrabhakar Kushwaha #define CONFIG_CONS_INDEX 1 9844937214SPrabhakar Kushwaha #define CONFIG_SYS_NS16550_SERIAL 9944937214SPrabhakar Kushwaha #define CONFIG_SYS_NS16550_REG_SIZE 1 100*3564208eSHou Zhiqiang #define CONFIG_SYS_NS16550_CLK (get_serial_clock()) 10144937214SPrabhakar Kushwaha 10244937214SPrabhakar Kushwaha #define CONFIG_BAUDRATE 115200 10344937214SPrabhakar Kushwaha #define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } 10444937214SPrabhakar Kushwaha 10544937214SPrabhakar Kushwaha /* IFC */ 10644937214SPrabhakar Kushwaha #define CONFIG_FSL_IFC 10744937214SPrabhakar Kushwaha 10844937214SPrabhakar Kushwaha /* 10944937214SPrabhakar Kushwaha * During booting, IFC is mapped at the region of 0x30000000. 11044937214SPrabhakar Kushwaha * But this region is limited to 256MB. To accommodate NOR, promjet 11144937214SPrabhakar Kushwaha * and FPGA. This region is divided as below: 11244937214SPrabhakar Kushwaha * 0x30000000 - 0x37ffffff : 128MB : NOR flash 11344937214SPrabhakar Kushwaha * 0x38000000 - 0x3BFFFFFF : 64MB : Promjet 11444937214SPrabhakar Kushwaha * 0x3C000000 - 0x40000000 : 64MB : FPGA etc 11544937214SPrabhakar Kushwaha * 11644937214SPrabhakar Kushwaha * To accommodate bigger NOR flash and other devices, we will map IFC 11744937214SPrabhakar Kushwaha * chip selects to as below: 11844937214SPrabhakar Kushwaha * 0x5_1000_0000..0x5_1fff_ffff Memory Hole 11944937214SPrabhakar Kushwaha * 0x5_2000_0000..0x5_3fff_ffff IFC CSx (FPGA, NAND and others 512MB) 12044937214SPrabhakar Kushwaha * 0x5_4000_0000..0x5_7fff_ffff ASIC or others 1GB 12144937214SPrabhakar Kushwaha * 0x5_8000_0000..0x5_bfff_ffff IFC CS0 1GB (NOR/Promjet) 12244937214SPrabhakar Kushwaha * 0x5_C000_0000..0x5_ffff_ffff IFC CS1 1GB (NOR/Promjet) 12344937214SPrabhakar Kushwaha * 12444937214SPrabhakar Kushwaha * For e.g. NOR flash at CS0 will be mapped to 0x580000000 after relocation. 12544937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE has the final address (core view) 12644937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE_PHYS has the final address (IFC view) 12744937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE_PHYS_EARLY has the temporary IFC address 12844937214SPrabhakar Kushwaha * CONFIG_SYS_TEXT_BASE is linked to 0x30000000 for booting 12944937214SPrabhakar Kushwaha */ 13044937214SPrabhakar Kushwaha 13144937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE 0x580000000ULL 13244937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE_PHYS 0x80000000 13344937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE_PHYS_EARLY 0x00000000 13444937214SPrabhakar Kushwaha 13544937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH1_BASE_PHYS 0xC0000000 13644937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH1_BASE_PHYS_EARLY 0x8000000 13744937214SPrabhakar Kushwaha 13844937214SPrabhakar Kushwaha #ifndef __ASSEMBLY__ 13944937214SPrabhakar Kushwaha unsigned long long get_qixis_addr(void); 14044937214SPrabhakar Kushwaha #endif 14144937214SPrabhakar Kushwaha #define QIXIS_BASE get_qixis_addr() 14244937214SPrabhakar Kushwaha #define QIXIS_BASE_PHYS 0x20000000 14344937214SPrabhakar Kushwaha #define QIXIS_BASE_PHYS_EARLY 0xC000000 14444937214SPrabhakar Kushwaha #define QIXIS_STAT_PRES1 0xb 14544937214SPrabhakar Kushwaha #define QIXIS_SDID_MASK 0x07 14644937214SPrabhakar Kushwaha #define QIXIS_ESDHC_NO_ADAPTER 0x7 14744937214SPrabhakar Kushwaha 14844937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_BASE 0x530000000ULL 14944937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_BASE_PHYS 0x30000000 15044937214SPrabhakar Kushwaha 15144937214SPrabhakar Kushwaha /* MC firmware */ 15244937214SPrabhakar Kushwaha #define CONFIG_FSL_MC_ENET 15344937214SPrabhakar Kushwaha /* TODO Actual DPL max length needs to be confirmed with the MC FW team */ 15444937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DPC_MAX_LENGTH 0x20000 15544937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_DPC_OFFSET 0x00F00000 15644937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DPL_MAX_LENGTH 0x20000 15744937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_DPL_OFFSET 0x00F20000 1583c1d218aSYork Sun /* For LS2085A */ 15944937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_AIOP_IMG_MAX_LENGTH 0x200000 16044937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET 0x07000000 16144937214SPrabhakar Kushwaha 16244937214SPrabhakar Kushwaha /* 16344937214SPrabhakar Kushwaha * Carve out a DDR region which will not be used by u-boot/Linux 16444937214SPrabhakar Kushwaha * 16544937214SPrabhakar Kushwaha * It will be used by MC and Debug Server. The MC region must be 16644937214SPrabhakar Kushwaha * 512MB aligned, so the min size to hide is 512MB. 16744937214SPrabhakar Kushwaha */ 168b63a9506SYork Sun #ifdef CONFIG_FSL_MC_ENET 16952c11d4fSPratiyush Mohan Srivastava #define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE (512UL * 1024 * 1024) 170c0492141SYork Sun #define CONFIG_SYS_MC_RSV_MEM_ALIGN (512UL * 1024 * 1024) 17144937214SPrabhakar Kushwaha #endif 17244937214SPrabhakar Kushwaha 17344937214SPrabhakar Kushwaha /* Command line configuration */ 17444937214SPrabhakar Kushwaha #define CONFIG_CMD_ENV 17544937214SPrabhakar Kushwaha 17644937214SPrabhakar Kushwaha /* Miscellaneous configurable options */ 17744937214SPrabhakar Kushwaha #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) 17844937214SPrabhakar Kushwaha #define CONFIG_ARCH_EARLY_INIT_R 17944937214SPrabhakar Kushwaha 18044937214SPrabhakar Kushwaha /* Physical Memory Map */ 18144937214SPrabhakar Kushwaha /* fixme: these need to be checked against the board */ 18244937214SPrabhakar Kushwaha #define CONFIG_CHIP_SELECTS_PER_CTRL 4 18344937214SPrabhakar Kushwaha 18444937214SPrabhakar Kushwaha #define CONFIG_NR_DRAM_BANKS 3 18544937214SPrabhakar Kushwaha 18644937214SPrabhakar Kushwaha #define CONFIG_HWCONFIG 18744937214SPrabhakar Kushwaha #define HWCONFIG_BUFFER_SIZE 128 18844937214SPrabhakar Kushwaha 1891d3a76faSAlison Wang /* Allow to overwrite serial and ethaddr */ 1901d3a76faSAlison Wang #define CONFIG_ENV_OVERWRITE 1911d3a76faSAlison Wang 19244937214SPrabhakar Kushwaha /* Initial environment variables */ 19344937214SPrabhakar Kushwaha #define CONFIG_EXTRA_ENV_SETTINGS \ 19444937214SPrabhakar Kushwaha "hwconfig=fsl_ddr:bank_intlv=auto\0" \ 19544937214SPrabhakar Kushwaha "loadaddr=0x80100000\0" \ 19644937214SPrabhakar Kushwaha "kernel_addr=0x100000\0" \ 19744937214SPrabhakar Kushwaha "ramdisk_addr=0x800000\0" \ 19844937214SPrabhakar Kushwaha "ramdisk_size=0x2000000\0" \ 19944937214SPrabhakar Kushwaha "fdt_high=0xa0000000\0" \ 20044937214SPrabhakar Kushwaha "initrd_high=0xffffffffffffffff\0" \ 20144937214SPrabhakar Kushwaha "kernel_start=0x581200000\0" \ 20244937214SPrabhakar Kushwaha "kernel_load=0xa0000000\0" \ 20344937214SPrabhakar Kushwaha "kernel_size=0x2800000\0" \ 20416ed8560SPrabhakar Kushwaha "console=ttyAMA0,38400n8\0" \ 20516ed8560SPrabhakar Kushwaha "mcinitcmd=fsl_mc start mc 0x580300000" \ 20616ed8560SPrabhakar Kushwaha " 0x580800000 \0" 20744937214SPrabhakar Kushwaha 20844937214SPrabhakar Kushwaha #define CONFIG_BOOTARGS "console=ttyS0,115200 root=/dev/ram0 " \ 209b22b1dc6SPratiyush Mohan Srivastava "earlycon=uart8250,mmio,0x21c0500 " \ 21044937214SPrabhakar Kushwaha "ramdisk_size=0x2000000 default_hugepagesz=2m" \ 2119e71bb9cSAshish Kumar " hugepagesz=2m hugepages=256" 2129f3e1b8aSPrabhakar Kushwaha #define CONFIG_BOOTCOMMAND "fsl_mc apply dpl 0x580700000 &&" \ 2139f3e1b8aSPrabhakar Kushwaha " cp.b $kernel_start $kernel_load" \ 21444937214SPrabhakar Kushwaha " $kernel_size && bootm $kernel_load" 21544937214SPrabhakar Kushwaha 21644937214SPrabhakar Kushwaha /* Monitor Command Prompt */ 21744937214SPrabhakar Kushwaha #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ 21844937214SPrabhakar Kushwaha #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 21944937214SPrabhakar Kushwaha sizeof(CONFIG_SYS_PROMPT) + 16) 22044937214SPrabhakar Kushwaha #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot args buffer */ 22144937214SPrabhakar Kushwaha #define CONFIG_SYS_LONGHELP 22244937214SPrabhakar Kushwaha #define CONFIG_CMDLINE_EDITING 1 22344937214SPrabhakar Kushwaha #define CONFIG_AUTO_COMPLETE 22444937214SPrabhakar Kushwaha #define CONFIG_SYS_MAXARGS 64 /* max command args */ 22544937214SPrabhakar Kushwaha 22644937214SPrabhakar Kushwaha #define CONFIG_PANIC_HANG /* do not reset board on panic */ 22744937214SPrabhakar Kushwaha 22844937214SPrabhakar Kushwaha #define CONFIG_SPL_BSS_START_ADDR 0x80100000 22944937214SPrabhakar Kushwaha #define CONFIG_SPL_BSS_MAX_SIZE 0x00100000 23044937214SPrabhakar Kushwaha #define CONFIG_SPL_FRAMEWORK 23144937214SPrabhakar Kushwaha #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" 23244937214SPrabhakar Kushwaha #define CONFIG_SPL_MAX_SIZE 0x16000 23344937214SPrabhakar Kushwaha #define CONFIG_SPL_STACK (CONFIG_SYS_FSL_OCRAM_BASE + 0x9ff0) 23444937214SPrabhakar Kushwaha #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 23544937214SPrabhakar Kushwaha #define CONFIG_SPL_TEXT_BASE 0x1800a000 23644937214SPrabhakar Kushwaha 23744937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_U_BOOT_DST 0x80400000 23844937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_NAND_U_BOOT_DST 23944937214SPrabhakar Kushwaha #define CONFIG_SYS_SPL_MALLOC_SIZE 0x00100000 24044937214SPrabhakar Kushwaha #define CONFIG_SYS_SPL_MALLOC_START 0x80200000 24174cac00cSYuan Yao #define CONFIG_SYS_MONITOR_LEN (640 * 1024) 24244937214SPrabhakar Kushwaha 24344937214SPrabhakar Kushwaha #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ 24444937214SPrabhakar Kushwaha 245bcb55f67SAneesh Bansal /* Hash command with SHA acceleration supported in hardware */ 246bcb55f67SAneesh Bansal #ifdef CONFIG_FSL_CAAM 247bcb55f67SAneesh Bansal #define CONFIG_CMD_HASH 248bcb55f67SAneesh Bansal #define CONFIG_SHA_HW_ACCEL 249bcb55f67SAneesh Bansal #endif 250bcb55f67SAneesh Bansal 25144937214SPrabhakar Kushwaha #endif /* __LS2_COMMON_H */ 252