uboot/include/configs/hymod.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2000
   3 * Murray Jensen <Murray.Jensen@cmst.csiro.au>
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 */
   7
   8/*
   9 * Config header file for Hymod board
  10 */
  11
  12#ifndef __CONFIG_H
  13#define __CONFIG_H
  14
  15/*
  16 * High Level Configuration Options
  17 * (easy to change)
  18 */
  19
  20#define CONFIG_MPC8260          1       /* This is an MPC8260 CPU       */
  21#define CONFIG_HYMOD            1       /* ...on a Hymod board          */
  22#define CONFIG_CPM2             1       /* Has a CPM2 */
  23
  24#define CONFIG_SYS_TEXT_BASE    0x40000000
  25
  26#define CONFIG_MISC_INIT_F      1       /* Use misc_init_f()            */
  27
  28#define CONFIG_BOARD_POSTCLK_INIT       /* have board_postclk_init() function */
  29
  30/*
  31 * select serial console configuration
  32 *
  33 * if either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
  34 * CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
  35 * for SCC).
  36 *
  37 * if CONFIG_CONS_NONE is defined, then the serial console routines must
  38 * defined elsewhere (for example, on the cogent platform, there are serial
  39 * ports on the motherboard which are used for the serial console - see
  40 * cogent/cma101/serial.[ch]).
  41 */
  42#undef  CONFIG_CONS_ON_SMC              /* define if console on SMC */
  43#define CONFIG_CONS_ON_SCC              /* define if console on SCC */
  44#undef  CONFIG_CONS_NONE                /* define if console on something else*/
  45#define CONFIG_CONS_INDEX       1       /* which serial channel for console */
  46#define CONFIG_CONS_USE_EXTC            /* SMC/SCC use ext clock not brg_clk */
  47#define CONFIG_CONS_EXTC_RATE   3686400 /* SMC/SCC ext clk rate in Hz */
  48#define CONFIG_CONS_EXTC_PINSEL 0       /* pin select 0=CLK3/CLK9,1=CLK5/CLK15*/
  49
  50/*
  51 * select ethernet configuration
  52 *
  53 * if either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected, then
  54 * CONFIG_ETHER_INDEX must be set to the channel number (1-4 for SCC, 1-3
  55 * for FCC)
  56 *
  57 * if CONFIG_ETHER_NONE is defined, then either the ethernet routines must be
  58 * defined elsewhere (as for the console), or CONFIG_CMD_NET must be unset.
  59 */
  60#undef  CONFIG_ETHER_ON_SCC             /* define if ether on SCC       */
  61#define CONFIG_ETHER_ON_FCC             /* define if ether on FCC       */
  62#undef  CONFIG_ETHER_NONE               /* define if ether on something else */
  63#define CONFIG_ETHER_INDEX      1       /* which channel for ether      */
  64#define CONFIG_ETHER_LOOPBACK_TEST      /* add ether external loopback test */
  65
  66#ifdef CONFIG_ETHER_ON_FCC
  67
  68#if (CONFIG_ETHER_INDEX == 1)
  69
  70/*
  71 * - Rx-CLK is CLK10
  72 * - Tx-CLK is CLK11
  73 * - RAM for BD/Buffers is on the 60x Bus (see 28-13)
  74 * - Enable Full Duplex in FSMR
  75 */
  76# define CONFIG_SYS_CMXFCR_MASK1        (CMXFCR_FC1|CMXFCR_RF1CS_MSK|CMXFCR_TF1CS_MSK)
  77# define CONFIG_SYS_CMXFCR_VALUE1       (CMXFCR_RF1CS_CLK10|CMXFCR_TF1CS_CLK11)
  78# define CONFIG_SYS_CPMFCR_RAMTYPE      0
  79# define CONFIG_SYS_FCC_PSMR            (FCC_PSMR_FDE|FCC_PSMR_LPB)
  80
  81# define MDIO_PORT              0               /* Port A */
  82# define MDIO_DECLARE           volatile ioport_t *iop = ioport_addr ( \
  83                                        (immap_t *) CONFIG_SYS_IMMR, MDIO_PORT )
  84# define MDC_DECLARE            MDIO_DECLARE
  85
  86# define MDIO_DATA_PINMASK      0x00040000      /* Pin 13 */
  87# define MDIO_CLCK_PINMASK      0x00080000      /* Pin 12 */
  88
  89#elif (CONFIG_ETHER_INDEX == 2)
  90
  91/*
  92 * - Rx-CLK is CLK13
  93 * - Tx-CLK is CLK14
  94 * - RAM for BD/Buffers is on the 60x Bus (see 28-13)
  95 * - Enable Full Duplex in FSMR
  96 */
  97# define CONFIG_SYS_CMXFCR_MASK2        (CMXFCR_FC2|CMXFCR_RF2CS_MSK|CMXFCR_TF2CS_MSK)
  98# define CONFIG_SYS_CMXFCR_VALUE2       (CMXFCR_RF2CS_CLK13|CMXFCR_TF2CS_CLK14)
  99# define CONFIG_SYS_CPMFCR_RAMTYPE      0
 100# define CONFIG_SYS_FCC_PSMR            (FCC_PSMR_FDE|FCC_PSMR_LPB)
 101
 102# define MDIO_PORT              0               /* Port A */
 103# define MDIO_DECLARE           volatile ioport_t *iop = ioport_addr ( \
 104                                        (immap_t *) CONFIG_SYS_IMMR, MDIO_PORT )
 105# define MDC_DECLARE            MDIO_DECLARE
 106
 107# define MDIO_DATA_PINMASK      0x00000040      /* Pin 25 */
 108# define MDIO_CLCK_PINMASK      0x00000080      /* Pin 24 */
 109
 110#elif (CONFIG_ETHER_INDEX == 3)
 111
 112/*
 113 * - Rx-CLK is CLK15
 114 * - Tx-CLK is CLK16
 115 * - RAM for BD/Buffers is on the 60x Bus (see 28-13)
 116 * - Enable Full Duplex in FSMR
 117 */
 118# define CONFIG_SYS_CMXFCR_MASK3        (CMXFCR_FC3|CMXFCR_RF3CS_MSK|CMXFCR_TF3CS_MSK)
 119# define CONFIG_SYS_CMXFCR_VALUE3       (CMXFCR_RF3CS_CLK15|CMXFCR_TF3CS_CLK16)
 120# define CONFIG_SYS_CPMFCR_RAMTYPE      0
 121# define CONFIG_SYS_FCC_PSMR            (FCC_PSMR_FDE|FCC_PSMR_LPB)
 122
 123# define MDIO_PORT              0               /* Port A */
 124# define MDIO_DECLARE           volatile ioport_t *iop = ioport_addr ( \
 125                                        (immap_t *) CONFIG_SYS_IMMR, MDIO_PORT )
 126# define MDC_DECLARE            MDIO_DECLARE
 127
 128# define MDIO_DATA_PINMASK      0x00000100      /* Pin 23 */
 129# define MDIO_CLCK_PINMASK      0x00000200      /* Pin 22 */
 130
 131#endif  /* CONFIG_ETHER_INDEX */
 132
 133#define CONFIG_MII                      /* MII PHY management   */
 134#define CONFIG_BITBANGMII               /* bit-bang MII PHY management  */
 135
 136#define MDIO_ACTIVE     (iop->pdir |=  MDIO_DATA_PINMASK)
 137#define MDIO_TRISTATE   (iop->pdir &= ~MDIO_DATA_PINMASK)
 138#define MDIO_READ       ((iop->pdat &  MDIO_DATA_PINMASK) != 0)
 139
 140#define MDIO(bit)       if(bit) iop->pdat |=  MDIO_DATA_PINMASK; \
 141                        else    iop->pdat &= ~MDIO_DATA_PINMASK
 142
 143#define MDC(bit)        if(bit) iop->pdat |=  MDIO_CLCK_PINMASK; \
 144                        else    iop->pdat &= ~MDIO_CLCK_PINMASK
 145
 146#define MIIDELAY        udelay(1)
 147
 148#endif  /* CONFIG_ETHER_ON_FCC */
 149
 150
 151/* other options */
 152#define CONFIG_HARD_I2C         1       /* To enable I2C hardware support       */
 153#define CONFIG_DTT_ADM1021      1       /* ADM1021 temp sensor support */
 154
 155/* system clock rate (CLKIN) - equal to the 60x and local bus speed */
 156#ifdef DEBUG
 157#define CONFIG_8260_CLKIN       33333333        /* in Hz */
 158#else
 159#define CONFIG_8260_CLKIN       66666666        /* in Hz */
 160#endif
 161
 162#if defined(CONFIG_CONS_USE_EXTC)
 163#define CONFIG_BAUDRATE         115200
 164#else
 165#define CONFIG_BAUDRATE         9600
 166#endif
 167
 168/* default ip addresses - these will be overridden */
 169#define CONFIG_IPADDR           192.168.1.1     /* hymod "boot" address */
 170#define CONFIG_SERVERIP         192.168.1.254   /* hymod "server" address */
 171
 172#define CONFIG_LAST_STAGE_INIT
 173
 174/*
 175 * BOOTP options
 176 */
 177#define CONFIG_BOOTP_BOOTFILESIZE
 178#define CONFIG_BOOTP_BOOTPATH
 179#define CONFIG_BOOTP_GATEWAY
 180#define CONFIG_BOOTP_HOSTNAME
 181
 182
 183/*
 184 * Command line configuration.
 185 */
 186#include <config_cmd_default.h>
 187
 188#define CONFIG_CMD_ASKENV
 189#define CONFIG_CMD_BSP
 190#define CONFIG_CMD_CACHE
 191#define CONFIG_CMD_CDP
 192#define CONFIG_CMD_DATE
 193#define CONFIG_CMD_DHCP
 194#define CONFIG_CMD_DIAG
 195#define CONFIG_CMD_DTT
 196#define CONFIG_CMD_EEPROM
 197#define CONFIG_CMD_ELF
 198#define CONFIG_CMD_FAT
 199#define CONFIG_CMD_I2C
 200#define CONFIG_CMD_IMMAP
 201#define CONFIG_CMD_IRQ
 202#define CONFIG_CMD_KGDB
 203#define CONFIG_CMD_MII
 204#define CONFIG_CMD_PING
 205#define CONFIG_CMD_PORTIO
 206#define CONFIG_CMD_REGINFO
 207#define CONFIG_CMD_SAVES
 208#define CONFIG_CMD_SDRAM
 209#define CONFIG_CMD_SNTP
 210
 211#undef CONFIG_CMD_FPGA
 212#undef CONFIG_CMD_XIMG
 213
 214#ifdef DEBUG
 215#define CONFIG_BOOTDELAY        -1      /* autoboot disabled            */
 216#else
 217#define CONFIG_BOOTDELAY        5       /* autoboot after 5 seconds     */
 218#define CONFIG_BOOT_RETRY_TIME 30       /* retry autoboot after 30 secs */
 219#define CONFIG_BOOT_RETRY_MIN   1       /* can go down to 1 second timeout */
 220/* Be selective on what keys can delay or stop the autoboot process
 221 *      To stop use: " "
 222 */
 223#define CONFIG_AUTOBOOT_KEYED
 224#define CONFIG_AUTOBOOT_PROMPT          "Autobooting in %d seconds, " \
 225                                        "press <SPACE> to stop\n", bootdelay
 226#define CONFIG_AUTOBOOT_STOP_STR        " "
 227#undef CONFIG_AUTOBOOT_DELAY_STR
 228#define DEBUG_BOOTKEYS          0
 229#endif
 230
 231#if defined(CONFIG_CMD_KGDB)
 232#undef  CONFIG_KGDB_ON_SMC              /* define if kgdb on SMC */
 233#define CONFIG_KGDB_ON_SCC              /* define if kgdb on SCC */
 234#undef  CONFIG_KGDB_NONE                /* define if kgdb on something else */
 235#define CONFIG_KGDB_INDEX       2       /* which serial channel for kgdb */
 236#define CONFIG_KGDB_USE_EXTC            /* SMC/SCC use ext clock not brg_clk */
 237#define CONFIG_KGDB_EXTC_RATE   3686400 /* serial ext clk rate in Hz */
 238#define CONFIG_KGDB_EXTC_PINSEL 0       /* pin select 0=CLK3/CLK9,1=CLK5/CLK15*/
 239# if defined(CONFIG_KGDB_USE_EXTC)
 240#define CONFIG_KGDB_BAUDRATE    115200  /* speed to run kgdb serial port at */
 241# else
 242#define CONFIG_KGDB_BAUDRATE    9600    /* speed to run kgdb serial port at */
 243# endif
 244#endif
 245
 246#undef  CONFIG_WATCHDOG                 /* disable platform specific watchdog */
 247
 248#define CONFIG_RTC_PCF8563              /* use Philips PCF8563 RTC      */
 249
 250/*
 251 * Hymod specific configurable options
 252 */
 253#undef  CONFIG_SYS_HYMOD_DBLEDS                 /* walk mezz board LEDs */
 254
 255/*
 256 * Miscellaneous configurable options
 257 */
 258#define CONFIG_SYS_LONGHELP                     /* undef to save memory         */
 259#if defined(CONFIG_CMD_KGDB)
 260#define CONFIG_SYS_CBSIZE       1024            /* Console I/O Buffer Size      */
 261#else
 262#define CONFIG_SYS_CBSIZE       256             /* Console I/O Buffer Size      */
 263#endif
 264#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
 265#define CONFIG_SYS_MAXARGS      16              /* max number of command args   */
 266#define CONFIG_SYS_BARGSIZE     CONFIG_SYS_CBSIZE       /* Boot Argument Buffer Size    */
 267
 268#define CONFIG_SYS_MEMTEST_START        0x00400000      /* memtest works on     */
 269#define CONFIG_SYS_MEMTEST_END          0x03c00000      /* 4 ... 60 MB in DRAM  */
 270
 271#define CONFIG_SYS_LOAD_ADDR            0x100000        /* default load address */
 272
 273#define CONFIG_SYS_BAUDRATE_TABLE       { 9600, 19200, 38400, 57600, 115200, 230400 }
 274
 275#define CONFIG_SYS_I2C_SPEED            50000
 276#define CONFIG_SYS_I2C_SLAVE            0x7e
 277
 278/* these are for the ST M24C02 2kbit serial i2c eeprom */
 279#define CONFIG_SYS_I2C_EEPROM_ADDR      0x50            /* base address */
 280#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN  1               /* bytes of address */
 281/* mask of address bits that overflow into the "EEPROM chip address"    */
 282#define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW     0x07
 283
 284#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS       4       /* 16 byte write page size */
 285#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS   10      /* and takes up to 10 msec */
 286
 287#define CONFIG_SYS_I2C_MULTI_EEPROMS    1               /* hymod has two eeproms */
 288
 289#define CONFIG_SYS_I2C_RTC_ADDR 0x51    /* philips PCF8563 RTC address */
 290
 291/*
 292 * standard dtt sensor configuration - bottom bit will determine local or
 293 * remote sensor of the ADM1021, the rest determines index into
 294 * CONFIG_SYS_DTT_ADM1021 array below.
 295 *
 296 * On HYMOD board, the remote sensor should be connected to the MPC8260
 297 * temperature diode thingy, but an errata said this didn't work and
 298 * should be disabled - so it isn't connected.
 299 */
 300#if 0
 301#define CONFIG_DTT_SENSORS              { 0, 1 }
 302#else
 303#define CONFIG_DTT_SENSORS              { 0 }
 304#endif
 305
 306/*
 307 * ADM1021 temp sensor configuration (see dtt/adm1021.c for details).
 308 * there will be one entry in this array for each two (dummy) sensors in
 309 * CONFIG_DTT_SENSORS.
 310 *
 311 * For HYMOD board:
 312 * - only one ADM1021
 313 * - i2c addr 0x2a (both ADD0 and ADD1 are N/C)
 314 * - conversion rate 0x02 = 0.25 conversions/second
 315 * - ALERT ouput disabled
 316 * - local temp sensor enabled, min set to 0 deg, max set to 85 deg
 317 * - remote temp sensor disabled (see comment for CONFIG_DTT_SENSORS above)
 318 */
 319#define CONFIG_SYS_DTT_ADM1021          { { 0x2a, 0x02, 0, 1, 0, 85, 0, } }
 320
 321/*
 322 * Low Level Configuration Settings
 323 * (address mappings, register initial values, etc.)
 324 * You should know what you are doing if you make changes here.
 325 */
 326
 327/*-----------------------------------------------------------------------
 328 * Hard Reset Configuration Words
 329 *
 330 * if you change bits in the HRCW, you must also change the CONFIG_SYS_*
 331 * defines for the various registers affected by the HRCW e.g. changing
 332 * HRCW_DPPCxx requires you to also change CONFIG_SYS_SIUMCR.
 333 */
 334#ifdef DEBUG
 335#define CONFIG_SYS_HRCW_MASTER  (HRCW_BPS11|HRCW_CIP|HRCW_L2CPC01|HRCW_DPPC10|\
 336                         HRCW_ISB100|HRCW_BMS|HRCW_MMR11|HRCW_APPC10|\
 337                         HRCW_MODCK_H0010)
 338#else
 339#define CONFIG_SYS_HRCW_MASTER  (HRCW_BPS11|HRCW_CIP|HRCW_L2CPC01|HRCW_DPPC10|\
 340                         HRCW_ISB100|HRCW_BMS|HRCW_MMR11|HRCW_APPC10|\
 341                         HRCW_MODCK_H0101)
 342#endif
 343/* no slaves so just duplicate the master hrcw */
 344#define CONFIG_SYS_HRCW_SLAVE1  CONFIG_SYS_HRCW_MASTER
 345#define CONFIG_SYS_HRCW_SLAVE2  CONFIG_SYS_HRCW_MASTER
 346#define CONFIG_SYS_HRCW_SLAVE3  CONFIG_SYS_HRCW_MASTER
 347#define CONFIG_SYS_HRCW_SLAVE4  CONFIG_SYS_HRCW_MASTER
 348#define CONFIG_SYS_HRCW_SLAVE5  CONFIG_SYS_HRCW_MASTER
 349#define CONFIG_SYS_HRCW_SLAVE6  CONFIG_SYS_HRCW_MASTER
 350#define CONFIG_SYS_HRCW_SLAVE7  CONFIG_SYS_HRCW_MASTER
 351
 352/*-----------------------------------------------------------------------
 353 * Internal Memory Mapped Register
 354 */
 355#define CONFIG_SYS_IMMR         0xF0000000
 356
 357/*-----------------------------------------------------------------------
 358 * Definitions for initial stack pointer and data area (in DPRAM)
 359 */
 360#define CONFIG_SYS_INIT_RAM_ADDR        CONFIG_SYS_IMMR
 361#define CONFIG_SYS_INIT_RAM_SIZE        0x4000  /* Size of used area in DPRAM   */
 362#define CONFIG_SYS_GBL_DATA_OFFSET      (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
 363#define CONFIG_SYS_INIT_SP_OFFSET       CONFIG_SYS_GBL_DATA_OFFSET
 364
 365/*-----------------------------------------------------------------------
 366 * Start addresses for the final memory configuration
 367 * (Set up by the startup code)
 368 * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0
 369 */
 370#define CONFIG_SYS_SDRAM_BASE           0x00000000
 371#define CONFIG_SYS_FLASH_BASE           CONFIG_SYS_TEXT_BASE
 372#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
 373#define CONFIG_SYS_FPGA_BASE            0x80000000
 374/*
 375 * unfortunately, CONFIG_SYS_MONITOR_LEN must include the
 376 * (very large i.e. 256kB) environment flash sector
 377 */
 378#define CONFIG_SYS_MONITOR_LEN          (512 << 10)     /* Reserve 512 kB for Monitor*/
 379#define CONFIG_SYS_MALLOC_LEN           (128 << 10)     /* Reserve 128 kB for malloc()*/
 380
 381/*
 382 * For booting Linux, the board info and command line data
 383 * have to be in the first 8 MB of memory, since this is
 384 * the maximum mapped by the Linux kernel during initialization.
 385 */
 386#define CONFIG_SYS_BOOTMAPSZ            (8 << 20)       /* Initial Mem map for Linux*/
 387
 388/*-----------------------------------------------------------------------
 389 * FLASH organization
 390 */
 391#define CONFIG_SYS_MAX_FLASH_BANKS      2       /* max num of memory banks      */
 392#define CONFIG_SYS_MAX_FLASH_SECT       67      /* max num of sects on one chip */
 393
 394#define CONFIG_SYS_FLASH_ERASE_TOUT     120000  /* Flash Erase Timeout (in ms)  */
 395#define CONFIG_SYS_FLASH_WRITE_TOUT     500     /* Flash Write Timeout (in ms)  */
 396
 397#define CONFIG_ENV_IS_IN_FLASH  1
 398#define CONFIG_ENV_SIZE         0x40000 /* Total Size of Environment Sector */
 399#define CONFIG_ENV_SECT_SIZE    0x40000 /* see README - env sect real size */
 400#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE+CONFIG_SYS_MONITOR_LEN-CONFIG_ENV_SECT_SIZE)
 401#define CONFIG_SYS_USE_PPCENV                   /* Environment embedded in sect .ppcenv */
 402
 403/*-----------------------------------------------------------------------
 404 * Cache Configuration
 405 */
 406#define CONFIG_SYS_CACHELINE_SIZE       32      /* For MPC8260 CPU              */
 407#if defined(CONFIG_CMD_KGDB)
 408#define CONFIG_SYS_CACHELINE_SHIFT      5       /* log base 2 of the above value*/
 409#endif
 410
 411/*-----------------------------------------------------------------------
 412 * HIDx - Hardware Implementation-dependent Registers                    2-11
 413 *-----------------------------------------------------------------------
 414 * HID0 also contains cache control - initially enable both caches and
 415 * invalidate contents, then the final state leaves only the instruction
 416 * cache enabled. Note that Power-On and Hard reset invalidate the caches,
 417 * but Soft reset does not.
 418 *
 419 * HID1 has only read-only information - nothing to set.
 420 */
 421#define CONFIG_SYS_HID0_INIT    (HID0_ICE|HID0_DCE|HID0_ICFI|HID0_DCI|\
 422                                HID0_IFEM|HID0_ABE)
 423#ifdef DEBUG
 424#define CONFIG_SYS_HID0_FINAL   0
 425#else
 426#define CONFIG_SYS_HID0_FINAL   (HID0_ICE|HID0_IFEM|HID0_ABE)
 427#endif
 428#define CONFIG_SYS_HID2 0
 429
 430/*-----------------------------------------------------------------------
 431 * RMR - Reset Mode Register                                     5-5
 432 *-----------------------------------------------------------------------
 433 * turn on Checkstop Reset Enable
 434 */
 435#ifdef DEBUG
 436#define CONFIG_SYS_RMR          0
 437#else
 438#define CONFIG_SYS_RMR          RMR_CSRE
 439#endif
 440
 441/*-----------------------------------------------------------------------
 442 * BCR - Bus Configuration                                       4-25
 443 *-----------------------------------------------------------------------
 444 */
 445#define CONFIG_SYS_BCR          (BCR_ETM)
 446
 447/*-----------------------------------------------------------------------
 448 * SIUMCR - SIU Module Configuration                             4-31
 449 *-----------------------------------------------------------------------
 450 */
 451#define CONFIG_SYS_SIUMCR       (SIUMCR_DPPC10|SIUMCR_L2CPC01|\
 452                         SIUMCR_APPC10|SIUMCR_MMR11)
 453
 454/*-----------------------------------------------------------------------
 455 * SYPCR - System Protection Control                             4-35
 456 * SYPCR can only be written once after reset!
 457 *-----------------------------------------------------------------------
 458 * Watchdog & Bus Monitor Timer max, 60x & Local Bus Monitor enable
 459 */
 460#if defined(CONFIG_WATCHDOG)
 461#define CONFIG_SYS_SYPCR        (SYPCR_SWTC|SYPCR_BMT|SYPCR_PBME|SYPCR_LBME|\
 462                         SYPCR_SWRI|SYPCR_SWP|SYPCR_SWE)
 463#else
 464#define CONFIG_SYS_SYPCR        (SYPCR_SWTC|SYPCR_BMT|SYPCR_PBME|SYPCR_LBME|\
 465                         SYPCR_SWRI|SYPCR_SWP)
 466#endif /* CONFIG_WATCHDOG */
 467
 468/*-----------------------------------------------------------------------
 469 * TMCNTSC - Time Counter Status and Control                     4-40
 470 *-----------------------------------------------------------------------
 471 * Clear once per Second and Alarm Interrupt Status, Set 32KHz timersclk,
 472 * and enable Time Counter
 473 */
 474#define CONFIG_SYS_TMCNTSC      (TMCNTSC_SEC|TMCNTSC_ALR|TMCNTSC_TCF|TMCNTSC_TCE)
 475
 476/*-----------------------------------------------------------------------
 477 * PISCR - Periodic Interrupt Status and Control                 4-42
 478 *-----------------------------------------------------------------------
 479 * Clear Periodic Interrupt Status, Set 32KHz timersclk, and enable
 480 * Periodic timer
 481 */
 482#define CONFIG_SYS_PISCR        (PISCR_PS|PISCR_PTF|PISCR_PTE)
 483
 484/*-----------------------------------------------------------------------
 485 * SCCR - System Clock Control                                   9-8
 486 *-----------------------------------------------------------------------
 487 * Ensure DFBRG is Divide by 16
 488 */
 489#define CONFIG_SYS_SCCR (SCCR_DFBRG01)
 490
 491/*-----------------------------------------------------------------------
 492 * RCCR - RISC Controller Configuration                         13-7
 493 *-----------------------------------------------------------------------
 494 */
 495#define CONFIG_SYS_RCCR 0
 496
 497/*
 498 * Init Memory Controller:
 499 *
 500 * Bank Bus     Machine PortSz  Device
 501 * ---- ---     ------- ------  ------
 502 *  0   60x     GPCM    32 bit  FLASH
 503 *  1   60x     GPCM    32 bit  FLASH (same as 0 - unused for now)
 504 *  2   60x     SDRAM   64 bit  SDRAM
 505 *  3   Local   UPMC     8 bit  Main Xilinx configuration
 506 *  4   Local   GPCM    32 bit  Main Xilinx register mode
 507 *  5   Local   UPMB    32 bit  Main Xilinx port mode
 508 *  6   Local   UPMC     8 bit  Mezz Xilinx configuration
 509 */
 510
 511/*
 512 * Bank 0 - FLASH
 513 *
 514 * Quotes from the HYMOD IO Board Reference manual:
 515 *
 516 * "The flash memory is two Intel StrataFlash chips, each configured for
 517 *  16 bit operation and connected to give a 32 bit wide port."
 518 *
 519 * "The chip select logic is configured to respond to both *CS0 and *CS1.
 520 *  Therefore the FLASH memory will be mapped to both bank 0 and bank 1.
 521 *  It is suggested that bank 0 be read-only and bank 1 be read/write. The
 522 *  FLASH will then appear as ROM during boot."
 523 *
 524 * Initially, we are only going to use bank 0 in read/write mode.
 525 */
 526
 527/* 32 bit, read-write, GPCM on 60x bus */
 528#define CONFIG_SYS_BR0_PRELIM   ((CONFIG_SYS_FLASH_BASE&BRx_BA_MSK)|\
 529                                BRx_PS_32|BRx_MS_GPCM_P|BRx_V)
 530/* up to 32 Mb */
 531#define CONFIG_SYS_OR0_PRELIM   (MEG_TO_AM(32)|ORxG_CSNT|ORxG_ACS_DIV2|ORxG_SCY_10_CLK)
 532
 533/*
 534 * Bank 2 - SDRAM
 535 *
 536 * Quotes from the HYMOD IO Board Reference manual:
 537 *
 538 * "The main memory is implemented using TC59SM716FTL-10 SDRAM and has a
 539 *  fixed size of 64 Mbytes. The Toshiba TC59SM716FTL-10 is a CMOS synchronous
 540 *  dynamic random access memory organised as 4 banks by 4096 rows by 512
 541 *  columns by 16 bits. Four chips provide a 64-bit port on the 60x bus."
 542 *
 543 * "The locations in SDRAM are accessed using multiplexed address pins to
 544 *  specify row and column. The pins also act to specify commands. The state
 545 *  of the inputs *RAS, *CAS and *WE defines the required action. The a10/AP
 546 *  pin may function as a row address or as the AUTO PRECHARGE control line,
 547 *  depending on the cycle type. The 60x bus SDRAM machine allows the MPC8260
 548 *  address lines to be configured to the required multiplexing scheme."
 549 */
 550
 551#define CONFIG_SYS_SDRAM_SIZE   64
 552
 553/* 64 bit, read-write, SDRAM on 60x bus */
 554#define CONFIG_SYS_BR2_PRELIM   ((CONFIG_SYS_SDRAM_BASE&BRx_BA_MSK)|\
 555                                BRx_PS_64|BRx_MS_SDRAM_P|BRx_V)
 556/* 64 Mb, 4 int banks per dev, row start addr bit = A6, 12 row addr lines */
 557#define CONFIG_SYS_OR2_PRELIM   (MEG_TO_AM(CONFIG_SYS_SDRAM_SIZE)|\
 558                                ORxS_BPD_4|ORxS_ROWST_PBI1_A6|ORxS_NUMR_12)
 559
 560/*
 561 * The 60x Bus SDRAM Mode Register (PDSMR) is set as follows:
 562 *
 563 * Page Based Interleaving, Refresh Enable, Address Multiplexing where A5
 564 * is output on A16 pin (A6 on A17, and so on), use address pins A14-A16
 565 * as bank select, A7 is output on SDA10 during an ACTIVATE command,
 566 * earliest timing for ACTIVATE command after REFRESH command is 6 clocks,
 567 * earliest timing for ACTIVATE or REFRESH command after PRECHARGE command
 568 * is 2 clocks, earliest timing for READ/WRITE command after ACTIVATE
 569 * command is 2 clocks, earliest timing for PRECHARGE after last data
 570 * was read is 1 clock, earliest timing for PRECHARGE after last data
 571 * was written is 1 clock, CAS Latency is 2.
 572 */
 573
 574#define CONFIG_SYS_PSDMR        (PSDMR_PBI|PSDMR_SDAM_A16_IS_A5|\
 575                                PSDMR_BSMA_A14_A16|PSDMR_SDA10_PBI1_A7|\
 576                                PSDMR_RFRC_6_CLK|PSDMR_PRETOACT_2W|\
 577                                PSDMR_ACTTORW_2W|PSDMR_LDOTOPRE_1C|\
 578                                PSDMR_WRC_1C|PSDMR_CL_2)
 579
 580/*
 581 * The 60x bus-assigned SDRAM Refresh Timer (PSRT) (10-31) and the Refresh
 582 * Timers Prescale (PTP) value in the Memory Refresh Timer Prescaler Register
 583 * (MPTPR) (10-32) must also be set up (it used to be called the Periodic Timer
 584 * Prescaler, hence the P instead of the R). The refresh timer period is given
 585 * by (note that there was a change in the 8260 UM Errata):
 586 *
 587 *      TimerPeriod = (PSRT + 1) / Fmptc
 588 *
 589 * where Fmptc is the BusClock divided by PTP. i.e.
 590 *
 591 *      TimerPeriod = (PSRT + 1) / (BusClock / PTP)
 592 *
 593 * or
 594 *
 595 *      TImerPeriod = (PTP * (PSRT + 1)) / BusClock
 596 *
 597 * The requirement for the Toshiba TC59SM716FTL-10 is that there must be
 598 * 4K refresh cycles every 64 ms. i.e. one refresh cycle every 64000/4096
 599 * = 15.625 usecs.
 600 *
 601 * So PTP * (PSRT + 1) <= 15.625 * BusClock. At 66.666MHz, PSRT=31 and PTP=32
 602 * appear to be reasonable.
 603 */
 604
 605#ifdef DEBUG
 606#define CONFIG_SYS_PSRT 39
 607#define CONFIG_SYS_MPTPR        MPTPR_PTP_DIV8
 608#else
 609#define CONFIG_SYS_PSRT 31
 610#define CONFIG_SYS_MPTPR        MPTPR_PTP_DIV32
 611#endif
 612
 613/*
 614 * Banks 3,4,5 and 6 - FPGA access
 615 *
 616 * Quotes from the HYMOD IO Board Reference manual:
 617 *
 618 * "The IO Board is fitted with a Xilinx XCV300E main FPGA. Provision is made
 619 *  for configuring an optional FPGA on the mezzanine interface.
 620 *
 621 *  Access to the FPGAs may be divided into several catagories:
 622 *
 623 *  1. Configuration
 624 *  2. Register mode access
 625 *  3. Port mode access
 626 *
 627 *  The main FPGA is supported for modes 1, 2 and 3. The mezzanine FPGA can be
 628 *  configured only (mode 1). Consequently there are four access types.
 629 *
 630 *  To improve interface performance and simplify software design, the four
 631 *  possible access types are separately mapped to different memory banks.
 632 *
 633 *  All are accessed using the local bus."
 634 *
 635 *       Device             Mode      Memory Bank Machine Port Size    Access
 636 *
 637 *        Main          Configuration      3       UPMC      8bit       R/W
 638 *        Main            Register         4       GPCM     32bit       R/W
 639 *        Main              Port           5       UPMB     32bit       R/W
 640 *      Mezzanine       Configuration      6       UPMC      8bit       W/O
 641 *
 642 * "Note that mezzanine mode 1 access is write-only."
 643 */
 644
 645/* all the bank sizes must be a power of two, greater or equal to 32768 */
 646#define FPGA_MAIN_CFG_BASE      (CONFIG_SYS_FPGA_BASE)
 647#define FPGA_MAIN_CFG_SIZE      32768
 648#define FPGA_MAIN_REG_BASE      (FPGA_MAIN_CFG_BASE + FPGA_MAIN_CFG_SIZE)
 649#define FPGA_MAIN_REG_SIZE      32768
 650#define FPGA_MAIN_PORT_BASE     (FPGA_MAIN_REG_BASE + FPGA_MAIN_REG_SIZE)
 651#define FPGA_MAIN_PORT_SIZE     32768
 652#define FPGA_MEZZ_CFG_BASE      (FPGA_MAIN_PORT_BASE + FPGA_MAIN_PORT_SIZE)
 653#define FPGA_MEZZ_CFG_SIZE      32768
 654
 655/* 8 bit, read-write, UPMC */
 656#define CONFIG_SYS_BR3_PRELIM   (FPGA_MAIN_CFG_BASE|BRx_PS_8|BRx_MS_UPMC|BRx_V)
 657/* up to 32Kbyte, burst inhibit */
 658#define CONFIG_SYS_OR3_PRELIM   (P2SZ_TO_AM(FPGA_MAIN_CFG_SIZE)|ORxU_BI)
 659
 660/* 32 bit, read-write, GPCM */
 661#define CONFIG_SYS_BR4_PRELIM   (FPGA_MAIN_REG_BASE|BRx_PS_32|BRx_MS_GPCM_L|BRx_V)
 662/* up to 32Kbyte */
 663#define CONFIG_SYS_OR4_PRELIM   (P2SZ_TO_AM(FPGA_MAIN_REG_SIZE))
 664
 665/* 32 bit, read-write, UPMB */
 666#define CONFIG_SYS_BR5_PRELIM   (FPGA_MAIN_PORT_BASE|BRx_PS_32|BRx_MS_UPMB|BRx_V)
 667/* up to 32Kbyte */
 668#define CONFIG_SYS_OR5_PRELIM   (P2SZ_TO_AM(FPGA_MAIN_PORT_SIZE)|ORxU_BI)
 669
 670/* 8 bit, write-only, UPMC */
 671#define CONFIG_SYS_BR6_PRELIM   (FPGA_MEZZ_CFG_BASE|BRx_PS_8|BRx_MS_UPMC|BRx_V)
 672/* up to 32Kbyte, burst inhibit */
 673#define CONFIG_SYS_OR6_PRELIM   (P2SZ_TO_AM(FPGA_MEZZ_CFG_SIZE)|ORxU_BI)
 674
 675/*-----------------------------------------------------------------------
 676 * MBMR - Machine B Mode                                        10-27
 677 *-----------------------------------------------------------------------
 678 */
 679#define CONFIG_SYS_MBMR (MxMR_BSEL|MxMR_OP_NORM)        /* XXX - needs more */
 680
 681/*-----------------------------------------------------------------------
 682 * MCMR - Machine C Mode                                        10-27
 683 *-----------------------------------------------------------------------
 684 */
 685#define CONFIG_SYS_MCMR (MxMR_BSEL|MxMR_DSx_2_CYCL)     /* XXX - needs more */
 686
 687/*
 688 * FPGA I/O Port/Bit information
 689 */
 690
 691#define FPGA_MAIN_PROG_PORT     IOPIN_PORTA
 692#define FPGA_MAIN_PROG_PIN      4       /* PA4 */
 693#define FPGA_MAIN_INIT_PORT     IOPIN_PORTA
 694#define FPGA_MAIN_INIT_PIN      5       /* PA5 */
 695#define FPGA_MAIN_DONE_PORT     IOPIN_PORTA
 696#define FPGA_MAIN_DONE_PIN      6       /* PA6 */
 697
 698#define FPGA_MEZZ_PROG_PORT     IOPIN_PORTA
 699#define FPGA_MEZZ_PROG_PIN      0       /* PA0 */
 700#define FPGA_MEZZ_INIT_PORT     IOPIN_PORTA
 701#define FPGA_MEZZ_INIT_PIN      1       /* PA1 */
 702#define FPGA_MEZZ_DONE_PORT     IOPIN_PORTA
 703#define FPGA_MEZZ_DONE_PIN      2       /* PA2 */
 704#define FPGA_MEZZ_ENABLE_PORT   IOPIN_PORTA
 705#define FPGA_MEZZ_ENABLE_PIN    3       /* PA3 */
 706
 707/*
 708 * FPGA Interrupt configuration
 709 */
 710#define FPGA_MAIN_IRQ           SIU_INT_IRQ2
 711
 712/*
 713 * JFFS2 partitions
 714 *
 715 */
 716/* No command line, one static partition, whole device */
 717#undef CONFIG_CMD_MTDPARTS
 718#define CONFIG_JFFS2_DEV                "nor0"
 719#define CONFIG_JFFS2_PART_SIZE          0xFFFFFFFF
 720#define CONFIG_JFFS2_PART_OFFSET        0x00000000
 721
 722/* mtdparts command line support */
 723/*
 724#define CONFIG_CMD_MTDPARTS
 725#define MTDIDS_DEFAULT          ""
 726#define MTDPARTS_DEFAULT        ""
 727*/
 728
 729#endif  /* __CONFIG_H */
 730