]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/configs/MPC8260ADS.h
* Fix PHY address argument passing with mii info command
[karo-tx-uboot.git] / include / configs / MPC8260ADS.h
index 254ec46f175bae6de727dd823e65b7b8584364f6..98a063ae9298b4a5060d118caf85f220f2f97658 100644 (file)
@@ -7,10 +7,11 @@
  * Note: my board is a PILOT rev.
  * Note: the mpc8260ads doesn't come with a proper Ethernet MAC address.
  *
- * (C) Copyright 2003 Arabella Software Ltd.
+ * (C) Copyright 2003-2004 Arabella Software Ltd.
  * Yuli Barcohen <yuli@arabellasw.com>
  * Added support for SDRAM DIMMs SPD EEPROM, MII, JFFS2.
- * Ported to PQ2FADS-ZU board.
+ * Ported to PQ2FADS-ZU and PQ2FADS-VR boards.
+ * Ported to MPC8272ADS board.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
  * (easy to change)
  */
 
-#define CONFIG_MPC8260         1       /* This is an MPC8260 CPU   */
-#define CONFIG_MPC8260ADS      1       /* ...on motorola ads board */
+#define CONFIG_MPC8260ADS      1       /* Motorola PQ2 ADS family board */
+
+#define CONFIG_CPM2            1       /* Has a CPM2 */
+
+/*
+ * Figure out if we are booting low via flash HRCW or high via the BCSR.
+ */
+#if (TEXT_BASE != 0xFFF00000)          /* Boot low (flash HRCW) */
+#   define CFG_LOWBOOT         1
+#endif
+
 
 /* ADS flavours */
 #define CFG_8260ADS            1       /* MPC8260ADS */
 #define CFG_8266ADS            2       /* MPC8266ADS */
-#define CFG_PQ2FADS            3       /* PQ2FADS-ZU */
+#define CFG_PQ2FADS            3       /* PQ2FADS-ZU or PQ2FADS-VR */
+#define CFG_8272ADS            4       /* MPC8272ADS */
 
 #ifndef CONFIG_ADSTYPE
 #define CONFIG_ADSTYPE         CFG_8260ADS
 #endif /* CONFIG_ADSTYPE */
 
-#define CONFIG_BOARD_PRE_INIT  1       /* Call board_pre_init  */
+#if CONFIG_ADSTYPE == CFG_8272ADS
+#define CONFIG_MPC8272         1
+#else
+#define CONFIG_MPC8260         1
+#endif /* CONFIG_ADSTYPE == CFG_8272ADS */
+
+#define CONFIG_BOARD_EARLY_INIT_F 1    /* Call board_early_init_f      */
 
 /* allow serial and ethaddr to be overwritten */
 #define CONFIG_ENV_OVERWRITE
 
 #define CONFIG_ETHER_INDEX     2       /* which SCC/FCC channel for ethernet */
 
-#if (CONFIG_ETHER_INDEX == 2)
-/*
- * - Rx-CLK is CLK13
- * - Tx-CLK is CLK14
- * - Select bus for bd/buffers (see 28-13)
- * - Full duplex
- */
-# define CFG_CMXFCR_MASK       (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
+#if   CONFIG_ETHER_INDEX == 1
+
+# define CFG_PHY_ADDR          0
+# define CFG_CMXFCR_VALUE      (CMXFCR_RF1CS_CLK11 | CMXFCR_TF1CS_CLK10)
+# define CFG_CMXFCR_MASK       (CMXFCR_FC1 | CMXFCR_RF1CS_MSK | CMXFCR_TF1CS_MSK)
+
+#elif CONFIG_ETHER_INDEX == 2
+
+#if CONFIG_ADSTYPE == CFG_8272ADS      /* RxCLK is CLK15, TxCLK is CLK16 */
+# define CFG_PHY_ADDR          3
+# define CFG_CMXFCR_VALUE      (CMXFCR_RF2CS_CLK15 | CMXFCR_TF2CS_CLK16)
+#else                                  /* RxCLK is CLK13, TxCLK is CLK14 */
+# define CFG_PHY_ADDR          0
 # define CFG_CMXFCR_VALUE      (CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
-# define CFG_CPMFCR_RAMTYPE    0
-# define CFG_FCC_PSMR          (FCC_PSMR_FDE | FCC_PSMR_LPB)
+#endif /* CONFIG_ADSTYPE == CFG_8272ADS */
+
+# define CFG_CMXFCR_MASK       (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
 
 #endif /* CONFIG_ETHER_INDEX */
 
