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