Commit 9531a2388ccaeaabb33a359a0bbf2e1d792c7dde

Authored by Sergei Poselenov
Committed by Wolfgang Denk
1 parent 3831530dcb
Exists in master and in 55 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf_v2022.04, emb_lf_v2023.04, imx_v2015.04_4.1.15_1.0.0_ga, pitx_8mp_lf_v2020.04, smarc-8m-android-10.0.0_2.6.0, smarc-8m-android-11.0.0_2.0.0, smarc-8mp-android-11.0.0_2.0.0, smarc-emmc-imx_v2014.04_3.10.53_1.1.0_ga, smarc-emmc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx-l5.0.0_1.0.0-ga, smarc-imx6_v2018.03_4.14.98_2.0.0_ga, smarc-imx7_v2017.03_4.9.11_1.0.0_ga, smarc-imx7_v2018.03_4.14.98_2.0.0_ga, smarc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx_v2015.04_4.1.15_1.0.0_ga, smarc-imx_v2017.03_4.9.11_1.0.0_ga, smarc-imx_v2017.03_4.9.88_2.0.0_ga, smarc-imx_v2017.03_o8.1.0_1.3.0_8m, smarc-imx_v2018.03_4.14.78_1.0.0_ga, smarc-m6.0.1_2.1.0-ga, smarc-n7.1.2_2.0.0-ga, smarc-rel_imx_4.1.15_2.0.0_ga, smarc_8m-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8m-imx_v2019.04_4.19.35_1.1.0, smarc_8m_00d0-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2019.04_4.19.35_1.1.0, smarc_8mm-imx_v2020.04_5.4.24_2.1.0, smarc_8mp_lf_v2020.04, smarc_8mq-imx_v2020.04_5.4.24_2.1.0, smarc_8mq_lf_v2020.04, ti-u-boot-2015.07, u-boot-2013.01.y, v2013.10, v2013.10-smarct33, v2013.10-smartmen, v2014.01, v2014.04, v2014.04-smarct33, v2014.04-smarct33-emmc, v2014.04-smartmen, v2014.07, v2014.07-smarct33, v2014.07-smartmen, v2015.07-smarct33, v2015.07-smarct33-emmc, v2015.07-smarct4x, v2016.05-dlt, v2016.05-smarct3x, v2016.05-smarct3x-emmc, v2016.05-smarct4x, v2017.01-smarct3x, v2017.01-smarct3x-emmc, v2017.01-smarct4x

A4M072: Added support for the board.

This patch provides support for the A4M072 board with the following features:
 UART
 NOR flash
 FEC Ethernet
 External SRAM
 I2C EEPROM
 CompactFlash cards on IDE/ATA port
 USB Host
 PCI initialization

The 7-segment LED indicator is not yet supported.

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>

Showing 8 changed files with 777 additions and 5 deletions Side-by-side Diff

... ... @@ -305,6 +305,10 @@
305 305  
306 306 PPChameleonEVB PPC405EP
307 307  
  308 +Tirumala Marri <tmarri@apm.com>
  309 +
  310 + bluestone APM821XX
  311 +
308 312 Reinhard Meyer <r.meyer@emk-elektronik.de>
309 313  
310 314 TOP860 MPC860T
... ... @@ -343,6 +347,10 @@
343 347 sbc8240 MPC8240
344 348 sbc405 PPC405GP
345 349  
  350 +Sergei Poselenov <sposelenov@emcraft.com>
  351 +
  352 + a4m072 MPC5200
  353 +
346 354 Sudhakar Rajashekhara <sudhakar.raj@ti.com>
347 355  
348 356 da850evm ARM926EJS (DA850/OMAP-L138)
... ... @@ -497,10 +505,6 @@
497 505 Detlev Zundel <dzu@denx.de>
498 506  
499 507 inka4x0 MPC5200
500   -
501   -Tirumala Marri <tmarri@apm.com>
502   -
503   - bluestone APM821XX
504 508  
505 509 -------------------------------------------------------------------------
506 510  
board/a4m072/Makefile
  1 +#
  2 +# (C) Copyright 2003-2006
  3 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  4 +#
  5 +# See file CREDITS for list of people who contributed to this
  6 +# project.
  7 +#
  8 +# This program is free software; you can redistribute it and/or
  9 +# modify it under the terms of the GNU General Public License as
  10 +# published by the Free Software Foundation; either version 2 of
  11 +# the License, or (at your option) any later version.
  12 +#
  13 +# This program is distributed in the hope that it will be useful,
  14 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 +# GNU General Public License for more details.
  17 +#
  18 +# You should have received a copy of the GNU General Public License
  19 +# along with this program; if not, write to the Free Software
  20 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 +# MA 02111-1307 USA
  22 +#
  23 +
  24 +include $(TOPDIR)/config.mk
  25 +
  26 +LIB = $(obj)lib$(BOARD).a
  27 +
  28 +COBJS := $(BOARD).o
  29 +
  30 +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
  31 +OBJS := $(addprefix $(obj),$(COBJS))
  32 +SOBJS := $(addprefix $(obj),$(SOBJS))
  33 +
  34 +$(LIB): $(obj).depend $(OBJS)
  35 + $(AR) $(ARFLAGS) $@ $(OBJS)
  36 +
  37 +clean:
  38 + rm -f $(SOBJS) $(OBJS)
  39 +
  40 +distclean: clean
  41 + rm -f $(LIB) core *.bak $(obj).depend
  42 +
  43 +#########################################################################
  44 +
  45 +# defines $(obj).depend target
  46 +include $(SRCTREE)/rules.mk
  47 +
  48 +sinclude $(obj).depend
  49 +
  50 +#########################################################################