+#define CFG_CPMFCR_RAMTYPE     0               /* BDs and buffers on 60x bus */
+#define CFG_FCC_PSMR           (FCC_PSMR_FDE | FCC_PSMR_LPB)  /* Full duplex */
+
 #define CONFIG_MII                     /* MII PHY management           */
 #define CONFIG_BITBANGMII              /* bit-bang MII PHY management  */
 /*
  * GPIO pins used for bit-banged MII communications
  */
 #define MDIO_PORT      2               /* Port C */
-#define MDIO_ACTIVE    (iop->pdir |=  0x00400000)
-#define MDIO_TRISTATE  (iop->pdir &= ~0x00400000)
-#define MDIO_READ      ((iop->pdat &  0x00400000) != 0)
 
-#define MDIO(bit)      if(bit) iop->pdat |=  0x00400000; \
-                       else    iop->pdat &= ~0x00400000
+#if CONFIG_ADSTYPE == CFG_8272ADS
+#define CFG_MDIO_PIN   0x00002000      /* PC18 */
+#define CFG_MDC_PIN    0x00001000      /* PC19 */
+#else
+#define CFG_MDIO_PIN   0x00400000      /* PC9  */
+#define CFG_MDC_PIN    0x00200000      /* PC10 */
+#endif /* CONFIG_ADSTYPE == CFG_8272ADS */
+
+#define MDIO_ACTIVE    (iop->pdir |=  CFG_MDIO_PIN)
+#define MDIO_TRISTATE  (iop->pdir &= ~CFG_MDIO_PIN)
+#define MDIO_READ      ((iop->pdat &  CFG_MDIO_PIN) != 0)
+
+#define MDIO(bit)      if(bit) iop->pdat |=  CFG_MDIO_PIN; \
+                       else    iop->pdat &= ~CFG_MDIO_PIN
 
-#define MDC(bit)       if(bit) iop->pdat |=  0x00200000; \
-                       else    iop->pdat &= ~0x00200000
+#define MDC(bit)       if(bit) iop->pdat |=  CFG_MDC_PIN; \
+                       else    iop->pdat &= ~CFG_MDC_PIN
 
 #define MIIDELAY       udelay(1)
 
 #endif /* CONFIG_ETHER_ON_FCC */
 
-#if CONFIG_ADSTYPE == CFG_PQ2FADS
-#undef CONFIG_SPD_EEPROM       /* On PQ2FADS-ZU, SDRAM is soldered  */
+#if CONFIG_ADSTYPE >= CFG_PQ2FADS
+#undef CONFIG_SPD_EEPROM       /* On new boards, SDRAM is soldered */
 #else
 #define CONFIG_HARD_I2C                1       /* To enable I2C support        */
-#define CFG_I2C_SPEED          400000  /* I2C speed and slave address  */
+#define CFG_I2C_SPEED          100000  /* I2C speed and slave address  */
 #define CFG_I2C_SLAVE          0x7F
 
 #if defined(CONFIG_SPD_EEPROM) && !defined(CONFIG_SPD_ADDR)
-#define CONFIG_SPD_ADDR         0x50
+#define CONFIG_SPD_ADDR                0x50
 #endif
-#endif /* CONFIG_ADSTYPE == CFG_PQ2FADS */
+#endif /* CONFIG_ADSTYPE >= CFG_PQ2FADS */
 
 #ifndef CONFIG_SDRAM_PBI
-#define CONFIG_SDRAM_PBI        1 /* By default, use page-based interleaving */
+#define CONFIG_SDRAM_PBI       0 /* By default, use bank-based interleaving */
 #endif
 
 #ifndef CONFIG_8260_CLKIN
-#if CONFIG_ADSTYPE == CFG_PQ2FADS
+#if CONFIG_ADSTYPE >= CFG_PQ2FADS
 #define CONFIG_8260_CLKIN      100000000       /* in Hz */
 #else
-#define CONFIG_8260_CLKIN      66666666        /* in Hz */
+#define CONFIG_8260_CLKIN      66000000        /* in Hz */
 #endif
 #endif
 
 #define CONFIG_BAUDRATE                115200
 
