uboot/include/configs/korat.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2007-2009
   3 * Larry Johnson, lrj@acm.org
   4 *
   5 * (C) Copyright 2006-2007
   6 * Stefan Roese, DENX Software Engineering, sr@denx.de.
   7 *
   8 * (C) Copyright 2006
   9 * Jacqueline Pira-Ferriol, AMCC/IBM, jpira-ferriol@fr.ibm.com
  10 * Alain Saurel,            AMCC/IBM, alain.saurel@fr.ibm.com
  11 *
  12 * This program is free software; you can redistribute it and/or
  13 * modify it under the terms of the GNU General Public License as
  14 * published by the Free Software Foundation; either version 2 of
  15 * the License, or (at your option) any later version.
  16 *
  17 * This program is distributed in the hope that it will be useful,
  18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20 * GNU General Public License for more details.
  21 *
  22 * You should have received a copy of the GNU General Public License
  23 * along with this program; if not, write to the Free Software
  24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  25 * MA 02111-1307 USA
  26 */
  27
  28/*
  29 * korat.h - configuration for Korat board
  30 */
  31#ifndef __CONFIG_H
  32#define __CONFIG_H
  33
  34/*
  35 * High Level Configuration Options
  36 */
  37#define CONFIG_440EPX           1       /* Specific PPC440EPx           */
  38#define CONFIG_4xx              1       /* ... PPC4xx family            */
  39#define CONFIG_SYS_CLK_FREQ     33333333
  40
  41#ifdef CONFIG_KORAT_PERMANENT
  42#define CONFIG_SYS_TEXT_BASE    0xFFFA0000
  43#else
  44#define CONFIG_SYS_TEXT_BASE    0xF7F60000
  45#endif
  46
  47#define CONFIG_BOARD_EARLY_INIT_F 1     /* Call board_early_init_f      */
  48#define CONFIG_MISC_INIT_R      1       /* Call misc_init_r             */
  49
  50/*
  51 * Manufacturer's information serial EEPROM parameters
  52 */
  53#define MAN_DATA_EEPROM_ADDR    0x53    /* EEPROM I2C address           */
  54#define MAN_INFO_FIELD          2
  55#define MAN_INFO_LENGTH         9
  56#define MAN_MAC_ADDR_FIELD      3
  57#define MAN_MAC_ADDR_LENGTH     12
  58
  59/*
  60 * Base addresses -- Note these are effective addresses where the actual
  61 * resources get mapped (not physical addresses).
  62 */
  63#define CONFIG_SYS_MONITOR_LEN          (384 * 1024) /* Reserve 384 kiB for Monitor  */
  64#define CONFIG_SYS_MALLOC_LEN           (256 * 1024) /* Reserve 256 kiB for malloc() */
  65
  66#define CONFIG_SYS_SDRAM_BASE           0x00000000      /* _must_ be 0          */
  67#define CONFIG_SYS_FLASH0_SIZE          0x01000000
  68#define CONFIG_SYS_FLASH0_ADDR          (-CONFIG_SYS_FLASH0_SIZE)
  69#define CONFIG_SYS_FLASH1_TOP           0xF8000000
  70#define CONFIG_SYS_FLASH1_MAX_SIZE      0x08000000
  71#define CONFIG_SYS_FLASH1_ADDR          (CONFIG_SYS_FLASH1_TOP - CONFIG_SYS_FLASH1_MAX_SIZE)
  72#define CONFIG_SYS_FLASH_BASE           CONFIG_SYS_FLASH1_ADDR  /* start of FLASH       */
  73#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
  74#define CONFIG_SYS_OCM_BASE             0xe0010000      /* ocm                  */
  75#define CONFIG_SYS_OCM_DATA_ADDR        CONFIG_SYS_OCM_BASE
  76#define CONFIG_SYS_PCI_BASE             0xe0000000      /* Internal PCI regs    */
  77#define CONFIG_SYS_PCI_MEMBASE          0x80000000      /* mapped pci memory    */
  78#define CONFIG_SYS_PCI_MEMBASE2         (CONFIG_SYS_PCI_MEMBASE + 0x20000000)
  79
  80#define CONFIG_SYS_USB2D0_BASE          0xe0000100
  81#define CONFIG_SYS_USB_DEVICE           0xe0000000
  82#define CONFIG_SYS_USB_HOST             0xe0000400
  83#define CONFIG_SYS_CPLD_BASE            0xc0000000
  84
  85/*
  86 * Initial RAM & stack pointer
  87 */
  88/* 440EPx has 16KB of internal SRAM, so no need for D-Cache             */
  89#undef CONFIG_SYS_INIT_RAM_DCACHE
  90#define CONFIG_SYS_INIT_RAM_ADDR        CONFIG_SYS_OCM_BASE     /* OCM                  */
  91#define CONFIG_SYS_INIT_RAM_SIZE        (4 << 10)
  92#define CONFIG_SYS_GBL_DATA_OFFSET      (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
  93#define CONFIG_SYS_INIT_SP_OFFSET       (CONFIG_SYS_GBL_DATA_OFFSET - 0x4)
  94
  95/*
  96 * Serial Port
  97 */
  98#define CONFIG_CONS_INDEX       1       /* Use UART0                    */
  99#define CONFIG_SYS_NS16550
 100#define CONFIG_SYS_NS16550_SERIAL
 101#define CONFIG_SYS_NS16550_REG_SIZE     1
 102#define CONFIG_SYS_NS16550_CLK          get_serial_clock()
 103#define CONFIG_SYS_EXT_SERIAL_CLOCK     11059200        /* ext. 11.059MHz clk   */
 104#define CONFIG_BAUDRATE         115200
 105#define CONFIG_SERIAL_MULTI     1
 106
 107#define CONFIG_SYS_BAUDRATE_TABLE                                               \
 108        {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200}
 109
 110/*
 111 * Environment
 112 */
 113#define CONFIG_ENV_IS_IN_FLASH  1       /* use FLASH for environ vars   */
 114
 115/*
 116 * FLASH related
 117 */
 118#define CONFIG_SYS_FLASH_CFI                    /* The flash is CFI compatible        */
 119#define CONFIG_FLASH_CFI_DRIVER         /* Use common CFI driver              */
 120#define CONFIG_FLASH_CFI_LEGACY         /* Allow hard-coded config for FLASH0 */
 121
 122#define CONFIG_SYS_FLASH_BANKS_LIST     { CONFIG_SYS_FLASH1_ADDR, CONFIG_SYS_FLASH0_ADDR }
 123
 124#define CONFIG_SYS_MAX_FLASH_BANKS      2       /* max number of memory banks         */
 125#define CONFIG_SYS_MAX_FLASH_SECT       1024    /* max number of sectors on one chip  */
 126
 127#define CONFIG_SYS_FLASH_ERASE_TOUT     120000  /* Timeout for Flash Erase (in ms)    */
 128#define CONFIG_SYS_FLASH_WRITE_TOUT     500     /* Timeout for Flash Write (in ms)    */
 129
 130#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1     /* use buffered writes (20x faster)   */
 131#define CONFIG_SYS_FLASH_PROTECTION     1       /* use hardware flash protection      */
 132
 133#define CONFIG_SYS_FLASH_EMPTY_INFO           /* print 'E' for empty sector on flinfo */
 134#define CONFIG_SYS_FLASH_QUIET_TEST     1       /* don't warn upon unknown flash      */
 135
 136#define CONFIG_ENV_SECT_SIZE    0x20000 /* size of one complete sector        */
 137#define CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH1_TOP - CONFIG_ENV_SECT_SIZE)
 138#define CONFIG_ENV_SIZE         0x2000  /* Total Size of Environment Sector   */
 139
 140/* Address and size of Redundant Environment Sector */
 141#define CONFIG_ENV_ADDR_REDUND  (CONFIG_ENV_ADDR - CONFIG_ENV_SECT_SIZE)
 142#define CONFIG_ENV_SIZE_REDUND  CONFIG_ENV_SIZE
 143
 144/*
 145 * DDR SDRAM
 146 */
 147#define CONFIG_DDR_DATA_EYE             /* use DDR2 optimization        */
 148#define CONFIG_SPD_EEPROM               /* Use SPD EEPROM for setup     */
 149#define CONFIG_ZERO_SDRAM               /* Zero SDRAM after setup       */
 150#define CONFIG_DDR_ECC                  /* Use ECC when available       */
 151#define SPD_EEPROM_ADDRESS      {0x50}
 152#define CONFIG_PROG_SDRAM_TLB
 153#define CONFIG_SYS_MEM_TOP_HIDE (4 << 10) /* don't use last 4 KiB as    */
 154                                        /* per 440EPx Errata CHIP_11    */
 155
 156/*
 157 * I2C
 158 */
 159#define CONFIG_HARD_I2C         1       /* I2C with hardware support    */
 160#undef  CONFIG_SOFT_I2C                 /* I2C bit-banged               */
 161#define CONFIG_PPC4XX_I2C               /* use PPC4xx driver            */
 162#define CONFIG_SYS_I2C_SPEED            400000  /* I2C speed and slave address  */
 163#define CONFIG_SYS_I2C_SLAVE            0x7F
 164
 165#define CONFIG_SYS_I2C_MULTI_EEPROMS
 166#define CONFIG_SYS_I2C_EEPROM_ADDR      (0xa8>>1)
 167#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
 168#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
 169#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
 170
 171/* I2C RTC */
 172#define CONFIG_RTC_M41T60       1
 173#define CONFIG_SYS_I2C_RTC_ADDR 0x68
 174
 175/* I2C SYSMON (LM73)                                                    */
 176#define CONFIG_DTT_LM73         1       /* National Semi's LM73         */
 177#define CONFIG_DTT_SENSORS      {2}     /* Sensor addresses             */
 178#define CONFIG_SYS_DTT_MAX_TEMP 70
 179#define CONFIG_SYS_DTT_MIN_TEMP -30
 180
 181#define CONFIG_PREBOOT  "echo;"                                         \
 182        "echo Type \\\"run flash_cf\\\" to mount from CompactFlash(R);" \
 183        "echo"
 184
 185#undef  CONFIG_BOOTARGS
 186
 187/* Setup some board specific values for the default environment variables */
 188#define CONFIG_HOSTNAME         korat
 189
 190/* Note: kernel_addr and ramdisk_addr assume that FLASH1 is 64 MiB. */
 191#define CONFIG_EXTRA_ENV_SETTINGS                                       \
 192        "u_boot=korat/u-boot.bin\0"                                     \
 193        "load=tftp 200000 ${u_boot}\0"                                  \
 194        "update=protect off F7F60000 F7FBFFFF;erase F7F60000 F7FBFFFF;" \
 195                "cp.b ${fileaddr} F7F60000 ${filesize};protect on "     \
 196                "F7F60000 F7FBFFFF\0"                                   \
 197        "upd=run load update\0"                                         \
 198        "bootfile=korat/uImage\0"                                       \
 199        "dtb=korat/korat.dtb\0"                                         \
 200        "kernel_addr=F4000000\0"                                        \
 201        "ramdisk_addr=F4400000\0"                                       \
 202        "dtb_addr=F41E0000\0"                                           \
 203        "udl=tftp 200000 ${bootfile}; erase F4000000 F41DFFFF; "        \
 204                "cp.b ${fileaddr} F4000000 ${filesize}\0"               \
 205        "udd=tftp 200000 ${dtb}; erase F41E0000 F41FFFFF; "             \
 206                "cp.b ${fileaddr} F41E0000 ${filesize}\0"               \
 207        "ll=setenv kernel_addr 200000; setenv dtb_addr 1000000; "       \
 208                "tftp ${kernel_addr} ${uImage}; tftp ${dtb_addr} "      \
 209                "${dtb}\0"                                              \
 210        "rd_size=73728\0"                                               \
 211        "ramargs=setenv bootargs root=/dev/ram rw "                     \
 212                "ramdisk_size=${rd_size}\0"                             \
 213        "usbdev=sda1\0"                                                 \
 214        "usbargs=setenv bootargs root=/dev/${usbdev} ro rootdelay=10\0" \
 215        "rootpath=/opt/eldk/ppc_4xxFP\0"                                \
 216        "netdev=eth0\0"                                                 \
 217        "nfsargs=setenv bootargs root=/dev/nfs rw "                     \
 218                "nfsroot=${serverip}:${rootpath}\0"                     \
 219        "pciclk=33\0"                                                   \
 220        "addide=setenv bootargs ${bootargs} ide=reverse "               \
 221                "idebus=${pciclk}\0"                                    \
 222        "addip=setenv bootargs ${bootargs} "                            \
 223                "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"      \
 224                ":${hostname}:${netdev}:off panic=1\0"                  \
 225        "addtty=setenv bootargs ${bootargs} console=ttyS0,${baudrate}\0"\
 226        "flash_cf=run usbargs addide addip addtty; "                    \
 227                "bootm ${kernel_addr} - ${dtb_addr}\0"                  \
 228        "flash_nfs=run nfsargs addide addip addtty; "                   \
 229                "bootm ${kernel_addr} - ${dtb_addr}\0"                  \
 230        "flash_self=run ramargs addip addtty; "                         \
 231                "bootm ${kernel_addr} ${ramdisk_addr} ${dtb_addr}\0"    \
 232        ""
 233
 234#define CONFIG_BOOTCOMMAND      "run flash_cf"
 235
 236#define CONFIG_BOOTDELAY        5       /* autoboot after 5 seconds     */
 237
 238#define CONFIG_LOADS_ECHO       1       /* echo on for serial download  */
 239#define CONFIG_SYS_LOADS_BAUD_CHANGE    1       /* allow baudrate change        */
 240
 241#define CONFIG_PPC4xx_EMAC
 242#define CONFIG_IBM_EMAC4_V4     1
 243#define CONFIG_MII              1       /* MII PHY management           */
 244#define CONFIG_PHY_ADDR         2       /* PHY address, See schematics  */
 245#define CONFIG_PHY_DYNAMIC_ANEG 1
 246
 247#undef CONFIG_PHY_RESET                 /* Don't do software PHY reset  */
 248#define CONFIG_PHY_GIGE         1       /* Include GbE speed/duplex detection */
 249
 250#define CONFIG_HAS_ETH0
 251#define CONFIG_SYS_RX_ETH_BUFFER        32      /* Number of ethernet rx        */
 252                                        /*   buffers & descriptors      */
 253#define CONFIG_HAS_ETH1         1       /* add support for "eth1addr"   */
 254#define CONFIG_PHY1_ADDR        3
 255
 256/* USB */
 257#define CONFIG_USB_OHCI
 258#define CONFIG_USB_STORAGE
 259
 260/* Comment this out to enable USB 1.1 device */
 261#define USB_2_0_DEVICE
 262
 263/* Partitions */
 264#define CONFIG_MAC_PARTITION
 265#define CONFIG_DOS_PARTITION
 266#define CONFIG_ISO_PARTITION
 267
 268/*
 269 * BOOTP options
 270 */
 271#define CONFIG_BOOTP_BOOTFILESIZE
 272#define CONFIG_BOOTP_BOOTPATH
 273#define CONFIG_BOOTP_GATEWAY
 274#define CONFIG_BOOTP_HOSTNAME
 275#define CONFIG_BOOTP_SUBNETMASK
 276
 277/*
 278 * Command line configuration.
 279 */
 280#include <config_cmd_default.h>
 281
 282#define CONFIG_CMD_ASKENV
 283#define CONFIG_CMD_DATE
 284#define CONFIG_CMD_DHCP
 285#define CONFIG_CMD_DTT
 286#define CONFIG_CMD_DIAG
 287#define CONFIG_CMD_EEPROM
 288#define CONFIG_CMD_ELF
 289#define CONFIG_CMD_FAT
 290#define CONFIG_CMD_I2C
 291#define CONFIG_CMD_IRQ
 292#define CONFIG_CMD_MII
 293#define CONFIG_CMD_NET
 294#define CONFIG_CMD_NFS
 295#define CONFIG_CMD_PCI
 296#define CONFIG_CMD_PING
 297#define CONFIG_CMD_REGINFO
 298#define CONFIG_CMD_SDRAM
 299#define CONFIG_CMD_USB
 300
 301/* POST support */
 302#define CONFIG_POST             (CONFIG_SYS_POST_CACHE  | \
 303                                 CONFIG_SYS_POST_CPU    | \
 304                                 CONFIG_SYS_POST_ECC    | \
 305                                 CONFIG_SYS_POST_ETHER  | \
 306                                 CONFIG_SYS_POST_FPU    | \
 307                                 CONFIG_SYS_POST_I2C    | \
 308                                 CONFIG_SYS_POST_MEMORY | \
 309                                 CONFIG_SYS_POST_RTC    | \
 310                                 CONFIG_SYS_POST_SPR    | \
 311                                 CONFIG_SYS_POST_UART)
 312
 313#define CONFIG_LOGBUFFER
 314#define CONFIG_SYS_POST_CACHE_ADDR      0xC8000000      /* free virtual address     */
 315
 316#define CONFIG_SYS_CONSOLE_IS_IN_ENV    /* Otherwise it catches logbuffer as output */
 317
 318#define CONFIG_SUPPORT_VFAT
 319
 320/*
 321 * Miscellaneous configurable options
 322 */
 323#define CONFIG_SYS_LONGHELP                     /* undef to save memory         */
 324#define CONFIG_SYS_PROMPT               "=> "   /* Monitor Command Prompt       */
 325#if defined(CONFIG_CMD_KGDB)
 326#define CONFIG_SYS_CBSIZE               1024    /* Console I/O Buffer Size      */
 327#else
 328#define CONFIG_SYS_CBSIZE               256     /* Console I/O Buffer Size      */
 329#endif
 330#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)
 331                                        /* Print Buffer Size            */
 332#define CONFIG_SYS_MAXARGS              16      /* max number of command args   */
 333#define CONFIG_SYS_BARGSIZE             CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size  */
 334
 335#define CONFIG_SYS_MEMTEST_START        0x0400000 /* memtest works on           */
 336#define CONFIG_SYS_MEMTEST_END          0x0C00000 /* 4 ... 12 MB in DRAM        */
 337
 338#define CONFIG_SYS_LOAD_ADDR            0x100000  /* default load address       */
 339#define CONFIG_SYS_EXTBDINFO            1  /* To use extended board_into (bd_t) */
 340
 341#define CONFIG_SYS_HZ                   1000    /* decrementer freq: 1 ms ticks */
 342
 343#define CONFIG_CMDLINE_EDITING  1       /* add command line history     */
 344#define CONFIG_LOOPW            1       /* enable loopw command         */
 345#define CONFIG_MX_CYCLIC        1       /* enable mdc/mwc commands      */
 346#define CONFIG_ZERO_BOOTDELAY_CHECK     /* check for keypress on bootdelay==0 */
 347#define CONFIG_VERSION_VARIABLE 1       /* include version env variable */
 348
 349/*
 350 * Korat-specific options
 351 */
 352#define CONFIG_SYS_KORAT_MAN_RESET_MS   10000   /* timeout for manufacturer reset */
 353
 354/*
 355 * PCI stuff
 356 */
 357/* General PCI */
 358#define CONFIG_PCI                      /* include pci support          */
 359#define CONFIG_PCI_PNP                  /* do pci plug-and-play         */
 360#define CONFIG_SYS_PCI_CACHE_LINE_SIZE  0       /* to avoid problems with PNP   */
 361#define CONFIG_PCI_SCAN_SHOW            /* show pci devices on startup  */
 362#define CONFIG_SYS_PCI_TARGBASE 0x80000000      /* PCIaddr mapped to    */
 363                                                /*   CONFIG_SYS_PCI_MEMBASE     */
 364/* Board-specific PCI */
 365#define CONFIG_SYS_PCI_TARGET_INIT
 366#define CONFIG_SYS_PCI_MASTER_INIT
 367#define CONFIG_SYS_PCI_BOARD_FIXUP_IRQ
 368
 369#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x10e8   /* AMCC                         */
 370#define CONFIG_SYS_PCI_SUBSYS_ID       0xcafe   /* Whatever                     */
 371
 372/*
 373 * For booting Linux, the board info and command line data have to be in the
 374 * first 8 MB of memory, since this is the maximum mapped by the Linux kernel
 375 * during initialization.
 376 */
 377#define CONFIG_SYS_BOOTMAPSZ            (8 << 20) /* Initial Memory map for Linux */
 378
 379/*
 380 * External Bus Controller (EBC) Setup
 381 */
 382
 383/* Memory Bank 0 (NOR-FLASH) initialization                             */
 384#if CONFIG_SYS_FLASH0_SIZE == 0x01000000
 385#define CONFIG_SYS_EBC_PB0AP            0x04017300
 386#define CONFIG_SYS_EBC_PB0CR            (CONFIG_SYS_FLASH0_ADDR | 0x0009A000)
 387#elif CONFIG_SYS_FLASH0_SIZE == 0x04000000
 388#define CONFIG_SYS_EBC_PB0AP            0x04017300
 389#define CONFIG_SYS_EBC_PB0CR            (CONFIG_SYS_FLASH0_ADDR | 0x000DA000)
 390#else
 391#error Unable to configure chip select for current CONFIG_SYS_FLASH0_SIZE
 392#endif
 393
 394/* Memory Bank 1 (NOR-FLASH) initialization                             */
 395#if CONFIG_SYS_FLASH1_MAX_SIZE == 0x08000000
 396#define CONFIG_SYS_EBC_PB1AP            0x04017300
 397#define CONFIG_SYS_EBC_PB1CR            (CONFIG_SYS_FLASH1_ADDR | 0x000FA000)
 398#else
 399#error Unable to configure chip select for current CONFIG_SYS_FLASH1_MAX_SIZE
 400#endif
 401
 402/* Memory Bank 2 (CPLD) initialization                                  */
 403#define CONFIG_SYS_EBC_PB2AP            0x04017300
 404#define CONFIG_SYS_EBC_PB2CR            (CONFIG_SYS_CPLD_BASE | 0x00038000)
 405
 406/*
 407 * GPIO Setup
 408 *
 409 * Korat GPIO usage:
 410 *
 411 *                   Init.
 412 * Pin    Source I/O value Function
 413 * ------ ------ --- ----- ---------------------------------
 414 * GPIO00  Alt1  I/O   x   PerAddr07
 415 * GPIO01  Alt1  I/O   x   PerAddr06
 416 * GPIO02  Alt1  I/O   x   PerAddr05
 417 * GPIO03  GPIO   x    x   GPIO03 to expansion bus connector
 418 * GPIO04  GPIO   x    x   GPIO04 to expansion bus connector
 419 * GPIO05  GPIO   x    x   GPIO05 to expansion bus connector
 420 * GPIO06  Alt1   O    x   PerCS1 (2nd NOR flash)
 421 * GPIO07  Alt1   O    x   PerCS2 (CPLD)
 422 * GPIO08  Alt1   O    x   PerCS3 to expansion bus connector
 423 * GPIO09  Alt1   O    x   PerCS4 to expansion bus connector
 424 * GPIO10  Alt1   O    x   PerCS5 to expansion bus connector
 425 * GPIO11  Alt1   I    x   PerErr
 426 * GPIO12  GPIO   O    0   ATMega !Reset
 427 * GPIO13  GPIO   x    x   Test Point 2 (TP2)
 428 * GPIO14  GPIO   O    1   Write protect EEPROM #1 (0xA8)
 429 * GPIO15  GPIO   O    0   CPU Run LED !On
 430 * GPIO16  Alt1   O    x   GMC1TxD0
 431 * GPIO17  Alt1   O    x   GMC1TxD1
 432 * GPIO18  Alt1   O    x   GMC1TxD2
 433 * GPIO19  Alt1   O    x   GMC1TxD3
 434 * GPIO20  Alt1   I    x   RejectPkt0
 435 * GPIO21  Alt1   I    x   RejectPkt1
 436 * GPIO22  GPIO   I    x   PGOOD_DDR
 437 * GPIO23  Alt1   O    x   SCPD0
 438 * GPIO24  Alt1   O    x   GMC0TxD2
 439 * GPIO25  Alt1   O    x   GMC0TxD3
 440 * GPIO26  GPIO? I/O   x   IIC0SDA (selected in SDR0_PFC4)
 441 * GPIO27  GPIO   O    0   PHY #0 1000BASE-X select
 442 * GPIO28  GPIO   O    0   PHY #1 1000BASE-X select
 443 * GPIO29  GPIO   I    x   Test jumper !Present
 444 * GPIO30  GPIO   I    x   SFP module #0 !Present
 445 * GPIO31  GPIO   I    x   SFP module #1 !Present
 446 *
 447 * GPIO32  GPIO   O    1   SFP module #0 Tx !Enable
 448 * GPIO33  GPIO   O    1   SFP module #1 Tx !Enable
 449 * GPIO34  Alt2   I    x   !UART1_CTS
 450 * GPIO35  Alt2   O    x   !UART1_RTS
 451 * GPIO36  Alt1   I    x   !UART0_CTS
 452 * GPIO37  Alt1   O    x   !UART0_RTS
 453 * GPIO38  Alt2   O    x   UART1_Tx
 454 * GPIO39  Alt2   I    x   UART1_Rx
 455 * GPIO40  Alt1   I    x   IRQ0 (Ethernet 0)
 456 * GPIO41  Alt1   I    x   IRQ1 (Ethernet 1)
 457 * GPIO42  Alt1   I    x   IRQ2 (PCI interrupt)
 458 * GPIO43  Alt1   I    x   IRQ3 (System Alert from CPLD)
 459 * GPIO44  xxxx   x    x   (grounded through pulldown)
 460 * GPIO45  GPIO   O    0   PHY #0 Enable
 461 * GPIO46  GPIO   O    0   PHY #1 Enable
 462 * GPIO47  GPIO   I    x   Reset switch !Pressed
 463 * GPIO48  GPIO   I    x   Shutdown switch !Pressed
 464 * GPIO49  xxxx   x    x   (reserved for trace port)
 465 *   .      .     .    .               .
 466 *   .      .     .    .               .
 467 *   .      .     .    .               .
 468 * GPIO63  xxxx   x    x   (reserved for trace port)
 469 */
 470
 471#define CONFIG_SYS_GPIO_ATMEGA_RESET_   12
 472#define CONFIG_SYS_GPIO_ATMEGA_SS_      13
 473#define CONFIG_SYS_GPIO_PHY0_FIBER_SEL  27
 474#define CONFIG_SYS_GPIO_PHY1_FIBER_SEL  28
 475#define CONFIG_SYS_GPIO_SFP0_PRESENT_   30
 476#define CONFIG_SYS_GPIO_SFP1_PRESENT_   31
 477#define CONFIG_SYS_GPIO_SFP0_TX_EN_     32
 478#define CONFIG_SYS_GPIO_SFP1_TX_EN_     33
 479#define CONFIG_SYS_GPIO_PHY0_EN 45
 480#define CONFIG_SYS_GPIO_PHY1_EN 46
 481#define CONFIG_SYS_GPIO_RESET_PRESSED_  47
 482
 483/*
 484 * PPC440 GPIO Configuration
 485 */
 486#define CONFIG_SYS_4xx_GPIO_TABLE { /*    Out             GPIO  Alternate1      Alternate2      Alternate3 */ \
 487{                                                                                       \
 488/* GPIO Core 0 */                                                                       \
 489{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO0 EBC_ADDR(7)     DMA_REQ(2)      */      \
 490{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO1 EBC_ADDR(6)     DMA_ACK(2)      */      \
 491{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO2 EBC_ADDR(5)     DMA_EOT/TC(2)   */      \
 492{GPIO0_BASE, GPIO_DIS, GPIO_SEL , GPIO_OUT_0}, /* GPIO3 EBC_ADDR(4)     DMA_REQ(3)      */      \
 493{GPIO0_BASE, GPIO_DIS, GPIO_SEL , GPIO_OUT_0}, /* GPIO4 EBC_ADDR(3)     DMA_ACK(3)      */      \
 494{GPIO0_BASE, GPIO_DIS, GPIO_SEL , GPIO_OUT_0}, /* GPIO5 EBC_ADDR(2)     DMA_EOT/TC(3)   */      \
 495{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO6 EBC_CS_N(1)                     */      \
 496{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO7 EBC_CS_N(2)                     */      \
 497{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO8 EBC_CS_N(3)                     */      \
 498{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO9 EBC_CS_N(4)                     */      \
 499{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO10 EBC_CS_N(5)                    */      \
 500{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO11 EBC_BUS_ERR                    */      \
 501{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO12                                */      \
 502{GPIO0_BASE, GPIO_DIS, GPIO_SEL , GPIO_OUT_0}, /* GPIO13                                */      \
 503{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO14                                */      \
 504{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO15                                */      \
 505{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO16 GMCTxD(4)                      */      \
 506{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO17 GMCTxD(5)                      */      \
 507{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO18 GMCTxD(6)                      */      \
 508{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO19 GMCTxD(7)                      */      \
 509{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO20 RejectPkt0                     */      \
 510{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO21 RejectPkt1                     */      \
 511{GPIO0_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO22                                */      \
 512{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO23 SCPD0                          */      \
 513{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO24 GMCTxD(2)                      */      \
 514{GPIO0_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO25 GMCTxD(3)                      */      \
 515{GPIO0_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO26                                */      \
 516{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO27 EXT_EBC_REQ    USB2D_RXERROR   */      \
 517{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO28                USB2D_TXVALID   */      \
 518{GPIO0_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO29 EBC_EXT_HDLA   USB2D_PAD_SUSPNDM */    \
 519{GPIO0_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO30 EBC_EXT_ACK    USB2D_XCVRSELECT*/      \
 520{GPIO0_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO31 EBC_EXR_BUSREQ USB2D_TERMSELECT*/      \
 521},                                                                                      \
 522{                                                                                       \
 523/* GPIO Core 1 */                                                                       \
 524{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO32 USB2D_OPMODE0  EBC_DATA(2)     */      \
 525{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO33 USB2D_OPMODE1  EBC_DATA(3)     */      \
 526{GPIO1_BASE, GPIO_IN , GPIO_ALT2, GPIO_OUT_0}, /* GPIO34 UART0_DCD_N    UART1_DSR_CTS_N UART2_SOUT*/ \
 527{GPIO1_BASE, GPIO_OUT, GPIO_ALT2, GPIO_OUT_1}, /* GPIO35 UART0_8PIN_DSR_N UART1_RTS_DTR_N UART2_SIN*/ \
 528{GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO36 UART0_8PIN_CTS_N EBC_DATA(0)   UART3_SIN*/ \
 529{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1}, /* GPIO37 UART0_RTS_N    EBC_DATA(1)     UART3_SOUT*/ \
 530{GPIO1_BASE, GPIO_OUT, GPIO_ALT2, GPIO_OUT_1}, /* GPIO38 UART0_DTR_N    UART1_SOUT      */      \
 531{GPIO1_BASE, GPIO_IN , GPIO_ALT2, GPIO_OUT_0}, /* GPIO39 UART0_RI_N     UART1_SIN       */      \
 532{GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO40 UIC_IRQ(0)                     */      \
 533{GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO41 UIC_IRQ(1)                     */      \
 534{GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO42 UIC_IRQ(2)                     */      \
 535{GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO43 UIC_IRQ(3)                     */      \
 536{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO44 UIC_IRQ(4)     DMA_ACK(1)      */      \
 537{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO45 UIC_IRQ(6)     DMA_EOT/TC(1)   */      \
 538{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO46 UIC_IRQ(7)     DMA_REQ(0)      */      \
 539{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO47 UIC_IRQ(8)     DMA_ACK(0)      */      \
 540{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO48 UIC_IRQ(9)     DMA_EOT/TC(0)   */      \
 541{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO49  Unselect via TraceSelect Bit  */      \
 542{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO50  Unselect via TraceSelect Bit  */      \
 543{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO51  Unselect via TraceSelect Bit  */      \
 544{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO52  Unselect via TraceSelect Bit  */      \
 545{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO53  Unselect via TraceSelect Bit  */      \
 546{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO54  Unselect via TraceSelect Bit  */      \
 547{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO55  Unselect via TraceSelect Bit  */      \
 548{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO56  Unselect via TraceSelect Bit  */      \
 549{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO57  Unselect via TraceSelect Bit  */      \
 550{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO58  Unselect via TraceSelect Bit  */      \
 551{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO59  Unselect via TraceSelect Bit  */      \
 552{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO60  Unselect via TraceSelect Bit  */      \
 553{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO61  Unselect via TraceSelect Bit  */      \
 554{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO62  Unselect via TraceSelect Bit  */      \
 555{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO63  Unselect via TraceSelect Bit  */      \
 556}                                                                                       \
 557}
 558
 559#if defined(CONFIG_CMD_KGDB)
 560#define CONFIG_KGDB_BAUDRATE    230400 /* speed to run kgdb serial port */
 561#define CONFIG_KGDB_SER_INDEX   2       /* which serial port to use     */
 562#endif
 563
 564/* Pass open firmware flat tree */
 565#define CONFIG_OF_LIBFDT        1
 566#define CONFIG_OF_BOARD_SETUP   1
 567
 568#endif /* __CONFIG_H */
 569