board/a4m072/a4m072.c
  1 +/*
  2 + * (C) Copyright 2003
  3 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  4 + *
  5 + * (C) Copyright 2004
  6 + * Mark Jonas, Freescale Semiconductor, mark.jonas@motorola.com.
  7 + *
  8 + * (C) Copyright 2010
  9 + * Sergei Poselenov, Emcraft Systems, sposelenov@emcraft.com.
  10 + *
  11 + * See file CREDITS for list of people who contributed to this
  12 + * project.
  13 + *
  14 + * This program is free software; you can redistribute it and/or
  15 + * modify it under the terms of the GNU General Public License as
  16 + * published by the Free Software Foundation; either version 2 of
  17 + * the License, or (at your option) any later version.
  18 + *
  19 + * This program is distributed in the hope that it will be useful,
  20 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  21 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  22 + * GNU General Public License for more details.
  23 + *
  24 + * You should have received a copy of the GNU General Public License
  25 + * along with this program; if not, write to the Free Software
  26 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  27 + * MA 02111-1307 USA
  28 + */
  29 +
  30 +#include <common.h>
  31 +#include <mpc5xxx.h>
  32 +#include <pci.h>
  33 +#include <asm/processor.h>
  34 +#include <asm/io.h>
  35 +#include <libfdt.h>
  36 +#include <netdev.h>
  37 +
  38 +#include "mt46v32m16.h"
  39 +
  40 +#ifndef CONFIG_SYS_RAMBOOT
  41 +static void sdram_start (int hi_addr)
  42 +{
  43 + long hi_addr_bit = hi_addr ? 0x01000000 : 0;
  44 + long control = SDRAM_CONTROL | hi_addr_bit;
  45 +
  46 + /* unlock mode register */
  47 + out_be32((void *)MPC5XXX_SDRAM_CTRL, control | 0x80000000);
  48 + __asm__ volatile ("sync");
  49 +
  50 + /* precharge all banks */
  51 + out_be32((void *)MPC5XXX_SDRAM_CTRL, control | 0x80000002);
  52 + __asm__ volatile ("sync");
  53 +
  54 +#if SDRAM_DDR
  55 + /* set mode register: extended mode */
  56 + out_be32((void *)MPC5XXX_SDRAM_MODE, SDRAM_EMODE);
  57 + __asm__ volatile ("sync");
  58 +
  59 + /* set mode register: reset DLL */
  60 + out_be32((void *)MPC5XXX_SDRAM_MODE, SDRAM_MODE | 0x04000000);
  61 + __asm__ volatile ("sync");
  62 +#endif
  63 +
  64 + /* precharge all banks */
  65 + out_be32((void *)MPC5XXX_SDRAM_CTRL, control | 0x80000002);
  66 + __asm__ volatile ("sync");
  67 +
  68 + /* auto refresh */
  69 + out_be32((void *)MPC5XXX_SDRAM_CTRL, control | 0x80000004);
  70 + __asm__ volatile ("sync");
  71 +
  72 + /* set mode register */
  73 + out_be32((void *)MPC5XXX_SDRAM_MODE, SDRAM_MODE);
  74 + __asm__ volatile ("sync");
  75 +
  76 + /* normal operation */
  77 + out_be32((void *)MPC5XXX_SDRAM_CTRL, control);
  78 + __asm__ volatile ("sync");
  79 +}
  80 +#endif
  81 +
  82 +/*
  83 + * ATTENTION: Although partially referenced initdram does NOT make real use
  84 + * use of CONFIG_SYS_SDRAM_BASE. The code does not work if CONFIG_SYS_SDRAM_BASE
  85 + * is something else than 0x00000000.
  86 + */
  87 +
  88 +phys_size_t initdram (int board_type)
  89 +{
  90 + ulong dramsize = 0;
  91 + uint svr, pvr;
  92 +
  93 +#ifndef CONFIG_SYS_RAMBOOT
  94 + ulong test1, test2;
  95 +
  96 + /* setup SDRAM chip selects */
  97 + out_be32((void *)MPC5XXX_SDRAM_CS0CFG, 0x0000001e); /* 2GB at 0x0 */
  98 + out_be32((void *)MPC5XXX_SDRAM_CS1CFG, 0x80000000); /* disabled */
  99 + __asm__ volatile ("sync");
  100 +
  101 + /* setup config registers */
  102 + out_be32((void *)MPC5XXX_SDRAM_CONFIG1, SDRAM_CONFIG1);
  103 + out_be32((void *)MPC5XXX_SDRAM_CONFIG2, SDRAM_CONFIG2);
  104 + __asm__ volatile ("sync");
  105 +
  106 +#if SDRAM_DDR
  107 + /* set tap delay */
  108 + out_be32((void *)MPC5XXX_CDM_PORCFG, SDRAM_TAPDELAY);
  109 + __asm__ volatile ("sync");
  110 +#endif
  111 +
  112 + /* find RAM size using SDRAM CS0 only */
  113 + sdram_start(0);
  114 + test1 = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, 0x80000000);
  115 + sdram_start(1);
  116 + test2 = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, 0x80000000);
  117 + if (test1 > test2) {
  118 + sdram_start(0);
  119 + dramsize = test1;
  120 + } else {
  121 + dramsize = test2;
  122 + }
  123 +
  124 + /* memory smaller than 1MB is impossible */
  125 + if (dramsize < (1 << 20)) {
  126 + dramsize = 0;
  127 + }
  128 +
  129 + /* set SDRAM CS0 size according to the amount of RAM found */
  130 + if (dramsize > 0) {
  131 + out_be32((void *)MPC5XXX_SDRAM_CS0CFG,
  132 + 0x13 + __builtin_ffs(dramsize >> 20) - 1);
  133 + } else {
  134 + out_be32((void *)MPC5XXX_SDRAM_CS0CFG, 0); /* disabled */
  135 + }
  136 +
  137 +#else /* CONFIG_SYS_RAMBOOT */
  138 +
  139 + /* retrieve size of memory connected to SDRAM CS0 */
  140 + dramsize = in_be32((void *)MPC5XXX_SDRAM_CS0CFG) & 0xFF;
  141 + if (dramsize >= 0x13) {
  142 + dramsize = (1 << (dramsize - 0x13)) << 20;
  143 + } else {
  144 + dramsize = 0;
  145 + }
  146 +
  147 +#endif /* CONFIG_SYS_RAMBOOT */
  148 +
  149 + /*
  150 + * On MPC5200B we need to set the special configuration delay in the
  151 + * DDR controller. Please refer to Freescale's AN3221 "MPC5200B SDRAM
  152 + * Initialization and Configuration", 3.3.1 SDelay--MBAR + 0x0190:
  153 + *
  154 + * "The SDelay should be written to a value of 0x00000004. It is
  155 + * required to account for changes caused by normal wafer processing
  156 + * parameters."
  157 + */
  158 + svr = get_svr();
  159 + pvr = get_pvr();
  160 + if ((SVR_MJREV(svr) >= 2) &&
  161 + (PVR_MAJ(pvr) == 1) && (PVR_MIN(pvr) == 4)) {
  162 +
  163 + out_be32((void *)MPC5XXX_SDRAM_SDELAY, 0x04);
  164 + __asm__ volatile ("sync");
  165 + }
  166 +
  167 + return dramsize;
  168 +}
  169 +
  170 +int checkboard (void)
  171 +{
  172 + puts ("Board: A4M072\n");
  173 + return 0;
  174 +}
  175 +
  176 +#ifdef CONFIG_PCI
  177 +static struct pci_controller hose;
  178 +
  179 +extern void pci_mpc5xxx_init(struct pci_controller *);
  180 +
  181 +void pci_init_board(void)
  182 +{
  183 + pci_mpc5xxx_init(&hose);
  184 +}
  185 +#endif
  186 +
  187 +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
  188 +void
  189 +ft_board_setup(void *blob, bd_t *bd)
  190 +{
  191 + ft_cpu_setup(blob, bd);
  192 +}
  193 +#endif
  194 +
  195 +int board_eth_init(bd_t *bis)
  196 +{
  197 + int rv, num_if = 0;
  198 +
  199 + /* Initialize TSECs first */
  200 + if ((rv = cpu_eth_init(bis)) >= 0)
  201 + num_if += rv;
  202 + else
  203 + printf("ERROR: failed to initialize FEC.\n");
  204 +
  205 + if ((rv = pci_eth_init(bis)) >= 0)
  206 + num_if += rv;
  207 + else
  208 + printf("ERROR: failed to initialize PCI Ethernet.\n");
  209 +
  210 + return num_if;
  211 +}
  212 +/*
  213 + * Miscellaneous late-boot configurations
  214 + *
  215 + * Initialize EEPROM write-protect GPIO pin.
  216 + */
  217 +int misc_init_r(void)
  218 +{
  219 +#if defined(CONFIG_SYS_EEPROM_WREN)
  220 + /* Enable GPIO pin */
  221 + setbits_be32((void *)MPC5XXX_WU_GPIO_ENABLE, CONFIG_SYS_EEPROM_WP);
  222 + /* Set direction, output */
  223 + setbits_be32((void *)MPC5XXX_WU_GPIO_DIR, CONFIG_SYS_EEPROM_WP);
  224 + /* De-assert write enable */
  225 + setbits_be32((void *)MPC5XXX_WU_GPIO_DATA_O, CONFIG_SYS_EEPROM_WP);
  226 +#endif
  227 + return 0;
  228 +}
  229 +#if defined(CONFIG_SYS_EEPROM_WREN)
  230 +/* Input: <dev_addr> I2C address of EEPROM device to enable.
  231 + * <state> -1: deliver current state
  232 + * 0: disable write
  233 + * 1: enable write
  234 + * Returns: -1: wrong device address
  235 + * 0: dis-/en- able done
  236 + * 0/1: current state if <state> was -1.
  237 + */
  238 +int eeprom_write_enable (unsigned dev_addr, int state)
  239 +{
  240 + if (CONFIG_SYS_I2C_EEPROM_ADDR != dev_addr) {
  241 + return -1;
  242 + } else {
  243 + switch (state) {
  244 + case 1:
  245 + /* Enable write access */
  246 + clrbits_be32((void *)MPC5XXX_WU_GPIO_DATA_O, CONFIG_SYS_EEPROM_WP);
  247 + state = 0;
  248 + break;
  249 + case 0:
  250 + /* Disable write access */
  251 + setbits_be32((void *)MPC5XXX_WU_GPIO_DATA_O, CONFIG_SYS_EEPROM_WP);
  252 + state = 0;
  253 + break;
  254 + default:
  255 + /* Read current status back. */
  256 + state = (0 == (in_be32((void *)MPC5XXX_WU_GPIO_DATA_O) &
  257 + CONFIG_SYS_EEPROM_WP));
  258 + break;
  259 + }
  260 + }
  261 + return state;
  262 +}
  263 +#endif