-#define CFG_EXCLUDE             CFG_CMD_BEDBUG | \
-                                CFG_CMD_BMP    | \
-                                CFG_CMD_BSP    | \
-                                CFG_CMD_DATE   | \
-                                CFG_CMD_DOC    | \
-                                CFG_CMD_DTT    | \
-                                CFG_CMD_EEPROM | \
-                                CFG_CMD_ELF    | \
-                                CFG_CMD_FAT    | \
-                                CFG_CMD_FDC    | \
-                                CFG_CMD_FDOS   | \
-                                CFG_CMD_HWFLOW | \
-                                CFG_CMD_IDE    | \
-                                CFG_CMD_KGDB   | \
-                                CFG_CMD_MMC    | \
-                                CFG_CMD_NAND   | \
-                                CFG_CMD_PCI    | \
-                                CFG_CMD_PCMCIA | \
-                                CFG_CMD_SCSI   | \
-                                CFG_CMD_SPI    | \
-                                CFG_CMD_USB    | \
-                                CFG_CMD_VFD
-
-#if CONFIG_ADSTYPE == CFG_PQ2FADS
+#define CFG_EXCLUDE            CFG_CMD_BEDBUG  | \
+                               CFG_CMD_BMP     | \
+                               CFG_CMD_BSP     | \
+                               CFG_CMD_DATE    | \
+                               CFG_CMD_DISPLAY | \
+                               CFG_CMD_DOC     | \
+                               CFG_CMD_DTT     | \
+                               CFG_CMD_EEPROM  | \
+                               CFG_CMD_ELF     | \
+                               CFG_CMD_EXT2    | \
+                               CFG_CMD_FAT     | \
+                               CFG_CMD_FDC     | \
+                               CFG_CMD_FDOS    | \
+                               CFG_CMD_HWFLOW  | \
+                               CFG_CMD_IDE     | \
+                               CFG_CMD_KGDB    | \
+                               CFG_CMD_MMC     | \
+                               CFG_CMD_NAND    | \
+                               CFG_CMD_PCI     | \
+                               CFG_CMD_PCMCIA  | \
+                               CFG_CMD_REISER  | \
+                               CFG_CMD_SCSI    | \
+                               CFG_CMD_SPI     | \
+                               CFG_CMD_SNTP    | \
+                               CFG_CMD_UNIVERSE | \
+                               CFG_CMD_USB     | \
+                               CFG_CMD_VFD     | \
+                               CFG_CMD_XIMG
+
+#if CONFIG_ADSTYPE >= CFG_PQ2FADS
 #define CONFIG_COMMANDS                (CFG_CMD_ALL & ~( \
                                 CFG_CMD_SDRAM  | \
                                 CFG_CMD_I2C    | \
 #else
 #define CONFIG_COMMANDS                (CFG_CMD_ALL & ~( \
                                 CFG_EXCLUDE    ) )
-#endif /* CONFIG_ADSTYPE == CFG_PQ2FADS */
+#endif /* CONFIG_ADSTYPE >= CFG_PQ2FADS */
 
 /* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
 #include <cmd_confdefs.h>
 
-
-#define CONFIG_BOOTDELAY       5       /* autoboot after 5 seconds */
-#define CONFIG_BOOTCOMMAND     "bootm 100000"  /* autoboot command */
-#define CONFIG_BOOTARGS                "root=/dev/ram rw"
+#define CONFIG_BOOTDELAY       5               /* autoboot after 5 seconds */
+#define CONFIG_BOOTCOMMAND     "bootm fff80000"        /* autoboot command */
+#define CONFIG_BOOTARGS                "root=/dev/mtdblock2"
 
 #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
 #undef CONFIG_KGDB_ON_SMC              /* define if kgdb on SMC */
 #define CONFIG_KGDB_BAUDRATE   115200  /* speed to run kgdb serial port at */
 #endif
 
-#undef CONFIG_WATCHDOG                 /* disable platform specific watchdog */
+#define CONFIG_BZIP2   /* include support for bzip2 compressed images */
+#undef CONFIG_WATCHDOG /* disable platform specific watchdog */
 
 /*
  * Miscellaneous configurable options
 #define CFG_MEMTEST_START      0x00100000      /* memtest works on */
 #define CFG_MEMTEST_END                0x00f00000      /* 1 ... 15 MB in DRAM  */
 
-#define CFG_LOAD_ADDR          0x100000        /* default load address */
+#define CFG_LOAD_ADDR          0x400000        /* default load address */
 
 #define CFG_HZ                 1000    /* decrementer freq: 1 ms ticks */
 
 #define CFG_FLASH_UNLOCK_TOUT  10000   /* Timeout for Flash Clear Lock Bits (in ms) */
 #define CFG_FLASH_PROTECTION           /* "Real" (hardware) sectors protection */
 
-#define CFG_JFFS2_FIRST_SECTOR  1
-#define CFG_JFFS2_LAST_SECTOR   27
+/*
+ * JFFS2 partitions
+ *
+ * Note: fake mtd_id used, no linux mtd map file
+ */
+#define MTDIDS_DEFAULT         "nor0=mpc8260ads-0"
+#define MTDPARTS_DEFAULT       "mtdparts=mpc8260ads-0:-@1m(jffs2)"
 #define CFG_JFFS2_SORT_FRAGMENTS
