1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2010-2011 Freescale Semiconductor, Inc. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* 8*4882a593Smuzhiyun * P010 RDB board configuration file 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef __CONFIG_H 12*4882a593Smuzhiyun #define __CONFIG_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <asm/config_mpc85xx.h> 15*4882a593Smuzhiyun #define CONFIG_NAND_FSL_IFC 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #ifdef CONFIG_SDCARD 18*4882a593Smuzhiyun #define CONFIG_SPL_MMC_MINIMAL 19*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE 20*4882a593Smuzhiyun #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 21*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x11001000 22*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE 0xD0001000 23*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO 0x18000 24*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE (96 * 1024) 25*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_SIZE (512 << 10) 26*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_DST (0x11000000) 27*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_START (0x11000000) 28*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_OFFS (96 << 10) 29*4882a593Smuzhiyun #define CONFIG_SYS_MPC85XX_NO_RESETVEC 30*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT "arch/powerpc/cpu/mpc85xx/u-boot.lds" 31*4882a593Smuzhiyun #define CONFIG_SPL_MMC_BOOT 32*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD 33*4882a593Smuzhiyun #define CONFIG_SPL_COMMON_INIT_DDR 34*4882a593Smuzhiyun #endif 35*4882a593Smuzhiyun #endif 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #ifdef CONFIG_SPIFLASH 38*4882a593Smuzhiyun #ifdef CONFIG_SECURE_BOOT 39*4882a593Smuzhiyun #define CONFIG_RAMBOOT_SPIFLASH 40*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x11000000 41*4882a593Smuzhiyun #define CONFIG_RESET_VECTOR_ADDRESS 0x110bfffc 42*4882a593Smuzhiyun #else 43*4882a593Smuzhiyun #define CONFIG_SPL_SPI_FLASH_MINIMAL 44*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE 45*4882a593Smuzhiyun #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 46*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x11001000 47*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE 0xD0001000 48*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO 0x18000 49*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE (96 * 1024) 50*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE (512 << 10) 51*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_DST (0x11000000) 52*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_START (0x11000000) 53*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_OFFS (96 << 10) 54*4882a593Smuzhiyun #define CONFIG_SYS_MPC85XX_NO_RESETVEC 55*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT "arch/powerpc/cpu/mpc85xx/u-boot.lds" 56*4882a593Smuzhiyun #define CONFIG_SPL_SPI_BOOT 57*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD 58*4882a593Smuzhiyun #define CONFIG_SPL_COMMON_INIT_DDR 59*4882a593Smuzhiyun #endif 60*4882a593Smuzhiyun #endif 61*4882a593Smuzhiyun #endif 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun #ifdef CONFIG_NAND 64*4882a593Smuzhiyun #ifdef CONFIG_SECURE_BOOT 65*4882a593Smuzhiyun #define CONFIG_SPL_INIT_MINIMAL 66*4882a593Smuzhiyun #define CONFIG_SPL_NAND_BOOT 67*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE 68*4882a593Smuzhiyun #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x00201000 71*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE 0xFFFFE000 72*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE 8192 73*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE 0x00100000 74*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK 0x00100000 75*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE ((768 << 10) - 0x2000) 76*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST (0x00200000 - CONFIG_SPL_MAX_SIZE) 77*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START 0x00200000 78*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS 0 79*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT "arch/powerpc/cpu/mpc85xx/u-boot-nand.lds" 80*4882a593Smuzhiyun #else 81*4882a593Smuzhiyun #ifdef CONFIG_TPL_BUILD 82*4882a593Smuzhiyun #define CONFIG_SPL_NAND_BOOT 83*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE 84*4882a593Smuzhiyun #define CONFIG_SPL_NAND_INIT 85*4882a593Smuzhiyun #define CONFIG_SPL_COMMON_INIT_DDR 86*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE (128 << 10) 87*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE 0xD0001000 88*4882a593Smuzhiyun #define CONFIG_SYS_MPC85XX_NO_RESETVEC 89*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE (576 << 10) 90*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST (0x11000000) 91*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START (0x11000000) 92*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS ((128 + 128) << 10) 93*4882a593Smuzhiyun #elif defined(CONFIG_SPL_BUILD) 94*4882a593Smuzhiyun #define CONFIG_SPL_INIT_MINIMAL 95*4882a593Smuzhiyun #define CONFIG_SPL_NAND_MINIMAL 96*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE 97*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE 0xff800000 98*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE 8192 99*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE (128 << 10) 100*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST 0xD0000000 101*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START 0xD0000000 102*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS (128 << 10) 103*4882a593Smuzhiyun #endif 104*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO 0x20000 105*4882a593Smuzhiyun #define CONFIG_TPL_PAD_TO 0x20000 106*4882a593Smuzhiyun #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 107*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x11001000 108*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT "arch/powerpc/cpu/mpc85xx/u-boot-nand.lds" 109*4882a593Smuzhiyun #endif 110*4882a593Smuzhiyun #endif 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun #ifdef CONFIG_NAND_SECBOOT /* NAND Boot */ 113*4882a593Smuzhiyun #define CONFIG_RAMBOOT_NAND 114*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x11000000 115*4882a593Smuzhiyun #define CONFIG_RESET_VECTOR_ADDRESS 0x110bfffc 116*4882a593Smuzhiyun #endif 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun #ifndef CONFIG_SYS_TEXT_BASE 119*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0xeff40000 120*4882a593Smuzhiyun #endif 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun #ifndef CONFIG_RESET_VECTOR_ADDRESS 123*4882a593Smuzhiyun #define CONFIG_RESET_VECTOR_ADDRESS 0xeffffffc 124*4882a593Smuzhiyun #endif 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD 127*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_BASE CONFIG_SPL_TEXT_BASE 128*4882a593Smuzhiyun #else 129*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* start of monitor */ 130*4882a593Smuzhiyun #endif 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun /* High Level Configuration Options */ 133*4882a593Smuzhiyun #define CONFIG_SYS_HAS_SERDES /* common SERDES init code */ 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun #if defined(CONFIG_PCI) 136*4882a593Smuzhiyun #define CONFIG_PCIE1 /* PCIE controller 1 (slot 1) */ 137*4882a593Smuzhiyun #define CONFIG_PCIE2 /* PCIE controller 2 (slot 2) */ 138*4882a593Smuzhiyun #define CONFIG_FSL_PCI_INIT /* Use common FSL init code */ 139*4882a593Smuzhiyun #define CONFIG_PCI_INDIRECT_BRIDGE /* indirect PCI bridge support */ 140*4882a593Smuzhiyun #define CONFIG_FSL_PCIE_RESET /* need PCIe reset errata */ 141*4882a593Smuzhiyun #define CONFIG_SYS_PCI_64BIT /* enable 64-bit PCI resources */ 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun /* 144*4882a593Smuzhiyun * PCI Windows 145*4882a593Smuzhiyun * Memory space is mapped 1-1, but I/O space must start from 0. 146*4882a593Smuzhiyun */ 147*4882a593Smuzhiyun /* controller 1, Slot 1, tgtid 1, Base address a000 */ 148*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_NAME "mini PCIe Slot" 149*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_VIRT 0x80000000 150*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 151*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_BUS 0x80000000 152*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_PHYS 0xc00000000ull 153*4882a593Smuzhiyun #else 154*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_BUS 0x80000000 155*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_PHYS 0x80000000 156*4882a593Smuzhiyun #endif 157*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_SIZE 0x20000000 /* 512M */ 158*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_VIRT 0xffc00000 159*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_BUS 0x00000000 160*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_SIZE 0x00010000 /* 64k */ 161*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 162*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_PHYS 0xfffc00000ull 163*4882a593Smuzhiyun #else 164*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_PHYS 0xffc00000 165*4882a593Smuzhiyun #endif 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun /* controller 2, Slot 2, tgtid 2, Base address 9000 */ 168*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1010RDB_PA) 169*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_NAME "PCIe Slot" 170*4882a593Smuzhiyun #elif defined(CONFIG_TARGET_P1010RDB_PB) 171*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_NAME "mini PCIe Slot" 172*4882a593Smuzhiyun #endif 173*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_VIRT 0xa0000000 174*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 175*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_BUS 0xc0000000 176*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_PHYS 0xc20000000ull 177*4882a593Smuzhiyun #else 178*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_BUS 0xa0000000 179*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_PHYS 0xa0000000 180*4882a593Smuzhiyun #endif 181*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_SIZE 0x20000000 /* 512M */ 182*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_VIRT 0xffc10000 183*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_BUS 0x00000000 184*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_SIZE 0x00010000 /* 64k */ 185*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 186*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_PHYS 0xfffc10000ull 187*4882a593Smuzhiyun #else 188*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_PHYS 0xffc10000 189*4882a593Smuzhiyun #endif 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun #define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */ 192*4882a593Smuzhiyun #endif 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun #define CONFIG_TSEC_ENET 195*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun #define CONFIG_DDR_CLK_FREQ 66666666 /* DDRCLK on P1010 RDB */ 198*4882a593Smuzhiyun #define CONFIG_SYS_CLK_FREQ 66666666 /* SYSCLK for P1010 RDB */ 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun #define CONFIG_MISC_INIT_R 201*4882a593Smuzhiyun #define CONFIG_HWCONFIG 202*4882a593Smuzhiyun /* 203*4882a593Smuzhiyun * These can be toggled for performance analysis, otherwise use default. 204*4882a593Smuzhiyun */ 205*4882a593Smuzhiyun #define CONFIG_L2_CACHE /* toggle L2 cache */ 206*4882a593Smuzhiyun #define CONFIG_BTB /* toggle branch predition */ 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun #define CONFIG_ADDR_STREAMING /* toggle addr streaming */ 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun #define CONFIG_ENABLE_36BIT_PHYS 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 213*4882a593Smuzhiyun #define CONFIG_ADDR_MAP 1 214*4882a593Smuzhiyun #define CONFIG_SYS_NUM_ADDR_MAP 16 /* number of TLB1 entries */ 215*4882a593Smuzhiyun #endif 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */ 218*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END 0x1fffffff 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun /* DDR Setup */ 221*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RAW_TIMING 222*4882a593Smuzhiyun #define CONFIG_DDR_SPD 223*4882a593Smuzhiyun #define CONFIG_SYS_SPD_BUS_NUM 1 224*4882a593Smuzhiyun #define SPD_EEPROM_ADDRESS 0x52 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun #define CONFIG_MEM_INIT_VALUE 0xDeadBeef 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 229*4882a593Smuzhiyun extern unsigned long get_sdram_size(void); 230*4882a593Smuzhiyun #endif 231*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE get_sdram_size() /* DDR size */ 232*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SDRAM_BASE 0x00000000 233*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun #define CONFIG_DIMM_SLOTS_PER_CTLR 1 236*4882a593Smuzhiyun #define CONFIG_CHIP_SELECTS_PER_CTRL 1 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun /* DDR3 Controller Settings */ 239*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_BNDS 0x0000003f 240*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG 0x80014302 241*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG_2 0x00000000 242*4882a593Smuzhiyun #define CONFIG_SYS_DDR_DATA_INIT 0xdeadbeef 243*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INIT_ADDR 0x00000000 244*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INIT_EXT_ADDR 0x00000000 245*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_CONTROL 0x00000000 246*4882a593Smuzhiyun #define CONFIG_SYS_DDR_ZQ_CONTROL 0x89080600 247*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SR_CNTR 0x00000000 248*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RCW_1 0x00000000 249*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RCW_2 0x00000000 250*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CONTROL 0xc70c0008 /* Type = DDR3 */ 251*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CONTROL_2 0x24401000 252*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_4 0x00000001 253*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_5 0x03402400 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_3_800 0x00030000 256*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_0_800 0x00110104 257*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_1_800 0x6f6b8644 258*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_2_800 0x0FA888CF 259*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CLK_CTRL_800 0x03000000 260*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_1_800 0x00441420 261*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_2_800 0x00000000 262*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INTERVAL_800 0x0C300100 263*4882a593Smuzhiyun #define CONFIG_SYS_DDR_WRLVL_CONTROL_800 0x8675f608 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun /* settings for DDR3 at 667MT/s */ 266*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_3_667 0x00010000 267*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_0_667 0x00110004 268*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_1_667 0x5d59e544 269*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_2_667 0x0FA890CD 270*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CLK_CTRL_667 0x03000000 271*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_1_667 0x00441210 272*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_2_667 0x00000000 273*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INTERVAL_667 0x0a280000 274*4882a593Smuzhiyun #define CONFIG_SYS_DDR_WRLVL_CONTROL_667 0x8675F608 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun #define CONFIG_SYS_CCSRBAR 0xffe00000 277*4882a593Smuzhiyun #define CONFIG_SYS_CCSRBAR_PHYS_LOW CONFIG_SYS_CCSRBAR 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun /* Don't relocate CCSRBAR while in NAND_SPL */ 280*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD 281*4882a593Smuzhiyun #define CONFIG_SYS_CCSR_DO_NOT_RELOCATE 282*4882a593Smuzhiyun #endif 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun /* 285*4882a593Smuzhiyun * Memory map 286*4882a593Smuzhiyun * 287*4882a593Smuzhiyun * 0x0000_0000 0x3fff_ffff DDR 1G cacheable 288*4882a593Smuzhiyun * 0x8000_0000 0xbfff_ffff PCI Express Mem 1.5G non-cacheable 289*4882a593Smuzhiyun * 0xffc0_0000 0xffc3_ffff PCI IO range 256k non-cacheable 290*4882a593Smuzhiyun * 291*4882a593Smuzhiyun * Localbus non-cacheable 292*4882a593Smuzhiyun * 0xff80_0000 0xff8f_ffff NAND Flash 1M non-cacheable 293*4882a593Smuzhiyun * 0xffb0_0000 0xffbf_ffff Board CPLD 1M non-cacheable 294*4882a593Smuzhiyun * 0xffd0_0000 0xffd0_3fff L1 for stack 16K Cacheable TLB0 295*4882a593Smuzhiyun * 0xffe0_0000 0xffef_ffff CCSR 1M non-cacheable 296*4882a593Smuzhiyun */ 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun /* 299*4882a593Smuzhiyun * IFC Definitions 300*4882a593Smuzhiyun */ 301*4882a593Smuzhiyun /* NOR Flash on IFC */ 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE 0xee000000 304*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT 256 /* 32M */ 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 307*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE_PHYS (0xf00000000ull | CONFIG_SYS_FLASH_BASE) 308*4882a593Smuzhiyun #else 309*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE_PHYS CONFIG_SYS_FLASH_BASE 310*4882a593Smuzhiyun #endif 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun #define CONFIG_SYS_NOR_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | \ 313*4882a593Smuzhiyun CSPR_PORT_SIZE_16 | \ 314*4882a593Smuzhiyun CSPR_MSEL_NOR | \ 315*4882a593Smuzhiyun CSPR_V) 316*4882a593Smuzhiyun #define CONFIG_SYS_NOR_AMASK IFC_AMASK(32*1024*1024) 317*4882a593Smuzhiyun #define CONFIG_SYS_NOR_CSOR CSOR_NOR_ADM_SHIFT(7) 318*4882a593Smuzhiyun /* NOR Flash Timing Params */ 319*4882a593Smuzhiyun #define CONFIG_SYS_NOR_FTIM0 FTIM0_NOR_TACSE(0x4) | \ 320*4882a593Smuzhiyun FTIM0_NOR_TEADC(0x5) | \ 321*4882a593Smuzhiyun FTIM0_NOR_TEAHC(0x5) 322*4882a593Smuzhiyun #define CONFIG_SYS_NOR_FTIM1 FTIM1_NOR_TACO(0x1e) | \ 323*4882a593Smuzhiyun FTIM1_NOR_TRAD_NOR(0x0f) 324*4882a593Smuzhiyun #define CONFIG_SYS_NOR_FTIM2 FTIM2_NOR_TCS(0x4) | \ 325*4882a593Smuzhiyun FTIM2_NOR_TCH(0x4) | \ 326*4882a593Smuzhiyun FTIM2_NOR_TWP(0x1c) 327*4882a593Smuzhiyun #define CONFIG_SYS_NOR_FTIM3 0x0 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE_PHYS} 330*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_QUIET_TEST 331*4882a593Smuzhiyun #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ 332*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_BANKS 1 /* number of banks */ 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun #undef CONFIG_SYS_FLASH_CHECKSUM 335*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */ 336*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */ 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun /* CFI for NOR Flash */ 339*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_DRIVER 340*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI 341*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_EMPTY_INFO 342*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 343*4882a593Smuzhiyun 344*4882a593Smuzhiyun /* NAND Flash on IFC */ 345*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE 0xff800000 346*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 347*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_PHYS 0xfff800000ull 348*4882a593Smuzhiyun #else 349*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_PHYS CONFIG_SYS_NAND_BASE 350*4882a593Smuzhiyun #endif 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun #define CONFIG_MTD_PARTITION 353*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nand0=ff800000.flash" 354*4882a593Smuzhiyun #define MTDPARTS_DEFAULT \ 355*4882a593Smuzhiyun "mtdparts=ff800000.flash:2m(uboot-env),1m(dtb),5m(kernel),56m(fs),-(usr)" 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun #define CONFIG_SYS_NAND_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ 358*4882a593Smuzhiyun | CSPR_PORT_SIZE_8 \ 359*4882a593Smuzhiyun | CSPR_MSEL_NAND \ 360*4882a593Smuzhiyun | CSPR_V) 361*4882a593Smuzhiyun #define CONFIG_SYS_NAND_AMASK IFC_AMASK(64*1024) 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1010RDB_PA) 364*4882a593Smuzhiyun #define CONFIG_SYS_NAND_CSOR (CSOR_NAND_ECC_ENC_EN /* ECC on encode */ \ 365*4882a593Smuzhiyun | CSOR_NAND_ECC_DEC_EN /* ECC on decode */ \ 366*4882a593Smuzhiyun | CSOR_NAND_ECC_MODE_4 /* 4-bit ECC */ \ 367*4882a593Smuzhiyun | CSOR_NAND_RAL_2 /* RAL = 2 Bytes */ \ 368*4882a593Smuzhiyun | CSOR_NAND_PGS_512 /* Page Size = 512b */ \ 369*4882a593Smuzhiyun | CSOR_NAND_SPRZ_16 /* Spare size = 16 */ \ 370*4882a593Smuzhiyun | CSOR_NAND_PB(32)) /* 32 Pages Per Block */ 371*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE (16 * 1024) 372*4882a593Smuzhiyun 373*4882a593Smuzhiyun #elif defined(CONFIG_TARGET_P1010RDB_PB) 374*4882a593Smuzhiyun #define CONFIG_SYS_NAND_ONFI_DETECTION 375*4882a593Smuzhiyun #define CONFIG_SYS_NAND_CSOR (CSOR_NAND_ECC_ENC_EN /* ECC on encode */ \ 376*4882a593Smuzhiyun | CSOR_NAND_ECC_DEC_EN /* ECC on decode */ \ 377*4882a593Smuzhiyun | CSOR_NAND_ECC_MODE_4 /* 4-bit ECC */ \ 378*4882a593Smuzhiyun | CSOR_NAND_RAL_3 /* RAL = 3Byes */ \ 379*4882a593Smuzhiyun | CSOR_NAND_PGS_4K /* Page Size = 4K */ \ 380*4882a593Smuzhiyun | CSOR_NAND_SPRZ_224 /* Spare size = 224 */ \ 381*4882a593Smuzhiyun | CSOR_NAND_PB(128)) /*Pages Per Block = 128 */ 382*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE (512 * 1024) 383*4882a593Smuzhiyun #endif 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE } 386*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE 1 387*4882a593Smuzhiyun 388*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1010RDB_PA) 389*4882a593Smuzhiyun /* NAND Flash Timing Params */ 390*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM0 FTIM0_NAND_TCCST(0x01) | \ 391*4882a593Smuzhiyun FTIM0_NAND_TWP(0x0C) | \ 392*4882a593Smuzhiyun FTIM0_NAND_TWCHT(0x04) | \ 393*4882a593Smuzhiyun FTIM0_NAND_TWH(0x05) 394*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM1 FTIM1_NAND_TADLE(0x1d) | \ 395*4882a593Smuzhiyun FTIM1_NAND_TWBE(0x1d) | \ 396*4882a593Smuzhiyun FTIM1_NAND_TRR(0x07) | \ 397*4882a593Smuzhiyun FTIM1_NAND_TRP(0x0c) 398*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM2 FTIM2_NAND_TRAD(0x0c) | \ 399*4882a593Smuzhiyun FTIM2_NAND_TREH(0x05) | \ 400*4882a593Smuzhiyun FTIM2_NAND_TWHRE(0x0f) 401*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM3 FTIM3_NAND_TWW(0x04) 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun #elif defined(CONFIG_TARGET_P1010RDB_PB) 404*4882a593Smuzhiyun /* support MT29F16G08ABABAWP 4k-pagesize 2G-bytes NAND */ 405*4882a593Smuzhiyun /* ONFI NAND Flash mode0 Timing Params */ 406*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM0 (FTIM0_NAND_TCCST(0x07)| \ 407*4882a593Smuzhiyun FTIM0_NAND_TWP(0x18) | \ 408*4882a593Smuzhiyun FTIM0_NAND_TWCHT(0x07) | \ 409*4882a593Smuzhiyun FTIM0_NAND_TWH(0x0a)) 410*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM1 (FTIM1_NAND_TADLE(0x32)| \ 411*4882a593Smuzhiyun FTIM1_NAND_TWBE(0x39) | \ 412*4882a593Smuzhiyun FTIM1_NAND_TRR(0x0e) | \ 413*4882a593Smuzhiyun FTIM1_NAND_TRP(0x18)) 414*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM2 (FTIM2_NAND_TRAD(0x0f) | \ 415*4882a593Smuzhiyun FTIM2_NAND_TREH(0x0a) | \ 416*4882a593Smuzhiyun FTIM2_NAND_TWHRE(0x1e)) 417*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM3 0x0 418*4882a593Smuzhiyun #endif 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun #define CONFIG_SYS_NAND_DDR_LAW 11 421*4882a593Smuzhiyun 422*4882a593Smuzhiyun /* Set up IFC registers for boot location NOR/NAND */ 423*4882a593Smuzhiyun #if defined(CONFIG_NAND) || defined(CONFIG_NAND_SECBOOT) 424*4882a593Smuzhiyun #define CONFIG_SYS_CSPR0 CONFIG_SYS_NAND_CSPR 425*4882a593Smuzhiyun #define CONFIG_SYS_AMASK0 CONFIG_SYS_NAND_AMASK 426*4882a593Smuzhiyun #define CONFIG_SYS_CSOR0 CONFIG_SYS_NAND_CSOR 427*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NAND_FTIM0 428*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NAND_FTIM1 429*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NAND_FTIM2 430*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NAND_FTIM3 431*4882a593Smuzhiyun #define CONFIG_SYS_CSPR1 CONFIG_SYS_NOR_CSPR 432*4882a593Smuzhiyun #define CONFIG_SYS_AMASK1 CONFIG_SYS_NOR_AMASK 433*4882a593Smuzhiyun #define CONFIG_SYS_CSOR1 CONFIG_SYS_NOR_CSOR 434*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NOR_FTIM0 435*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NOR_FTIM1 436*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NOR_FTIM2 437*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NOR_FTIM3 438*4882a593Smuzhiyun #else 439*4882a593Smuzhiyun #define CONFIG_SYS_CSPR0 CONFIG_SYS_NOR_CSPR 440*4882a593Smuzhiyun #define CONFIG_SYS_AMASK0 CONFIG_SYS_NOR_AMASK 441*4882a593Smuzhiyun #define CONFIG_SYS_CSOR0 CONFIG_SYS_NOR_CSOR 442*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NOR_FTIM0 443*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NOR_FTIM1 444*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NOR_FTIM2 445*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NOR_FTIM3 446*4882a593Smuzhiyun #define CONFIG_SYS_CSPR1 CONFIG_SYS_NAND_CSPR 447*4882a593Smuzhiyun #define CONFIG_SYS_AMASK1 CONFIG_SYS_NAND_AMASK 448*4882a593Smuzhiyun #define CONFIG_SYS_CSOR1 CONFIG_SYS_NAND_CSOR 449*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NAND_FTIM0 450*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NAND_FTIM1 451*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NAND_FTIM2 452*4882a593Smuzhiyun #define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NAND_FTIM3 453*4882a593Smuzhiyun #endif 454*4882a593Smuzhiyun 455*4882a593Smuzhiyun /* CPLD on IFC */ 456*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE 0xffb00000 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT 459*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE_PHYS 0xfffb00000ull 460*4882a593Smuzhiyun #else 461*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE_PHYS CONFIG_SYS_CPLD_BASE 462*4882a593Smuzhiyun #endif 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun #define CONFIG_SYS_CSPR3 (CSPR_PHYS_ADDR(CONFIG_SYS_CPLD_BASE_PHYS) \ 465*4882a593Smuzhiyun | CSPR_PORT_SIZE_8 \ 466*4882a593Smuzhiyun | CSPR_MSEL_GPCM \ 467*4882a593Smuzhiyun | CSPR_V) 468*4882a593Smuzhiyun #define CONFIG_SYS_AMASK3 IFC_AMASK(64*1024) 469*4882a593Smuzhiyun #define CONFIG_SYS_CSOR3 0x0 470*4882a593Smuzhiyun /* CPLD Timing parameters for IFC CS3 */ 471*4882a593Smuzhiyun #define CONFIG_SYS_CS3_FTIM0 (FTIM0_GPCM_TACSE(0x0e) | \ 472*4882a593Smuzhiyun FTIM0_GPCM_TEADC(0x0e) | \ 473*4882a593Smuzhiyun FTIM0_GPCM_TEAHC(0x0e)) 474*4882a593Smuzhiyun #define CONFIG_SYS_CS3_FTIM1 (FTIM1_GPCM_TACO(0x0e) | \ 475*4882a593Smuzhiyun FTIM1_GPCM_TRAD(0x1f)) 476*4882a593Smuzhiyun #define CONFIG_SYS_CS3_FTIM2 (FTIM2_GPCM_TCS(0x0e) | \ 477*4882a593Smuzhiyun FTIM2_GPCM_TCH(0x8) | \ 478*4882a593Smuzhiyun FTIM2_GPCM_TWP(0x1f)) 479*4882a593Smuzhiyun #define CONFIG_SYS_CS3_FTIM3 0x0 480*4882a593Smuzhiyun 481*4882a593Smuzhiyun #if defined(CONFIG_RAMBOOT_SDCARD) || defined(CONFIG_RAMBOOT_SPIFLASH) || \ 482*4882a593Smuzhiyun defined(CONFIG_RAMBOOT_NAND) 483*4882a593Smuzhiyun #define CONFIG_SYS_RAMBOOT 484*4882a593Smuzhiyun #define CONFIG_SYS_EXTRA_ENV_RELOC 485*4882a593Smuzhiyun #else 486*4882a593Smuzhiyun #undef CONFIG_SYS_RAMBOOT 487*4882a593Smuzhiyun #endif 488*4882a593Smuzhiyun 489*4882a593Smuzhiyun #ifdef CONFIG_SYS_FSL_ERRATUM_IFC_A003399 490*4882a593Smuzhiyun #if !defined(CONFIG_SPL) && !defined(CONFIG_SYS_RAMBOOT) 491*4882a593Smuzhiyun #define CONFIG_A003399_NOR_WORKAROUND 492*4882a593Smuzhiyun #endif 493*4882a593Smuzhiyun #endif 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun #define CONFIG_BOARD_EARLY_INIT_R 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_LOCK 498*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR 0xffd00000 /* stack in RAM */ 499*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE 0x00004000 /* End of used area in RAM */ 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun #define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE \ 502*4882a593Smuzhiyun - GENERATED_GBL_DATA_SIZE) 503*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET 504*4882a593Smuzhiyun 505*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_LEN (768 * 1024) 506*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN (1024 * 1024) /* Reserved for malloc*/ 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun /* 509*4882a593Smuzhiyun * Config the L2 Cache as L2 SRAM 510*4882a593Smuzhiyun */ 511*4882a593Smuzhiyun #if defined(CONFIG_SPL_BUILD) 512*4882a593Smuzhiyun #if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) 513*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR 0xD0000000 514*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR_PHYS CONFIG_SYS_INIT_L2_ADDR 515*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE (256 << 10) 516*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_END (CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) 517*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE 0xD0001000 518*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK (CONFIG_SYS_INIT_L2_ADDR + 112 * 1024) 519*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK_SIZE (16 << 10) 520*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_ADDR (CONFIG_SYS_INIT_L2_ADDR + 128 * 1024) 521*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_SIZE (128 << 10) 522*4882a593Smuzhiyun #define CONFIG_SPL_GD_ADDR (CONFIG_SYS_INIT_L2_ADDR + 96 * 1024) 523*4882a593Smuzhiyun #elif defined(CONFIG_NAND) 524*4882a593Smuzhiyun #ifdef CONFIG_TPL_BUILD 525*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR 0xD0000000 526*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR_PHYS CONFIG_SYS_INIT_L2_ADDR 527*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE (256 << 10) 528*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_END (CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) 529*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE 0xD0001000 530*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK (CONFIG_SYS_INIT_L2_ADDR + 192 * 1024) 531*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_ADDR (CONFIG_SYS_INIT_L2_ADDR + 208 * 1024) 532*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_SIZE (48 << 10) 533*4882a593Smuzhiyun #define CONFIG_SPL_GD_ADDR (CONFIG_SYS_INIT_L2_ADDR + 176 * 1024) 534*4882a593Smuzhiyun #else 535*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR 0xD0000000 536*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR_PHYS CONFIG_SYS_INIT_L2_ADDR 537*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE (256 << 10) 538*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_END (CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) 539*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE (CONFIG_SYS_INIT_L2_END - 0x3000) 540*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK ((CONFIG_SYS_INIT_L2_END - 1) & ~0xF) 541*4882a593Smuzhiyun #endif 542*4882a593Smuzhiyun #endif 543*4882a593Smuzhiyun #endif 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun /* Serial Port */ 546*4882a593Smuzhiyun #define CONFIG_CONS_INDEX 1 547*4882a593Smuzhiyun #undef CONFIG_SERIAL_SOFTWARE_FIFO 548*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_SERIAL 549*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_REG_SIZE 1 550*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_CLK get_bus_freq(0) 551*4882a593Smuzhiyun #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_INIT_MINIMAL) 552*4882a593Smuzhiyun #define CONFIG_NS16550_MIN_FUNCTIONS 553*4882a593Smuzhiyun #endif 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun #define CONFIG_SYS_BAUDRATE_TABLE \ 556*4882a593Smuzhiyun {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200} 557*4882a593Smuzhiyun 558*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_CCSRBAR+0x4500) 559*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_CCSRBAR+0x4600) 560*4882a593Smuzhiyun 561*4882a593Smuzhiyun /* I2C */ 562*4882a593Smuzhiyun #define CONFIG_SYS_I2C 563*4882a593Smuzhiyun #define CONFIG_SYS_I2C_FSL 564*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_SPEED 400000 565*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_SLAVE 0x7F 566*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_OFFSET 0x3000 567*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_SPEED 400000 568*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_SLAVE 0x7F 569*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_OFFSET 0x3100 570*4882a593Smuzhiyun #define I2C_PCA9557_ADDR1 0x18 571*4882a593Smuzhiyun #define I2C_PCA9557_ADDR2 0x19 572*4882a593Smuzhiyun #define I2C_PCA9557_BUS_NUM 0 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun /* I2C EEPROM */ 575*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1010RDB_PB) 576*4882a593Smuzhiyun #define CONFIG_ID_EEPROM 577*4882a593Smuzhiyun #ifdef CONFIG_ID_EEPROM 578*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_NXID 579*4882a593Smuzhiyun #endif 580*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 581*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR 0x57 582*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_BUS_NUM 0 583*4882a593Smuzhiyun #define MAX_NUM_PORTS 9 /* for 128Bytes EEPROM */ 584*4882a593Smuzhiyun #endif 585*4882a593Smuzhiyun /* enable read and write access to EEPROM */ 586*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 587*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 588*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 589*4882a593Smuzhiyun 590*4882a593Smuzhiyun /* RTC */ 591*4882a593Smuzhiyun #define CONFIG_RTC_PT7C4338 592*4882a593Smuzhiyun #define CONFIG_SYS_I2C_RTC_ADDR 0x68 593*4882a593Smuzhiyun 594*4882a593Smuzhiyun /* 595*4882a593Smuzhiyun * SPI interface will not be available in case of NAND boot SPI CS0 will be 596*4882a593Smuzhiyun * used for SLIC 597*4882a593Smuzhiyun */ 598*4882a593Smuzhiyun #if !defined(CONFIG_NAND) || !defined(CONFIG_NAND_SECBOOT) 599*4882a593Smuzhiyun /* eSPI - Enhanced SPI */ 600*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_SPEED 10000000 601*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 602*4882a593Smuzhiyun #endif 603*4882a593Smuzhiyun 604*4882a593Smuzhiyun #if defined(CONFIG_TSEC_ENET) 605*4882a593Smuzhiyun #define CONFIG_MII /* MII PHY management */ 606*4882a593Smuzhiyun #define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */ 607*4882a593Smuzhiyun #define CONFIG_TSEC1 1 608*4882a593Smuzhiyun #define CONFIG_TSEC1_NAME "eTSEC1" 609*4882a593Smuzhiyun #define CONFIG_TSEC2 1 610*4882a593Smuzhiyun #define CONFIG_TSEC2_NAME "eTSEC2" 611*4882a593Smuzhiyun #define CONFIG_TSEC3 1 612*4882a593Smuzhiyun #define CONFIG_TSEC3_NAME "eTSEC3" 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun #define TSEC1_PHY_ADDR 1 615*4882a593Smuzhiyun #define TSEC2_PHY_ADDR 0 616*4882a593Smuzhiyun #define TSEC3_PHY_ADDR 2 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun #define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) 619*4882a593Smuzhiyun #define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) 620*4882a593Smuzhiyun #define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun #define TSEC1_PHYIDX 0 623*4882a593Smuzhiyun #define TSEC2_PHYIDX 0 624*4882a593Smuzhiyun #define TSEC3_PHYIDX 0 625*4882a593Smuzhiyun 626*4882a593Smuzhiyun #define CONFIG_ETHPRIME "eTSEC1" 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun /* TBI PHY configuration for SGMII mode */ 629*4882a593Smuzhiyun #define CONFIG_TSEC_TBICR_SETTINGS ( \ 630*4882a593Smuzhiyun TBICR_PHY_RESET \ 631*4882a593Smuzhiyun | TBICR_ANEG_ENABLE \ 632*4882a593Smuzhiyun | TBICR_FULL_DUPLEX \ 633*4882a593Smuzhiyun | TBICR_SPEED1_SET \ 634*4882a593Smuzhiyun ) 635*4882a593Smuzhiyun 636*4882a593Smuzhiyun #endif /* CONFIG_TSEC_ENET */ 637*4882a593Smuzhiyun 638*4882a593Smuzhiyun /* SATA */ 639*4882a593Smuzhiyun #define CONFIG_FSL_SATA 640*4882a593Smuzhiyun #define CONFIG_FSL_SATA_V2 641*4882a593Smuzhiyun #define CONFIG_LIBATA 642*4882a593Smuzhiyun 643*4882a593Smuzhiyun #ifdef CONFIG_FSL_SATA 644*4882a593Smuzhiyun #define CONFIG_SYS_SATA_MAX_DEVICE 2 645*4882a593Smuzhiyun #define CONFIG_SATA1 646*4882a593Smuzhiyun #define CONFIG_SYS_SATA1 CONFIG_SYS_MPC85xx_SATA1_ADDR 647*4882a593Smuzhiyun #define CONFIG_SYS_SATA1_FLAGS FLAGS_DMA 648*4882a593Smuzhiyun #define CONFIG_SATA2 649*4882a593Smuzhiyun #define CONFIG_SYS_SATA2 CONFIG_SYS_MPC85xx_SATA2_ADDR 650*4882a593Smuzhiyun #define CONFIG_SYS_SATA2_FLAGS FLAGS_DMA 651*4882a593Smuzhiyun 652*4882a593Smuzhiyun #define CONFIG_LBA48 653*4882a593Smuzhiyun #endif /* #ifdef CONFIG_FSL_SATA */ 654*4882a593Smuzhiyun 655*4882a593Smuzhiyun #ifdef CONFIG_MMC 656*4882a593Smuzhiyun #define CONFIG_FSL_ESDHC 657*4882a593Smuzhiyun #define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR 658*4882a593Smuzhiyun #endif 659*4882a593Smuzhiyun 660*4882a593Smuzhiyun #define CONFIG_HAS_FSL_DR_USB 661*4882a593Smuzhiyun 662*4882a593Smuzhiyun #if defined(CONFIG_HAS_FSL_DR_USB) 663*4882a593Smuzhiyun #ifdef CONFIG_USB_EHCI_HCD 664*4882a593Smuzhiyun #define CONFIG_EHCI_HCD_INIT_AFTER_RESET 665*4882a593Smuzhiyun #define CONFIG_USB_EHCI_FSL 666*4882a593Smuzhiyun #endif 667*4882a593Smuzhiyun #endif 668*4882a593Smuzhiyun 669*4882a593Smuzhiyun /* 670*4882a593Smuzhiyun * Environment 671*4882a593Smuzhiyun */ 672*4882a593Smuzhiyun #if defined(CONFIG_SDCARD) 673*4882a593Smuzhiyun #define CONFIG_FSL_FIXED_MMC_LOCATION 674*4882a593Smuzhiyun #define CONFIG_SYS_MMC_ENV_DEV 0 675*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 676*4882a593Smuzhiyun #elif defined(CONFIG_SPIFLASH) 677*4882a593Smuzhiyun #define CONFIG_ENV_SPI_BUS 0 678*4882a593Smuzhiyun #define CONFIG_ENV_SPI_CS 0 679*4882a593Smuzhiyun #define CONFIG_ENV_SPI_MAX_HZ 10000000 680*4882a593Smuzhiyun #define CONFIG_ENV_SPI_MODE 0 681*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET 0x100000 /* 1MB */ 682*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE 0x10000 683*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 684*4882a593Smuzhiyun #elif defined(CONFIG_NAND) 685*4882a593Smuzhiyun #ifdef CONFIG_TPL_BUILD 686*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 687*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (CONFIG_SYS_INIT_L2_ADDR + (160 << 10)) 688*4882a593Smuzhiyun #else 689*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1010RDB_PA) 690*4882a593Smuzhiyun #define CONFIG_ENV_SIZE CONFIG_SYS_NAND_BLOCK_SIZE 691*4882a593Smuzhiyun #define CONFIG_ENV_RANGE (3 * CONFIG_ENV_SIZE) /* 3*16=48K for env */ 692*4882a593Smuzhiyun #elif defined(CONFIG_TARGET_P1010RDB_PB) 693*4882a593Smuzhiyun #define CONFIG_ENV_SIZE (16 * 1024) 694*4882a593Smuzhiyun #define CONFIG_ENV_RANGE (32 * CONFIG_ENV_SIZE) /* new block size 512K */ 695*4882a593Smuzhiyun #endif 696*4882a593Smuzhiyun #endif 697*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET (1024 * 1024) 698*4882a593Smuzhiyun #elif defined(CONFIG_SYS_RAMBOOT) 699*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - 0x1000) 700*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 701*4882a593Smuzhiyun #else 702*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) 703*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 704*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K (one sector) */ 705*4882a593Smuzhiyun #endif 706*4882a593Smuzhiyun 707*4882a593Smuzhiyun #define CONFIG_LOADS_ECHO /* echo on for serial download */ 708*4882a593Smuzhiyun #define CONFIG_SYS_LOADS_BAUD_CHANGE /* allow baudrate change */ 709*4882a593Smuzhiyun 710*4882a593Smuzhiyun #undef CONFIG_WATCHDOG /* watchdog disabled */ 711*4882a593Smuzhiyun 712*4882a593Smuzhiyun #if defined(CONFIG_MMC) || defined(CONFIG_USB_EHCI_HCD) \ 713*4882a593Smuzhiyun || defined(CONFIG_FSL_SATA) 714*4882a593Smuzhiyun #endif 715*4882a593Smuzhiyun 716*4882a593Smuzhiyun /* 717*4882a593Smuzhiyun * Miscellaneous configurable options 718*4882a593Smuzhiyun */ 719*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP /* undef to save memory */ 720*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING /* Command-line editing */ 721*4882a593Smuzhiyun #define CONFIG_AUTO_COMPLETE /* add autocompletion support */ 722*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR 0x2000000 /* default load address */ 723*4882a593Smuzhiyun 724*4882a593Smuzhiyun /* 725*4882a593Smuzhiyun * For booting Linux, the board info and command line data 726*4882a593Smuzhiyun * have to be in the first 64 MB of memory, since this is 727*4882a593Smuzhiyun * the maximum mapped by the Linux kernel during initialization. 728*4882a593Smuzhiyun */ 729*4882a593Smuzhiyun #define CONFIG_SYS_BOOTMAPSZ (64 << 20) /* Initial Memory map for Linux */ 730*4882a593Smuzhiyun #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ 731*4882a593Smuzhiyun 732*4882a593Smuzhiyun #if defined(CONFIG_CMD_KGDB) 733*4882a593Smuzhiyun #define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */ 734*4882a593Smuzhiyun #endif 735*4882a593Smuzhiyun 736*4882a593Smuzhiyun /* 737*4882a593Smuzhiyun * Environment Configuration 738*4882a593Smuzhiyun */ 739*4882a593Smuzhiyun 740*4882a593Smuzhiyun #if defined(CONFIG_TSEC_ENET) 741*4882a593Smuzhiyun #define CONFIG_HAS_ETH0 742*4882a593Smuzhiyun #define CONFIG_HAS_ETH1 743*4882a593Smuzhiyun #define CONFIG_HAS_ETH2 744*4882a593Smuzhiyun #endif 745*4882a593Smuzhiyun 746*4882a593Smuzhiyun #define CONFIG_ROOTPATH "/opt/nfsroot" 747*4882a593Smuzhiyun #define CONFIG_BOOTFILE "uImage" 748*4882a593Smuzhiyun #define CONFIG_UBOOTPATH u-boot.bin/* U-Boot image on TFTP server */ 749*4882a593Smuzhiyun 750*4882a593Smuzhiyun /* default location for tftp and bootm */ 751*4882a593Smuzhiyun #define CONFIG_LOADADDR 1000000 752*4882a593Smuzhiyun 753*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS \ 754*4882a593Smuzhiyun "hwconfig=" __stringify(CONFIG_DEF_HWCONFIG) "\0" \ 755*4882a593Smuzhiyun "netdev=eth0\0" \ 756*4882a593Smuzhiyun "uboot=" __stringify(CONFIG_UBOOTPATH) "\0" \ 757*4882a593Smuzhiyun "loadaddr=1000000\0" \ 758*4882a593Smuzhiyun "consoledev=ttyS0\0" \ 759*4882a593Smuzhiyun "ramdiskaddr=2000000\0" \ 760*4882a593Smuzhiyun "ramdiskfile=rootfs.ext2.gz.uboot\0" \ 761*4882a593Smuzhiyun "fdtaddr=1e00000\0" \ 762*4882a593Smuzhiyun "fdtfile=p1010rdb.dtb\0" \ 763*4882a593Smuzhiyun "bdev=sda1\0" \ 764*4882a593Smuzhiyun "hwconfig=usb1:dr_mode=host,phy_type=utmi\0" \ 765*4882a593Smuzhiyun "othbootargs=ramdisk_size=600000\0" \ 766*4882a593Smuzhiyun "usbfatboot=setenv bootargs root=/dev/ram rw " \ 767*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs; " \ 768*4882a593Smuzhiyun "usb start;" \ 769*4882a593Smuzhiyun "fatload usb 0:2 $loadaddr $bootfile;" \ 770*4882a593Smuzhiyun "fatload usb 0:2 $fdtaddr $fdtfile;" \ 771*4882a593Smuzhiyun "fatload usb 0:2 $ramdiskaddr $ramdiskfile;" \ 772*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr\0" \ 773*4882a593Smuzhiyun "usbext2boot=setenv bootargs root=/dev/ram rw " \ 774*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs; " \ 775*4882a593Smuzhiyun "usb start;" \ 776*4882a593Smuzhiyun "ext2load usb 0:4 $loadaddr $bootfile;" \ 777*4882a593Smuzhiyun "ext2load usb 0:4 $fdtaddr $fdtfile;" \ 778*4882a593Smuzhiyun "ext2load usb 0:4 $ramdiskaddr $ramdiskfile;" \ 779*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr\0" \ 780*4882a593Smuzhiyun CONFIG_BOOTMODE 781*4882a593Smuzhiyun 782*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1010RDB_PA) 783*4882a593Smuzhiyun #define CONFIG_BOOTMODE \ 784*4882a593Smuzhiyun "boot_bank0=i2c dev 0; i2c mw 18 1 f1; i2c mw 18 3 f0;" \ 785*4882a593Smuzhiyun "mw.b ffb00011 0; mw.b ffb00009 0; reset\0" \ 786*4882a593Smuzhiyun "boot_bank1=i2c dev 0; i2c mw 18 1 f1; i2c mw 18 3 f0;" \ 787*4882a593Smuzhiyun "mw.b ffb00011 0; mw.b ffb00009 1; reset\0" \ 788*4882a593Smuzhiyun "boot_nand=i2c dev 0; i2c mw 18 1 f9; i2c mw 18 3 f0;" \ 789*4882a593Smuzhiyun "mw.b ffb00011 0; mw.b ffb00017 1; reset\0" 790*4882a593Smuzhiyun 791*4882a593Smuzhiyun #elif defined(CONFIG_TARGET_P1010RDB_PB) 792*4882a593Smuzhiyun #define CONFIG_BOOTMODE \ 793*4882a593Smuzhiyun "boot_bank0=i2c dev 0; i2c mw 18 1 fe; i2c mw 18 3 0;" \ 794*4882a593Smuzhiyun "i2c mw 19 1 2; i2c mw 19 3 e1; reset\0" \ 795*4882a593Smuzhiyun "boot_bank1=i2c dev 0; i2c mw 18 1 fe; i2c mw 18 3 0;" \ 796*4882a593Smuzhiyun "i2c mw 19 1 12; i2c mw 19 3 e1; reset\0" \ 797*4882a593Smuzhiyun "boot_nand=i2c dev 0; i2c mw 18 1 fc; i2c mw 18 3 0;" \ 798*4882a593Smuzhiyun "i2c mw 19 1 8; i2c mw 19 3 f7; reset\0" \ 799*4882a593Smuzhiyun "boot_spi=i2c dev 0; i2c mw 18 1 fa; i2c mw 18 3 0;" \ 800*4882a593Smuzhiyun "i2c mw 19 1 0; i2c mw 19 3 f7; reset\0" \ 801*4882a593Smuzhiyun "boot_sd=i2c dev 0; i2c mw 18 1 f8; i2c mw 18 3 0;" \ 802*4882a593Smuzhiyun "i2c mw 19 1 4; i2c mw 19 3 f3; reset\0" 803*4882a593Smuzhiyun #endif 804*4882a593Smuzhiyun 805*4882a593Smuzhiyun #define CONFIG_RAMBOOTCOMMAND \ 806*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw " \ 807*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs; " \ 808*4882a593Smuzhiyun "tftp $ramdiskaddr $ramdiskfile;" \ 809*4882a593Smuzhiyun "tftp $loadaddr $bootfile;" \ 810*4882a593Smuzhiyun "tftp $fdtaddr $fdtfile;" \ 811*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr" 812*4882a593Smuzhiyun 813*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND CONFIG_RAMBOOTCOMMAND 814*4882a593Smuzhiyun 815*4882a593Smuzhiyun #include <asm/fsl_secure_boot.h> 816*4882a593Smuzhiyun 817*4882a593Smuzhiyun #endif /* __CONFIG_H */ 818