board/a4m072/config.mk
  1 +#
  2 +# (C) Copyright 2003
  3 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  4 +#
  5 +# See file CREDITS for list of people who contributed to this
  6 +# project.
  7 +#
  8 +# This program is free software; you can redistribute it and/or
  9 +# modify it under the terms of the GNU General Public License as
  10 +# published by the Free Software Foundation; either version 2 of
  11 +# the License, or (at your option) any later version.
  12 +#
  13 +# This program is distributed in the hope that it will be useful,
  14 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 +# GNU General Public License for more details.
  17 +#
  18 +# You should have received a copy of the GNU General Public License
  19 +# along with this program; if not, write to the Free Software
  20 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 +# MA 02111-1307 USA
  22 +#
  23 +
  24 +#
  25 +# a4m072 board:
  26 +#
  27 +# Valid values for TEXT_BASE is:
  28 +#
  29 +# 0xFE000000 boot low
  30 +#
  31 +
  32 +sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
  33 +
  34 +ifndef TEXT_BASE
  35 +## Standard: boot low
  36 +TEXT_BASE = 0xFE000000
  37 +endif
  38 +
  39 +PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -I$(TOPDIR)/board
board/a4m072/mt46v32m16.h
  1 +/*
  2 + * (C) Copyright 2004
  3 + * Mark Jonas, Freescale Semiconductor, mark.jonas@motorola.com.
  4 + *
  5 + * See file CREDITS for list of people who contributed to this
  6 + * project.
  7 + *
  8 + * This program is free software; you can redistribute it and/or
  9 + * modify it under the terms of the GNU General Public License as
  10 + * published by the Free Software Foundation; either version 2 of
  11 + * the License, or (at your option) any later version.
  12 + *
  13 + * This program is distributed in the hope that it will be useful,
  14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 + * GNU General Public License for more details.
  17 + *
  18 + * You should have received a copy of the GNU General Public License
  19 + * along with this program; if not, write to the Free Software
  20 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 + * MA 02111-1307 USA
  22 + */
  23 +
  24 +#define SDRAM_DDR 1 /* is DDR */
  25 +
  26 +#if defined(CONFIG_MPC5200)
  27 +/* Settings for XLB = 132 MHz */
  28 +#define SDRAM_MODE 0x018D0000
  29 +#define SDRAM_EMODE 0x40010000
  30 +#define SDRAM_CONTROL 0x704f0f00
  31 +#define SDRAM_CONFIG1 0x73722930
  32 +#define SDRAM_CONFIG2 0x47770000
  33 +#define SDRAM_TAPDELAY 0x10000000
  34 +
  35 +#else
  36 +#error CONFIG_MPC5200 not defined
  37 +#endif