-#define CFG_JFFS_CUSTOM_PART
 
 /* this is stuff came out of the Motorola docs */
+#ifndef CFG_LOWBOOT
 #define CFG_DEFAULT_IMMR       0x0F010000
+#endif
 
 #define CFG_IMMR               0xF0000000
 #define CFG_BCSR               0xF4500000
 #define RS232EN_2              0x01000001
 #define FETHIEN1               0x08000008
 #define FETH1_RST              0x04000004
-#define FETHIEN2               0x01000000
+#define FETHIEN2               0x10000000
 #define FETH2_RST              0x08000000
 #define BCSR_PCI_MODE          0x01000000
 
 #define CFG_INIT_RAM_ADDR      CFG_IMMR
-#define CFG_INIT_RAM_END       0x4000  /* End of used area in DPRAM    */
+#define CFG_INIT_RAM_END       0x2000  /* End of used area in DPRAM    */
 #define CFG_GBL_DATA_SIZE      128     /* size in bytes reserved for initial data */
 #define CFG_GBL_DATA_OFFSET    (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
 #define CFG_INIT_SP_OFFSET     CFG_GBL_DATA_OFFSET
 
 
-/* 0x0EA28205 */
+#ifdef CFG_LOWBOOT
+/* PQ2FADS flash HRCW = 0x0EB4B645 */
+#define CFG_HRCW_MASTER (   ( HRCW_BPS11 | HRCW_CIP )                      |\
+                           ( HRCW_L2CPC10 | HRCW_DPPC11 | HRCW_ISB100 )    |\
+                           ( HRCW_BMS | HRCW_MMR11 | HRCW_LBPC01 | HRCW_APPC10 ) |\
+                           ( HRCW_CS10PC01 | HRCW_MODCK_H0101 )             \
+                       )
+#else
+/* PQ2FADS BCSR HRCW = 0x0CB23645 */
 #define CFG_HRCW_MASTER (   ( HRCW_BPS11 | HRCW_CIP )                      |\
                            ( HRCW_L2CPC10 | HRCW_DPPC10 | HRCW_ISB010 )    |\
                            ( HRCW_BMS | HRCW_APPC10 )                      |\
                            ( HRCW_MODCK_H0101 )                             \
                        )
-
+#endif
 /* no slaves */
 #define CFG_HRCW_SLAVE1 0
 #define CFG_HRCW_SLAVE2 0
 #endif
 
 #define CFG_MONITOR_LEN                (256 << 10)     /* Reserve 256 kB for Monitor   */
-#define CFG_MALLOC_LEN         (128 << 10)     /* Reserve 128 kB for malloc()  */
 #define CFG_BOOTMAPSZ          (8 << 20)       /* Initial Memory map for Linux */
 
+#ifdef CONFIG_BZIP2
+#define CFG_MALLOC_LEN         (4096 << 10)    /* Reserve 4 MB for malloc()    */
+#else
+#define CFG_MALLOC_LEN         (128 << 10)     /* Reserve 128 KB for malloc()  */
+#endif /* CONFIG_BZIP2 */
+
 #ifndef CFG_RAMBOOT
 #  define CFG_ENV_IS_IN_FLASH  1
 #  define CFG_ENV_SECT_SIZE    0x40000
 #define CFG_PISCR              (PISCR_PS|PISCR_PTF|PISCR_PTE)
 #define CFG_RCCR               0
 
-#if CONFIG_ADSTYPE == CFG_8266ADS
-#undef CFG_LSDRAM_BASE         /* No local bus SDRAM on MPC8266ADS */
+#if (CONFIG_ADSTYPE == CFG_8266ADS) || (CONFIG_ADSTYPE == CFG_8272ADS)
+#undef CFG_LSDRAM_BASE         /* No local bus SDRAM on these boards */
 #endif /* CONFIG_ADSTYPE == CFG_8266ADS */
 
 #if CONFIG_ADSTYPE == CFG_PQ2FADS
+#define CFG_OR2                        0xFE002EC0
 #define CFG_PSDMR              0x824B36A3
 #define CFG_PSRT               0x13
 #define CFG_LSDMR              0x828737A3
 #define CFG_LSRT               0x13
 #define CFG_MPTPR              0x2800
+#elif CONFIG_ADSTYPE == CFG_8272ADS
+#define CFG_OR2                        0xFC002CC0
+#define CFG_PSDMR              0x834E24A3
+#define CFG_PSRT               0x13
+#define CFG_MPTPR              0x2800
 #else
+#define CFG_OR2                        0xFF000CA0
 #define CFG_PSDMR              0x016EB452
 #define CFG_PSRT               0x21
 #define CFG_LSDMR              0x0086A522