1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2013 Freescale Semiconductor, Inc. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* 8*4882a593Smuzhiyun * QorIQ P1 Tower boards configuration file 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun #ifndef __CONFIG_H 11*4882a593Smuzhiyun #define __CONFIG_H 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #if defined(CONFIG_TWR_P1025) 14*4882a593Smuzhiyun #define CONFIG_BOARDNAME "TWR-P1025" 15*4882a593Smuzhiyun #define CONFIG_PHY_ATHEROS 16*4882a593Smuzhiyun #define CONFIG_QE 17*4882a593Smuzhiyun #define CONFIG_SYS_LBC_LBCR 0x00080000 /* Conversion of LBC addr */ 18*4882a593Smuzhiyun #define CONFIG_SYS_LBC_LCRR 0x80000002 /* LB clock ratio reg */ 19*4882a593Smuzhiyun #endif 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #ifdef CONFIG_SDCARD 22*4882a593Smuzhiyun #define CONFIG_RAMBOOT_SDCARD 23*4882a593Smuzhiyun #define CONFIG_SYS_RAMBOOT 24*4882a593Smuzhiyun #define CONFIG_SYS_EXTRA_ENV_RELOC 25*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x11000000 26*4882a593Smuzhiyun #define CONFIG_RESET_VECTOR_ADDRESS 0x110bfffc 27*4882a593Smuzhiyun #endif 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #ifndef CONFIG_SYS_TEXT_BASE 30*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0xeff40000 31*4882a593Smuzhiyun #endif 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #ifndef CONFIG_RESET_VECTOR_ADDRESS 34*4882a593Smuzhiyun #define CONFIG_RESET_VECTOR_ADDRESS 0xeffffffc 35*4882a593Smuzhiyun #endif 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #ifndef CONFIG_SYS_MONITOR_BASE 38*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* start of monitor */ 39*4882a593Smuzhiyun #endif 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #define CONFIG_MP 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #define CONFIG_PCIE1 /* PCIE controller 1 (slot 1) */ 44*4882a593Smuzhiyun #define CONFIG_PCIE2 /* PCIE controller 2 (slot 2) */ 45*4882a593Smuzhiyun #define CONFIG_FSL_PCI_INIT /* Use common FSL init code */ 46*4882a593Smuzhiyun #define CONFIG_PCI_INDIRECT_BRIDGE /* indirect PCI bridge support */ 47*4882a593Smuzhiyun #define CONFIG_FSL_PCIE_RESET /* need PCIe reset errata */ 48*4882a593Smuzhiyun #define CONFIG_SYS_PCI_64BIT /* enable 64-bit PCI resources */ 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #define CONFIG_TSEC_ENET /* tsec ethernet support */ 51*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #define CONFIG_SATA_SIL3114 54*4882a593Smuzhiyun #define CONFIG_SYS_SATA_MAX_DEVICE 2 55*4882a593Smuzhiyun #define CONFIG_LIBATA 56*4882a593Smuzhiyun #define CONFIG_LBA48 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 59*4882a593Smuzhiyun extern unsigned long get_board_sys_clk(unsigned long dummy); 60*4882a593Smuzhiyun #endif 61*4882a593Smuzhiyun #define CONFIG_SYS_CLK_FREQ get_board_sys_clk(0) /*sysclk for TWR-P1025 */ 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun #define CONFIG_DDR_CLK_FREQ 66666666 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define CONFIG_HWCONFIG 66*4882a593Smuzhiyun /* 67*4882a593Smuzhiyun * These can be toggled for performance analysis, otherwise use default. 68*4882a593Smuzhiyun */ 69*4882a593Smuzhiyun #define CONFIG_L2_CACHE 70*4882a593Smuzhiyun #define CONFIG_BTB 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */ 73*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END 0x1fffffff 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun #define CONFIG_SYS_CCSRBAR 0xffe00000 76*4882a593Smuzhiyun #define CONFIG_SYS_CCSRBAR_PHYS_LOW CONFIG_SYS_CCSRBAR 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun /* DDR Setup */ 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE_LAW LAW_SIZE_512M 81*4882a593Smuzhiyun #define CONFIG_CHIP_SELECTS_PER_CTRL 1 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE (1u << (CONFIG_SYS_SDRAM_SIZE_LAW - 19)) 84*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SDRAM_BASE 0x00000000 85*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #define CONFIG_DIMM_SLOTS_PER_CTLR 1 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun /* Default settings for DDR3 */ 90*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_BNDS 0x0000001f 91*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG 0x80014202 92*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG_2 0x00000000 93*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS1_BNDS 0x00000000 94*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS1_CONFIG 0x00000000 95*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS1_CONFIG_2 0x00000000 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define CONFIG_SYS_DDR_DATA_INIT 0xdeadbeef 98*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INIT_ADDR 0x00000000 99*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INIT_EXT_ADDR 0x00000000 100*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_CONTROL 0x00000000 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun #define CONFIG_SYS_DDR_ZQ_CONTROL 0x89080600 103*4882a593Smuzhiyun #define CONFIG_SYS_DDR_WRLVL_CONTROL 0x8655a608 104*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SR_CNTR 0x00000000 105*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RCW_1 0x00000000 106*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RCW_2 0x00000000 107*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CONTROL 0xc70c0000 /* Type = DDR3 */ 108*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CONTROL_2 0x04401050 109*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_4 0x00220001 110*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_5 0x03402400 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_3 0x00020000 113*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_0 0x00220004 114*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_1 0x5c5b6544 115*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_2 0x0fa880de 116*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CLK_CTRL 0x03000000 117*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_1 0x80461320 118*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_2 0x00008000 119*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INTERVAL 0x09480000 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun /* 122*4882a593Smuzhiyun * Memory map 123*4882a593Smuzhiyun * 124*4882a593Smuzhiyun * 0x0000_0000 0x1fff_ffff DDR Up to 512MB cacheable 125*4882a593Smuzhiyun * 0x8000_0000 0xdfff_ffff PCI Express Mem 1.5G non-cacheable(PCIe * 3) 126*4882a593Smuzhiyun * 0xffc0_0000 0xffc3_ffff PCI IO range 256k non-cacheable 127*4882a593Smuzhiyun * 128*4882a593Smuzhiyun * Localbus 129*4882a593Smuzhiyun * 0xe000_0000 0xe002_0000 SSD1289 128K non-cacheable 130*4882a593Smuzhiyun * 0xec00_0000 0xefff_ffff FLASH Up to 64M non-cacheable 131*4882a593Smuzhiyun * 132*4882a593Smuzhiyun * 0xff90_0000 0xff97_ffff L2 SRAM Up to 512K cacheable 133*4882a593Smuzhiyun * 0xffd0_0000 0xffd0_3fff init ram 16K Cacheable 134*4882a593Smuzhiyun * 0xffe0_0000 0xffef_ffff CCSR 1M non-cacheable 135*4882a593Smuzhiyun */ 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun /* 138*4882a593Smuzhiyun * Local Bus Definitions 139*4882a593Smuzhiyun */ 140*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT 512 /* 64M */ 141*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE 0xec000000 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE_PHYS CONFIG_SYS_FLASH_BASE 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun #define CONFIG_FLASH_BR_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_FLASH_BASE_PHYS)) \ 146*4882a593Smuzhiyun | BR_PS_16 | BR_V) 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun #define CONFIG_FLASH_OR_PRELIM 0xfc0000b1 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun #define CONFIG_SYS_SSD_BASE 0xe0000000 151*4882a593Smuzhiyun #define CONFIG_SYS_SSD_BASE_PHYS CONFIG_SYS_SSD_BASE 152*4882a593Smuzhiyun #define CONFIG_SSD_BR_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_SSD_BASE_PHYS) | \ 153*4882a593Smuzhiyun BR_PS_16 | BR_V) 154*4882a593Smuzhiyun #define CONFIG_SSD_OR_PRELIM (OR_AM_64KB | OR_GPCM_CSNT | OR_GPCM_XACS | \ 155*4882a593Smuzhiyun OR_GPCM_ACS_DIV2 | OR_GPCM_SCY | \ 156*4882a593Smuzhiyun OR_GPCM_TRLX | OR_GPCM_EHTR | OR_GPCM_EAD) 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun #define CONFIG_SYS_BR2_PRELIM CONFIG_SSD_BR_PRELIM 159*4882a593Smuzhiyun #define CONFIG_SYS_OR2_PRELIM CONFIG_SSD_OR_PRELIM 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE_PHYS} 162*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_QUIET_TEST 163*4882a593Smuzhiyun #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_BANKS 1 /* number of banks */ 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun #undef CONFIG_SYS_FLASH_CHECKSUM 168*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */ 169*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */ 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_DRIVER 172*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI 173*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_EMPTY_INFO 174*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun #define CONFIG_BOARD_EARLY_INIT_R /* call board_early_init_r function */ 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_LOCK 179*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR 0xffd00000 180*4882a593Smuzhiyun /* Initial L1 address */ 181*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS CONFIG_SYS_INIT_RAM_ADDR 182*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH 0 183*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW CONFIG_SYS_INIT_RAM_ADDR_PHYS 184*4882a593Smuzhiyun /* Size of used area in RAM */ 185*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE 0x00004000 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun #define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ 188*4882a593Smuzhiyun GENERATED_GBL_DATA_SIZE) 189*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_LEN (768 * 1024) 192*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN (1024 * 1024)/* Reserved for malloc */ 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun #define CONFIG_SYS_BR0_PRELIM CONFIG_FLASH_BR_PRELIM /* NOR Base Address */ 195*4882a593Smuzhiyun #define CONFIG_SYS_OR0_PRELIM CONFIG_FLASH_OR_PRELIM /* NOR Options */ 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun /* Serial Port 198*4882a593Smuzhiyun * open - index 2 199*4882a593Smuzhiyun * shorted - index 1 200*4882a593Smuzhiyun */ 201*4882a593Smuzhiyun #define CONFIG_CONS_INDEX 1 202*4882a593Smuzhiyun #undef CONFIG_SERIAL_SOFTWARE_FIFO 203*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_SERIAL 204*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_REG_SIZE 1 205*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_CLK get_bus_freq(0) 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun #define CONFIG_SYS_BAUDRATE_TABLE \ 208*4882a593Smuzhiyun {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200} 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_CCSRBAR+0x4500) 211*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_CCSRBAR+0x4600) 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun /* I2C */ 214*4882a593Smuzhiyun #define CONFIG_SYS_I2C 215*4882a593Smuzhiyun #define CONFIG_SYS_I2C_FSL /* Use FSL common I2C driver */ 216*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_SPEED 400000 /* I2C spd and slave address */ 217*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_SLAVE 0x7F 218*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_OFFSET 0x3000 219*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR 0x52 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun /* 222*4882a593Smuzhiyun * I2C2 EEPROM 223*4882a593Smuzhiyun */ 224*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_SPEED 400000 /* I2C spd and slave address */ 225*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_SLAVE 0x7F 226*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_OFFSET 0x3100 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun #define CONFIG_SYS_I2C_PCA9555_ADDR 0x23 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun /* enable read and write access to EEPROM */ 231*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 232*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 233*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun /* 236*4882a593Smuzhiyun * eSPI - Enhanced SPI 237*4882a593Smuzhiyun */ 238*4882a593Smuzhiyun #define CONFIG_HARD_SPI 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun #if defined(CONFIG_PCI) 241*4882a593Smuzhiyun /* 242*4882a593Smuzhiyun * General PCI 243*4882a593Smuzhiyun * Memory space is mapped 1-1, but I/O space must start from 0. 244*4882a593Smuzhiyun */ 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun /* controller 2, direct to uli, tgtid 2, Base address 9000 */ 247*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_NAME "TWR-ELEV PCIe SLOT" 248*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_VIRT 0xa0000000 249*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_BUS 0xa0000000 250*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_PHYS 0xa0000000 251*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_SIZE 0x20000000 /* 512M */ 252*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_VIRT 0xffc10000 253*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_BUS 0x00000000 254*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_PHYS 0xffc10000 255*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_SIZE 0x00010000 /* 64k */ 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun /* controller 1, tgtid 1, Base address a000 */ 258*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_NAME "mini PCIe SLOT" 259*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_VIRT 0x80000000 260*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_BUS 0x80000000 261*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_PHYS 0x80000000 262*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_SIZE 0x20000000 /* 512M */ 263*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_VIRT 0xffc00000 264*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_BUS 0x00000000 265*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_PHYS 0xffc00000 266*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_SIZE 0x00010000 /* 64k */ 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun #define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */ 269*4882a593Smuzhiyun #endif /* CONFIG_PCI */ 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun #if defined(CONFIG_TSEC_ENET) 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun #define CONFIG_MII /* MII PHY management */ 274*4882a593Smuzhiyun #define CONFIG_TSEC1 275*4882a593Smuzhiyun #define CONFIG_TSEC1_NAME "eTSEC1" 276*4882a593Smuzhiyun #undef CONFIG_TSEC2 277*4882a593Smuzhiyun #undef CONFIG_TSEC2_NAME 278*4882a593Smuzhiyun #define CONFIG_TSEC3 279*4882a593Smuzhiyun #define CONFIG_TSEC3_NAME "eTSEC3" 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun #define TSEC1_PHY_ADDR 2 282*4882a593Smuzhiyun #define TSEC2_PHY_ADDR 0 283*4882a593Smuzhiyun #define TSEC3_PHY_ADDR 1 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun #define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) 286*4882a593Smuzhiyun #define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) 287*4882a593Smuzhiyun #define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun #define TSEC1_PHYIDX 0 290*4882a593Smuzhiyun #define TSEC2_PHYIDX 0 291*4882a593Smuzhiyun #define TSEC3_PHYIDX 0 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun #define CONFIG_ETHPRIME "eTSEC1" 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun #define CONFIG_HAS_ETH0 296*4882a593Smuzhiyun #define CONFIG_HAS_ETH1 297*4882a593Smuzhiyun #undef CONFIG_HAS_ETH2 298*4882a593Smuzhiyun #endif /* CONFIG_TSEC_ENET */ 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun #ifdef CONFIG_QE 301*4882a593Smuzhiyun /* QE microcode/firmware address */ 302*4882a593Smuzhiyun #define CONFIG_SYS_QE_FMAN_FW_IN_NOR 303*4882a593Smuzhiyun #define CONFIG_SYS_QE_FW_ADDR 0xefec0000 304*4882a593Smuzhiyun #define CONFIG_SYS_QE_FMAN_FW_LENGTH 0x10000 305*4882a593Smuzhiyun #endif /* CONFIG_QE */ 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun #ifdef CONFIG_TWR_P1025 308*4882a593Smuzhiyun /* 309*4882a593Smuzhiyun * QE UEC ethernet configuration 310*4882a593Smuzhiyun */ 311*4882a593Smuzhiyun #define CONFIG_MIIM_ADDRESS (CONFIG_SYS_CCSRBAR + 0x82120) 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun #undef CONFIG_UEC_ETH 314*4882a593Smuzhiyun #define CONFIG_PHY_MODE_NEED_CHANGE 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun #define CONFIG_UEC_ETH1 /* ETH1 */ 317*4882a593Smuzhiyun #define CONFIG_HAS_ETH0 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun #ifdef CONFIG_UEC_ETH1 320*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_UCC_NUM 0 /* UCC1 */ 321*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_RX_CLK QE_CLK12 /* CLK12 for MII */ 322*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_TX_CLK QE_CLK9 /* CLK9 for MII */ 323*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_ETH_TYPE FAST_ETH 324*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_PHY_ADDR 0x18 /* 0x18 for MII */ 325*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_INTERFACE_TYPE PHY_INTERFACE_MODE_MII 326*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_INTERFACE_SPEED 100 327*4882a593Smuzhiyun #endif /* CONFIG_UEC_ETH1 */ 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun #define CONFIG_UEC_ETH5 /* ETH5 */ 330*4882a593Smuzhiyun #define CONFIG_HAS_ETH1 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun #ifdef CONFIG_UEC_ETH5 333*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_UCC_NUM 4 /* UCC5 */ 334*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_RX_CLK QE_CLK_NONE 335*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_TX_CLK QE_CLK13 /* CLK 13 for RMII */ 336*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_ETH_TYPE FAST_ETH 337*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_PHY_ADDR 0x19 /* 0x19 for RMII */ 338*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_INTERFACE_TYPE PHY_INTERFACE_MODE_RMII 339*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_INTERFACE_SPEED 100 340*4882a593Smuzhiyun #endif /* CONFIG_UEC_ETH5 */ 341*4882a593Smuzhiyun #endif /* CONFIG_TWR-P1025 */ 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun /* 344*4882a593Smuzhiyun * Dynamic MTD Partition support with mtdparts 345*4882a593Smuzhiyun */ 346*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_MTD 347*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nor0=ec000000.nor" 348*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=ec000000.nor:256k(vsc7385-firmware)," \ 349*4882a593Smuzhiyun "256k(dtb),5632k(kernel),57856k(fs)," \ 350*4882a593Smuzhiyun "256k(qe-ucode-firmware),1280k(u-boot)" 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun /* 353*4882a593Smuzhiyun * Environment 354*4882a593Smuzhiyun */ 355*4882a593Smuzhiyun #ifdef CONFIG_SYS_RAMBOOT 356*4882a593Smuzhiyun #ifdef CONFIG_RAMBOOT_SDCARD 357*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 358*4882a593Smuzhiyun #define CONFIG_SYS_MMC_ENV_DEV 0 359*4882a593Smuzhiyun #else 360*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - 0x1000) 361*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 362*4882a593Smuzhiyun #endif 363*4882a593Smuzhiyun #else 364*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) 365*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 366*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K (one sector) */ 367*4882a593Smuzhiyun #endif 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun #define CONFIG_LOADS_ECHO /* echo on for serial download */ 370*4882a593Smuzhiyun #define CONFIG_SYS_LOADS_BAUD_CHANGE /* allow baudrate change */ 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun /* 373*4882a593Smuzhiyun * USB 374*4882a593Smuzhiyun */ 375*4882a593Smuzhiyun #define CONFIG_HAS_FSL_DR_USB 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun #if defined(CONFIG_HAS_FSL_DR_USB) 378*4882a593Smuzhiyun #ifdef CONFIG_USB_EHCI_HCD 379*4882a593Smuzhiyun #define CONFIG_EHCI_HCD_INIT_AFTER_RESET 380*4882a593Smuzhiyun #define CONFIG_USB_EHCI_FSL 381*4882a593Smuzhiyun #endif 382*4882a593Smuzhiyun #endif 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun #ifdef CONFIG_MMC 385*4882a593Smuzhiyun #define CONFIG_FSL_ESDHC 386*4882a593Smuzhiyun #define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR 387*4882a593Smuzhiyun #endif 388*4882a593Smuzhiyun 389*4882a593Smuzhiyun #undef CONFIG_WATCHDOG /* watchdog disabled */ 390*4882a593Smuzhiyun 391*4882a593Smuzhiyun /* 392*4882a593Smuzhiyun * Miscellaneous configurable options 393*4882a593Smuzhiyun */ 394*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP /* undef to save memory */ 395*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING /* Command-line editing */ 396*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR 0x2000000 /* default load address */ 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun /* 399*4882a593Smuzhiyun * For booting Linux, the board info and command line data 400*4882a593Smuzhiyun * have to be in the first 64 MB of memory, since this is 401*4882a593Smuzhiyun * the maximum mapped by the Linux kernel during initialization. 402*4882a593Smuzhiyun */ 403*4882a593Smuzhiyun #define CONFIG_SYS_BOOTMAPSZ (64 << 20) /* Initial Memory for Linux*/ 404*4882a593Smuzhiyun #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun /* 407*4882a593Smuzhiyun * Environment Configuration 408*4882a593Smuzhiyun */ 409*4882a593Smuzhiyun #define CONFIG_HOSTNAME unknown 410*4882a593Smuzhiyun #define CONFIG_ROOTPATH "/opt/nfsroot" 411*4882a593Smuzhiyun #define CONFIG_BOOTFILE "uImage" 412*4882a593Smuzhiyun #define CONFIG_UBOOTPATH u-boot.bin /* U-Boot image on TFTP server */ 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun /* default location for tftp and bootm */ 415*4882a593Smuzhiyun #define CONFIG_LOADADDR 1000000 416*4882a593Smuzhiyun 417*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS \ 418*4882a593Smuzhiyun "netdev=eth0\0" \ 419*4882a593Smuzhiyun "uboot=" __stringify(CONFIG_UBOOTPATH) "\0" \ 420*4882a593Smuzhiyun "loadaddr=1000000\0" \ 421*4882a593Smuzhiyun "bootfile=uImage\0" \ 422*4882a593Smuzhiyun "dtbfile=twr-p1025twr.dtb\0" \ 423*4882a593Smuzhiyun "ramdiskfile=rootfs.ext2.gz.uboot\0" \ 424*4882a593Smuzhiyun "qefirmwarefile=fsl_qe_ucode_1021_10_A.bin\0" \ 425*4882a593Smuzhiyun "tftpflash=tftpboot $loadaddr $uboot; " \ 426*4882a593Smuzhiyun "protect off " __stringify(CONFIG_SYS_TEXT_BASE) " +$filesize; " \ 427*4882a593Smuzhiyun "erase " __stringify(CONFIG_SYS_TEXT_BASE) " +$filesize; " \ 428*4882a593Smuzhiyun "cp.b $loadaddr " __stringify(CONFIG_SYS_TEXT_BASE) " $filesize; " \ 429*4882a593Smuzhiyun "protect on " __stringify(CONFIG_SYS_TEXT_BASE) " +$filesize; " \ 430*4882a593Smuzhiyun "cmp.b $loadaddr " __stringify(CONFIG_SYS_TEXT_BASE) " $filesize\0" \ 431*4882a593Smuzhiyun "kernelflash=tftpboot $loadaddr $bootfile; " \ 432*4882a593Smuzhiyun "protect off 0xefa80000 +$filesize; " \ 433*4882a593Smuzhiyun "erase 0xefa80000 +$filesize; " \ 434*4882a593Smuzhiyun "cp.b $loadaddr 0xefa80000 $filesize; " \ 435*4882a593Smuzhiyun "protect on 0xefa80000 +$filesize; " \ 436*4882a593Smuzhiyun "cmp.b $loadaddr 0xefa80000 $filesize\0" \ 437*4882a593Smuzhiyun "dtbflash=tftpboot $loadaddr $dtbfile; " \ 438*4882a593Smuzhiyun "protect off 0xefe80000 +$filesize; " \ 439*4882a593Smuzhiyun "erase 0xefe80000 +$filesize; " \ 440*4882a593Smuzhiyun "cp.b $loadaddr 0xefe80000 $filesize; " \ 441*4882a593Smuzhiyun "protect on 0xefe80000 +$filesize; " \ 442*4882a593Smuzhiyun "cmp.b $loadaddr 0xefe80000 $filesize\0" \ 443*4882a593Smuzhiyun "ramdiskflash=tftpboot $loadaddr $ramdiskfile; " \ 444*4882a593Smuzhiyun "protect off 0xeeb80000 +$filesize; " \ 445*4882a593Smuzhiyun "erase 0xeeb80000 +$filesize; " \ 446*4882a593Smuzhiyun "cp.b $loadaddr 0xeeb80000 $filesize; " \ 447*4882a593Smuzhiyun "protect on 0xeeb80000 +$filesize; " \ 448*4882a593Smuzhiyun "cmp.b $loadaddr 0xeeb80000 $filesize\0" \ 449*4882a593Smuzhiyun "qefirmwareflash=tftpboot $loadaddr $qefirmwarefile; " \ 450*4882a593Smuzhiyun "protect off 0xefec0000 +$filesize; " \ 451*4882a593Smuzhiyun "erase 0xefec0000 +$filesize; " \ 452*4882a593Smuzhiyun "cp.b $loadaddr 0xefec0000 $filesize; " \ 453*4882a593Smuzhiyun "protect on 0xefec0000 +$filesize; " \ 454*4882a593Smuzhiyun "cmp.b $loadaddr 0xefec0000 $filesize\0" \ 455*4882a593Smuzhiyun "consoledev=ttyS0\0" \ 456*4882a593Smuzhiyun "ramdiskaddr=2000000\0" \ 457*4882a593Smuzhiyun "ramdiskfile=rootfs.ext2.gz.uboot\0" \ 458*4882a593Smuzhiyun "fdtaddr=1e00000\0" \ 459*4882a593Smuzhiyun "bdev=sda1\0" \ 460*4882a593Smuzhiyun "norbootaddr=ef080000\0" \ 461*4882a593Smuzhiyun "norfdtaddr=ef040000\0" \ 462*4882a593Smuzhiyun "ramdisk_size=120000\0" \ 463*4882a593Smuzhiyun "usbboot=setenv bootargs root=/dev/sda1 rw rootdelay=5 " \ 464*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs ; bootm 0xefa80000 - 0xefe80000" 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun #define CONFIG_NFSBOOTCOMMAND \ 467*4882a593Smuzhiyun "setenv bootargs root=/dev/nfs rw " \ 468*4882a593Smuzhiyun "nfsroot=$serverip:$rootpath " \ 469*4882a593Smuzhiyun "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ 470*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs;" \ 471*4882a593Smuzhiyun "tftp $loadaddr $bootfile&&" \ 472*4882a593Smuzhiyun "tftp $fdtaddr $fdtfile&&" \ 473*4882a593Smuzhiyun "bootm $loadaddr - $fdtaddr" 474*4882a593Smuzhiyun 475*4882a593Smuzhiyun #define CONFIG_HDBOOT \ 476*4882a593Smuzhiyun "setenv bootargs root=/dev/$bdev rw rootdelay=30 " \ 477*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs;" \ 478*4882a593Smuzhiyun "usb start;" \ 479*4882a593Smuzhiyun "ext2load usb 0:1 $loadaddr /boot/$bootfile;" \ 480*4882a593Smuzhiyun "ext2load usb 0:1 $fdtaddr /boot/$fdtfile;" \ 481*4882a593Smuzhiyun "bootm $loadaddr - $fdtaddr" 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun #define CONFIG_USB_FAT_BOOT \ 484*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw " \ 485*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \ 486*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;" \ 487*4882a593Smuzhiyun "usb start;" \ 488*4882a593Smuzhiyun "fatload usb 0:2 $loadaddr $bootfile;" \ 489*4882a593Smuzhiyun "fatload usb 0:2 $fdtaddr $fdtfile;" \ 490*4882a593Smuzhiyun "fatload usb 0:2 $ramdiskaddr $ramdiskfile;" \ 491*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr" 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun #define CONFIG_USB_EXT2_BOOT \ 494*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw " \ 495*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \ 496*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;" \ 497*4882a593Smuzhiyun "usb start;" \ 498*4882a593Smuzhiyun "ext2load usb 0:4 $loadaddr $bootfile;" \ 499*4882a593Smuzhiyun "ext2load usb 0:4 $fdtaddr $fdtfile;" \ 500*4882a593Smuzhiyun "ext2load usb 0:4 $ramdiskaddr $ramdiskfile;" \ 501*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr" 502*4882a593Smuzhiyun 503*4882a593Smuzhiyun #define CONFIG_NORBOOT \ 504*4882a593Smuzhiyun "setenv bootargs root=/dev/mtdblock3 rw " \ 505*4882a593Smuzhiyun "console=$consoledev,$baudrate rootfstype=jffs2 $othbootargs;" \ 506*4882a593Smuzhiyun "bootm $norbootaddr - $norfdtaddr" 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun #define CONFIG_RAMBOOTCOMMAND_TFTP \ 509*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw " \ 510*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \ 511*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;" \ 512*4882a593Smuzhiyun "tftp $ramdiskaddr $ramdiskfile;" \ 513*4882a593Smuzhiyun "tftp $loadaddr $bootfile;" \ 514*4882a593Smuzhiyun "tftp $fdtaddr $fdtfile;" \ 515*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr" 516*4882a593Smuzhiyun 517*4882a593Smuzhiyun #define CONFIG_RAMBOOTCOMMAND \ 518*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw " \ 519*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \ 520*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;" \ 521*4882a593Smuzhiyun "bootm 0xefa80000 0xeeb80000 0xefe80000" 522*4882a593Smuzhiyun 523*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND CONFIG_RAMBOOTCOMMAND 524*4882a593Smuzhiyun 525*4882a593Smuzhiyun #endif /* __CONFIG_H */ 526