... ... @@ -90,6 +90,7 @@
90 90 DB64460 powerpc 74xx_7xx db64460 Marvell
91 91 aria powerpc mpc512x - davedenx
92 92 PATI powerpc mpc5xx pati mpl
  93 +a4m072 powerpc mpc5xxx a4m072
93 94 BC3450 powerpc mpc5xxx bc3450
94 95 canmb powerpc mpc5xxx
95 96 cm5200 powerpc mpc5xxx
include/configs/a4m072.h
  1 +/*
  2 + * (C) Copyright 2003-2005
  3 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  4 + *
  5 + * (C) Copyright 2010
  6 + * Sergei Poselenov, Emcraft Systems, sposelenov@emcraft.com.
  7 + *
  8 + * See file CREDITS for list of people who contributed to this
  9 + * project.
  10 + *
  11 + * This program is free software; you can redistribute it and/or
  12 + * modify it under the terms of the GNU General Public License as
  13 + * published by the Free Software Foundation; either version 2 of
  14 + * the License, or (at your option) any later version.
  15 + *
  16 + * This program is distributed in the hope that it will be useful,
  17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19 + * GNU General Public License for more details.
  20 + *
  21 + * You should have received a copy of the GNU General Public License
  22 + * along with this program; if not, write to the Free Software
  23 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  24 + * MA 02111-1307 USA
  25 + */
  26 +
  27 +#ifndef __CONFIG_H
  28 +#define __CONFIG_H
  29 +
  30 +/*
  31 + * High Level Configuration Options
  32 + * (easy to change)
  33 + */
  34 +
  35 +#define CONFIG_MPC5xxx 1 /* This is an MPC5xxx CPU */
  36 +#define CONFIG_MPC5200 1 /* (more precisely a MPC5200 CPU) */
  37 +#define CONFIG_A4M072 1 /* ... on A4M072 board */
  38 +#define CONFIG_MPC5200_DDR 1 /* ... use DDR RAM */
  39 +
  40 +#define CONFIG_MISC_INIT_R
  41 +
  42 +#define CONFIG_SYS_MPC5XXX_CLKIN 33000000 /* ... running at 33.000000MHz */
  43 +
  44 +#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
  45 +#define BOOTFLAG_WARM 0x02 /* Software reboot */
  46 +
  47 +#define CONFIG_HIGH_BATS 1 /* High BATs supported */
  48 +
  49 +/*
  50 + * Serial console configuration
  51 + */
  52 +#define CONFIG_PSC_CONSOLE 1 /* console is on PSC1 */
  53 +#define CONFIG_BAUDRATE 9600 /* ... at 9600 bps */
  54 +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
  55 +/* define to enable silent console */
  56 +#define CONFIG_SILENT_CONSOLE
  57 +#define CONFIG_SYS_DEVICE_NULLDEV 1 /* include nulldev device */
  58 +
  59 +/*
  60 + * PCI Mapping:
  61 + * 0x40000000 - 0x4fffffff - PCI Memory
  62 + * 0x50000000 - 0x50ffffff - PCI IO Space
  63 + */
  64 +#define CONFIG_PCI
  65 +
  66 +#if defined(CONFIG_PCI)
  67 +#define CONFIG_PCI_PNP 1
  68 +#define CONFIG_PCI_SCAN_SHOW 1
  69 +#define CONFIG_PCIAUTO_SKIP_HOST_BRIDGE 1
  70 +
  71 +#define CONFIG_PCI_MEM_BUS 0x40000000
  72 +#define CONFIG_PCI_MEM_PHYS CONFIG_PCI_MEM_BUS
  73 +#define CONFIG_PCI_MEM_SIZE 0x10000000
  74 +
  75 +#define CONFIG_PCI_IO_BUS 0x50000000
  76 +#define CONFIG_PCI_IO_PHYS CONFIG_PCI_IO_BUS
  77 +#define CONFIG_PCI_IO_SIZE 0x01000000
  78 +#endif
  79 +
  80 +#define CONFIG_SYS_XLB_PIPELINING 1
  81 +
  82 +#undef CONFIG_NET_MULTI
  83 +#undef CONFIG_EEPRO100
  84 +
  85 +/* Partitions */
  86 +#define CONFIG_MAC_PARTITION
  87 +#define CONFIG_DOS_PARTITION
  88 +
  89 +/* USB */
  90 +#define CONFIG_USB_OHCI_NEW
  91 +#define CONFIG_USB_STORAGE
  92 +#define CONFIG_SYS_OHCI_BE_CONTROLLER
  93 +#undef CONFIG_SYS_USB_OHCI_BOARD_INIT
  94 +#define CONFIG_SYS_USB_OHCI_CPU_INIT 1
  95 +#define CONFIG_SYS_USB_OHCI_REGS_BASE MPC5XXX_USB
  96 +#define CONFIG_SYS_USB_OHCI_SLOT_NAME "mpc5200"
  97 +#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 15
  98 +
  99 +#define CONFIG_TIMESTAMP /* Print image info with timestamp */
  100 +
  101 +/*
  102 + * BOOTP options
  103 + */
  104 +#define CONFIG_BOOTP_BOOTFILESIZE
  105 +#define CONFIG_BOOTP_BOOTPATH
  106 +#define CONFIG_BOOTP_GATEWAY
  107 +#define CONFIG_BOOTP_HOSTNAME
  108 +
  109 +
  110 +/*
  111 + * Command line configuration.
  112 + */
  113 +#include <config_cmd_default.h>
  114 +
  115 +#define CONFIG_CMD_EEPROM
  116 +#define CONFIG_CMD_FAT
  117 +#define CONFIG_CMD_I2C
  118 +#define CONFIG_CMD_IDE
  119 +#define CONFIG_CMD_NFS
  120 +#define CONFIG_CMD_SNTP
  121 +#define CONFIG_CMD_USB
  122 +#define CONFIG_CMD_MII
  123 +#define CONFIG_CMD_DHCP
  124 +#define CONFIG_CMD_PING
  125 +
  126 +#if defined(CONFIG_PCI)
  127 +#define CONFIG_CMD_PCI
  128 +#endif
  129 +
  130 +#if (TEXT_BASE == 0xFE000000) /* Boot low with 32 MB Flash */
  131 +#define CONFIG_SYS_LOWBOOT 1
  132 +#define CONFIG_SYS_LOWBOOT32 1
  133 +#endif
  134 +
  135 +/*
  136 + * Autobooting
  137 + */
  138 +#define CONFIG_BOOTDELAY 2 /* autoboot after 2 seconds */
  139 +
  140 +#define CONFIG_SYS_AUTOLOAD "n"
  141 +
  142 +#define CONFIG_AUTOBOOT_KEYED
  143 +#define CONFIG_AUTOBOOT_PROMPT "autoboot in %d seconds\n", bootdelay
  144 +#define CONFIG_AUTOBOOT_DELAY_STR "asdfg"
  145 +
  146 +#undef CONFIG_BOOTARGS
  147 +#define CONFIG_PREBOOT "run try_update"
  148 +
  149 +#define CONFIG_EXTRA_ENV_SETTINGS \
  150 + "bk=run add_mtd ; run add_consolespec ; bootm 200000\0" \
  151 + "cf1=diskboot 200000 0:1\0" \
  152 + "bootcmd_cf1=run bcf1\0" \
  153 + "bcf=setenv bootargs root=/dev/hda3\0" \
  154 + "bootcmd_nfs=run bnfs\0" \
  155 + "norargs=setenv bootargs root=/dev/mtdblock3 rootfstype=cramfs\0" \
  156 + "bootcmd_nor=cp.b ${kernel_addr} 200000 100000; run norargs addip; run bk\0" \
  157 + "bnfs=nfs 200000 ${rootpath}/boot/uImage ; run nfsargs addip ; run bk\0" \
  158 + "nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}\0" \
  159 + "try_update=usb start;sleep 2;usb start;sleep 1;fatload usb 0 2F0000 PCPUUPDT 2FF;usb stop;source 2F0000\0" \
  160 + "env_addr=FE060000\0" \
  161 + "kernel_addr=FE100000\0" \
  162 + "rootfs_addr=FE200000\0" \
  163 + "add_mtd=setenv bootargs ${bootargs} mtdparts=phys_mapped_flash:384k(u),640k(e),1m(k),30m(r)\0" \
  164 + "bcf1=run cf1; run bcf; run addip; run bk\0" \
  165 + "add_consolespec=setenv bootargs ${bootargs} console=/dev/null quiet\0" \
  166 + "addip=if test \"${ethaddr}\" != \"00:00:00:00:00:00\" ; then if test -n ${ipaddr}; then setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1; fi ; fi\0" \
  167 + "hostname=CPUP0\0" \
  168 + "ethaddr=00:00:00:00:00:00\0" \
  169 + "netdev=eth0\0" \
  170 + "bootcmd=run bootcmd_nor\0" \
  171 + ""
  172 +/*
  173 + * IPB Bus clocking configuration.
  174 + */
  175 +#undef CONFIG_SYS_IPBCLK_EQUALS_XLBCLK /* define for 133MHz speed */
  176 +
  177 +/*
  178 + * I2C configuration
  179 + */
  180 +#define CONFIG_HARD_I2C 1 /* I2C with hardware support */
  181 +#define CONFIG_SYS_I2C_MODULE 2 /* Select I2C module #1 or #2 */
  182 +
  183 +#define CONFIG_SYS_I2C_SPEED 100000 /* 100 kHz */
  184 +#define CONFIG_SYS_I2C_SLAVE 0x7F
  185 +
  186 +/*
  187 + * EEPROM configuration
  188 + */
  189 +#define CONFIG_SYS_I2C_EEPROM_ADDR 0x52 /* 1010010x */
  190 +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
  191 +#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 6
  192 +#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
  193 +#define CONFIG_SYS_EEPROM_WREN 1
  194 +#define CONFIG_SYS_EEPROM_WP GPIO_PSC2_4
  195 +
  196 +/*
  197 + * Flash configuration
  198 + */
  199 +#define CONFIG_SYS_FLASH_BASE 0xFE000000
  200 +#define CONFIG_SYS_FLASH_SIZE 0x02000000
  201 +#if !defined(CONFIG_SYS_LOWBOOT)
  202 +#error "CONFIG_SYS_LOWBOOT not defined?"
  203 +#else /* CONFIG_SYS_LOWBOOT */
  204 +#if defined(CONFIG_SYS_LOWBOOT32)
  205 +#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x00060000)
  206 +#endif
  207 +#endif /* CONFIG_SYS_LOWBOOT */
  208 +
  209 +#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max num of memory banks */
  210 +#define CONFIG_SYS_MAX_FLASH_SECT 256 /* max num of sects on one chip */
  211 +#define CONFIG_FLASH_CFI_DRIVER
  212 +#define CONFIG_SYS_FLASH_CFI
  213 +#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_16BIT
  214 +#define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_CS0_START}
  215 +
  216 +/*
  217 + * Environment settings
  218 + */
  219 +#define CONFIG_ENV_IS_IN_FLASH 1
  220 +#define CONFIG_ENV_SIZE 0x10000
  221 +#define CONFIG_ENV_SECT_SIZE 0x20000
  222 +#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE)
  223 +#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
  224 +
  225 +#define CONFIG_ENV_OVERWRITE 1
  226 +
  227 +/*
  228 + * Memory map
  229 + */
  230 +#define CONFIG_SYS_MBAR 0xF0000000
  231 +#define CONFIG_SYS_SDRAM_BASE 0x00000000
  232 +#define CONFIG_SYS_DEFAULT_MBAR 0x80000000
  233 +
  234 +/* Use SRAM until RAM will be available */
  235 +#define CONFIG_SYS_INIT_RAM_ADDR MPC5XXX_SRAM
  236 +#define CONFIG_SYS_INIT_RAM_END MPC5XXX_SRAM_SIZE /* End of used area in DPRAM */
  237 +
  238 +
  239 +#define CONFIG_SYS_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */
  240 +#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_END - CONFIG_SYS_GBL_DATA_SIZE)
  241 +#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET
  242 +
  243 +#define CONFIG_SYS_MONITOR_BASE TEXT_BASE
  244 +#if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE)
  245 +# define CONFIG_SYS_RAMBOOT 1
  246 +#endif
  247 +
  248 +#define CONFIG_SYS_MONITOR_LEN (384 << 10) /* Reserve 384 kB for Monitor */
  249 +#define CONFIG_SYS_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
  250 +#define CONFIG_SYS_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
  251 +
  252 +/*
  253 + * Ethernet configuration
  254 + */
  255 +#define CONFIG_MPC5xxx_FEC 1
  256 +#define CONFIG_MPC5xxx_FEC_MII100
  257 +/*
  258 + * Define CONFIG_MPC5xxx_FEC_MII10 to force FEC at 10Mb
  259 + */
  260 +/* #define CONFIG_MPC5xxx_FEC_MII10 */
  261 +#define CONFIG_PHY_ADDR 0x1f
  262 +#define CONFIG_PHY_TYPE 0x79c874 /* AMD Phy Controller */
  263 +
  264 +/*
  265 + * GPIO configuration
  266 + */
  267 +#define CONFIG_SYS_GPS_PORT_CONFIG 0x10000004
  268 +
  269 +/*
  270 + * Miscellaneous configurable options
  271 + */
  272 +#define CONFIG_SYS_HUSH_PARSER
  273 +#define CONFIG_CMDLINE_EDITING 1
  274 +#ifdef CONFIG_SYS_HUSH_PARSER
  275 +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
  276 +#endif
  277 +#define CONFIG_SYS_LONGHELP /* undef to save memory */
  278 +#define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */
  279 +#if defined(CONFIG_CMD_KGDB)
  280 +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
  281 +#else
  282 +#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
  283 +#endif
  284 +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
  285 +#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
  286 +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */
  287 +
  288 +#define CONFIG_SYS_MEMTEST_START 0x00100000 /* memtest works on */
  289 +#define CONFIG_SYS_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
  290 +
  291 +#define CONFIG_SYS_LOAD_ADDR 0x100000 /* default load address */
  292 +
  293 +#define CONFIG_SYS_HZ 1000 /* decrementer freq: 1 ms ticks */
  294 +
  295 +#define CONFIG_SYS_CACHELINE_SIZE 32 /* For MPC5xxx CPUs */
  296 +#if defined(CONFIG_CMD_KGDB)
  297 +# define CONFIG_SYS_CACHELINE_SHIFT 5 /* log base 2 of the above value */
  298 +#endif
  299 +
  300 +
  301 +/*
  302 + * Various low-level settings
  303 + */
  304 +#define CONFIG_SYS_HID0_INIT HID0_ICE | HID0_ICFI
  305 +#define CONFIG_SYS_HID0_FINAL HID0_ICE
  306 +/* Flash at CSBoot, CS0 */
  307 +#define CONFIG_SYS_BOOTCS_START CONFIG_SYS_FLASH_BASE
  308 +#define CONFIG_SYS_BOOTCS_SIZE CONFIG_SYS_FLASH_SIZE
  309 +#define CONFIG_SYS_BOOTCS_CFG 0x0002DD00
  310 +#define CONFIG_SYS_CS0_START CONFIG_SYS_FLASH_BASE
  311 +#define CONFIG_SYS_CS0_SIZE CONFIG_SYS_FLASH_SIZE
  312 +/* External SRAM at CS1 */
  313 +#define CONFIG_SYS_CS1_START 0x62000000
  314 +#define CONFIG_SYS_CS1_SIZE 0x00400000
  315 +#define CONFIG_SYS_CS1_CFG 0x00009930
  316 +#define CONFIG_SYS_SRAM_BASE CONFIG_SYS_CS1_START
  317 +#define CONFIG_SYS_SRAM_SIZE CONFIG_SYS_CS1_SIZE
  318 +
  319 +
  320 +#define CONFIG_SYS_CS_BURST 0x00000000
  321 +#define CONFIG_SYS_CS_DEADCYCLE 0x33333003
  322 +
  323 +#define CONFIG_SYS_RESET_ADDRESS 0xff000000
  324 +
  325 +/*-----------------------------------------------------------------------
  326 + * USB stuff
  327 + *-----------------------------------------------------------------------
  328 + */
  329 +#define CONFIG_USB_CLOCK 0x0001BBBB
  330 +#define CONFIG_USB_CONFIG 0x00001000 /* 0x4000 for SE mode */
  331 +
  332 +/*-----------------------------------------------------------------------
  333 + * IDE/ATA stuff Supports IDE harddisk
  334 + *-----------------------------------------------------------------------
  335 + */
  336 +
  337 +#undef CONFIG_IDE_8xx_PCCARD /* Use IDE with PC Card Adapter */
  338 +
  339 +#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
  340 +#undef CONFIG_IDE_LED /* LED for ide not supported */
  341 +
  342 +#define CONFIG_IDE_PREINIT
  343 +
  344 +#define CONFIG_SYS_IDE_MAXBUS 1 /* max. 1 IDE bus */
  345 +#define CONFIG_SYS_IDE_MAXDEVICE 1 /* max. 2 drives per IDE bus */
  346 +
  347 +#define CONFIG_SYS_ATA_IDE0_OFFSET 0x0000
  348 +
  349 +#define CONFIG_SYS_ATA_BASE_ADDR MPC5XXX_ATA
  350 +
  351 +/* Offset for data I/O */
  352 +#define CONFIG_SYS_ATA_DATA_OFFSET (0x0060)
  353 +
  354 +/* Offset for normal register accesses */
  355 +#define CONFIG_SYS_ATA_REG_OFFSET (CONFIG_SYS_ATA_DATA_OFFSET)
  356 +
  357 +/* Offset for alternate registers */
  358 +#define CONFIG_SYS_ATA_ALT_OFFSET (0x005C)
  359 +
  360 +/* Interval between registers */
  361 +#define CONFIG_SYS_ATA_STRIDE 4
  362 +
  363 +#define CONFIG_ATAPI 1
  364 +
  365 +/*-----------------------------------------------------------------------
  366 + * Open firmware flat tree support
  367 + *-----------------------------------------------------------------------
  368 + */
  369 +#define CONFIG_OF_LIBFDT 1
  370 +#define CONFIG_OF_BOARD_SETUP 1
  371 +
  372 +#define OF_CPU "PowerPC,5200@0"
  373 +#define OF_SOC "soc5200@f0000000"
  374 +#define OF_TBCLK (bd->bi_busfreq / 4)
  375 +#define OF_STDOUT_PATH "/soc5200@f0000000/serial@2000"
  376 +
  377 +#endif /* __CONFIG_H */
... ... @@ -160,11 +160,12 @@
160 160 #define MPC5XXX_WU_GPIO_DATA_O (MPC5XXX_WU_GPIO + 0x000c)
161 161 #define MPC5XXX_WU_GPIO_DATA_I (MPC5XXX_WU_GPIO + 0x0020)
162 162  
163   -/* GPIO pins */
  163 +/* GPIO pins, for Rev.B chip */
164 164 #define GPIO_WKUP_7 0x80000000UL
165 165 #define GPIO_PSC6_0 0x10000000UL
166 166 #define GPIO_PSC3_9 0x04000000UL
167 167 #define GPIO_PSC1_4 0x01000000UL
  168 +#define GPIO_PSC2_4 0x02000000UL
168 169  
169 170 #define MPC5XXX_GPIO_SIMPLE_PSC6_3 0x20000000UL
170 171 #define MPC5XXX_GPIO_SIMPLE_PSC6_2 0x10000000UL