144937214SPrabhakar Kushwaha /* 289a168f7SPriyanka 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 3289a168f7SPriyanka Jain #else 3389a168f7SPriyanka Jain #define CONFIG_SYS_TEXT_BASE 0x20100000 3489a168f7SPriyanka Jain #define CONFIG_ENV_SIZE 0x2000 /* 8KB */ 3589a168f7SPriyanka Jain #define CONFIG_ENV_OFFSET 0x300000 /* 3MB */ 36*1c83df6fSSantan Kumar #define CONFIG_ENV_SECT_SIZE 0x40000 37a646f669SYuan Yao #endif 3844937214SPrabhakar Kushwaha 3944937214SPrabhakar Kushwaha #define CONFIG_SUPPORT_RAW_INITRD 4044937214SPrabhakar Kushwaha 4144937214SPrabhakar Kushwaha #define CONFIG_SKIP_LOWLEVEL_INIT 4244937214SPrabhakar Kushwaha 4344937214SPrabhakar Kushwaha #ifndef CONFIG_SPL 4444937214SPrabhakar Kushwaha #define CONFIG_FSL_DDR_INTERACTIVE /* Interactive debugging */ 4544937214SPrabhakar Kushwaha #endif 4644937214SPrabhakar Kushwaha #ifndef CONFIG_SYS_FSL_DDR4 4744937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_RAW_TIMING 4844937214SPrabhakar Kushwaha #endif 4944937214SPrabhakar Kushwaha 5044937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_INTLV_256B /* force 256 byte interleaving */ 5144937214SPrabhakar Kushwaha 5244937214SPrabhakar Kushwaha #define CONFIG_VERY_BIG_RAM 5344937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000UL 5444937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY 0 5544937214SPrabhakar Kushwaha #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE 5644937214SPrabhakar Kushwaha #define CONFIG_SYS_DDR_BLOCK2_BASE 0x8080000000ULL 5744937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS 2 5844937214SPrabhakar Kushwaha 5944937214SPrabhakar Kushwaha /* 6044937214SPrabhakar Kushwaha * SMP Definitinos 6144937214SPrabhakar Kushwaha */ 6244937214SPrabhakar Kushwaha #define CPU_RELEASE_ADDR secondary_boot_func 6344937214SPrabhakar Kushwaha 6444937214SPrabhakar Kushwaha #define CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS 6544937214SPrabhakar Kushwaha #ifdef CONFIG_SYS_FSL_HAS_DP_DDR 6644937214SPrabhakar Kushwaha #define CONFIG_SYS_DP_DDR_BASE 0x6000000000ULL 6744937214SPrabhakar Kushwaha /* 6844937214SPrabhakar Kushwaha * DDR controller use 0 as the base address for binding. 6944937214SPrabhakar Kushwaha * It is mapped to CONFIG_SYS_DP_DDR_BASE for core to access. 7044937214SPrabhakar Kushwaha */ 7144937214SPrabhakar Kushwaha #define CONFIG_SYS_DP_DDR_BASE_PHY 0 7244937214SPrabhakar Kushwaha #define CONFIG_DP_DDR_CTRL 2 7344937214SPrabhakar Kushwaha #define CONFIG_DP_DDR_NUM_CTRLS 1 7444937214SPrabhakar Kushwaha #endif 7544937214SPrabhakar Kushwaha 7644937214SPrabhakar Kushwaha /* Generic Timer Definitions */ 7744937214SPrabhakar Kushwaha /* 7844937214SPrabhakar Kushwaha * This is not an accurate number. It is used in start.S. The frequency 7944937214SPrabhakar Kushwaha * will be udpated later when get_bus_freq(0) is available. 8044937214SPrabhakar Kushwaha */ 8144937214SPrabhakar Kushwaha #define COUNTER_FREQUENCY 25000000 /* 25MHz */ 8244937214SPrabhakar Kushwaha 8344937214SPrabhakar Kushwaha /* Size of malloc() pool */ 8444937214SPrabhakar Kushwaha #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2048 * 1024) 8544937214SPrabhakar Kushwaha 8644937214SPrabhakar Kushwaha /* I2C */ 8744937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C 8844937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC 8944937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ 9044937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ 9144937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ 9244937214SPrabhakar Kushwaha #define CONFIG_SYS_I2C_MXC_I2C4 /* enable I2C bus 4 */ 9344937214SPrabhakar Kushwaha 9444937214SPrabhakar Kushwaha /* Serial Port */ 9544937214SPrabhakar Kushwaha #define CONFIG_CONS_INDEX 1 9644937214SPrabhakar Kushwaha #define CONFIG_SYS_NS16550_SERIAL 9744937214SPrabhakar Kushwaha #define CONFIG_SYS_NS16550_REG_SIZE 1 983564208eSHou Zhiqiang #define CONFIG_SYS_NS16550_CLK (get_serial_clock()) 9944937214SPrabhakar Kushwaha 10044937214SPrabhakar Kushwaha #define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } 10144937214SPrabhakar Kushwaha 10244937214SPrabhakar Kushwaha /* IFC */ 10344937214SPrabhakar Kushwaha #define CONFIG_FSL_IFC 10444937214SPrabhakar Kushwaha 10544937214SPrabhakar Kushwaha /* 10644937214SPrabhakar Kushwaha * During booting, IFC is mapped at the region of 0x30000000. 10744937214SPrabhakar Kushwaha * But this region is limited to 256MB. To accommodate NOR, promjet 10844937214SPrabhakar Kushwaha * and FPGA. This region is divided as below: 10944937214SPrabhakar Kushwaha * 0x30000000 - 0x37ffffff : 128MB : NOR flash 11044937214SPrabhakar Kushwaha * 0x38000000 - 0x3BFFFFFF : 64MB : Promjet 11144937214SPrabhakar Kushwaha * 0x3C000000 - 0x40000000 : 64MB : FPGA etc 11244937214SPrabhakar Kushwaha * 11344937214SPrabhakar Kushwaha * To accommodate bigger NOR flash and other devices, we will map IFC 11444937214SPrabhakar Kushwaha * chip selects to as below: 11544937214SPrabhakar Kushwaha * 0x5_1000_0000..0x5_1fff_ffff Memory Hole 11644937214SPrabhakar Kushwaha * 0x5_2000_0000..0x5_3fff_ffff IFC CSx (FPGA, NAND and others 512MB) 11744937214SPrabhakar Kushwaha * 0x5_4000_0000..0x5_7fff_ffff ASIC or others 1GB 11844937214SPrabhakar Kushwaha * 0x5_8000_0000..0x5_bfff_ffff IFC CS0 1GB (NOR/Promjet) 11944937214SPrabhakar Kushwaha * 0x5_C000_0000..0x5_ffff_ffff IFC CS1 1GB (NOR/Promjet) 12044937214SPrabhakar Kushwaha * 12144937214SPrabhakar Kushwaha * For e.g. NOR flash at CS0 will be mapped to 0x580000000 after relocation. 12244937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE has the final address (core view) 12344937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE_PHYS has the final address (IFC view) 12444937214SPrabhakar Kushwaha * CONFIG_SYS_FLASH_BASE_PHYS_EARLY has the temporary IFC address 12544937214SPrabhakar Kushwaha * CONFIG_SYS_TEXT_BASE is linked to 0x30000000 for booting 12644937214SPrabhakar Kushwaha */ 12744937214SPrabhakar Kushwaha 12844937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE 0x580000000ULL 12944937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE_PHYS 0x80000000 13044937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH_BASE_PHYS_EARLY 0x00000000 13144937214SPrabhakar Kushwaha 13244937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH1_BASE_PHYS 0xC0000000 13344937214SPrabhakar Kushwaha #define CONFIG_SYS_FLASH1_BASE_PHYS_EARLY 0x8000000 13444937214SPrabhakar Kushwaha 13544937214SPrabhakar Kushwaha #ifndef __ASSEMBLY__ 13644937214SPrabhakar Kushwaha unsigned long long get_qixis_addr(void); 13744937214SPrabhakar Kushwaha #endif 13844937214SPrabhakar Kushwaha #define QIXIS_BASE get_qixis_addr() 13944937214SPrabhakar Kushwaha #define QIXIS_BASE_PHYS 0x20000000 14044937214SPrabhakar Kushwaha #define QIXIS_BASE_PHYS_EARLY 0xC000000 14144937214SPrabhakar Kushwaha #define QIXIS_STAT_PRES1 0xb 14244937214SPrabhakar Kushwaha #define QIXIS_SDID_MASK 0x07 14344937214SPrabhakar Kushwaha #define QIXIS_ESDHC_NO_ADAPTER 0x7 14444937214SPrabhakar Kushwaha 14544937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_BASE 0x530000000ULL 14644937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_BASE_PHYS 0x30000000 14744937214SPrabhakar Kushwaha 14844937214SPrabhakar Kushwaha /* MC firmware */ 14944937214SPrabhakar Kushwaha /* TODO Actual DPL max length needs to be confirmed with the MC FW team */ 15044937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DPC_MAX_LENGTH 0x20000 15144937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_DPC_OFFSET 0x00F00000 15244937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DPL_MAX_LENGTH 0x20000 15344937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_DPL_OFFSET 0x00F20000 1543c1d218aSYork Sun /* For LS2085A */ 15544937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_AIOP_IMG_MAX_LENGTH 0x200000 15644937214SPrabhakar Kushwaha #define CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET 0x07000000 15744937214SPrabhakar Kushwaha 15833a8991aSBogdan Purcareata /* Define phy_reset function to boot the MC based on mcinitcmd. 15933a8991aSBogdan Purcareata * This happens late enough to properly fixup u-boot env MAC addresses. 16033a8991aSBogdan Purcareata */ 16133a8991aSBogdan Purcareata #define CONFIG_RESET_PHY_R 16233a8991aSBogdan Purcareata 16344937214SPrabhakar Kushwaha /* 16444937214SPrabhakar Kushwaha * Carve out a DDR region which will not be used by u-boot/Linux 16544937214SPrabhakar Kushwaha * 16644937214SPrabhakar Kushwaha * It will be used by MC and Debug Server. The MC region must be 16744937214SPrabhakar Kushwaha * 512MB aligned, so the min size to hide is 512MB. 16844937214SPrabhakar Kushwaha */ 169b63a9506SYork Sun #ifdef CONFIG_FSL_MC_ENET 17052c11d4fSPratiyush Mohan Srivastava #define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE (512UL * 1024 * 1024) 17144937214SPrabhakar Kushwaha #endif 17244937214SPrabhakar Kushwaha 17344937214SPrabhakar Kushwaha /* Command line configuration */ 17444937214SPrabhakar Kushwaha 17544937214SPrabhakar Kushwaha /* Miscellaneous configurable options */ 17644937214SPrabhakar Kushwaha #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) 17744937214SPrabhakar Kushwaha 17844937214SPrabhakar Kushwaha /* Physical Memory Map */ 17944937214SPrabhakar Kushwaha /* fixme: these need to be checked against the board */ 18044937214SPrabhakar Kushwaha #define CONFIG_CHIP_SELECTS_PER_CTRL 4 18144937214SPrabhakar Kushwaha 18244937214SPrabhakar Kushwaha #define CONFIG_NR_DRAM_BANKS 3 18344937214SPrabhakar Kushwaha 18444937214SPrabhakar Kushwaha #define CONFIG_HWCONFIG 18544937214SPrabhakar Kushwaha #define HWCONFIG_BUFFER_SIZE 128 18644937214SPrabhakar Kushwaha 1871d3a76faSAlison Wang /* Allow to overwrite serial and ethaddr */ 1881d3a76faSAlison Wang #define CONFIG_ENV_OVERWRITE 1891d3a76faSAlison Wang 19044937214SPrabhakar Kushwaha /* Initial environment variables */ 19144937214SPrabhakar Kushwaha #define CONFIG_EXTRA_ENV_SETTINGS \ 19244937214SPrabhakar Kushwaha "hwconfig=fsl_ddr:bank_intlv=auto\0" \ 19344937214SPrabhakar Kushwaha "loadaddr=0x80100000\0" \ 19444937214SPrabhakar Kushwaha "kernel_addr=0x100000\0" \ 19544937214SPrabhakar Kushwaha "ramdisk_addr=0x800000\0" \ 19644937214SPrabhakar Kushwaha "ramdisk_size=0x2000000\0" \ 19744937214SPrabhakar Kushwaha "fdt_high=0xa0000000\0" \ 19844937214SPrabhakar Kushwaha "initrd_high=0xffffffffffffffff\0" \ 199f5bf23d8SSantan Kumar "kernel_start=0x581000000\0" \ 20044937214SPrabhakar Kushwaha "kernel_load=0xa0000000\0" \ 20144937214SPrabhakar Kushwaha "kernel_size=0x2800000\0" \ 20216ed8560SPrabhakar Kushwaha "console=ttyAMA0,38400n8\0" \ 203f5bf23d8SSantan Kumar "mcinitcmd=fsl_mc start mc 0x580a00000" \ 204f5bf23d8SSantan Kumar " 0x580e00000 \0" 20544937214SPrabhakar Kushwaha 2061f55a938SSantan Kumar #ifdef CONFIG_SD_BOOT 2071f55a938SSantan Kumar #define CONFIG_BOOTCOMMAND "mmc read 0x80200000 0x6800 0x800;"\ 2081f55a938SSantan Kumar " fsl_mc apply dpl 0x80200000 &&" \ 2091f55a938SSantan Kumar " mmc read $kernel_load $kernel_start" \ 2101f55a938SSantan Kumar " $kernel_size && bootm $kernel_load" 2111f55a938SSantan Kumar #else 212f5bf23d8SSantan Kumar #define CONFIG_BOOTCOMMAND "fsl_mc apply dpl 0x580d00000 &&" \ 2139f3e1b8aSPrabhakar Kushwaha " cp.b $kernel_start $kernel_load" \ 21444937214SPrabhakar Kushwaha " $kernel_size && bootm $kernel_load" 2151f55a938SSantan Kumar #endif 21644937214SPrabhakar Kushwaha 21744937214SPrabhakar Kushwaha /* Monitor Command Prompt */ 21844937214SPrabhakar Kushwaha #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ 21944937214SPrabhakar Kushwaha #define CONFIG_SYS_LONGHELP 22044937214SPrabhakar Kushwaha #define CONFIG_CMDLINE_EDITING 1 22144937214SPrabhakar Kushwaha #define CONFIG_AUTO_COMPLETE 22244937214SPrabhakar Kushwaha #define CONFIG_SYS_MAXARGS 64 /* max command args */ 22344937214SPrabhakar Kushwaha 22444937214SPrabhakar Kushwaha #define CONFIG_SPL_BSS_START_ADDR 0x80100000 22544937214SPrabhakar Kushwaha #define CONFIG_SPL_BSS_MAX_SIZE 0x00100000 22644937214SPrabhakar Kushwaha #define CONFIG_SPL_FRAMEWORK 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 232faed6bdeSSantan Kumar #ifdef CONFIG_NAND_BOOT 23344937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_U_BOOT_DST 0x80400000 23444937214SPrabhakar Kushwaha #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_NAND_U_BOOT_DST 235faed6bdeSSantan Kumar #endif 23644937214SPrabhakar Kushwaha #define CONFIG_SYS_SPL_MALLOC_SIZE 0x00100000 23744937214SPrabhakar Kushwaha #define CONFIG_SYS_SPL_MALLOC_START 0x80200000 23874cac00cSYuan Yao #define CONFIG_SYS_MONITOR_LEN (640 * 1024) 23944937214SPrabhakar Kushwaha 24044937214SPrabhakar Kushwaha #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ 24144937214SPrabhakar Kushwaha 242457e51cfSSimon Glass #include <asm/arch/soc.h> 243457e51cfSSimon Glass 24444937214SPrabhakar Kushwaha #endif /* __LS2_COMMON_H */ 245