Initial revision
This commit is contained in:
parent
7ebf7443ad
commit
e221174377
69
board/hymod/global_env
Normal file
69
board/hymod/global_env
Normal file
@ -0,0 +1,69 @@
|
||||
# format of this file is:
|
||||
#
|
||||
# 1. blank lines and lines beginning with '#' are ignored
|
||||
# 2. all other lines must have the form <name>=<value>
|
||||
# 3. if a percent appears anywhere, it is replaced like so:
|
||||
#
|
||||
# %s serial number of the main board (10 digit zero filled)
|
||||
# %S serial number of the main board (plain number)
|
||||
# %% a percentage character
|
||||
#
|
||||
# no whitespace is removed in either <name> or <value>
|
||||
#
|
||||
# if first character in <name> is a dash ('-'), then an existing env var
|
||||
# will not be overwritten (the dash is removed).
|
||||
#
|
||||
# if last character in <name> is a plus ('+'), then <value> will be appended
|
||||
# to any existing env var (the plus is removed). Duplicates of <value> are
|
||||
# removed.
|
||||
#
|
||||
|
||||
# set the ip address based on the main board serial number
|
||||
ipaddr=192.168.1.%S
|
||||
serverip=192.168.1.254
|
||||
|
||||
# stop auto execute after tftp
|
||||
autostart=no
|
||||
|
||||
#
|
||||
# 16M flash map, 64 x 256K sectors, mapped at address 0x40000000
|
||||
#
|
||||
# sector 0: boot
|
||||
# sector 1: non volatile environment
|
||||
# sectors 2-4: linux kernel image
|
||||
# sectors 5-7: alternate linux kernel image
|
||||
# sectors 8-63: linux initial ramdisk image
|
||||
#
|
||||
|
||||
fetchboot=tftp 100000 /hymod/u-boot.bin
|
||||
eraseboot=protect off 1:0 ; erase 1:0 ; protect on 1:0
|
||||
copyboot=protect off 1:0 ; cp.b 100000 40000000 40000 ; protect on 1:0
|
||||
cmpboot=cmp.b 100000 40000000 40000
|
||||
newboot=run fetchboot eraseboot copyboot cmpboot
|
||||
|
||||
fetchlinux=tftp 100000 /hymod/linux.bin
|
||||
eraselinux=erase 1:2-4
|
||||
copylinux=cp.b 100000 40080000 $(filesize)
|
||||
cmplinux=cmp.b 100000 40080000 $(filesize)
|
||||
newlinux=run fetchlinux eraselinux copylinux cmplinux
|
||||
|
||||
fetchaltlinux=tftp 100000 /hymod/altlinux.bin
|
||||
erasealtlinux=erase 1:5-7
|
||||
copyaltlinux=cp.b 100000 40080000 $(filesize)
|
||||
cmpaltlinux=cmp.b 100000 40080000 $(filesize)
|
||||
newaltlinux=run fetchaltlinux erasealtlinux copyaltlinux cmpaltlinux
|
||||
|
||||
fetchird=tftp 100000 /hymod/initrd.bin
|
||||
eraseird=erase 1:8-63
|
||||
copyird=cp.b 100000 40200000 $(filesize)
|
||||
cmpird=cmp.b 100000 40200000 $(filesize)
|
||||
newinitrd=run fetchird eraseird copyird cmpird
|
||||
|
||||
bootcmd=bootm 40080000 40200000
|
||||
-bootargs=root=/dev/ram rw
|
||||
# these are for hymod linux
|
||||
bootargs+=preload=unix,i2c-cpm,i2c-dev
|
||||
bootargs+=serialno=%S
|
||||
bootargs+=ramdisk_size=32768
|
||||
bootargs+=automount nisclient nisdomain=mlb.dmt.csiro.au nissrvadr=138.194.112.4
|
||||
bootdelay=2
|
966
board/lwmon/lwmon.c
Normal file
966
board/lwmon/lwmon.c
Normal file
@ -0,0 +1,966 @@
|
||||
/***********************************************************************
|
||||
*
|
||||
M* Modul: lwmon.c
|
||||
M*
|
||||
M* Content: LWMON specific U-Boot commands.
|
||||
*
|
||||
* (C) Copyright 2001, 2002
|
||||
* DENX Software Engineering
|
||||
* Wolfgang Denk, wd@denx.de
|
||||
* All rights reserved.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
***********************************************************************/
|
||||
|
||||
/*---------------------------- Headerfiles ----------------------------*/
|
||||
#include <common.h>
|
||||
#include <mpc8xx.h>
|
||||
#include <commproc.h>
|
||||
#include <i2c.h>
|
||||
#include <command.h>
|
||||
#include <cmd_bsp.h>
|
||||
#include <malloc.h>
|
||||
#include <post.h>
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/string.h> /* for strdup */
|
||||
|
||||
/*------------------------ Local prototypes ---------------------------*/
|
||||
static long int dram_size (long int, long int *, long int);
|
||||
|
||||
|
||||
/*--------------------- Local macros and constants --------------------*/
|
||||
#define _NOT_USED_ 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* 66 MHz SDRAM access using UPM A
|
||||
*/
|
||||
const uint sdram_table[] =
|
||||
{
|
||||
#if defined(CFG_MEMORY_75) || defined(CFG_MEMORY_8E)
|
||||
/*
|
||||
* Single Read. (Offset 0 in UPM RAM)
|
||||
*/
|
||||
0x1F0DFC04, 0xEEAFBC04, 0x11AF7C04, 0xEFBAFC00,
|
||||
0x1FF5FC47, /* last */
|
||||
/*
|
||||
* SDRAM Initialization (offset 5 in UPM RAM)
|
||||
*
|
||||
* This is no UPM entry point. The following definition uses
|
||||
* the remaining space to establish an initialization
|
||||
* sequence, which is executed by a RUN command.
|
||||
*
|
||||
*/
|
||||
0x1FF5FC34, 0xEFEABC34, 0x1FB57C35, /* last */
|
||||
/*
|
||||
* Burst Read. (Offset 8 in UPM RAM)
|
||||
*/
|
||||
0x1F0DFC04, 0xEEAFBC04, 0x10AF7C04, 0xF0AFFC00,
|
||||
0xF0AFFC00, 0xF1AFFC00, 0xEFBAFC00, 0x1FF5FC47, /* last */
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Single Write. (Offset 18 in UPM RAM)
|
||||
*/
|
||||
0x1F2DFC04, 0xEEABBC00, 0x01B27C04, 0x1FF5FC47, /* last */
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Burst Write. (Offset 20 in UPM RAM)
|
||||
*/
|
||||
0x1F0DFC04, 0xEEABBC00, 0x10A77C00, 0xF0AFFC00,
|
||||
0xF0AFFC00, 0xE1BAFC04, 0x01FF5FC47, /* last */
|
||||
_NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Refresh (Offset 30 in UPM RAM)
|
||||
*/
|
||||
0x1FFD7C84, 0xFFFFFC04, 0xFFFFFC04, 0xFFFFFC04,
|
||||
0xFFFFFC84, 0xFFFFFC07, /* last */
|
||||
_NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Exception. (Offset 3c in UPM RAM)
|
||||
*/
|
||||
0x7FFFFC07, /* last */
|
||||
0xFFFFFCFF, 0xFFFFFCFF, 0xFFFFFCFF,
|
||||
#endif
|
||||
#ifdef CFG_MEMORY_7E
|
||||
/*
|
||||
* Single Read. (Offset 0 in UPM RAM)
|
||||
*/
|
||||
0x0E2DBC04, 0x11AF7C04, 0xEFBAFC00, 0x1FF5FC47, /* last */
|
||||
_NOT_USED_,
|
||||
/*
|
||||
* SDRAM Initialization (offset 5 in UPM RAM)
|
||||
*
|
||||
* This is no UPM entry point. The following definition uses
|
||||
* the remaining space to establish an initialization
|
||||
* sequence, which is executed by a RUN command.
|
||||
*
|
||||
*/
|
||||
0x1FF5FC34, 0xEFEABC34, 0x1FB57C35, /* last */
|
||||
/*
|
||||
* Burst Read. (Offset 8 in UPM RAM)
|
||||
*/
|
||||
0x0E2DBC04, 0x10AF7C04, 0xF0AFFC00, 0xF0AFFC00,
|
||||
0xF1AFFC00, 0xEFBAFC00, 0x1FF5FC47, /* last */
|
||||
_NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Single Write. (Offset 18 in UPM RAM)
|
||||
*/
|
||||
0x0E29BC04, 0x01B27C04, 0x1FF5FC47, /* last */
|
||||
_NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Burst Write. (Offset 20 in UPM RAM)
|
||||
*/
|
||||
0x0E29BC04, 0x10A77C00, 0xF0AFFC00, 0xF0AFFC00,
|
||||
0xE1BAFC04, 0x1FF5FC47, /* last */
|
||||
_NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Refresh (Offset 30 in UPM RAM)
|
||||
*/
|
||||
0x1FFD7C84, 0xFFFFFC04, 0xFFFFFC04, 0xFFFFFC04,
|
||||
0xFFFFFC84, 0xFFFFFC07, /* last */
|
||||
_NOT_USED_, _NOT_USED_,
|
||||
_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
|
||||
/*
|
||||
* Exception. (Offset 3c in UPM RAM)
|
||||
*/
|
||||
0x7FFFFC07, /* last */
|
||||
0xFFFFFCFF, 0xFFFFFCFF, 0xFFFFFCFF,
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
* Check Board Identity:
|
||||
*
|
||||
*/
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: int checkboard (void) P*A*Z*
|
||||
*
|
||||
P* Parameters: none
|
||||
P*
|
||||
P* Returnvalue: int - 0 is always returned
|
||||
*
|
||||
Z* Intention: This function is the checkboard() method implementation
|
||||
Z* for the lwmon board. Only a standard message is printed.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
int checkboard (void)
|
||||
{
|
||||
puts ("Board: Litronic Monitor IV\n");
|
||||
return (0);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: long int initdram (int board_type) P*A*Z*
|
||||
*
|
||||
P* Parameters: int board_type
|
||||
P* - Usually type of the board - ignored here.
|
||||
P*
|
||||
P* Returnvalue: long int
|
||||
P* - Size of initialized memory
|
||||
*
|
||||
Z* Intention: This function is the initdram() method implementation
|
||||
Z* for the lwmon board.
|
||||
Z* The memory controller is initialized to access the
|
||||
Z* DRAM.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
long int initdram (int board_type)
|
||||
{
|
||||
volatile immap_t *immr = (immap_t *) CFG_IMMR;
|
||||
volatile memctl8xx_t *memctl = &immr->im_memctl;
|
||||
long int size_b0;
|
||||
long int size8, size9;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Configure UPMA for SDRAM
|
||||
*/
|
||||
upmconfig (UPMA, (uint *)sdram_table, sizeof(sdram_table)/sizeof(uint));
|
||||
|
||||
memctl->memc_mptpr = CFG_MPTPR;
|
||||
|
||||
/* burst length=4, burst type=sequential, CAS latency=2 */
|
||||
memctl->memc_mar = CFG_MAR;
|
||||
|
||||
/*
|
||||
* Map controller bank 3 to the SDRAM bank at preliminary address.
|
||||
*/
|
||||
memctl->memc_or3 = CFG_OR3_PRELIM;
|
||||
memctl->memc_br3 = CFG_BR3_PRELIM;
|
||||
|
||||
/* initialize memory address register */
|
||||
memctl->memc_mamr = CFG_MAMR_8COL; /* refresh not enabled yet */
|
||||
|
||||
/* mode initialization (offset 5) */
|
||||
udelay (200); /* 0x80006105 */
|
||||
memctl->memc_mcr = MCR_OP_RUN | MCR_MB_CS3 | MCR_MLCF (1) | MCR_MAD (0x05);
|
||||
|
||||
/* run 2 refresh sequence with 4-beat refresh burst (offset 0x30) */
|
||||
udelay (1); /* 0x80006130 */
|
||||
memctl->memc_mcr = MCR_OP_RUN | MCR_MB_CS3 | MCR_MLCF (1) | MCR_MAD (0x30);
|
||||
udelay (1); /* 0x80006130 */
|
||||
memctl->memc_mcr = MCR_OP_RUN | MCR_MB_CS3 | MCR_MLCF (1) | MCR_MAD (0x30);
|
||||
|
||||
udelay (1); /* 0x80006106 */
|
||||
memctl->memc_mcr = MCR_OP_RUN | MCR_MB_CS3 | MCR_MLCF (1) | MCR_MAD (0x06);
|
||||
|
||||
memctl->memc_mamr |= MAMR_PTBE; /* refresh enabled */
|
||||
|
||||
udelay (200);
|
||||
|
||||
/* Need at least 10 DRAM accesses to stabilize */
|
||||
for (i = 0; i < 10; ++i) {
|
||||
volatile unsigned long *addr =
|
||||
(volatile unsigned long *) SDRAM_BASE3_PRELIM;
|
||||
unsigned long val;
|
||||
|
||||
val = *(addr + i);
|
||||
*(addr + i) = val;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check Bank 0 Memory Size for re-configuration
|
||||
*
|
||||
* try 8 column mode
|
||||
*/
|
||||
size8 = dram_size (CFG_MAMR_8COL, (ulong *)SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE);
|
||||
|
||||
udelay (1000);
|
||||
|
||||
/*
|
||||
* try 9 column mode
|
||||
*/
|
||||
size9 = dram_size (CFG_MAMR_9COL, (ulong *)SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE);
|
||||
|
||||
if (size8 < size9) { /* leave configuration at 9 columns */
|
||||
size_b0 = size9;
|
||||
memctl->memc_mamr = CFG_MAMR_9COL | MAMR_PTBE;
|
||||
udelay (500);
|
||||
} else { /* back to 8 columns */
|
||||
size_b0 = size8;
|
||||
memctl->memc_mamr = CFG_MAMR_8COL | MAMR_PTBE;
|
||||
udelay (500);
|
||||
}
|
||||
|
||||
/*
|
||||
* Final mapping:
|
||||
*/
|
||||
|
||||
memctl->memc_or3 = ((-size_b0) & 0xFFFF0000) |
|
||||
OR_CSNT_SAM | OR_G5LS | SDRAM_TIMING;
|
||||
memctl->memc_br3 = (CFG_SDRAM_BASE & BR_BA_MSK) | BR_MS_UPMA | BR_V;
|
||||
udelay (1000);
|
||||
|
||||
return (size_b0);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: static long int dram_size (long int mamr_value,
|
||||
F* long int *base,
|
||||
F* long int maxsize) P*A*Z*
|
||||
*
|
||||
P* Parameters: long int mamr_value
|
||||
P* - Value for MAMR for the test
|
||||
P* long int *base
|
||||
P* - Base address for the test
|
||||
P* long int maxsize
|
||||
P* - Maximum size to test for
|
||||
P*
|
||||
P* Returnvalue: long int
|
||||
P* - Size of probed memory
|
||||
*
|
||||
Z* Intention: Check memory range for valid RAM. A simple memory test
|
||||
Z* determines the actually available RAM size between
|
||||
Z* addresses `base' and `base + maxsize'. Some (not all)
|
||||
Z* hardware errors are detected:
|
||||
Z* - short between address lines
|
||||
Z* - short between data lines
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
static long int dram_size (long int mamr_value, long int *base, long int maxsize)
|
||||
{
|
||||
volatile immap_t *immr = (immap_t *) CFG_IMMR;
|
||||
volatile memctl8xx_t *memctl = &immr->im_memctl;
|
||||
volatile long int *addr;
|
||||
ulong cnt, val;
|
||||
ulong save[32]; /* to make test non-destructive */
|
||||
unsigned char i = 0;
|
||||
|
||||
memctl->memc_mamr = mamr_value;
|
||||
|
||||
for (cnt = maxsize / sizeof (long); cnt > 0; cnt >>= 1) {
|
||||
addr = base + cnt; /* pointer arith! */
|
||||
|
||||
save[i++] = *addr;
|
||||
*addr = ~cnt;
|
||||
}
|
||||
|
||||
/* write 0 to base address */
|
||||
addr = base;
|
||||
save[i] = *addr;
|
||||
*addr = 0;
|
||||
|
||||
/* check at base address */
|
||||
if ((val = *addr) != 0) {
|
||||
*addr = save[i];
|
||||
return (0);
|
||||
}
|
||||
|
||||
for (cnt = 1; cnt <= maxsize / sizeof (long); cnt <<= 1) {
|
||||
addr = base + cnt; /* pointer arith! */
|
||||
|
||||
val = *addr;
|
||||
*addr = save[--i];
|
||||
|
||||
if (val != (~cnt)) {
|
||||
return (cnt * sizeof (long));
|
||||
}
|
||||
}
|
||||
return (maxsize);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
#ifndef PB_ENET_TENA
|
||||
# define PB_ENET_TENA ((uint)0x00002000) /* PB 18 */
|
||||
#endif
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: int board_pre_init (void) P*A*Z*
|
||||
*
|
||||
P* Parameters: none
|
||||
P*
|
||||
P* Returnvalue: int
|
||||
P* - 0 is always returned.
|
||||
*
|
||||
Z* Intention: This function is the board_pre_init() method implementation
|
||||
Z* for the lwmon board.
|
||||
Z* Disable Ethernet TENA on Port B.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
int board_pre_init (void)
|
||||
{
|
||||
volatile immap_t *immr = (immap_t *) CFG_IMMR;
|
||||
|
||||
/* Disable Ethernet TENA on Port B
|
||||
* Necessary because of pull up in COM3 port.
|
||||
*
|
||||
* This is just a preliminary fix, intended to turn off TENA
|
||||
* as soon as possible to avoid noise on the network. Once
|
||||
* I²C is running we will make sure the interface is
|
||||
* correctly initialized.
|
||||
*/
|
||||
immr->im_cpm.cp_pbpar &= ~PB_ENET_TENA;
|
||||
immr->im_cpm.cp_pbodr &= ~PB_ENET_TENA;
|
||||
immr->im_cpm.cp_pbdat &= ~PB_ENET_TENA; /* set to 0 = disabled */
|
||||
immr->im_cpm.cp_pbdir |= PB_ENET_TENA;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: void reset_phy (void) P*A*Z*
|
||||
*
|
||||
P* Parameters: none
|
||||
P*
|
||||
P* Returnvalue: none
|
||||
*
|
||||
Z* Intention: Reset the PHY. In the lwmon case we do this by the
|
||||
Z* signaling the PIC I/O expander.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
void reset_phy (void)
|
||||
{
|
||||
uchar c;
|
||||
|
||||
#ifdef DEBUG
|
||||
printf ("### Switch on Ethernet for SCC2 ###\n");
|
||||
#endif
|
||||
c = pic_read (0x61);
|
||||
#ifdef DEBUG
|
||||
printf ("Old PIC read: reg_61 = 0x%02x\n", c);
|
||||
#endif
|
||||
c |= 0x40; /* disable COM3 */
|
||||
c &= ~0x80; /* enable Ethernet */
|
||||
pic_write (0x61, c);
|
||||
#ifdef DEBUG
|
||||
c = pic_read (0x61);
|
||||
printf ("New PIC read: reg_61 = 0x%02x\n", c);
|
||||
#endif
|
||||
udelay (1000);
|
||||
}
|
||||
|
||||
|
||||
/*------------------------- Keyboard controller -----------------------*/
|
||||
/* command codes */
|
||||
#define KEYBD_CMD_READ_KEYS 0x01
|
||||
#define KEYBD_CMD_READ_VERSION 0x02
|
||||
#define KEYBD_CMD_READ_STATUS 0x03
|
||||
#define KEYBD_CMD_RESET_ERRORS 0x10
|
||||
|
||||
/* status codes */
|
||||
#define KEYBD_STATUS_MASK 0x3F
|
||||
#define KEYBD_STATUS_H_RESET 0x20
|
||||
#define KEYBD_STATUS_BROWNOUT 0x10
|
||||
#define KEYBD_STATUS_WD_RESET 0x08
|
||||
#define KEYBD_STATUS_OVERLOAD 0x04
|
||||
#define KEYBD_STATUS_ILLEGAL_WR 0x02
|
||||
#define KEYBD_STATUS_ILLEGAL_RD 0x01
|
||||
|
||||
/* Number of bytes returned from Keyboard Controller */
|
||||
#define KEYBD_VERSIONLEN 2 /* version information */
|
||||
#define KEYBD_DATALEN 9 /* normal key scan data */
|
||||
|
||||
/* maximum number of "magic" key codes that can be assigned */
|
||||
|
||||
static uchar kbd_addr = CFG_I2C_KEYBD_ADDR;
|
||||
|
||||
static uchar *key_match (uchar *);
|
||||
|
||||
#define KEYBD_SET_DEBUGMODE '#' /* Magic key to enable debug output */
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: int misc_init_r (void) P*A*Z*
|
||||
*
|
||||
P* Parameters: none
|
||||
P*
|
||||
P* Returnvalue: int
|
||||
P* - 0 is always returned, even in the case of a keyboard
|
||||
P* error.
|
||||
*
|
||||
Z* Intention: This function is the misc_init_r() method implementation
|
||||
Z* for the lwmon board.
|
||||
Z* The keyboard controller is initialized and the result
|
||||
Z* of a read copied to the environment variable "keybd".
|
||||
Z* If KEYBD_SET_DEBUGMODE is defined, a check is made for
|
||||
Z* this key, and if found display to the LCD will be enabled.
|
||||
Z* The keys in "keybd" are checked against the magic
|
||||
Z* keycommands defined in the environment.
|
||||
Z* See also key_match().
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
int misc_init_r (void)
|
||||
{
|
||||
uchar kbd_data[KEYBD_DATALEN];
|
||||
uchar tmp_data[KEYBD_DATALEN];
|
||||
uchar keybd_env[2 * KEYBD_DATALEN + 1];
|
||||
uchar val, errcd;
|
||||
uchar *str;
|
||||
int i;
|
||||
|
||||
i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);
|
||||
|
||||
/* Read initial keyboard error code */
|
||||
val = KEYBD_CMD_READ_STATUS;
|
||||
i2c_write (kbd_addr, 0, 0, &val, 1);
|
||||
i2c_read (kbd_addr, 0, 0, &errcd, 1);
|
||||
/* clear unused bits */
|
||||
errcd &= KEYBD_STATUS_MASK;
|
||||
/* clear "irrelevant" bits. Recommended by Martin Rajek, LWN */
|
||||
errcd &= ~(KEYBD_STATUS_H_RESET|KEYBD_STATUS_BROWNOUT);
|
||||
if (errcd) {
|
||||
printf ("KEYBD: Error %02X\n", errcd);
|
||||
}
|
||||
/* Reset error code and verify */
|
||||
val = KEYBD_CMD_RESET_ERRORS;
|
||||
i2c_write (kbd_addr, 0, 0, &val, 1);
|
||||
udelay(1000); /* delay NEEDED by keyboard PIC !!! */
|
||||
|
||||
val = KEYBD_CMD_READ_STATUS;
|
||||
i2c_write (kbd_addr, 0, 0, &val, 1);
|
||||
i2c_read (kbd_addr, 0, 0, &val, 1);
|
||||
|
||||
val &= KEYBD_STATUS_MASK; /* clear unused bits */
|
||||
if (val) { /* permanent error, report it */
|
||||
printf ("*** Keyboard error code %02X ***\n", val);
|
||||
sprintf (keybd_env, "%02X", val);
|
||||
setenv ("keybd", keybd_env);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now we know that we have a working keyboard, so disable
|
||||
* all output to the LCD except when a key press is detected.
|
||||
*/
|
||||
|
||||
if ((console_assign (stdout, "serial") < 0) ||
|
||||
(console_assign (stderr, "serial") < 0)) {
|
||||
printf ("Can't assign serial port as output device\n");
|
||||
}
|
||||
|
||||
/* Read Version */
|
||||
val = KEYBD_CMD_READ_VERSION;
|
||||
i2c_write (kbd_addr, 0, 0, &val, 1);
|
||||
i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_VERSIONLEN);
|
||||
printf ("KEYBD: Version %d.%d\n", kbd_data[0], kbd_data[1]);
|
||||
|
||||
/*
|
||||
* Read current keyboard state.
|
||||
*
|
||||
* After the error reset it may take some time before the
|
||||
* keyboard PIC picks up a valid keyboard scan - the total
|
||||
* scan time is approx. 1.6 ms (information by Martin Rajek,
|
||||
* 28 Sep 2002). We read a couple of times for the keyboard
|
||||
* to stabilize, using a big enough delay.
|
||||
* 10 times should be enough. If the data is still changing,
|
||||
* we use what we get :-(
|
||||
*/
|
||||
|
||||
memset (tmp_data, 0xFF, KEYBD_DATALEN); /* impossible value */
|
||||
for (i=0; i<10; ++i) {
|
||||
val = KEYBD_CMD_READ_KEYS;
|
||||
i2c_write (kbd_addr, 0, 0, &val, 1);
|
||||
i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_DATALEN);
|
||||
|
||||
if (memcmp(kbd_data, tmp_data, KEYBD_DATALEN) == 0) {
|
||||
/* consistent state, done */
|
||||
break;
|
||||
}
|
||||
/* remeber last state, delay, and retry */
|
||||
memcpy (tmp_data, kbd_data, KEYBD_DATALEN);
|
||||
udelay (5000);
|
||||
}
|
||||
|
||||
for (i = 0; i < KEYBD_DATALEN; ++i) {
|
||||
sprintf (keybd_env + i + i, "%02X", kbd_data[i]);
|
||||
}
|
||||
setenv ("keybd", keybd_env);
|
||||
|
||||
str = strdup (key_match (kbd_data)); /* decode keys */
|
||||
#ifdef KEYBD_SET_DEBUGMODE
|
||||
if (kbd_data[0] == KEYBD_SET_DEBUGMODE) { /* set debug mode */
|
||||
if ((console_assign (stdout, "lcd") < 0) ||
|
||||
(console_assign (stderr, "lcd") < 0)) {
|
||||
printf ("Can't assign LCD display as output device\n");
|
||||
}
|
||||
}
|
||||
#endif /* KEYBD_SET_DEBUGMODE */
|
||||
#ifdef CONFIG_PREBOOT /* automatically configure "preboot" command on key match */
|
||||
setenv ("preboot", str); /* set or delete definition */
|
||||
#endif /* CONFIG_PREBOOT */
|
||||
if (str != NULL) {
|
||||
free (str);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PREBOOT
|
||||
|
||||
static uchar kbd_magic_prefix[] = "key_magic";
|
||||
static uchar kbd_command_prefix[] = "key_cmd";
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: static uchar *key_match (uchar *kbd_data) P*A*Z*
|
||||
*
|
||||
P* Parameters: uchar *kbd_data
|
||||
P* - The keys to match against our magic definitions
|
||||
P*
|
||||
P* Returnvalue: uchar *
|
||||
P* - != NULL: Pointer to the corresponding command(s)
|
||||
P* NULL: No magic is about to happen
|
||||
*
|
||||
Z* Intention: Check if pressed key(s) match magic sequence,
|
||||
Z* and return the command string associated with that key(s).
|
||||
Z*
|
||||
Z* If no key press was decoded, NULL is returned.
|
||||
Z*
|
||||
Z* Note: the first character of the argument will be
|
||||
Z* overwritten with the "magic charcter code" of the
|
||||
Z* decoded key(s), or '\0'.
|
||||
Z*
|
||||
Z* Note: the string points to static environment data
|
||||
Z* and must be saved before you call any function that
|
||||
Z* modifies the environment.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
static uchar *key_match (uchar *kbd_data)
|
||||
{
|
||||
uchar compare[KEYBD_DATALEN-1];
|
||||
uchar magic[sizeof (kbd_magic_prefix) + 1];
|
||||
uchar extra;
|
||||
uchar *str, *nxt, *suffix;
|
||||
uchar *kbd_magic_keys;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* The following string defines the characters that can pe appended
|
||||
* to "key_magic" to form the names of environment variables that
|
||||
* hold "magic" key codes, i. e. such key codes that can cause
|
||||
* pre-boot actions. If the string is empty (""), then only
|
||||
* "key_magic" is checked (old behaviour); the string "125" causes
|
||||
* checks for "key_magic1", "key_magic2" and "key_magic5", etc.
|
||||
*/
|
||||
if ((kbd_magic_keys = getenv ("magic_keys")) == NULL)
|
||||
kbd_magic_keys = "";
|
||||
|
||||
/* loop over all magic keys;
|
||||
* use '\0' suffix in case of empty string
|
||||
*/
|
||||
for (suffix=kbd_magic_keys; *suffix || suffix==kbd_magic_keys; ++suffix) {
|
||||
sprintf (magic, "%s%c", kbd_magic_prefix, *suffix);
|
||||
#if 0
|
||||
printf ("### Check magic \"%s\"\n", magic);
|
||||
#endif
|
||||
/* Don't include modifier byte */
|
||||
memcpy (compare, kbd_data+1, KEYBD_DATALEN-1);
|
||||
|
||||
extra = 0;
|
||||
|
||||
for (str= getenv(magic); str != NULL; str = (*nxt) ? nxt+1 : nxt) {
|
||||
uchar c;
|
||||
int k;
|
||||
|
||||
c = (uchar) simple_strtoul (str, (char **) (&nxt), 16);
|
||||
|
||||
if (str == nxt) { /* invalid character */
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if this key matches the input.
|
||||
* Set matches to zero, so they match only once
|
||||
* and we can find duplicates or extra keys
|
||||
*/
|
||||
for (k = 0; k < sizeof(compare); ++k) {
|
||||
if (compare[k] == '\0') /* only non-zero entries */
|
||||
continue;
|
||||
if (c == compare[k]) { /* found matching key */
|
||||
compare[k] = '\0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (k == sizeof(compare)) {
|
||||
extra = 1; /* unmatched key */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* A full match leaves no keys in the `compare' array,
|
||||
* and has no extra keys
|
||||
*/
|
||||
|
||||
for (i = 0; i < sizeof(compare); ++i) {
|
||||
if (compare[i])
|
||||
break;
|
||||
}
|
||||
|
||||
if ((i == sizeof(compare)) && (extra == 0)) {
|
||||
uchar cmd_name[sizeof (kbd_command_prefix) + 1];
|
||||
char *cmd;
|
||||
|
||||
sprintf (cmd_name, "%s%c", kbd_command_prefix, *suffix);
|
||||
|
||||
cmd = getenv (cmd_name);
|
||||
#if 0
|
||||
printf ("### Set PREBOOT to $(%s): \"%s\"\n",
|
||||
cmd_name, cmd ? cmd : "<<NULL>>");
|
||||
#endif
|
||||
*kbd_data = *suffix;
|
||||
return (cmd);
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
printf ("### Delete PREBOOT\n");
|
||||
#endif
|
||||
*kbd_data = '\0';
|
||||
return (NULL);
|
||||
}
|
||||
#endif /* CONFIG_PREBOOT */
|
||||
|
||||
/*---------------Board Special Commands: PIC read/write ---------------*/
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_BSP)
|
||||
/***********************************************************************
|
||||
F* Function: int do_pic (cmd_tbl_t *cmdtp, int flag,
|
||||
F* int argc, char *argv[]) P*A*Z*
|
||||
*
|
||||
P* Parameters: cmd_tbl_t *cmdtp
|
||||
P* - Pointer to our command table entry
|
||||
P* int flag
|
||||
P* - If the CMD_FLAG_REPEAT bit is set, then this call is
|
||||
P* a repetition
|
||||
P* int argc
|
||||
P* - Argument count
|
||||
P* char *argv[]
|
||||
P* - Array of the actual arguments
|
||||
P*
|
||||
P* Returnvalue: int
|
||||
P* - 0 The command was handled successfully
|
||||
P* 1 An error occurred
|
||||
*
|
||||
Z* Intention: Implement the "pic [read|write]" commands.
|
||||
Z* The read subcommand takes one argument, the register,
|
||||
Z* whereas the write command takes two, the register and
|
||||
Z* the new value.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
int do_pic (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
uchar reg, val;
|
||||
|
||||
switch (argc) {
|
||||
case 3: /* PIC read reg */
|
||||
if (strcmp (argv[1], "read") != 0)
|
||||
break;
|
||||
|
||||
reg = simple_strtoul (argv[2], NULL, 16);
|
||||
|
||||
printf ("PIC read: reg %02x: %02x\n\n", reg, pic_read (reg));
|
||||
|
||||
return 0;
|
||||
case 4: /* PIC write reg val */
|
||||
if (strcmp (argv[1], "write") != 0)
|
||||
break;
|
||||
|
||||
reg = simple_strtoul (argv[2], NULL, 16);
|
||||
val = simple_strtoul (argv[3], NULL, 16);
|
||||
|
||||
printf ("PIC write: reg %02x val 0x%02x: %02x => ",
|
||||
reg, val, pic_read (reg));
|
||||
pic_write (reg, val);
|
||||
printf ("%02x\n\n", pic_read (reg));
|
||||
return 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
printf ("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: int do_kbd (cmd_tbl_t *cmdtp, int flag,
|
||||
F* int argc, char *argv[]) P*A*Z*
|
||||
*
|
||||
P* Parameters: cmd_tbl_t *cmdtp
|
||||
P* - Pointer to our command table entry
|
||||
P* int flag
|
||||
P* - If the CMD_FLAG_REPEAT bit is set, then this call is
|
||||
P* a repetition
|
||||
P* int argc
|
||||
P* - Argument count
|
||||
P* char *argv[]
|
||||
P* - Array of the actual arguments
|
||||
P*
|
||||
P* Returnvalue: int
|
||||
P* - 0 is always returned.
|
||||
*
|
||||
Z* Intention: Implement the "kbd" command.
|
||||
Z* The keyboard status is read. The result is printed on
|
||||
Z* the console and written into the "keybd" environment
|
||||
Z* variable.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
int do_kbd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
uchar kbd_data[KEYBD_DATALEN];
|
||||
uchar keybd_env[2 * KEYBD_DATALEN + 1];
|
||||
uchar val;
|
||||
int i;
|
||||
|
||||
i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);
|
||||
|
||||
/* Read keys */
|
||||
val = KEYBD_CMD_READ_KEYS;
|
||||
i2c_write (kbd_addr, 0, 0, &val, 1);
|
||||
i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_DATALEN);
|
||||
|
||||
puts ("Keys:");
|
||||
for (i = 0; i < KEYBD_DATALEN; ++i) {
|
||||
sprintf (keybd_env + i + i, "%02X", kbd_data[i]);
|
||||
printf (" %02x", kbd_data[i]);
|
||||
}
|
||||
putc ('\n');
|
||||
setenv ("keybd", keybd_env);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Read and set LSB switch */
|
||||
#define CFG_PC_TXD1_ENA 0x0008
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: int do_lsb (cmd_tbl_t *cmdtp, int flag,
|
||||
F* int argc, char *argv[]) P*A*Z*
|
||||
*
|
||||
P* Parameters: cmd_tbl_t *cmdtp
|
||||
P* - Pointer to our command table entry
|
||||
P* int flag
|
||||
P* - If the CMD_FLAG_REPEAT bit is set, then this call is
|
||||
P* a repetition
|
||||
P* int argc
|
||||
P* - Argument count
|
||||
P* char *argv[]
|
||||
P* - Array of the actual arguments
|
||||
P*
|
||||
P* Returnvalue: int
|
||||
P* - 0 The command was handled successfully
|
||||
P* 1 An error occurred
|
||||
*
|
||||
Z* Intention: Implement the "lsb [on|off]" commands.
|
||||
Z* The lsb is switched according to the first parameter by
|
||||
Z* by signaling the PIC I/O expander.
|
||||
Z* Called with no arguments, the current setting is
|
||||
Z* printed.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
int do_lsb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
uchar val;
|
||||
immap_t *immr = (immap_t *) CFG_IMMR;
|
||||
|
||||
switch (argc) {
|
||||
case 1: /* lsb - print setting */
|
||||
val = pic_read (0x60);
|
||||
printf ("LSB is o%s\n", (val & 0x20) ? "n" : "ff");
|
||||
return 0;
|
||||
case 2: /* lsb on or lsb off - set switch */
|
||||
val = pic_read (0x60);
|
||||
|
||||
if (strcmp (argv[1], "on") == 0) {
|
||||
val |= 0x20;
|
||||
immr->im_ioport.iop_pcpar &= ~(CFG_PC_TXD1_ENA);
|
||||
immr->im_ioport.iop_pcdat |= CFG_PC_TXD1_ENA;
|
||||
immr->im_ioport.iop_pcdir |= CFG_PC_TXD1_ENA;
|
||||
} else if (strcmp (argv[1], "off") == 0) {
|
||||
val &= ~0x20;
|
||||
immr->im_ioport.iop_pcpar &= ~(CFG_PC_TXD1_ENA);
|
||||
immr->im_ioport.iop_pcdat &= ~(CFG_PC_TXD1_ENA);
|
||||
immr->im_ioport.iop_pcdir |= CFG_PC_TXD1_ENA;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
pic_write (0x60, val);
|
||||
return 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
printf ("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif /* CFG_CMD_BSP */
|
||||
|
||||
/*----------------------------- Utilities -----------------------------*/
|
||||
/***********************************************************************
|
||||
F* Function: uchar pic_read (uchar reg) P*A*Z*
|
||||
*
|
||||
P* Parameters: uchar reg
|
||||
P* - Register to read
|
||||
P*
|
||||
P* Returnvalue: uchar
|
||||
P* - Value read from register
|
||||
*
|
||||
Z* Intention: Read a register from the PIC I/O expander.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
uchar pic_read (uchar reg)
|
||||
{
|
||||
return (i2c_reg_read (CFG_I2C_PICIO_ADDR, reg));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
F* Function: void pic_write (uchar reg, uchar val) P*A*Z*
|
||||
*
|
||||
P* Parameters: uchar reg
|
||||
P* - Register to read
|
||||
P* uchar val
|
||||
P* - Value to write
|
||||
P*
|
||||
P* Returnvalue: none
|
||||
*
|
||||
Z* Intention: Write to a register on the PIC I/O expander.
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
void pic_write (uchar reg, uchar val)
|
||||
{
|
||||
i2c_reg_write (CFG_I2C_PICIO_ADDR, reg, val);
|
||||
}
|
||||
|
||||
/*---------------------- Board Control Functions ----------------------*/
|
||||
/***********************************************************************
|
||||
F* Function: void board_poweroff (void) P*A*Z*
|
||||
*
|
||||
P* Parameters: none
|
||||
P*
|
||||
P* Returnvalue: none
|
||||
*
|
||||
Z* Intention: Turn off the battery power and loop endless, so this
|
||||
Z* should better be the last function you call...
|
||||
*
|
||||
D* Design: wd@denx.de
|
||||
C* Coding: wd@denx.de
|
||||
V* Verification: dzu@denx.de
|
||||
***********************************************************************/
|
||||
void board_poweroff (void)
|
||||
{
|
||||
/* Turn battery off */
|
||||
((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pcdat &= ~(1 << (31 - 13));
|
||||
|
||||
while (1);
|
||||
}
|
301
board/musenki/README
Normal file
301
board/musenki/README
Normal file
@ -0,0 +1,301 @@
|
||||
U-Boot for a Musenki M-3/M-1 board
|
||||
---------------------------
|
||||
|
||||
Musenki M-1 and M-3 have two banks of flash of 4MB or 8MB each.
|
||||
|
||||
In board's notation, bank 0 is the one at the address of 0xFF800000
|
||||
and bank 1 is the one at the address of 0xFF000000.
|
||||
|
||||
On power-up the processor jumps to the address of 0xFFF00100, the last
|
||||
megabyte of the bank 0 of flash.
|
||||
|
||||
Thus, U-Boot is configured to reside in flash starting at the address of
|
||||
0xFFF00000. The environment space is located in flash separately from
|
||||
U-Boot, at the address of 0xFF800000.
|
||||
|
||||
There is a Davicom 9102A on-board, but I don't have it working yet.
|
||||
|
||||
U-Boot test results
|
||||
--------------------
|
||||
|
||||
x.x Operation on all available serial consoles
|
||||
|
||||
x.x.x CONFIG_CONS_INDEX 1
|
||||
|
||||
|
||||
U-Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=> help
|
||||
autoscr - run script from memory
|
||||
base - print or set address offset
|
||||
bdinfo - print Board Info structure
|
||||
bootm - boot application image from memory
|
||||
bootp - boot image via network using BootP/TFTP protocol
|
||||
bootd - boot default, i.e., run 'bootcmd'
|
||||
cmp - memory compare
|
||||
coninfo - print console devices and informations
|
||||
cp - memory copy
|
||||
crc32 - checksum calculation
|
||||
dcache - enable or disable data cache
|
||||
echo - echo args to console
|
||||
erase - erase FLASH memory
|
||||
flinfo - print FLASH memory information
|
||||
go - start application at address 'addr'
|
||||
help - print online help
|
||||
icache - enable or disable instruction cache
|
||||
iminfo - print header information for application image
|
||||
loadb - load binary file over serial line (kermit mode)
|
||||
loads - load S-Record file over serial line
|
||||
loop - infinite loop on address range
|
||||
md - memory display
|
||||
mm - memory modify (auto-incrementing)
|
||||
mtest - simple RAM test
|
||||
mw - memory write (fill)
|
||||
nm - memory modify (constant address)
|
||||
printenv- print environment variables
|
||||
protect - enable or disable FLASH write protection
|
||||
rarpboot- boot image via network using RARP/TFTP protocol
|
||||
reset - Perform RESET of the CPU
|
||||
run - run commands in an environment variable
|
||||
saveenv - save environment variables to persistent storage
|
||||
setenv - set environment variables
|
||||
tftpboot- boot image via network using TFTP protocol
|
||||
and env variables ipaddr and serverip
|
||||
version - print monitor version
|
||||
? - alias for 'help'
|
||||
|
||||
|
||||
|
||||
x.x.x CONFIG_CONS_INDEX 2
|
||||
|
||||
**** NOT TESTED ****
|
||||
|
||||
x.x Flash Driver Operation
|
||||
|
||||
|
||||
Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
*** Warning - bad CRC, using default environment
|
||||
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=>
|
||||
=> md ff800000
|
||||
ff800000: 46989bf8 626f6f74 636d643d 626f6f74 F...bootcmd=boot
|
||||
ff800010: 6d204646 38323030 30300062 6f6f7464 m FF820000.bootd
|
||||
ff800020: 656c6179 3d350062 61756472 6174653d elay=5.baudrate=
|
||||
ff800030: 39363030 00636c6f 636b735f 696e5f6d 9600.clocks_in_m
|
||||
ff800040: 687a3d31 00737464 696e3d73 65726961 hz=1.stdin=seria
|
||||
ff800050: 6c007374 646f7574 3d736572 69616c00 l.stdout=serial.
|
||||
ff800060: 73746465 72723d73 65726961 6c006970 stderr=serial.ip
|
||||
ff800070: 61646472 3d313932 2e313638 2e302e34 addr=192.168.0.4
|
||||
ff800080: 32007365 72766572 69703d31 39322e31 2.serverip=192.1
|
||||
ff800090: 36382e30 2e380000 00000000 00000000 68.0.8..........
|
||||
ff8000a0: 00000000 00000000 00000000 00000000 ................
|
||||
ff8000b0: 00000000 00000000 00000000 00000000 ................
|
||||
ff8000c0: 00000000 00000000 00000000 00000000 ................
|
||||
ff8000d0: 00000000 00000000 00000000 00000000 ................
|
||||
ff8000e0: 00000000 00000000 00000000 00000000 ................
|
||||
ff8000f0: 00000000 00000000 00000000 00000000 ................
|
||||
=> protect off ff800000 ff81ffff
|
||||
Un-Protected 1 sectors
|
||||
=> erase ff800000 ff81ffff
|
||||
Erase Flash from 0xff800000 to 0xff81ffff
|
||||
done
|
||||
Erased 1 sectors
|
||||
=> md ff800000
|
||||
ff800000: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800010: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800020: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800030: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800040: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800050: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800060: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800070: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
|
||||
x.x.x Information
|
||||
|
||||
|
||||
U-Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
*** Warning - bad CRC, using default environment
|
||||
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=> flinfo
|
||||
|
||||
Bank # 1: Intel 28F320J3A (32Mbit = 128K x 32)
|
||||
Size: 4 MB in 32 Sectors
|
||||
Sector Start Addresses:
|
||||
FF800000 (RO) FF820000 FF840000 FF860000 FF880000
|
||||
FF8A0000 FF8C0000 FF8E0000 FF900000 FF920000
|
||||
FF940000 FF960000 FF980000 FF9A0000 FF9C0000
|
||||
FF9E0000 FFA00000 FFA20000 FFA40000 FFA60000
|
||||
FFA80000 FFAA0000 FFAC0000 FFAE0000 FFB00000
|
||||
FFB20000 FFB40000 FFB60000 FFB80000 FFBA0000
|
||||
FFBC0000 FFBE0000
|
||||
|
||||
Bank # 2: missing or unknown FLASH type
|
||||
=>
|
||||
|
||||
|
||||
|
||||
x.x.x Flash Programming
|
||||
|
||||
|
||||
U-Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=>
|
||||
=>
|
||||
=>
|
||||
=> protect off ff800000 ff81ffff
|
||||
Un-Protected 1 sectors
|
||||
=> cp 0 ff800000 20
|
||||
Copy to Flash... done
|
||||
=> md ff800000
|
||||
ff800000: 37ce33ec 33cc334c 33c031cc 33cc35cc 7.3.3.3L3.1.3.5.
|
||||
ff800010: 33ec13ce 30ccb3ec b3c833c4 31c836cc 3...0.....3.1.6.
|
||||
ff800020: 33cc3b9d 31ec33ee 13ecf3cc 338833ec 3.;.1.3.....3.3.
|
||||
ff800030: 234c33ec 32cc22cc 33883bdc 534433cc #L3.2.".3.;.SD3.
|
||||
ff800040: 33cc30c8 31cc32ec 338c33cc 330c33dc 3.0.1.2.3.3.3.3.
|
||||
ff800050: 33cc13dc 334c534c b1c433d8 128c13cc 3...3LSL..3.....
|
||||
ff800060: 37ec36cd 33dc33cc bbc9f7e8 bbcc77cc 7.6.3.3.......w.
|
||||
ff800070: 314c0adc 139c30ed 33cc334c 33c833ec 1L....0.3.3L3.3.
|
||||
ff800080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff800090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
ff8000f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
|
||||
|
||||
x.x.x Storage of environment variables in flash
|
||||
|
||||
|
||||
U-Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=> printenv
|
||||
bootcmd=bootm FF820000
|
||||
bootdelay=5
|
||||
baudrate=9600
|
||||
clocks_in_mhz=1
|
||||
stdin=serial
|
||||
stdout=serial
|
||||
stderr=serial
|
||||
|
||||
Environment size: 106/16380 bytes
|
||||
=> setenv myvar 1234
|
||||
=> saveenv
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Saving Environment to Flash...
|
||||
Protected 1 sectors
|
||||
=> reset
|
||||
|
||||
|
||||
U-Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=> printenv
|
||||
bootcmd=bootm FF820000
|
||||
bootdelay=5
|
||||
baudrate=9600
|
||||
clocks_in_mhz=1
|
||||
myvar=1234
|
||||
stdin=serial
|
||||
stdout=serial
|
||||
stderr=serial
|
||||
|
||||
Environment size: 117/16380 bytes
|
||||
|
||||
x.x Image Download and run over serial port
|
||||
|
||||
|
||||
U-Boot 1.1.1 (Nov 20 2001 - 15:55:32)
|
||||
|
||||
CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: MUSENKI Local Bus at 100 MHz
|
||||
DRAM: 32 MB
|
||||
FLASH: 4 MB
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
Hit any key to stop autoboot: 0
|
||||
=> loads
|
||||
## Ready for S-Record download ...
|
||||
|
||||
## First Load Addr = 0x00040000
|
||||
## Last Load Addr = 0x00050177
|
||||
## Total Size = 0x00010178 = 65912 Bytes
|
||||
## Start Addr = 0x00040004
|
||||
=> go 40004
|
||||
## Starting application at 0x00040004 ...
|
||||
Hello World
|
||||
argc = 1
|
||||
argv[0] = "40004"
|
||||
argv[1] = "<NULL>"
|
||||
Hit any key to exit ...
|
||||
|
||||
## Application terminated, rc = 0x0
|
||||
|
||||
|
||||
x.x Image download and run over ethernet interface
|
||||
|
||||
untested (not working yet, actually)
|
||||
|
132
board/pcippc2/u-boot.lds
Normal file
132
board/pcippc2/u-boot.lds
Normal file
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* u-boot.lds - linker script for U-Boot on the Galileo Eval Board.
|
||||
*/
|
||||
|
||||
OUTPUT_ARCH(powerpc)
|
||||
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.rel.text : { *(.rel.text) }
|
||||
.rela.text : { *(.rela.text) }
|
||||
.rel.data : { *(.rel.data) }
|
||||
.rela.data : { *(.rela.data) }
|
||||
.rel.rodata : { *(.rel.rodata) }
|
||||
.rela.rodata : { *(.rela.rodata) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.init : { *(.init) }
|
||||
.plt : { *(.plt) }
|
||||
.text :
|
||||
{
|
||||
cpu/74xx_7xx/start.o (.text)
|
||||
|
||||
/* store the environment in a seperate sector in the boot flash */
|
||||
/* . = env_offset; */
|
||||
/* common/environment.o(.text) */
|
||||
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
}
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
}
|
||||
.fini : { *(.fini) } =0
|
||||
.ctors : { *(.ctors) }
|
||||
.dtors : { *(.dtors) }
|
||||
|
||||
/* Read-write section, merged into data segment: */
|
||||
. = (. + 0x00FF) & 0xFFFFFF00;
|
||||
_erotext = .;
|
||||
PROVIDE (erotext = .);
|
||||
.reloc :
|
||||
{
|
||||
*(.got)
|
||||
_GOT2_TABLE_ = .;
|
||||
*(.got2)
|
||||
_FIXUP_TABLE_ = .;
|
||||
*(.fixup)
|
||||
}
|
||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
|
||||
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
|
||||
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.data1)
|
||||
*(.sdata)
|
||||
*(.sdata2)
|
||||
*(.dynamic)
|
||||
CONSTRUCTORS
|
||||
}
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
|
||||
__start___ex_table = .;
|
||||
__ex_table : { *(__ex_table) }
|
||||
__stop___ex_table = .;
|
||||
|
||||
. = ALIGN(256);
|
||||
__init_begin = .;
|
||||
.text.init : { *(.text.init) }
|
||||
.data.init : { *(.data.init) }
|
||||
. = ALIGN(256);
|
||||
__init_end = .;
|
||||
|
||||
__bss_start = .;
|
||||
.bss :
|
||||
{
|
||||
*(.sbss) *(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
42
board/pm826/config.mk
Normal file
42
board/pm826/config.mk
Normal file
@ -0,0 +1,42 @@
|
||||
#
|
||||
# (C) Copyright 2001, 2002
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
#
|
||||
# PM826 boards
|
||||
#
|
||||
|
||||
# This should be equal to the CFG_FLASH_BASE or
|
||||
# CFG_BOOTROM_BASE define in config_PM826.h
|
||||
# for the "final" configuration, with U-Boot
|
||||
# in flash, or the address in RAM where
|
||||
# U-Boot is loaded at for debugging.
|
||||
#
|
||||
|
||||
ifeq ($(CONFIG_BOOT_ROM),y)
|
||||
TEXT_BASE := 0x60000000
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_BOOT_ROM
|
||||
else
|
||||
TEXT_BASE := 0x40000000
|
||||
endif
|
||||
|
||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -I$(TOPDIR)
|
30
board/rpxsuper/readme
Normal file
30
board/rpxsuper/readme
Normal file
@ -0,0 +1,30 @@
|
||||
Hi,
|
||||
|
||||
so this is the port to the Embedded Planet RPX Super Board.
|
||||
|
||||
ATTENTION
|
||||
This code is only tested on the AY-Version, which is an early release with some
|
||||
hardware bugs. The main problem is that this board uses the default Hard Reset
|
||||
Configuration Word and not the 4 bytes located at start of FLASH because at
|
||||
0xFE000000 is no FLASH. The FLASH consists out of 4 chips each 16bits wide. Be
|
||||
carefull, the bytes are swapped. So DQ0-7 is the high byte, DQ8-15 ist the low
|
||||
byte.
|
||||
|
||||
The icache can only manually be enabled after reset.
|
||||
The FLASH and main SDRAM is working with icache enabled.
|
||||
The local SDRAM can only be used as data memory when icache is enabled.
|
||||
If U-Boot runs in local SDRAM, TFTP does not work.
|
||||
The functions in mii_phy.c are all working. Call mii_phy_discover() out of
|
||||
eth_init() and solve the linker error.
|
||||
I2C, RTC/NVRAM and PCMCIA are not working yet.
|
||||
|
||||
TODO
|
||||
The 32MB local SDRAM is working but not shown in the startup messages of
|
||||
U-Boot. If you locate U-Boot or any other program to this area it won't run.
|
||||
Turning the ichache off does not solve this problem.
|
||||
|
||||
As I won't buy another RPX Super there might be some little work to do for you
|
||||
getting this U-Boot port running on the final board.
|
||||
|
||||
|
||||
frank.morauf@salzbrenner.com
|
34
board/siemens/SCM/config.mk
Normal file
34
board/siemens/SCM/config.mk
Normal file
@ -0,0 +1,34 @@
|
||||
#
|
||||
# (C) Copyright 2001
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
#
|
||||
# Siemens SCM boards
|
||||
#
|
||||
|
||||
# This should be equal to the CFG_FLASH_BASE define in config_SCM.h
|
||||
# for the "final" configuration, with U-Boot in flash, or the address
|
||||
# in RAM where U-Boot is loaded at for debugging.
|
||||
#
|
||||
TEXT_BASE = 0x40000000
|
||||
|
||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -I$(TOPDIR)
|
34
board/tqm8260/config.mk
Normal file
34
board/tqm8260/config.mk
Normal file
@ -0,0 +1,34 @@
|
||||
#
|
||||
# (C) Copyright 2001
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
#
|
||||
# TQM8260 boards
|
||||
#
|
||||
|
||||
# This should be equal to the CFG_FLASH_BASE define in config_TQM8260.h
|
||||
# for the "final" configuration, with U-Boot in flash, or the address
|
||||
# in RAM where U-Boot is loaded at for debugging.
|
||||
#
|
||||
TEXT_BASE = 0x40000000
|
||||
|
||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -I$(TOPDIR)
|
351
common/fpga.c
Normal file
351
common/fpga.c
Normal file
@ -0,0 +1,351 @@
|
||||
/*
|
||||
* (C) Copyright 2002
|
||||
* Rich Ireland, Enterasys Networks, rireland@enterasys.com.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Generic FPGA support
|
||||
*/
|
||||
#include <common.h> /* core U-Boot definitions */
|
||||
#include <xilinx.h> /* xilinx specific definitions */
|
||||
#include <altera.h> /* altera specific definitions */
|
||||
|
||||
#if defined(CONFIG_FPGA)
|
||||
|
||||
#if 0
|
||||
#define FPGA_DEBUG /* define FPGA_DEBUG to get debug messages */
|
||||
#endif
|
||||
|
||||
/* Local definitions */
|
||||
#ifndef CONFIG_MAX_FPGA_DEVICES
|
||||
#define CONFIG_MAX_FPGA_DEVICES 5
|
||||
#endif
|
||||
|
||||
/* Enable/Disable debug console messages */
|
||||
#ifdef FPGA_DEBUG
|
||||
#define PRINTF(fmt,args...) printf (fmt ,##args)
|
||||
#else
|
||||
#define PRINTF(fmt,args...)
|
||||
#endif
|
||||
|
||||
/* Local static data */
|
||||
static ulong relocation_offset = 0;
|
||||
static int next_desc = FPGA_INVALID_DEVICE;
|
||||
static fpga_desc desc_table[CONFIG_MAX_FPGA_DEVICES];
|
||||
|
||||
/* Local static functions */
|
||||
static const fpga_desc * const fpga_get_desc( int devnum );
|
||||
static const fpga_desc * const fpga_validate( int devnum, void *buf,
|
||||
size_t bsize, char *fn );
|
||||
static int fpga_dev_info( int devnum );
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/* fpga_no_sup
|
||||
* 'no support' message function
|
||||
*/
|
||||
static void fpga_no_sup( char *fn, char *msg )
|
||||
{
|
||||
if ( fn && msg ) {
|
||||
printf( "%s: No support for %s. CONFIG_FPGA defined as 0x%x.\n",
|
||||
fn, msg, CONFIG_FPGA );
|
||||
} else if ( msg ) {
|
||||
printf( "No support for %s. CONFIG_FPGA defined as 0x%x.\n",
|
||||
msg, CONFIG_FPGA );
|
||||
} else {
|
||||
printf( "No FPGA suport! CONFIG_FPGA defined as 0x%x.\n",
|
||||
CONFIG_FPGA );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* fpga_get_desc
|
||||
* map a device number to a descriptor
|
||||
*/
|
||||
static const fpga_desc * const fpga_get_desc( int devnum )
|
||||
{
|
||||
fpga_desc *desc = (fpga_desc * )NULL;
|
||||
|
||||
if (( devnum >= 0 ) && (devnum < next_desc )) {
|
||||
desc = &desc_table[devnum];
|
||||
PRINTF( "%s: found fpga descriptor #%d @ 0x%p\n",
|
||||
__FUNCTION__, devnum, desc );
|
||||
}
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
|
||||
/* fpga_validate
|
||||
* generic parameter checking code
|
||||
*/
|
||||
static const fpga_desc * const fpga_validate( int devnum, void *buf,
|
||||
size_t bsize, char *fn )
|
||||
{
|
||||
const fpga_desc * const desc = fpga_get_desc( devnum );
|
||||
|
||||
if ( !desc ) {
|
||||
printf( "%s: Invalid device number %d\n", fn, devnum );
|
||||
}
|
||||
|
||||
if ( !buf ) {
|
||||
printf( "%s: Null buffer.\n", fn );
|
||||
return (fpga_desc * const)NULL;
|
||||
}
|
||||
if ( !bsize ) {
|
||||
printf( "%s: Null buffer size.\n", fn );
|
||||
return (fpga_desc * const)NULL;
|
||||
}
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
|
||||
/* fpga_dev_info
|
||||
* generic multiplexing code
|
||||
*/
|
||||
static int fpga_dev_info( int devnum )
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume failure */
|
||||
const fpga_desc * const desc = fpga_get_desc( devnum );
|
||||
|
||||
if ( desc ) {
|
||||
PRINTF( "%s: Device Descriptor @ 0x%p\n",
|
||||
__FUNCTION__, desc->devdesc );
|
||||
|
||||
switch ( desc->devtype ) {
|
||||
case fpga_xilinx:
|
||||
#if CONFIG_FPGA & CFG_FPGA_XILINX
|
||||
printf( "Xilinx Device\nDescriptor @ 0x%p\n", desc );
|
||||
ret_val = xilinx_info( desc->devdesc );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Xilinx devices" );
|
||||
#endif
|
||||
break;
|
||||
case fpga_altera:
|
||||
#if CONFIG_FPGA & CFG_FPGA_ALTERA
|
||||
printf( "Altera Device\nDescriptor @ 0x%p\n", desc );
|
||||
ret_val = altera_info( desc->devdesc );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Altera devices" );
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
printf( "%s: Invalid or unsupported device type %d\n",
|
||||
__FUNCTION__, desc->devtype );
|
||||
}
|
||||
} else {
|
||||
printf( "%s: Invalid device number %d\n",
|
||||
__FUNCTION__, devnum );
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
||||
/* fpga_reloc
|
||||
* generic multiplexing code
|
||||
*/
|
||||
int fpga_reloc( fpga_type devtype, void *desc, ulong reloc_off )
|
||||
{
|
||||
int ret_val = FPGA_FAIL;
|
||||
|
||||
PRINTF( "%s: Relocating Device of type %d @ 0x%p with offset %lx\n",
|
||||
__FUNCTION__, devtype, desc, reloc_off );
|
||||
|
||||
switch ( devtype ) {
|
||||
case fpga_xilinx:
|
||||
#if CONFIG_FPGA & CFG_FPGA_XILINX
|
||||
ret_val = xilinx_reloc( desc, reloc_off );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Xilinx devices" );
|
||||
#endif
|
||||
break;
|
||||
case fpga_altera:
|
||||
#if CONFIG_FPGA & CFG_FPGA_ALTERA
|
||||
ret_val = altera_reloc( desc, reloc_off );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Altera devices" );
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
printf( "%s: Invalid or unsupported device type %d\n",
|
||||
__FUNCTION__, devtype );
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* fgpa_init is usually called from misc_init_r() and MUST be called
|
||||
* before any of the other fpga functions are used.
|
||||
*/
|
||||
void fpga_init( ulong reloc_off )
|
||||
{
|
||||
relocation_offset = reloc_off;
|
||||
next_desc = 0;
|
||||
memset( desc_table, 0, sizeof(desc_table));
|
||||
|
||||
PRINTF( "%s: CONFIG_FPGA = 0x%x\n", __FUNCTION__, CONFIG_FPGA );
|
||||
#if 0
|
||||
PRINTF( "%s: CFG_FPGA_XILINX = 0x%x\n", __FUNCTION__, CFG_FPGA_XILINX );
|
||||
PRINTF( "%s: CFG_FPGA_ALTERA = 0x%x\n", __FUNCTION__, CFG_FPGA_ALTERA );
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fpga_count
|
||||
* Basic interface function to get the current number of devices available.
|
||||
*/
|
||||
const int fpga_count( void )
|
||||
{
|
||||
return next_desc;
|
||||
}
|
||||
|
||||
/* fpga_add
|
||||
* Attempts to relocate the device/board specific interface code
|
||||
* to the proper RAM locations and adds the device descriptor to
|
||||
* the device table.
|
||||
*/
|
||||
int fpga_add( fpga_type devtype, void *desc )
|
||||
{
|
||||
int devnum = FPGA_INVALID_DEVICE;
|
||||
|
||||
if ( next_desc < 0 ) {
|
||||
printf( "%s: FPGA support not initialized!\n", __FUNCTION__ );
|
||||
} else if (( devtype > fpga_min_type ) && ( devtype < fpga_undefined )) {
|
||||
if ( desc ) {
|
||||
if ( next_desc < CONFIG_MAX_FPGA_DEVICES ) {
|
||||
if ( fpga_reloc( devtype, desc, relocation_offset )
|
||||
== FPGA_SUCCESS ) {
|
||||
devnum = next_desc;
|
||||
desc_table[next_desc].devtype = devtype;
|
||||
desc_table[next_desc++].devdesc = desc;
|
||||
} else {
|
||||
printf( "%s: Unable to relocate device interface table!\n",
|
||||
__FUNCTION__ );
|
||||
}
|
||||
} else {
|
||||
printf( "%s: Exceeded Max FPGA device count\n", __FUNCTION__ );
|
||||
}
|
||||
} else {
|
||||
printf( "%s: NULL device descriptor\n", __FUNCTION__ );
|
||||
}
|
||||
} else {
|
||||
printf( "%s: Unsupported FPGA type %d\n", __FUNCTION__, devtype );
|
||||
}
|
||||
|
||||
return devnum;
|
||||
}
|
||||
|
||||
/*
|
||||
* Generic multiplexing code
|
||||
*/
|
||||
int fpga_load( int devnum, void *buf, size_t bsize )
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume failure */
|
||||
const fpga_desc * const desc = fpga_validate( devnum, buf, bsize, __FUNCTION__ );
|
||||
|
||||
if ( desc ) {
|
||||
switch ( desc->devtype ) {
|
||||
case fpga_xilinx:
|
||||
#if CONFIG_FPGA & CFG_FPGA_XILINX
|
||||
ret_val = xilinx_load( desc->devdesc, buf, bsize );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Xilinx devices" );
|
||||
#endif
|
||||
break;
|
||||
case fpga_altera:
|
||||
#if CONFIG_FPGA & CFG_FPGA_ALTERA
|
||||
ret_val = altera_load( desc->devdesc, buf, bsize );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Altera devices" );
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
printf( "%s: Invalid or unsupported device type %d\n",
|
||||
__FUNCTION__, desc->devtype );
|
||||
}
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
/* fpga_dump
|
||||
* generic multiplexing code
|
||||
*/
|
||||
int fpga_dump( int devnum, void *buf, size_t bsize )
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume failure */
|
||||
const fpga_desc * const desc = fpga_validate( devnum, buf, bsize, __FUNCTION__ );
|
||||
|
||||
if ( desc ) {
|
||||
switch ( desc->devtype ) {
|
||||
case fpga_xilinx:
|
||||
#if CONFIG_FPGA & CFG_FPGA_XILINX
|
||||
ret_val = xilinx_dump( desc->devdesc, buf, bsize );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Xilinx devices" );
|
||||
#endif
|
||||
break;
|
||||
case fpga_altera:
|
||||
#if CONFIG_FPGA & CFG_FPGA_ALTERA
|
||||
ret_val = altera_dump( desc->devdesc, buf, bsize );
|
||||
#else
|
||||
fpga_no_sup( __FUNCTION__, "Altera devices" );
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
printf( "%s: Invalid or unsupported device type %d\n",
|
||||
__FUNCTION__, desc->devtype );
|
||||
}
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
||||
/* fpga_info
|
||||
* front end to fpga_dev_info. If devnum is invalid, report on all
|
||||
* available devices.
|
||||
*/
|
||||
int fpga_info( int devnum )
|
||||
{
|
||||
if ( devnum == FPGA_INVALID_DEVICE ) {
|
||||
if ( next_desc > 0 ) {
|
||||
int dev;
|
||||
|
||||
for ( dev = 0; dev < next_desc; dev++ ) {
|
||||
fpga_dev_info( dev );
|
||||
}
|
||||
return FPGA_SUCCESS;
|
||||
} else {
|
||||
printf( "%s: No FPGA devices available.\n", __FUNCTION__ );
|
||||
return FPGA_FAIL;
|
||||
}
|
||||
}
|
||||
else return fpga_dev_info( devnum );
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
#endif /* CONFIG_FPGA */
|
470
common/spartan2.c
Normal file
470
common/spartan2.c
Normal file
@ -0,0 +1,470 @@
|
||||
/*
|
||||
* (C) Copyright 2002
|
||||
* Rich Ireland, Enterasys Networks, rireland@enterasys.com.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#include <common.h> /* core U-Boot definitions */
|
||||
#include <spartan2.h> /* Spartan-II device family */
|
||||
|
||||
#if (CONFIG_FPGA & (CFG_XILINX | CFG_SPARTAN2))
|
||||
|
||||
/* Define FPGA_DEBUG to get debug printf's */
|
||||
#ifdef FPGA_DEBUG
|
||||
#define PRINTF(fmt,args...) printf (fmt ,##args)
|
||||
#else
|
||||
#define PRINTF(fmt,args...)
|
||||
#endif
|
||||
|
||||
#undef CFG_FPGA_CHECK_BUSY
|
||||
#define CFG_FPGA_PROG_FEEDBACK
|
||||
|
||||
/* Note: The assumption is that we cannot possibly run fast enough to
|
||||
* overrun the device (the Slave Parallel mode can free run at 50MHz).
|
||||
* If there is a need to operate slower, define CONFIG_FPGA_DELAY in
|
||||
* the board config file to slow things down.
|
||||
*/
|
||||
#ifndef CONFIG_FPGA_DELAY
|
||||
#define CONFIG_FPGA_DELAY()
|
||||
#endif
|
||||
|
||||
#ifndef CFG_FPGA_WAIT
|
||||
#define CFG_FPGA_WAIT 10
|
||||
#endif
|
||||
|
||||
static int Spartan2_sp_load( Xilinx_desc *desc, void *buf, size_t bsize );
|
||||
static int Spartan2_sp_dump( Xilinx_desc *desc, void *buf, size_t bsize );
|
||||
/* static int Spartan2_sp_info( Xilinx_desc *desc ); */
|
||||
static int Spartan2_sp_reloc( Xilinx_desc *desc, ulong reloc_offset );
|
||||
|
||||
static int Spartan2_ss_load( Xilinx_desc *desc, void *buf, size_t bsize );
|
||||
static int Spartan2_ss_dump( Xilinx_desc *desc, void *buf, size_t bsize );
|
||||
/* static int Spartan2_ss_info( Xilinx_desc *desc ); */
|
||||
static int Spartan2_ss_reloc( Xilinx_desc *desc, ulong reloc_offset );
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Spartan-II Generic Implementation */
|
||||
int Spartan2_load (Xilinx_desc * desc, void *buf, size_t bsize)
|
||||
{
|
||||
int ret_val = FPGA_FAIL;
|
||||
|
||||
switch (desc->iface) {
|
||||
case slave_serial:
|
||||
PRINTF ("%s: Launching Slave Serial Load\n", __FUNCTION__);
|
||||
ret_val = Spartan2_ss_load (desc, buf, bsize);
|
||||
break;
|
||||
|
||||
case slave_parallel:
|
||||
PRINTF ("%s: Launching Slave Parallel Load\n", __FUNCTION__);
|
||||
ret_val = Spartan2_sp_load (desc, buf, bsize);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("%s: Unsupported interface type, %d\n",
|
||||
__FUNCTION__, desc->iface);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
int Spartan2_dump (Xilinx_desc * desc, void *buf, size_t bsize)
|
||||
{
|
||||
int ret_val = FPGA_FAIL;
|
||||
|
||||
switch (desc->iface) {
|
||||
case slave_serial:
|
||||
PRINTF ("%s: Launching Slave Serial Dump\n", __FUNCTION__);
|
||||
ret_val = Spartan2_ss_dump (desc, buf, bsize);
|
||||
break;
|
||||
|
||||
case slave_parallel:
|
||||
PRINTF ("%s: Launching Slave Parallel Dump\n", __FUNCTION__);
|
||||
ret_val = Spartan2_sp_dump (desc, buf, bsize);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("%s: Unsupported interface type, %d\n",
|
||||
__FUNCTION__, desc->iface);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
int Spartan2_info( Xilinx_desc *desc )
|
||||
{
|
||||
return FPGA_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
int Spartan2_reloc (Xilinx_desc * desc, ulong reloc_offset)
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume a failure */
|
||||
|
||||
if (desc->family != Xilinx_Spartan2) {
|
||||
printf ("%s: Unsupported family type, %d\n",
|
||||
__FUNCTION__, desc->family);
|
||||
return FPGA_FAIL;
|
||||
} else
|
||||
switch (desc->iface) {
|
||||
case slave_serial:
|
||||
ret_val = Spartan2_ss_reloc (desc, reloc_offset);
|
||||
break;
|
||||
|
||||
case slave_parallel:
|
||||
ret_val = Spartan2_sp_reloc (desc, reloc_offset);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("%s: Unsupported interface type, %d\n",
|
||||
__FUNCTION__, desc->iface);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Spartan-II Slave Parallel Generic Implementation */
|
||||
|
||||
static int Spartan2_sp_load (Xilinx_desc * desc, void *buf, size_t bsize)
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume the worst */
|
||||
Xilinx_Spartan2_Slave_Parallel_fns *fn = desc->iface_fns;
|
||||
|
||||
PRINTF ("%s: start with interface functions @ 0x%p\n",
|
||||
__FUNCTION__, fn);
|
||||
|
||||
if (fn) {
|
||||
size_t bytecount = 0;
|
||||
unsigned char *data = (unsigned char *) buf;
|
||||
int cookie = desc->cookie; /* make a local copy */
|
||||
unsigned long ts; /* timestamp */
|
||||
|
||||
PRINTF ("%s: Function Table:\n"
|
||||
"ptr:\t0x%p\n"
|
||||
"struct: 0x%p\n"
|
||||
"pre: 0x%p\n"
|
||||
"pgm:\t0x%p\n"
|
||||
"init:\t0x%p\n"
|
||||
"err:\t0x%p\n"
|
||||
"clk:\t0x%p\n"
|
||||
"cs:\t0x%p\n"
|
||||
"wr:\t0x%p\n"
|
||||
"read data:\t0x%p\n"
|
||||
"write data:\t0x%p\n"
|
||||
"busy:\t0x%p\n"
|
||||
"abort:\t0x%p\n",
|
||||
"post:\t0x%p\n\n",
|
||||
__FUNCTION__, &fn, fn, fn->pre, fn->pgm, fn->init, fn->err,
|
||||
fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata, fn->busy,
|
||||
fn->abort, fn->post);
|
||||
|
||||
/*
|
||||
* This code is designed to emulate the "Express Style"
|
||||
* Continuous Data Loading in Slave Parallel Mode for
|
||||
* the Spartan-II Family.
|
||||
*/
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
printf ("Loading FPGA Device %d...\n", cookie);
|
||||
#endif
|
||||
/*
|
||||
* Run the pre configuration function if there is one.
|
||||
*/
|
||||
if (*fn->pre) {
|
||||
(*fn->pre) (cookie);
|
||||
}
|
||||
|
||||
/* Establish the initial state */
|
||||
(*fn->pgm) (TRUE, TRUE, cookie); /* Assert the program, commit */
|
||||
|
||||
/* Get ready for the burn */
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->pgm) (FALSE, TRUE, cookie); /* Deassert the program, commit */
|
||||
|
||||
ts = get_timer (0); /* get current time */
|
||||
/* Now wait for INIT and BUSY to go high */
|
||||
do {
|
||||
CONFIG_FPGA_DELAY ();
|
||||
if (get_timer (ts) > CFG_FPGA_WAIT) { /* check the time */
|
||||
puts ("** Timeout waiting for INIT to clear.\n");
|
||||
(*fn->abort) (cookie); /* abort the burn */
|
||||
return FPGA_FAIL;
|
||||
}
|
||||
} while ((*fn->init) (cookie) && (*fn->busy) (cookie));
|
||||
|
||||
(*fn->wr) (TRUE, TRUE, cookie); /* Assert write, commit */
|
||||
(*fn->cs) (TRUE, TRUE, cookie); /* Assert chip select, commit */
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
|
||||
/* Load the data */
|
||||
while (bytecount < bsize) {
|
||||
/* XXX - do we check for an Ctrl-C press in here ??? */
|
||||
/* XXX - Check the error bit? */
|
||||
|
||||
(*fn->wdata) (data[bytecount++], TRUE, cookie); /* write the data */
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->clk) (FALSE, TRUE, cookie); /* Deassert the clock pin */
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
|
||||
#ifdef CFG_FPGA_CHECK_BUSY
|
||||
ts = get_timer (0); /* get current time */
|
||||
while ((*fn->busy) (cookie)) {
|
||||
/* XXX - we should have a check in here somewhere to
|
||||
* make sure we aren't busy forever... */
|
||||
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->clk) (FALSE, TRUE, cookie); /* Deassert the clock pin */
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
|
||||
if (get_timer (ts) > CFG_FPGA_WAIT) { /* check the time */
|
||||
puts ("** Timeout waiting for BUSY to clear.\n");
|
||||
(*fn->abort) (cookie); /* abort the burn */
|
||||
return FPGA_FAIL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
if (bytecount % (bsize / 40) == 0)
|
||||
putc ('.'); /* let them know we are alive */
|
||||
#endif
|
||||
}
|
||||
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->cs) (FALSE, TRUE, cookie); /* Deassert the chip select */
|
||||
(*fn->wr) (FALSE, TRUE, cookie); /* Deassert the write pin */
|
||||
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
putc ('\n'); /* terminate the dotted line */
|
||||
#endif
|
||||
|
||||
/* now check for done signal */
|
||||
ts = get_timer (0); /* get current time */
|
||||
ret_val = FPGA_SUCCESS;
|
||||
while ((*fn->done) (cookie) == FPGA_FAIL) {
|
||||
/* XXX - we should have a check in here somewhere to
|
||||
* make sure we aren't busy forever... */
|
||||
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->clk) (FALSE, TRUE, cookie); /* Deassert the clock pin */
|
||||
CONFIG_FPGA_DELAY ();
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
|
||||
if (get_timer (ts) > CFG_FPGA_WAIT) { /* check the time */
|
||||
puts ("** Timeout waiting for DONE to clear.\n");
|
||||
(*fn->abort) (cookie); /* abort the burn */
|
||||
ret_val = FPGA_FAIL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret_val == FPGA_SUCCESS) {
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
puts ("Done.\n");
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
* Run the post configuration function if there is one.
|
||||
*/
|
||||
if (*fn->post) {
|
||||
(*fn->post) (cookie);
|
||||
}
|
||||
|
||||
else {
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
puts ("Fail.\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
} else {
|
||||
printf ("%s: NULL Interface function table!\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
static int Spartan2_sp_dump (Xilinx_desc * desc, void *buf, size_t bsize)
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume the worst */
|
||||
Xilinx_Spartan2_Slave_Parallel_fns *fn = desc->iface_fns;
|
||||
|
||||
if (fn) {
|
||||
unsigned char *data = (unsigned char *) buf;
|
||||
size_t bytecount = 0;
|
||||
int cookie = desc->cookie; /* make a local copy */
|
||||
|
||||
printf ("Starting Dump of FPGA Device %d...\n", cookie);
|
||||
|
||||
(*fn->cs) (TRUE, TRUE, cookie); /* Assert chip select, commit */
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
|
||||
/* dump the data */
|
||||
while (bytecount < bsize) {
|
||||
/* XXX - do we check for an Ctrl-C press in here ??? */
|
||||
|
||||
(*fn->clk) (FALSE, TRUE, cookie); /* Deassert the clock pin */
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
(*fn->rdata) (&(data[bytecount++]), cookie); /* read the data */
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
if (bytecount % (bsize / 40) == 0)
|
||||
putc ('.'); /* let them know we are alive */
|
||||
#endif
|
||||
}
|
||||
|
||||
(*fn->cs) (FALSE, FALSE, cookie); /* Deassert the chip select */
|
||||
(*fn->clk) (FALSE, TRUE, cookie); /* Deassert the clock pin */
|
||||
(*fn->clk) (TRUE, TRUE, cookie); /* Assert the clock pin */
|
||||
|
||||
#ifdef CFG_FPGA_PROG_FEEDBACK
|
||||
putc ('\n'); /* terminate the dotted line */
|
||||
#endif
|
||||
puts ("Done.\n");
|
||||
|
||||
/* XXX - checksum the data? */
|
||||
} else {
|
||||
printf ("%s: NULL Interface function table!\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
||||
static int Spartan2_sp_reloc (Xilinx_desc * desc, ulong reloc_offset)
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume the worst */
|
||||
Xilinx_Spartan2_Slave_Parallel_fns *fn_r, *fn =
|
||||
(Xilinx_Spartan2_Slave_Parallel_fns *) (desc->iface_fns);
|
||||
|
||||
if (fn) {
|
||||
ulong addr;
|
||||
|
||||
/* Get the relocated table address */
|
||||
addr = (ulong) fn + reloc_offset;
|
||||
fn_r = (Xilinx_Spartan2_Slave_Parallel_fns *) addr;
|
||||
|
||||
if (!fn_r->relocated) {
|
||||
|
||||
if (memcmp (fn_r, fn,
|
||||
sizeof (Xilinx_Spartan2_Slave_Parallel_fns))
|
||||
== 0) {
|
||||
/* good copy of the table, fix the descriptor pointer */
|
||||
desc->iface_fns = fn_r;
|
||||
} else {
|
||||
PRINTF ("%s: Invalid function table at 0x%p\n",
|
||||
__FUNCTION__, fn_r);
|
||||
return FPGA_FAIL;
|
||||
}
|
||||
|
||||
PRINTF ("%s: Relocating descriptor at 0x%p\n", __FUNCTION__,
|
||||
desc);
|
||||
|
||||
addr = (ulong) (fn->pre) + reloc_offset;
|
||||
fn_r->pre = (Xilinx_pre_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->pgm) + reloc_offset;
|
||||
fn_r->pgm = (Xilinx_pgm_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->init) + reloc_offset;
|
||||
fn_r->init = (Xilinx_init_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->done) + reloc_offset;
|
||||
fn_r->done = (Xilinx_done_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->clk) + reloc_offset;
|
||||
fn_r->clk = (Xilinx_clk_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->err) + reloc_offset;
|
||||
fn_r->err = (Xilinx_err_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->cs) + reloc_offset;
|
||||
fn_r->cs = (Xilinx_cs_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->wr) + reloc_offset;
|
||||
fn_r->wr = (Xilinx_wr_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->rdata) + reloc_offset;
|
||||
fn_r->rdata = (Xilinx_rdata_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->wdata) + reloc_offset;
|
||||
fn_r->wdata = (Xilinx_wdata_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->busy) + reloc_offset;
|
||||
fn_r->busy = (Xilinx_busy_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->abort) + reloc_offset;
|
||||
fn_r->abort = (Xilinx_abort_fn) addr;
|
||||
|
||||
addr = (ulong) (fn->post) + reloc_offset;
|
||||
fn_r->post = (Xilinx_post_fn) addr;
|
||||
|
||||
fn_r->relocated = TRUE;
|
||||
|
||||
} else {
|
||||
/* this table has already been moved */
|
||||
/* XXX - should check to see if the descriptor is correct */
|
||||
desc->iface_fns = fn_r;
|
||||
}
|
||||
|
||||
ret_val = FPGA_SUCCESS;
|
||||
} else {
|
||||
printf ("%s: NULL Interface function table!\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
|
||||
{
|
||||
printf ("%s: Slave Serial Loading is still unsupported\n",
|
||||
__FUNCTION__);
|
||||
return FPGA_FAIL;
|
||||
}
|
||||
|
||||
static int Spartan2_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize)
|
||||
{
|
||||
printf ("%s: Slave Serial Dumping is still unsupported\n",
|
||||
__FUNCTION__);
|
||||
return FPGA_FAIL;
|
||||
}
|
||||
|
||||
static int Spartan2_ss_reloc (Xilinx_desc * desc, ulong reloc_offset)
|
||||
{
|
||||
int ret_val = FPGA_FAIL; /* assume the worst */
|
||||
Xilinx_Spartan2_Slave_Serial_fns *fn =
|
||||
(Xilinx_Spartan2_Slave_Serial_fns *) (desc->iface_fns);
|
||||
|
||||
if (fn) {
|
||||
printf ("%s: Slave Serial Loading is still unsupported\n",
|
||||
__FUNCTION__);
|
||||
} else {
|
||||
printf ("%s: NULL Interface function table!\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
156
config.mk
Normal file
156
config.mk
Normal file
@ -0,0 +1,156 @@
|
||||
#
|
||||
# (C) Copyright 2000
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
|
||||
#
|
||||
# When cross-compiling on NetBSD, we have to define __PPC__ or else we
|
||||
# will pick up a va_list declaration that is incompatible with the
|
||||
# actual argument lists emitted by the compiler.
|
||||
#
|
||||
# [Tested on NetBSD/i386 1.5 + cross-powerpc-netbsd-1.3]
|
||||
|
||||
ifeq ($(ARCH),ppc)
|
||||
ifeq ($(CROSS_COMPILE),powerpc-netbsd-)
|
||||
PLATFORM_CPPFLAGS+= -D__PPC__
|
||||
endif
|
||||
ifeq ($(CROSS_COMPILE),powerpc-openbsd-)
|
||||
PLATFORM_CPPFLAGS+= -D__PPC__
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),arm)
|
||||
ifeq ($(CROSS_COMPILE),powerpc-netbsd-)
|
||||
PLATFORM_CPPFLAGS+= -D__ARM__
|
||||
endif
|
||||
ifeq ($(CROSS_COMPILE),powerpc-openbsd-)
|
||||
PLATFORM_CPPFLAGS+= -D__ARM__
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef ARCH
|
||||
sinclude $(TOPDIR)/$(ARCH)_config.mk # include architecture dependend rules
|
||||
endif
|
||||
ifdef CPU
|
||||
sinclude $(TOPDIR)/cpu/$(CPU)/config.mk # include CPU specific rules
|
||||
endif
|
||||
ifdef VENDOR
|
||||
BOARDDIR = $(VENDOR)/$(BOARD)
|
||||
else
|
||||
BOARDDIR = $(BOARD)
|
||||
endif
|
||||
ifdef BOARD
|
||||
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
|
||||
endif
|
||||
|
||||
#########################################################################
|
||||
|
||||
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
||||
else if [ -x /bin/bash ]; then echo /bin/bash; \
|
||||
else echo sh; fi ; fi)
|
||||
|
||||
ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
|
||||
HOSTCC = cc
|
||||
else
|
||||
HOSTCC = gcc
|
||||
endif
|
||||
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
|
||||
HOSTSTRIP = strip
|
||||
|
||||
#########################################################################
|
||||
|
||||
#
|
||||
# Include the make variables (CC, etc...)
|
||||
#
|
||||
AS = $(CROSS_COMPILE)as
|
||||
LD = $(CROSS_COMPILE)ld
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
CPP = $(CC) -E
|
||||
AR = $(CROSS_COMPILE)ar
|
||||
NM = $(CROSS_COMPILE)nm
|
||||
STRIP = $(CROSS_COMPILE)strip
|
||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||
RANLIB = $(CROSS_COMPILE)RANLIB
|
||||
|
||||
RELFLAGS= $(PLATFORM_RELFLAGS)
|
||||
DBGFLAGS= -g #-DDEBUG
|
||||
OPTFLAGS= -Os #-fomit-frame-pointer
|
||||
#LDSCRIPT := board/$(BOARDDIR)/u-boot.lds.debug
|
||||
LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
|
||||
OBJCFLAGS := --gap-fill=0xff
|
||||
|
||||
CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \
|
||||
-D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \
|
||||
-I$(TOPDIR)/include \
|
||||
-fno-builtin \
|
||||
-pipe $(PLATFORM_CPPFLAGS)
|
||||
|
||||
ifdef BUILD_TAG
|
||||
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \
|
||||
-DBUILD_TAG='"$(BUILD_TAG)"'
|
||||
else
|
||||
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes
|
||||
endif
|
||||
|
||||
AFLAGS_DEBUG := -Wa,-gstabs
|
||||
AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
|
||||
|
||||
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE)
|
||||
|
||||
# Location of a usable BFD library, where we define "usable" as
|
||||
# "built for ${HOST}, supports ${TARGET}". Sensible values are
|
||||
# - When cross-compiling: the root of the cross-environment
|
||||
# - Linux/ppc (native): /usr
|
||||
# - NetBSD/ppc (native): you lose ... (must extract these from the
|
||||
# binutils build directory, plus the native and U-Boot include
|
||||
# files don't like each other)
|
||||
#
|
||||
# So far, this is used only by tools/gdb/Makefile.
|
||||
|
||||
ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
|
||||
BFD_ROOT_DIR = /usr/local/tools
|
||||
else
|
||||
#BFD_ROOT_DIR = /LinuxPPC/CDK # Linux/i386
|
||||
#BFD_ROOT_DIR = /usr/pkg/cross # NetBSD/i386
|
||||
#BFD_ROOT_DIR = /usr # native
|
||||
BFD_ROOT_DIR = /opt/powerpc
|
||||
endif
|
||||
|
||||
#########################################################################
|
||||
|
||||
export CONFIG_SHELL HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE \
|
||||
AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP \
|
||||
MAKE
|
||||
export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS
|
||||
|
||||
#########################################################################
|
||||
|
||||
%.s: %.S
|
||||
$(CPP) $(AFLAGS) -o $@ $(CURDIR)/$<
|
||||
%.o: %.S
|
||||
$(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$<
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
#########################################################################
|
160
cpu/mpc824x/drivers/epic/epic.h
Normal file
160
cpu/mpc824x/drivers/epic/epic.h
Normal file
@ -0,0 +1,160 @@
|
||||
/*********************************************************************
|
||||
* mpc8240epic.h - EPIC module of the MPC8240 micro-controller
|
||||
*
|
||||
* Copyrigh 1999 Motorola Inc.
|
||||
*
|
||||
* Modification History:
|
||||
* =====================
|
||||
* 01a,04Feb99,My Created.
|
||||
* 15Nov200, robt -modified to use in U-Boot
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __INCEPICh
|
||||
#define __INCEPICh
|
||||
|
||||
#define ULONG unsigned long
|
||||
#define MAXVEC 20
|
||||
#define MAXIRQ 5 /* IRQs */
|
||||
#define EPIC_DIRECT_IRQ 0 /* Direct interrupt type */
|
||||
|
||||
/* EPIC register addresses */
|
||||
|
||||
#define EPIC_EUMBBAR 0x40000 /* EUMBBAR of EPIC */
|
||||
#define EPIC_FEATURES_REG (EPIC_EUMBBAR + 0x01000)/* Feature reporting */
|
||||
#define EPIC_GLOBAL_REG (EPIC_EUMBBAR + 0x01020)/* Global config. */
|
||||
#define EPIC_INT_CONF_REG (EPIC_EUMBBAR + 0x01030)/* Interrupt config. */
|
||||
#define EPIC_VENDOR_ID_REG (EPIC_EUMBBAR + 0x01080)/* Vendor id */
|
||||
#define EPIC_PROC_INIT_REG (EPIC_EUMBBAR + 0x01090)/* Processor init. */
|
||||
#define EPIC_SPUR_VEC_REG (EPIC_EUMBBAR + 0x010e0)/* Spurious vector */
|
||||
#define EPIC_TM_FREQ_REG (EPIC_EUMBBAR + 0x010f0)/* Timer Frequency */
|
||||
|
||||
#define EPIC_TM0_CUR_COUNT_REG (EPIC_EUMBBAR + 0x01100)/* Gbl TM0 Cur. Count*/
|
||||
#define EPIC_TM0_BASE_COUNT_REG (EPIC_EUMBBAR + 0x01110)/* Gbl TM0 Base Count*/
|
||||
#define EPIC_TM0_VEC_REG (EPIC_EUMBBAR + 0x01120)/* Gbl TM0 Vector Pri*/
|
||||
#define EPIC_TM0_DES_REG (EPIC_EUMBBAR + 0x01130)/* Gbl TM0 Dest. */
|
||||
|
||||
#define EPIC_TM1_CUR_COUNT_REG (EPIC_EUMBBAR + 0x01140)/* Gbl TM1 Cur. Count*/
|
||||
#define EPIC_TM1_BASE_COUNT_REG (EPIC_EUMBBAR + 0x01150)/* Gbl TM1 Base Count*/
|
||||
#define EPIC_TM1_VEC_REG (EPIC_EUMBBAR + 0x01160)/* Gbl TM1 Vector Pri*/
|
||||
#define EPIC_TM1_DES_REG (EPIC_EUMBBAR + 0x01170)/* Gbl TM1 Dest. */
|
||||
|
||||
#define EPIC_TM2_CUR_COUNT_REG (EPIC_EUMBBAR + 0x01180)/* Gbl TM2 Cur. Count*/
|
||||
#define EPIC_TM2_BASE_COUNT_REG (EPIC_EUMBBAR + 0x01190)/* Gbl TM2 Base Count*/
|
||||
#define EPIC_TM2_VEC_REG (EPIC_EUMBBAR + 0x011a0)/* Gbl TM2 Vector Pri*/
|
||||
#define EPIC_TM2_DES_REG (EPIC_EUMBBAR + 0x011b0)/* Gbl TM2 Dest */
|
||||
|
||||
#define EPIC_TM3_CUR_COUNT_REG (EPIC_EUMBBAR + 0x011c0)/* Gbl TM3 Cur. Count*/
|
||||
#define EPIC_TM3_BASE_COUNT_REG (EPIC_EUMBBAR + 0x011d0)/* Gbl TM3 Base Count*/
|
||||
#define EPIC_TM3_VEC_REG (EPIC_EUMBBAR + 0x011e0)/* Gbl TM3 Vector Pri*/
|
||||
#define EPIC_TM3_DES_REG (EPIC_EUMBBAR + 0x011f0)/* Gbl TM3 Dest. */
|
||||
|
||||
#define EPIC_EX_INT0_VEC_REG (EPIC_EUMBBAR + 0x10200)/* Ext. Int. Sr0 Des */
|
||||
#define EPIC_EX_INT0_DES_REG (EPIC_EUMBBAR + 0x10210)/* Ext. Int. Sr0 Vect*/
|
||||
#define EPIC_EX_INT1_VEC_REG (EPIC_EUMBBAR + 0x10220)/* Ext. Int. Sr1 Des */
|
||||
#define EPIC_EX_INT1_DES_REG (EPIC_EUMBBAR + 0x10230)/* Ext. Int. Sr1 Vect*/
|
||||
#define EPIC_EX_INT2_VEC_REG (EPIC_EUMBBAR + 0x10240)/* Ext. Int. Sr2 Des */
|
||||
#define EPIC_EX_INT2_DES_REG (EPIC_EUMBBAR + 0x10250)/* Ext. Int. Sr2 Vect*/
|
||||
#define EPIC_EX_INT3_VEC_REG (EPIC_EUMBBAR + 0x10260)/* Ext. Int. Sr3 Des */
|
||||
#define EPIC_EX_INT3_DES_REG (EPIC_EUMBBAR + 0x10270)/* Ext. Int. Sr3 Vect*/
|
||||
#define EPIC_EX_INT4_VEC_REG (EPIC_EUMBBAR + 0x10280)/* Ext. Int. Sr4 Des */
|
||||
#define EPIC_EX_INT4_DES_REG (EPIC_EUMBBAR + 0x10290)/* Ext. Int. Sr4 Vect*/
|
||||
|
||||
#define EPIC_SR_INT0_VEC_REG (EPIC_EUMBBAR + 0x10200)/* Sr. Int. Sr0 Des */
|
||||
#define EPIC_SR_INT0_DES_REG (EPIC_EUMBBAR + 0x10210)/* Sr. Int. Sr0 Vect */
|
||||
#define EPIC_SR_INT1_VEC_REG (EPIC_EUMBBAR + 0x10220)/* Sr. Int. Sr1 Des */
|
||||
#define EPIC_SR_INT1_DES_REG (EPIC_EUMBBAR + 0x10230)/* Sr. Int. Sr1 Vect.*/
|
||||
#define EPIC_SR_INT2_VEC_REG (EPIC_EUMBBAR + 0x10240)/* Sr. Int. Sr2 Des */
|
||||
#define EPIC_SR_INT2_DES_REG (EPIC_EUMBBAR + 0x10250)/* Sr. Int. Sr2 Vect.*/
|
||||
#define EPIC_SR_INT3_VEC_REG (EPIC_EUMBBAR + 0x10260)/* Sr. Int. Sr3 Des */
|
||||
#define EPIC_SR_INT3_DES_REG (EPIC_EUMBBAR + 0x10270)/* Sr. Int. Sr3 Vect.*/
|
||||
#define EPIC_SR_INT4_VEC_REG (EPIC_EUMBBAR + 0x10280)/* Sr. Int. Sr4 Des */
|
||||
#define EPIC_SR_INT4_DES_REG (EPIC_EUMBBAR + 0x10290)/* Sr. Int. Sr4 Vect.*/
|
||||
|
||||
#define EPIC_SR_INT5_VEC_REG (EPIC_EUMBBAR + 0x102a0)/* Sr. Int. Sr5 Des */
|
||||
#define EPIC_SR_INT5_DES_REG (EPIC_EUMBBAR + 0x102b0)/* Sr. Int. Sr5 Vect.*/
|
||||
#define EPIC_SR_INT6_VEC_REG (EPIC_EUMBBAR + 0x102c0)/* Sr. Int. Sr6 Des */
|
||||
#define EPIC_SR_INT6_DES_REG (EPIC_EUMBBAR + 0x102d0)/* Sr. Int. Sr6 Vect.*/
|
||||
#define EPIC_SR_INT7_VEC_REG (EPIC_EUMBBAR + 0x102e0)/* Sr. Int. Sr7 Des */
|
||||
#define EPIC_SR_INT7_DES_REG (EPIC_EUMBBAR + 0x102f0)/* Sr. Int. Sr7 Vect.*/
|
||||
#define EPIC_SR_INT8_VEC_REG (EPIC_EUMBBAR + 0x10300)/* Sr. Int. Sr8 Des */
|
||||
#define EPIC_SR_INT8_DES_REG (EPIC_EUMBBAR + 0x10310)/* Sr. Int. Sr8 Vect.*/
|
||||
#define EPIC_SR_INT9_VEC_REG (EPIC_EUMBBAR + 0x10320)/* Sr. Int. Sr9 Des */
|
||||
#define EPIC_SR_INT9_DES_REG (EPIC_EUMBBAR + 0x10330)/* Sr. Int. Sr9 Vect.*/
|
||||
|
||||
#define EPIC_SR_INT10_VEC_REG (EPIC_EUMBBAR + 0x10340)/* Sr. Int. Sr10 Des */
|
||||
#define EPIC_SR_INT10_DES_REG (EPIC_EUMBBAR + 0x10350)/* Sr. Int. Sr10 Vect*/
|
||||
#define EPIC_SR_INT11_VEC_REG (EPIC_EUMBBAR + 0x10360)/* Sr. Int. Sr11 Des */
|
||||
#define EPIC_SR_INT11_DES_REG (EPIC_EUMBBAR + 0x10370)/* Sr. Int. Sr11 Vect*/
|
||||
#define EPIC_SR_INT12_VEC_REG (EPIC_EUMBBAR + 0x10380)/* Sr. Int. Sr12 Des */
|
||||
#define EPIC_SR_INT12_DES_REG (EPIC_EUMBBAR + 0x10390)/* Sr. Int. Sr12 Vect*/
|
||||
#define EPIC_SR_INT13_VEC_REG (EPIC_EUMBBAR + 0x103a0)/* Sr. Int. Sr13 Des */
|
||||
#define EPIC_SR_INT13_DES_REG (EPIC_EUMBBAR + 0x103b0)/* Sr. Int. Sr13 Vect*/
|
||||
#define EPIC_SR_INT14_VEC_REG (EPIC_EUMBBAR + 0x103c0)/* Sr. Int. Sr14 Des */
|
||||
#define EPIC_SR_INT14_DES_REG (EPIC_EUMBBAR + 0x103d0)/* Sr. Int. Sr14 Vect*/
|
||||
#define EPIC_SR_INT15_VEC_REG (EPIC_EUMBBAR + 0x103e0)/* Sr. Int. Sr15 Des */
|
||||
#define EPIC_SR_INT15_DES_REG (EPIC_EUMBBAR + 0x103f0)/* Sr. Int. Sr15 Vect*/
|
||||
|
||||
#define EPIC_I2C_INT_VEC_REG (EPIC_EUMBBAR + 0x11020)/* I2C Int. Vect Pri.*/
|
||||
#define EPIC_I2C_INT_DES_REG (EPIC_EUMBBAR + 0x11030)/* I2C Int. Dest */
|
||||
#define EPIC_DMA0_INT_VEC_REG (EPIC_EUMBBAR + 0x11040)/* DMA0 Int. Vect Pri*/
|
||||
#define EPIC_DMA0_INT_DES_REG (EPIC_EUMBBAR + 0x11050)/* DMA0 Int. Dest */
|
||||
#define EPIC_DMA1_INT_VEC_REG (EPIC_EUMBBAR + 0x11060)/* DMA1 Int. Vect Pri*/
|
||||
#define EPIC_DMA1_INT_DES_REG (EPIC_EUMBBAR + 0x11070)/* DMA1 Int. Dest */
|
||||
#define EPIC_MSG_INT_VEC_REG (EPIC_EUMBBAR + 0x110c0)/* Msg Int. Vect Pri*/
|
||||
#define EPIC_MSG_INT_DES_REG (EPIC_EUMBBAR + 0x110d0)/* Msg Int. Dest */
|
||||
|
||||
#define EPIC_PROC_CTASK_PRI_REG (EPIC_EUMBBAR + 0x20080)/* Proc. current task*/
|
||||
#define EPIC_PROC_INT_ACK_REG (EPIC_EUMBBAR + 0x200a0)/* Int. acknowledge */
|
||||
#define EPIC_PROC_EOI_REG (EPIC_EUMBBAR + 0x200b0)/* End of interrupt */
|
||||
|
||||
/* Error code */
|
||||
|
||||
#define OK 0
|
||||
#define ERROR -1
|
||||
|
||||
/* function prototypes */
|
||||
|
||||
void epicVendorId( unsigned int *step,
|
||||
unsigned int *devId,
|
||||
unsigned int *venId
|
||||
);
|
||||
void epicFeatures( unsigned int *noIRQs,
|
||||
unsigned int *noCPUs,
|
||||
unsigned int *VerId );
|
||||
extern void epicInit( unsigned int IRQType, unsigned int clkRatio);
|
||||
ULONG sysEUMBBARRead ( ULONG regNum );
|
||||
void sysEUMBBARWrite ( ULONG regNum, ULONG regVal);
|
||||
extern void epicTmFrequencySet( unsigned int frq );
|
||||
extern unsigned int epicTmFrequencyGet(void);
|
||||
extern unsigned int epicTmBaseSet( ULONG srcAddr,
|
||||
unsigned int cnt,
|
||||
unsigned int inhibit );
|
||||
extern unsigned int epicTmBaseGet ( ULONG srcAddr, unsigned int *val );
|
||||
extern unsigned int epicTmCountGet( ULONG srcAddr, unsigned int *val );
|
||||
extern unsigned int epicTmInhibit( unsigned int timer );
|
||||
extern unsigned int epicTmEnable( ULONG srcAdr );
|
||||
extern void CoreExtIntEnable(void); /* Enable 603e external interrupts */
|
||||
extern void CoreExtIntDisable(void); /* Disable 603e external interrupts */
|
||||
extern unsigned char epicIntTaskGet(void);
|
||||
extern void epicIntTaskSet( unsigned char val );
|
||||
extern unsigned int epicIntAck(void);
|
||||
extern void epicSprSet( unsigned int eumbbar, unsigned char );
|
||||
extern void epicConfigGet( unsigned int *clkRatio,
|
||||
unsigned int *serEnable );
|
||||
extern void SrcVecTableInit(void);
|
||||
extern unsigned int epicModeGet(void);
|
||||
extern void epicIntEnable(int Vect);
|
||||
extern void epicIntDisable(int Vect);
|
||||
extern int epicIntSourceConfig(int Vect, int Polarity, int Sense, int Prio);
|
||||
extern unsigned int epicIntAck(void);
|
||||
extern void epicEOI(void);
|
||||
extern int epicCurTaskPrioSet(int Vect);
|
||||
|
||||
struct SrcVecTable
|
||||
{
|
||||
ULONG srcAddr;
|
||||
char srcName[40];
|
||||
};
|
||||
|
||||
#endif /* EPIC_H */
|
415
doc/README.TQM8260
Normal file
415
doc/README.TQM8260
Normal file
@ -0,0 +1,415 @@
|
||||
|
||||
This file contains basic information on the port of U-Boot to TQM8260.
|
||||
All the changes fit in the common U-Boot infrastructure, providing a
|
||||
new TQM8260-specific entry in makefiles. To build U-Boot for TQM8260,
|
||||
type "make TQM8260_config", edit the "include/config_TQM8260.h" file
|
||||
if necessary, then type "make".
|
||||
|
||||
|
||||
Common file modifications:
|
||||
--------------------------
|
||||
|
||||
The following common files have been modified by this project:
|
||||
(starting from the ppcboot-0.9.3/ directory)
|
||||
|
||||
MAKEALL - TQM8260 entry added
|
||||
Makefile - TQM8260_config entry added
|
||||
cpu/mpc8260/Makefile - soft_i2c.o module added
|
||||
cpu/mpc8260/ether_scc.c - TQM8260-specific definitions added, an obvious
|
||||
bug fixed (fcr -> scr)
|
||||
cpu/mpc8260/ether_fcc.c - TQM8260-specific definitions added
|
||||
include/flash.h - added definitions for the AM29LV640D Flash chip
|
||||
|
||||
|
||||
New files:
|
||||
----------
|
||||
|
||||
The following new files have been added by this project:
|
||||
(starting from the ppcboot-0.9.3/ directory)
|
||||
|
||||
board/tqm8260/ - board-specific directory
|
||||
board/tqm8260/Makefile - board-specific makefile
|
||||
board/tqm8260/config.mk - config file
|
||||
board/tqm8260/flash.c - flash driver (for AM29LV640D)
|
||||
board/tqm8260/ppcboot.lds - linker script
|
||||
board/tqm8260/tqm8260.c - ioport and memory initialization
|
||||
cpu/mpc8260/soft_i2c.c - software i2c EEPROM driver
|
||||
include/config_TQM8260.h - main configuration file
|
||||
|
||||
|
||||
New configuration options:
|
||||
--------------------------
|
||||
|
||||
CONFIG_TQM8260
|
||||
|
||||
Main board-specific option (should be defined for TQM8260).
|
||||
|
||||
CONFIG_82xx_CONS_SMC1
|
||||
|
||||
If defined, SMC1 will be used as the console
|
||||
|
||||
CONFIG_82xx_CONS_SMC2
|
||||
|
||||
If defined, SMC2 will be used as the console
|
||||
|
||||
CFG_INIT_LOCAL_SDRAM
|
||||
|
||||
If defined, the SDRAM on the local bus will be initialized and
|
||||
mapped at BR2.
|
||||
|
||||
|
||||
Acceptance criteria tests:
|
||||
--------------------------
|
||||
|
||||
The following tests have been conducted to validate the port of U-Boot
|
||||
to TQM8260:
|
||||
|
||||
1. Operation on serial console:
|
||||
|
||||
With the CONFIG_82xx_CONS_SMC1 option defined in the main configuration file,
|
||||
the U-Boot output appeared on the serial terminal connected to COM1 as
|
||||
follows:
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> help
|
||||
go - start application at address 'addr'
|
||||
run - run commands in an environment variable
|
||||
bootm - boot application image from memory
|
||||
bootp - boot image via network using BootP/TFTP protocol
|
||||
tftpboot- boot image via network using TFTP protocol
|
||||
and env variables ipaddr and serverip
|
||||
rarpboot- boot image via network using RARP/TFTP protocol
|
||||
bootd - boot default, i.e., run 'bootcmd'
|
||||
loads - load S-Record file over serial line
|
||||
loadb - load binary file over serial line (kermit mode)
|
||||
md - memory display
|
||||
mm - memory modify (auto-incrementing)
|
||||
nm - memory modify (constant address)
|
||||
mw - memory write (fill)
|
||||
cp - memory copy
|
||||
cmp - memory compare
|
||||
crc32 - checksum calculation
|
||||
base - print or set address offset
|
||||
printenv- print environment variables
|
||||
setenv - set environment variables
|
||||
saveenv - save environment variables to persistent storage
|
||||
protect - enable or disable FLASH write protection
|
||||
erase - erase FLASH memory
|
||||
flinfo - print FLASH memory information
|
||||
bdinfo - print Board Info structure
|
||||
iminfo - print header information for application image
|
||||
coninfo - print console devices and informations
|
||||
eeprom - EEPROM sub-system
|
||||
loop - infinite loop on address range
|
||||
mtest - simple RAM test
|
||||
icache - enable or disable instruction cache
|
||||
dcache - enable or disable data cache
|
||||
reset - Perform RESET of the CPU
|
||||
echo - echo args to console
|
||||
version - print monitor version
|
||||
help - print online help
|
||||
? - alias for 'help'
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
2. Flash driver operation
|
||||
|
||||
The following sequence was performed to test the "flinfo" command:
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> flinfo
|
||||
|
||||
Bank # 1: AMD 29LV640D (64 M, uniform sector)
|
||||
Size: 32 MB in 128 Sectors
|
||||
Sector Start Addresses:
|
||||
40000000 40040000 (RO) 40080000 400C0000 40100000
|
||||
40140000 40180000 401C0000 40200000 40240000
|
||||
40280000 402C0000 40300000 40340000 40380000
|
||||
403C0000 40400000 40440000 40480000 404C0000
|
||||
40500000 40540000 40580000 405C0000 40600000
|
||||
40640000 40680000 406C0000 40700000 40740000
|
||||
40780000 407C0000 40800000 40840000 40880000
|
||||
408C0000 40900000 40940000 40980000 409C0000
|
||||
40A00000 40A40000 40A80000 40AC0000 40B00000
|
||||
40B40000 40B80000 40BC0000 40C00000 40C40000
|
||||
40C80000 40CC0000 40D00000 40D40000 40D80000
|
||||
40DC0000 40E00000 40E40000 40E80000 40EC0000
|
||||
40F00000 40F40000 40F80000 40FC0000 41000000
|
||||
41040000 41080000 410C0000 41100000 41140000
|
||||
41180000 411C0000 41200000 41240000 41280000
|
||||
412C0000 41300000 41340000 41380000 413C0000
|
||||
41400000 41440000 41480000 414C0000 41500000
|
||||
41540000 41580000 415C0000 41600000 41640000
|
||||
41680000 416C0000 41700000 41740000 41780000
|
||||
417C0000 41800000 41840000 41880000 418C0000
|
||||
41900000 41940000 41980000 419C0000 41A00000
|
||||
41A40000 41A80000 41AC0000 41B00000 41B40000
|
||||
41B80000 41BC0000 41C00000 41C40000 41C80000
|
||||
41CC0000 41D00000 41D40000 41D80000 41DC0000
|
||||
41E00000 41E40000 41E80000 41EC0000 41F00000
|
||||
41F40000 41F80000 41FC0000
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
The following sequence was performed to test the erase command:
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> cp 0 40080000 10
|
||||
Copy to Flash... done
|
||||
=> erase 40080000 400bffff
|
||||
Erase Flash from 0x40080000 to 0x400bffff
|
||||
.. done
|
||||
Erased 1 sectors
|
||||
=> md 40080000
|
||||
40080000: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080010: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080020: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080030: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080040: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080050: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080060: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080070: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
=> cp 0 40080000 10
|
||||
Copy to Flash... done
|
||||
=> erase 1:2
|
||||
Erase Flash Sectors 2-2 in Bank # 1
|
||||
.. done
|
||||
=> md 40080000
|
||||
40080000: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080010: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080020: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080030: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080040: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080050: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080060: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080070: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
=> cp 0 40080000 10
|
||||
Copy to Flash... done
|
||||
=> cp 0 400c0000 10
|
||||
Copy to Flash... done
|
||||
=> erase 1:2-3
|
||||
Erase Flash Sectors 2-3 in Bank # 1
|
||||
... done
|
||||
=> md 40080000
|
||||
40080000: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080010: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080020: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080030: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080040: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080050: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080060: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080070: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
=> md 400c0000
|
||||
400c0000: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0010: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0020: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0030: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0040: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0050: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0060: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0070: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c0090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c00a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c00b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c00c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c00d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c00e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400c00f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
The following sequence was performed to test the Flash programming commands:
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> erase 40080000 400bffff
|
||||
Erase Flash from 0x40080000 to 0x400bffff
|
||||
.. done
|
||||
Erased 1 sectors
|
||||
=> cp 0 40080000 10
|
||||
Copy to Flash... done
|
||||
=> md 0
|
||||
00000000: 00000000 00000104 61100200 01000000 ........a.......
|
||||
00000010: 00000000 00000000 81140000 82000100 ................
|
||||
00000020: 01080000 00004000 22800000 00000600 ......@.".......
|
||||
00000030: 00200800 00000000 10000100 00008000 . ..............
|
||||
00000040: 00812000 00000200 00020000 80000000 .. .............
|
||||
00000050: 00028001 00001000 00040400 00000200 ................
|
||||
00000060: 20480000 00000000 20090000 00142000 H...... ..... .
|
||||
00000070: 00000000 00004000 24210000 10000000 ......@.$!......
|
||||
00000080: 02440002 10000000 00200008 00000000 .D....... ......
|
||||
00000090: 02440900 00000000 30a40000 00004400 .D......0.....D.
|
||||
000000a0: 04420800 00000000 00000040 00020000 .B.........@....
|
||||
000000b0: 05020000 00100000 00060000 00000000 ................
|
||||
000000c0: 00400000 00000000 00080000 00040000 .@..............
|
||||
000000d0: 10400000 00800004 00000000 00000200 .@..............
|
||||
000000e0: 80890000 00010004 00080000 00000020 ...............
|
||||
000000f0: 08000000 10000000 00010000 00000000 ................
|
||||
=> md 40080000
|
||||
40080000: 00000000 00000104 61100200 01000000 ........a.......
|
||||
40080010: 00000000 00000000 81140000 82000100 ................
|
||||
40080020: 01080000 00004000 22800000 00000600 ......@.".......
|
||||
40080030: 00200800 00000000 10000100 00008000 . ..............
|
||||
40080040: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080050: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080060: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080070: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080080: ffffffff ffffffff ffffffff ffffffff ................
|
||||
40080090: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800a0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800b0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800c0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800d0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800e0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
400800f0: ffffffff ffffffff ffffffff ffffffff ................
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
The following sequence was performed to test storage of the environment
|
||||
variables in Flash:
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> setenv foo bar
|
||||
=> saveenv
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
.. done
|
||||
Erased 1 sectors
|
||||
Saving Environment to Flash...
|
||||
Protected 1 sectors
|
||||
=> reset
|
||||
...
|
||||
=> printenv
|
||||
bootdelay=CONFIG_BOOTDELAY
|
||||
baudrate=9600
|
||||
ipaddr=192.168.4.7
|
||||
serverip=192.168.4.1
|
||||
ethaddr=66:55:44:33:22:11
|
||||
foo=bar
|
||||
stdin=serial
|
||||
stdout=serial
|
||||
stderr=serial
|
||||
|
||||
Environment size: 170/262140 bytes
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
The following sequence was performed to test image download and run over
|
||||
Ethernet interface (both interfaces were tested):
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> tftpboot 40000 hello_world.bin
|
||||
ARP broadcast 1
|
||||
TFTP from server 192.168.2.2; our IP address is 192.168.2.7
|
||||
Filename 'hello_world.bin'.
|
||||
Load address: 0x40000
|
||||
Loading: #############
|
||||
done
|
||||
Bytes transferred = 65912 (10178 hex)
|
||||
=> go 40004
|
||||
## Starting application at 0x00040004 ...
|
||||
Hello World
|
||||
argc = 1
|
||||
argv[0] = "40004"
|
||||
argv[1] = "<NULL>"
|
||||
Hit any key to exit ...
|
||||
|
||||
## Application terminated, rc = 0x0
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
The following sequence was performed to test eeprom read/write commands:
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
=> md 40000
|
||||
00040000: 00018148 9421ffe0 7c0802a6 bf61000c ...H.!..|....a..
|
||||
00040010: 90010024 48000005 7fc802a6 801effe8 ...$H...........
|
||||
00040020: 7fc0f214 7c7f1b78 813f004c 7c9c2378 ....|..x.?.L|.#x
|
||||
00040030: 807e8000 7cbd2b78 80090010 3b600000 .~..|.+x....;`..
|
||||
00040040: 7c0803a6 4e800021 813f004c 7f84e378 |...N..!.?.L...x
|
||||
00040050: 807e8004 80090010 7c0803a6 4e800021 .~......|...N..!
|
||||
00040060: 7c1be000 4181003c 80bd0000 813f004c |...A..<.....?.L
|
||||
00040070: 3bbd0004 2c050000 40820008 80be8008 ;...,...@.......
|
||||
00040080: 80090010 7f64db78 807e800c 3b7b0001 .....d.x.~..;{..
|
||||
00040090: 7c0803a6 4e800021 7c1be000 4081ffcc |...N..!|...@...
|
||||
000400a0: 813f004c 807e8010 80090010 7c0803a6 .?.L.~......|...
|
||||
000400b0: 4e800021 813f004c 80090004 7c0803a6 N..!.?.L....|...
|
||||
000400c0: 4e800021 2c030000 4182ffec 813f004c N..!,...A....?.L
|
||||
000400d0: 80090000 7c0803a6 4e800021 813f004c ....|...N..!.?.L
|
||||
000400e0: 807e8014 80090010 7c0803a6 4e800021 .~......|...N..!
|
||||
000400f0: 38600000 80010024 7c0803a6 bb61000c 8`.....$|....a..
|
||||
=> eeprom write 40000 0 40
|
||||
|
||||
EEPROM write: addr 00040000 off 0000 count 64 ... done
|
||||
=> mw 50000 0 1000
|
||||
=> eeprom read 50000 0 40
|
||||
|
||||
EEPROM read: addr 00050000 off 0000 count 64 ... done
|
||||
=> md 50000
|
||||
00050000: 00018148 9421ffe0 7c0802a6 bf61000c ...H.!..|....a..
|
||||
00050010: 90010024 48000005 7fc802a6 801effe8 ...$H...........
|
||||
00050020: 7fc0f214 7c7f1b78 813f004c 7c9c2378 ....|..x.?.L|.#x
|
||||
00050030: 807e8000 7cbd2b78 80090010 3b600000 .~..|.+x....;`..
|
||||
00050040: 00000000 00000000 00000000 00000000 ................
|
||||
00050050: 00000000 00000000 00000000 00000000 ................
|
||||
00050060: 00000000 00000000 00000000 00000000 ................
|
||||
00050070: 00000000 00000000 00000000 00000000 ................
|
||||
00050080: 00000000 00000000 00000000 00000000 ................
|
||||
00050090: 00000000 00000000 00000000 00000000 ................
|
||||
000500a0: 00000000 00000000 00000000 00000000 ................
|
||||
000500b0: 00000000 00000000 00000000 00000000 ................
|
||||
000500c0: 00000000 00000000 00000000 00000000 ................
|
||||
000500d0: 00000000 00000000 00000000 00000000 ................
|
||||
000500e0: 00000000 00000000 00000000 00000000 ................
|
||||
000500f0: 00000000 00000000 00000000 00000000 ................
|
||||
=>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Patch per Mon, 06 Aug 2001 17:57:27:
|
||||
|
||||
- upgraded Flash support (added support for the following chips:
|
||||
AM29LV800T/B, AM29LV160T/B, AM29DL322T/B, AM29DL323T/B)
|
||||
- BCR tweakage for the 8260 bus mode
|
||||
- SIUMCR tweakage enabling the MI interrupt (IRQ7)
|
||||
|
||||
To simplify switching between the bus modes, a new configuration
|
||||
option (CONFIG_BUSMODE_60x) has been added to the "config_TQM8260.h"
|
||||
file. If it is defined, BCR will be configured for the 60x mode,
|
||||
otherwise - for the 8260 mode.
|
||||
|
||||
Concerning the SIUMCR modification: it's hard to predict whether it
|
||||
will induce any problems on the other (60x mode) board. However, the
|
||||
problems (if they appear) should be easy to notice - if the board
|
||||
does not boot, it's most likely caused by the DPPC configuration in
|
||||
SIUMCR.
|
89
doc/README.bedbug
Normal file
89
doc/README.bedbug
Normal file
@ -0,0 +1,89 @@
|
||||
BEDBUG Support for U-Boot
|
||||
--------------------------
|
||||
|
||||
These changes implement the bedbug (emBEDded deBUGger) debugger in U-Boot.
|
||||
A specific implementation is made for the IBM405 processor but other flavors
|
||||
can be easily implemented.
|
||||
|
||||
#####################
|
||||
### Modifications ###
|
||||
#####################
|
||||
|
||||
./common/Makefile
|
||||
Included cmd_bedbug.c and bedbug.c in the Makefile.
|
||||
|
||||
./common/command.c
|
||||
Added bedbug commands to command table.
|
||||
|
||||
./common/board.c
|
||||
Added call to initialize debugger on startup.
|
||||
|
||||
./cpu/ppc4xx/Makefile
|
||||
Added bedbug_405.c to the Makefile.
|
||||
|
||||
./cpu/ppc4xx/start.S
|
||||
Added code to handle the debug exception (0x2000) on the 405.
|
||||
Also added code to handle critical exceptions since the debug
|
||||
is treated as critical on the 405.
|
||||
|
||||
./cpu/ppc4xx/traps.c
|
||||
Added more detailed output for the program exception to tell
|
||||
if it is an illegal instruction, privileged instruction or
|
||||
a trap. Also added debug trap handler.
|
||||
|
||||
./include/cmd_confdefs.h
|
||||
Added definition of CFG_CMD_BEDBUG.
|
||||
|
||||
./include/config_WALNUT405.h
|
||||
Added CFG_CMD_BEDBUG to the CONFIG_COMMANDS for the WALNUT.
|
||||
|
||||
./include/ppc_asm.tmpl
|
||||
Added code to handle critical exceptions
|
||||
|
||||
#################
|
||||
### New Stuff ###
|
||||
#################
|
||||
|
||||
./include/bedbug/ppc.h
|
||||
./include/bedbug/regs.h
|
||||
./include/bedbug/bedbug.h
|
||||
./include/bedbug/elf.h [obsoleted by new include/elf.h]
|
||||
./include/bedbug/tables.h
|
||||
./include/cmd_bedbug.h
|
||||
./common/cmd_bedbug.c
|
||||
./common/bedbug.c
|
||||
Bedbug library includes code for assembling and disassembling
|
||||
PowerPC instructions to/from memory as well as handling
|
||||
hardware breakpoints and stepping through code. These
|
||||
routines are common to all PowerPC processors.
|
||||
|
||||
./cpu/ppc4xx/bedbug_405.c
|
||||
IBM PPC405 specific debugger routines.
|
||||
|
||||
|
||||
|
||||
Bedbug support for the MPC860
|
||||
-----------------------------
|
||||
|
||||
Changes:
|
||||
|
||||
common/cmd_bedbug.c
|
||||
Added call to initialize 860 debugger.
|
||||
|
||||
cpu/mpc8xx/Makefile
|
||||
Added new file "bedbug_860.c" to the makefile
|
||||
|
||||
cpu/mpc8xx/start.S
|
||||
Added handler for InstructionBreakpoint (0xfd00)
|
||||
|
||||
cpu/mpc8xx/traps.c
|
||||
Added new routine DebugException()
|
||||
|
||||
include/config_MBX.h
|
||||
Added CFG_CMD_BEDBUG to CONFIG_COMMANDS define
|
||||
|
||||
|
||||
New Files:
|
||||
|
||||
cpu/mpc8xx/bedbug_860.c
|
||||
CPU-specific routines for 860 debug registers.
|
54
doc/README.evb64260
Normal file
54
doc/README.evb64260
Normal file
@ -0,0 +1,54 @@
|
||||
This file contains status information for the port of U-Boot to the
|
||||
Galileo Evaluation Board.
|
||||
|
||||
Author: Josh Huber <huber@mclx.com>
|
||||
Mission Critical Linux, Inc.
|
||||
|
||||
The support for the Galileo Evaluation board is fairly minimal now.
|
||||
It's sufficient to boot Linux, but doesn't provide too much more than
|
||||
what's required to do this.
|
||||
|
||||
Both DUART channels are supported (to use the second one, you have to
|
||||
modify the board -- see the schematics for where to solder on the
|
||||
devices module). The ethernet ports are supported, and the MPSC is
|
||||
supported as a console driver. (keep in mind that the kernel has no
|
||||
support for this yet)
|
||||
|
||||
There are still occaisonal lockups with the MPSC console driver due to
|
||||
(we think!) overrun problems. If you're looking for something stable
|
||||
to use for Linux development, consider sticking with the DUART console
|
||||
for now.
|
||||
|
||||
Automatic memory sizing mostly works. We've had problems with some
|
||||
combinations of memory. Please send us email if you're having trouble
|
||||
with respect to the memory detection.
|
||||
|
||||
Right now, only the 512k boot flash is supported. Support for the
|
||||
16MB flash on the devices module is forthcoming. Right now the flash
|
||||
is stored at the 256k boundry in flash, wasting a whole sector (64k!)
|
||||
for environment data. This isn't really a big deal since we're not
|
||||
using the 512k for anything else. (Just U-Boot and the environment)
|
||||
|
||||
Finally, here is a sample output session:
|
||||
|
||||
U-Boot 1.0.0-pre1 (Jun 6 2001 - 12:45:11)
|
||||
|
||||
Initializing...
|
||||
CPU: MPC7400 (altivec enabled) v2.9
|
||||
Board: EVB64260
|
||||
DRAM: 256 MB
|
||||
FLASH: 512 kB
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
|
||||
=>
|
||||
|
||||
The default configuration should be correct for the evaluation board,
|
||||
as it's shipped from Galileo. Keep in mind that the default baudrate
|
||||
is set to 38400, 8N1.
|
||||
|
||||
Good luck, and make sure to send any bugreports to us (or the
|
||||
u-boot-users list).
|
||||
|
||||
Josh
|
22
doc/README.mpc74xx
Normal file
22
doc/README.mpc74xx
Normal file
@ -0,0 +1,22 @@
|
||||
This file contains status information for the port of U-Boot to the
|
||||
Motorola mpc74xx series of CPUs.
|
||||
|
||||
Author: Josh Huber <huber@mclx.com>
|
||||
Mission Critical Linux, Inc.
|
||||
|
||||
Currently the support for these CPUs is pretty minimal, but enough to
|
||||
get things going. (much like the support for the Galileo Eval Board)
|
||||
|
||||
There is a framework in place to enable the L2 cache, and to program
|
||||
the BATs. Currently, there are still problems with the code which
|
||||
sets up the L2 cache, so it's not enabled. (IMHO, it shouldn't be
|
||||
anyway). Additionally, there is support for enabling the MMU, which
|
||||
we also don't do. The BATs are programmed just for the benefit of
|
||||
jumping into Linux in a sane configuration.
|
||||
|
||||
Most of the code was based on other cpus supported by U-Boot.
|
||||
|
||||
If you find any errors in the CPU setup code, please send us a note.
|
||||
|
||||
Thanks,
|
||||
Josh
|
80
doc/README.usb
Normal file
80
doc/README.usb
Normal file
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Denis Peter, MPL AG Switzerland
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
USB Support for PIP405 and MIP405 (UHCI)
|
||||
========================================
|
||||
|
||||
The USB support is implemented on the base of the UHCI Host
|
||||
controller.
|
||||
|
||||
Currently supported are USB Hubs, USB Keyboards and USB Floppys.
|
||||
Tested with a TEAC Floppy TEAC FD-05PUB and Chicony KU-8933 Keyboard.
|
||||
|
||||
How it works:
|
||||
-------------
|
||||
|
||||
The USB (at least the USB UHCI) needs a frame list (4k), transfer
|
||||
descripor and queue headers which are all located in the main memory.
|
||||
The UHCI allocates every milisecond the PCI bus and reads the current
|
||||
frame pointer. This may cause to crash the OS during boot. So the USB
|
||||
_MUST_ be stopped during OS boot. This is the reason, why the USB is
|
||||
NOT automatically started during start-up. If someone needs the USB
|
||||
he has to start it and should therefore be aware that he had to stop
|
||||
it before booting the OS.
|
||||
|
||||
For USB keyboards this can be done by a script which is automatically
|
||||
started after the U-Boot is up and running. To boot an OS with a an
|
||||
USB keyboard another script is necessary, which first disables the
|
||||
USB and then executes the boot command. If the boot command fails,
|
||||
the script can reenable the USB kbd.
|
||||
|
||||
Common USB Commands:
|
||||
- usb start:
|
||||
- usb reset: (re)starts the USB. All USB devices will be
|
||||
initialized and a device tree is build for them.
|
||||
- usb tree: shows all USB devices in a tree like display
|
||||
- usb info [dev]: shows all USB infos of the device dev, or of all
|
||||
the devices
|
||||
- usb stop [f]: stops the USB. If f==1 the USB will also stop if
|
||||
an USB keyboard is assigned as stdin. The stdin
|
||||
is then switched to serial input.
|
||||
Storage USB Commands:
|
||||
- usb scan: scans the USB for storage devices.The USB must be
|
||||
running for this command (usb start)
|
||||
- usb device [dev]: show or set current USB staorage device
|
||||
- usb part [dev]: print partition table of one or all USB storage
|
||||
devices
|
||||
- usb read addr blk# cnt:
|
||||
read `cnt' blocks starting at block `blk#'to
|
||||
memory address `addr'
|
||||
- usbboot addr dev:part:
|
||||
boot from USB device
|
||||
|
||||
Config Switches:
|
||||
----------------
|
||||
CFG_CMD_USB enables basic USB support and the usb command
|
||||
CONFIG_USB_UHCI defines the lowlevel part.A lowlevel part must be defined if
|
||||
using CFG_CMD_USB
|
||||
CONFIG_USB_KEYBOARD enables the USB Keyboard
|
||||
CONFIG_USB_STORAGE enables the USB storage devices
|
289
include/asm-ppc/hymod.h
Normal file
289
include/asm-ppc/hymod.h
Normal file
@ -0,0 +1,289 @@
|
||||
#ifndef _ASM_HYMOD_H_
|
||||
#define _ASM_HYMOD_H_
|
||||
|
||||
#include <linux/config.h>
|
||||
#ifdef CONFIG_8260
|
||||
#include <asm/iopin_8260.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* hymod configuration data - passed by boot code via the board information
|
||||
* structure (only U-Boot has support for this at the moment)
|
||||
*
|
||||
* there are three types of data passed up from the boot monitor. the first
|
||||
* (type hymod_eeprom_t) is the eeprom data that was read off both the main
|
||||
* (or mother) board and the mezzanine board (if any). this data defines how
|
||||
* many Xilinx fpgas are on each board, and their types (among other things).
|
||||
* the second type of data (type xlx_mmap_t, one per Xilinx fpga) defines where
|
||||
* in the physical address space the various Xilinx fpga access regions have
|
||||
* been mapped by the boot rom. the third type of data (type xlx_iopins_t,
|
||||
* one per Xilinx fpga) defines which io port pins are connected to the various
|
||||
* signals required to program a Xilinx fpga.
|
||||
*
|
||||
* A ram/flash "bank" refers to memory controlled by the same chip select.
|
||||
*
|
||||
* the eeprom contents are defined as in technical note #2 - basically,
|
||||
* a header, zero or more records in no particular order, and a 32 bit crc
|
||||
* a record is 1 or more type bytes, a length byte and "length" bytes.
|
||||
*/
|
||||
|
||||
#define HYMOD_EEPROM_ID 0xAA /* eeprom id byte */
|
||||
#define HYMOD_EEPROM_VER 1 /* eeprom contents version */
|
||||
#define HYMOD_EEPROM_SIZE 256 /* number of bytes in the eeprom */
|
||||
|
||||
/* eeprom header */
|
||||
typedef
|
||||
struct {
|
||||
unsigned char id; /* eeprom id byte */
|
||||
unsigned char ver; /* eeprom contents version number */
|
||||
unsigned long len; /* total # of bytes btw hdr and crc */
|
||||
}
|
||||
hymod_eehdr_t;
|
||||
|
||||
/* maximum number of bytes available for eeprom data records */
|
||||
#define HYMOD_EEPROM_MAXLEN (HYMOD_EEPROM_SIZE \
|
||||
- sizeof (hymod_eehdr_t) \
|
||||
- sizeof (unsigned long))
|
||||
|
||||
/* eeprom data record */
|
||||
typedef
|
||||
union {
|
||||
struct {
|
||||
unsigned char topbit:1;
|
||||
unsigned char type:7;
|
||||
unsigned char len;
|
||||
unsigned char data[1]; /* variable length */
|
||||
} small;
|
||||
struct {
|
||||
unsigned short topbit:1;
|
||||
unsigned short nxtbit:1;
|
||||
unsigned short type:14;
|
||||
unsigned short len;
|
||||
unsigned char data[1]; /* variable length */
|
||||
} medium;
|
||||
struct {
|
||||
unsigned long topbit:1;
|
||||
unsigned long nxtbit:1;
|
||||
unsigned long type:30;
|
||||
unsigned long len;
|
||||
unsigned char data[1]; /* variable length */
|
||||
} large;
|
||||
}
|
||||
hymod_eerec_t;
|
||||
|
||||
#define HYMOD_EEOFF_MAIN 0x00 /* i2c addr offset for main eeprom */
|
||||
#define HYMOD_EEOFF_MEZZ 0x04 /* i2c addr offset for mezz eepomr */
|
||||
|
||||
/* eeprom record types */
|
||||
#define HYMOD_EEREC_SERNO 1 /* serial number */
|
||||
#define HYMOD_EEREC_DATE 2 /* date */
|
||||
#define HYMOD_EEREC_BATCH 3 /* batch id */
|
||||
#define HYMOD_EEREC_TYPE 4 /* board type */
|
||||
#define HYMOD_EEREC_REV 5 /* revision number */
|
||||
#define HYMOD_EEREC_SDRAM 6 /* sdram sizes */
|
||||
#define HYMOD_EEREC_FLASH 7 /* flash sizes */
|
||||
#define HYMOD_EEREC_ZBT 8 /* zbt ram sizes */
|
||||
#define HYMOD_EEREC_XLXTYP 9 /* Xilinx fpga types */
|
||||
#define HYMOD_EEREC_XLXSPD 10 /* Xilinx fpga speeds */
|
||||
#define HYMOD_EEREC_XLXTMP 11 /* Xilinx fpga temperatures */
|
||||
#define HYMOD_EEREC_XLXGRD 12 /* Xilinx fpga grades */
|
||||
#define HYMOD_EEREC_CPUTYP 13 /* Motorola CPU type */
|
||||
#define HYMOD_EEREC_CPUSPD 14 /* CPU speed */
|
||||
#define HYMOD_EEREC_BUSSPD 15 /* bus speed */
|
||||
#define HYMOD_EEREC_CPMSPD 16 /* CPM speed */
|
||||
#define HYMOD_EEREC_HSTYPE 17 /* high-speed serial chip type */
|
||||
#define HYMOD_EEREC_HSCHIN 18 /* high-speed serial input channels */
|
||||
#define HYMOD_EEREC_HSCHOUT 19 /* high-speed serial output channels */
|
||||
|
||||
/* some dimensions */
|
||||
#define HYMOD_MAX_BATCH 32 /* max no. of bytes in batch id */
|
||||
#define HYMOD_MAX_SDRAM 4 /* max sdram "banks" on any board */
|
||||
#define HYMOD_MAX_FLASH 4 /* max flash "banks" on any board */
|
||||
#define HYMOD_MAX_ZBT 16 /* max ZBT rams on any board */
|
||||
#define HYMOD_MAX_XLX 4 /* max Xilinx fpgas on any board */
|
||||
|
||||
#define HYMOD_MAX_BYTES 16 /* enough to store any bytes array */
|
||||
|
||||
/* board types */
|
||||
#define HYMOD_BDTYPE_NONE 0 /* information not present */
|
||||
#define HYMOD_BDTYPE_IO 1 /* I/O main board */
|
||||
#define HYMOD_BDTYPE_CLP 2 /* CLP main board */
|
||||
#define HYMOD_BDTYPE_DSP 3 /* DSP main board */
|
||||
#define HYMOD_BDTYPE_INPUT 4 /* video input mezzanine board */
|
||||
#define HYMOD_BDTYPE_ALTINPUT 5 /* video input mezzanine board */
|
||||
#define HYMOD_BDTYPE_DISPLAY 6 /* video display mezzanine board */
|
||||
#define HYMOD_BDTYPE_MAX 7 /* first invalid value */
|
||||
|
||||
/* Xilinx fpga types */
|
||||
#define HYMOD_XTYP_NONE 0 /* information not present */
|
||||
#define HYMOD_XTYP_XCV300E 1 /* Xilinx Virtex 300 */
|
||||
#define HYMOD_XTYP_XCV400E 2 /* Xilinx Virtex 400 */
|
||||
#define HYMOD_XTYP_XCV600E 3 /* Xilinx Virtex 600 */
|
||||
#define HYMOD_XTYP_MAX 4 /* first invalid value */
|
||||
|
||||
/* Xilinx fpga speeds */
|
||||
#define HYMOD_XSPD_NONE 0 /* information not present */
|
||||
#define HYMOD_XSPD_SIX 1
|
||||
#define HYMOD_XSPD_SEVEN 2
|
||||
#define HYMOD_XSPD_EIGHT 3
|
||||
#define HYMOD_XSPD_MAX 4 /* first invalid value */
|
||||
|
||||
/* Xilinx fpga temperatures */
|
||||
#define HYMOD_XTMP_NONE 0 /* information not present */
|
||||
#define HYMOD_XTMP_COM 1
|
||||
#define HYMOD_XTMP_IND 2
|
||||
#define HYMOD_XTMP_MAX 3 /* first invalid value */
|
||||
|
||||
/* Xilinx fpga grades */
|
||||
#define HYMOD_XTMP_NONE 0 /* information not present */
|
||||
#define HYMOD_XTMP_NORMAL 1
|
||||
#define HYMOD_XTMP_ENGSAMP 2
|
||||
#define HYMOD_XTMP_MAX 3 /* first invalid value */
|
||||
|
||||
/* CPU types */
|
||||
#define HYMOD_CPUTYPE_NONE 0 /* information not present */
|
||||
#define HYMOD_CPUTYPE_MPC8260 1 /* Motorola MPC8260 embedded powerpc */
|
||||
#define HYMOD_CPUTYPE_MAX 2 /* first invalid value */
|
||||
|
||||
/* CPU/BUS/CPM clock speeds */
|
||||
#define HYMOD_CLKSPD_NONE 0 /* information not present */
|
||||
#define HYMOD_CLKSPD_33MHZ 1
|
||||
#define HYMOD_CLKSPD_66MHZ 2
|
||||
#define HYMOD_CLKSPD_100MHZ 3
|
||||
#define HYMOD_CLKSPD_133MHZ 4
|
||||
#define HYMOD_CLKSPD_166MHZ 5
|
||||
#define HYMOD_CLKSPD_200MHZ 6
|
||||
#define HYMOD_CLKSPD_MAX 7 /* first invalid value */
|
||||
|
||||
/* high speed serial chip types */
|
||||
#define HYMOD_HSSTYPE_NONE 0 /* information not present */
|
||||
#define HYMOD_HSSTYPE_AMCC52064 1
|
||||
#define HYMOD_HSSTYPE_MAX 2 /* first invalid value */
|
||||
|
||||
/* a date (yyyy-mm-dd) */
|
||||
typedef
|
||||
struct {
|
||||
unsigned short year;
|
||||
unsigned char month;
|
||||
unsigned char day;
|
||||
}
|
||||
hymod_date_t;
|
||||
|
||||
/* describes a Xilinx fpga */
|
||||
typedef
|
||||
struct {
|
||||
unsigned char type; /* chip type */
|
||||
unsigned char speed; /* chip speed rating */
|
||||
unsigned char temp; /* chip temperature rating */
|
||||
unsigned char grade; /* chip grade */
|
||||
}
|
||||
hymod_xlx_t;
|
||||
|
||||
/* describes a Motorola embedded processor */
|
||||
typedef
|
||||
struct {
|
||||
unsigned char type; /* CPU type */
|
||||
unsigned char cpuspd; /* speed of the PowerPC core */
|
||||
unsigned char busspd; /* speed of the system and 60x bus */
|
||||
unsigned char cpmspd; /* speed of the CPM co-processor */
|
||||
}
|
||||
hymod_mpc_t;
|
||||
|
||||
/* info about high-speed (1Gbit) serial interface */
|
||||
typedef
|
||||
struct {
|
||||
unsigned char type; /* high-speed serial chip type */
|
||||
unsigned char nchin; /* number of input channels mounted */
|
||||
unsigned char nchout; /* number of output channels mounted */
|
||||
}
|
||||
hymod_hss_t;
|
||||
|
||||
/*
|
||||
* this defines the contents of the serial eeprom that exists on every
|
||||
* hymod board, including mezzanine boards (the serial eeprom will be
|
||||
* faked for early development boards that don't have one)
|
||||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
unsigned char ver; /* eeprom contents version */
|
||||
unsigned char bdtype; /* board type */
|
||||
unsigned char bdrev; /* board revision */
|
||||
unsigned char batchlen; /* length of batch string below */
|
||||
unsigned long serno; /* serial number */
|
||||
hymod_date_t date; /* manufacture date */
|
||||
unsigned char batch[32]; /* manufacturer specific batch id */
|
||||
unsigned char nsdram; /* # of ram "banks" */
|
||||
unsigned char nflash; /* # of flash "banks" */
|
||||
unsigned char nzbt; /* # of ZBT rams */
|
||||
unsigned char nxlx; /* # of Xilinx fpgas */
|
||||
unsigned char sdramsz[HYMOD_MAX_SDRAM]; /* log2 of sdram size */
|
||||
unsigned char flashsz[HYMOD_MAX_FLASH]; /* log2 of flash size */
|
||||
unsigned char zbtsz[HYMOD_MAX_ZBT]; /* log2 of ZBT ram size */
|
||||
hymod_xlx_t xlx[HYMOD_MAX_XLX]; /* Xilinx fpga info */
|
||||
hymod_mpc_t mpc; /* Motorola MPC CPU info */
|
||||
hymod_hss_t hss; /* high-speed serial info */
|
||||
}
|
||||
hymod_eeprom_t;
|
||||
|
||||
/*
|
||||
* this defines a region in the processor's physical address space
|
||||
*/
|
||||
typedef
|
||||
struct {
|
||||
unsigned long exists:1; /* 1 if the region exists, 0 if not */
|
||||
unsigned long size:31; /* size in bytes */
|
||||
unsigned long base; /* base address */
|
||||
}
|
||||
xlx_prgn_t;
|
||||
|
||||
/*
|
||||
* this defines where the various Xilinx fpga access regions are mapped
|
||||
* into the physical address space of the processor
|
||||
*/
|
||||
typedef
|
||||
struct {
|
||||
xlx_prgn_t prog; /* program access region */
|
||||
xlx_prgn_t reg; /* register access region */
|
||||
xlx_prgn_t port; /* port access region */
|
||||
}
|
||||
xlx_mmap_t;
|
||||
|
||||
/*
|
||||
* this defines which 8260 i/o port pins are connected to the various
|
||||
* signals required for programming a Xilinx fpga
|
||||
*/
|
||||
typedef
|
||||
struct {
|
||||
iopin_t prog_pin; /* assert for >= 300ns to program */
|
||||
iopin_t init_pin; /* goes high when fpga is cleared */
|
||||
iopin_t done_pin; /* goes high when program is done */
|
||||
iopin_t enable_pin; /* some fpgas need enabling */
|
||||
}
|
||||
xlx_iopins_t;
|
||||
|
||||
/* all info about one hymod board */
|
||||
typedef
|
||||
struct {
|
||||
unsigned char eeprom_valid:1;
|
||||
hymod_eeprom_t eeprom;
|
||||
xlx_mmap_t mmap[HYMOD_MAX_XLX];
|
||||
xlx_iopins_t iopins[HYMOD_MAX_XLX];
|
||||
}
|
||||
hymod_board_t;
|
||||
|
||||
/*
|
||||
* this defines the configuration information of a hymod board-set
|
||||
* (main board + possible mezzanine board). In future, there may be
|
||||
* more than one mezzanine board (stackable?) - if so, add a "mezz2"
|
||||
* field, and so on... or make mezz an array?
|
||||
*/
|
||||
typedef
|
||||
struct {
|
||||
hymod_board_t main; /* main board info */
|
||||
hymod_board_t mezz; /* mezzanine board info */
|
||||
unsigned long crc; /* ensures kernel and boot prom agree */
|
||||
}
|
||||
hymod_conf_t;
|
||||
|
||||
#endif /* _ASM_HYMOD_H_ */
|
52
include/cmd_kgdb.h
Normal file
52
include/cmd_kgdb.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Murray Jensen <Murray.Jensen@cmst.csiro.au> and
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* KGDB support
|
||||
*/
|
||||
#ifndef _CMD_KGDB_H
|
||||
#define _CMD_KGDB_H
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CMD_TBL_KGDB MK_CMD_TBL_ENTRY( \
|
||||
"kgdb", 4, CFG_MAXARGS, 1, do_kgdb, \
|
||||
"kgdb - enter gdb remote debug mode\n", \
|
||||
"[arg0 arg1 .. argN]\n" \
|
||||
" - executes a breakpoint so that kgdb mode is\n" \
|
||||
" entered via the exception handler. To return\n" \
|
||||
" to the monitor, the remote gdb debugger must\n" \
|
||||
" execute a \"continue\" or \"quit\" command.\n" \
|
||||
"\n" \
|
||||
" if a program is loaded by the remote gdb, any args\n" \
|
||||
" passed to the kgdb command are given to the loaded\n" \
|
||||
" program if it is executed (see the \"hello_world\"\n" \
|
||||
" example program in the U-Boot examples directory)." \
|
||||
),
|
||||
|
||||
int do_kgdb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
||||
#else
|
||||
#define CMD_TBL_KGDB
|
||||
#endif
|
||||
|
||||
#endif /* _CMD_KGDB_H */
|
428
include/common.h
Normal file
428
include/common.h
Normal file
@ -0,0 +1,428 @@
|
||||
/*
|
||||
* (C) Copyright 2000-2002
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __COMMON_H_
|
||||
#define __COMMON_H_ 1
|
||||
|
||||
#undef _LINUX_CONFIG_H
|
||||
#define _LINUX_CONFIG_H 1 /* avoid reading Linux autoconf.h file */
|
||||
|
||||
typedef unsigned char uchar;
|
||||
typedef volatile unsigned long vu_long;
|
||||
typedef volatile unsigned short vu_short;
|
||||
typedef volatile unsigned char vu_char;
|
||||
|
||||
#include <config.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <stdarg.h>
|
||||
#if defined(CONFIG_PCI) && defined(CONFIG_440)
|
||||
#include <pci.h>
|
||||
#endif
|
||||
#ifdef CONFIG_8xx
|
||||
#include <asm/8xx_immap.h>
|
||||
#elif defined(CONFIG_8260)
|
||||
#include <asm/immap_8260.h>
|
||||
#endif
|
||||
#ifdef CONFIG_4xx
|
||||
#include <ppc4xx.h>
|
||||
#endif
|
||||
#ifdef CONFIG_HYMOD
|
||||
#include <asm/hymod.h>
|
||||
#endif
|
||||
#ifdef CONFIG_ARM
|
||||
#define asmlinkage /* nothing */
|
||||
#endif
|
||||
|
||||
#include <part.h>
|
||||
#include <flash.h>
|
||||
#include <image.h>
|
||||
|
||||
#ifdef DEBUG
|
||||
#define debug(fmt,args...) printf (fmt ,##args)
|
||||
#else
|
||||
#define debug(fmt,args...)
|
||||
#endif /* DEBUG */
|
||||
|
||||
typedef void (interrupt_handler_t)(void *);
|
||||
|
||||
#include <asm/u-boot.h> /* boot information for Linux kernel */
|
||||
#include <asm/global_data.h> /* global data used for startup functions */
|
||||
|
||||
/* enable common handling for all TQM8xxL boards */
|
||||
#if defined(CONFIG_TQM823L) || defined(CONFIG_TQM850L) || \
|
||||
defined(CONFIG_TQM855L) || defined(CONFIG_TQM860L)
|
||||
# ifndef CONFIG_TQM8xxL
|
||||
# define CONFIG_TQM8xxL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Function Prototypes
|
||||
*/
|
||||
|
||||
#if CONFIG_SERIAL_SOFTWARE_FIFO
|
||||
void serial_buffered_init (void);
|
||||
void serial_buffered_putc (const char);
|
||||
void serial_buffered_puts (const char *);
|
||||
int serial_buffered_getc (void);
|
||||
int serial_buffered_tstc (void);
|
||||
#endif /* CONFIG_SERIAL_SOFTWARE_FIFO */
|
||||
|
||||
void hang (void) __attribute__ ((noreturn));
|
||||
|
||||
/* */
|
||||
long int initdram (int);
|
||||
int display_options (void);
|
||||
void print_size (ulong, const char *);
|
||||
|
||||
/* common/main.c */
|
||||
void main_loop (void);
|
||||
int run_command (const char *cmd, int flag);
|
||||
int readline (const char *const prompt);
|
||||
void reset_cmd_timeout(void);
|
||||
|
||||
/* common/board.c */
|
||||
void board_init_f (ulong);
|
||||
void board_init_r (gd_t *, ulong);
|
||||
int checkboard (void);
|
||||
int checkflash (void);
|
||||
int checkdram (void);
|
||||
char * strmhz(char *buf, long hz);
|
||||
int last_stage_init(void);
|
||||
|
||||
/* common/flash.c */
|
||||
void flash_perror (int);
|
||||
|
||||
/* common/cmd_bootm.c */
|
||||
void print_image_hdr (image_header_t *hdr);
|
||||
|
||||
extern ulong load_addr; /* Default Load Address */
|
||||
|
||||
/* common/cmd_nvedit.c */
|
||||
int env_init (void);
|
||||
void env_relocate (void);
|
||||
char *getenv (uchar *);
|
||||
int getenv_r (uchar *name, uchar *buf, unsigned len);
|
||||
int saveenv (void);
|
||||
#ifdef CONFIG_PPC /* ARM version to be fixed! */
|
||||
void inline setenv (char *, char *);
|
||||
#endif /* CONFIG_PPC */
|
||||
#ifdef CONFIG_ARM
|
||||
# include <asm/u-boot-arm.h> /* ARM version to be fixed! */
|
||||
#endif /* CONFIG_ARM */
|
||||
|
||||
void pci_init (void);
|
||||
void pciinfo (int, int);
|
||||
|
||||
#if defined(CONFIG_PCI) && defined(CONFIG_440)
|
||||
# if defined(CFG_PCI_PRE_INIT)
|
||||
int pci_pre_init (struct pci_controller * );
|
||||
# endif
|
||||
# if defined(CFG_PCI_TARGET_INIT)
|
||||
void pci_target_init (struct pci_controller *);
|
||||
# endif
|
||||
# if defined(CFG_PCI_MASTER_INIT)
|
||||
void pci_master_init (struct pci_controller *);
|
||||
# endif
|
||||
int is_pci_host (struct pci_controller *);
|
||||
#endif
|
||||
|
||||
int misc_init_f (void);
|
||||
int misc_init_r (void);
|
||||
|
||||
/* $(BOARD)/$(BOARD).c */
|
||||
void reset_phy (void);
|
||||
|
||||
/* $(BOARD)/eeprom.c */
|
||||
void eeprom_init (void);
|
||||
int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt);
|
||||
int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt);
|
||||
#ifdef CONFIG_LWMON
|
||||
extern uchar pic_read (uchar reg);
|
||||
extern void pic_write (uchar reg, uchar val);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Set this up regardless of board
|
||||
* type, to prevent errors.
|
||||
*/
|
||||
#if defined(CONFIG_SPI) || !defined(CFG_I2C_EEPROM_ADDR)
|
||||
# define CFG_DEF_EEPROM_ADDR 0
|
||||
#else
|
||||
# define CFG_DEF_EEPROM_ADDR CFG_I2C_EEPROM_ADDR
|
||||
#endif /* CONFIG_SPI || !defined(CFG_I2C_EEPROM_ADDR) */
|
||||
|
||||
#if defined(CONFIG_PCU_E) || defined(CONFIG_CCM)
|
||||
extern void spi_init_f (void);
|
||||
extern void spi_init_r (void);
|
||||
extern ssize_t spi_read (uchar *, int, uchar *, int);
|
||||
extern ssize_t spi_write (uchar *, int, uchar *, int);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RPXCLASSIC
|
||||
void rpxclassic_init (void);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MBX
|
||||
/* $(BOARD)/mbx8xx.c */
|
||||
void mbx_init (void);
|
||||
void board_serial_init (void);
|
||||
void board_ether_init (void);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_RPXCLASSIC) || defined(CONFIG_MBX) || defined(CONFIG_IAD210)
|
||||
void board_get_enetaddr (uchar *addr);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HERMES
|
||||
/* $(BOARD)/hermes.c */
|
||||
void hermes_start_lxt980 (int speed);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_EVB64260
|
||||
void evb64260_init(void);
|
||||
void debug_led(int, int);
|
||||
void display_mem_map(void);
|
||||
void perform_soft_reset(void);
|
||||
#endif
|
||||
|
||||
void load_sernum_ethaddr (void);
|
||||
|
||||
/* $(BOARD)/$(BOARD).c */
|
||||
int board_pre_init (void);
|
||||
int board_postclk_init (void); /* after clocks/timebase, before env/serial */
|
||||
void board_poweroff (void);
|
||||
|
||||
#if defined(CFG_DRAM_TEST)
|
||||
int testdram(void);
|
||||
#endif /* CFG_DRAM_TEST */
|
||||
|
||||
/* $(CPU)/start.S */
|
||||
#ifdef CONFIG_8xx
|
||||
uint get_immr (uint);
|
||||
#endif
|
||||
uint get_pvr (void);
|
||||
uint rd_ic_cst (void);
|
||||
void wr_ic_cst (uint);
|
||||
void wr_ic_adr (uint);
|
||||
uint rd_dc_cst (void);
|
||||
void wr_dc_cst (uint);
|
||||
void wr_dc_adr (uint);
|
||||
int icache_status (void);
|
||||
void icache_enable (void);
|
||||
void icache_disable(void);
|
||||
int dcache_status (void);
|
||||
void dcache_enable (void);
|
||||
void dcache_disable(void);
|
||||
void relocate_code (ulong, gd_t *, ulong);
|
||||
ulong get_endaddr (void);
|
||||
void trap_init (ulong);
|
||||
#if defined (CONFIG_4xx) || \
|
||||
defined (CONFIG_74xx_7xx) || \
|
||||
defined (CONFIG_74x) || \
|
||||
defined (CONFIG_75x) || \
|
||||
defined (CONFIG_74xx)
|
||||
unsigned char in8(unsigned int);
|
||||
void out8(unsigned int, unsigned char);
|
||||
unsigned short in16(unsigned int);
|
||||
unsigned short in16r(unsigned int);
|
||||
void out16(unsigned int, unsigned short value);
|
||||
void out16r(unsigned int, unsigned short value);
|
||||
unsigned long in32(unsigned int);
|
||||
unsigned long in32r(unsigned int);
|
||||
void out32(unsigned int, unsigned long value);
|
||||
void out32r(unsigned int, unsigned long value);
|
||||
void ppcDcbf(unsigned long value);
|
||||
void ppcDcbi(unsigned long value);
|
||||
void ppcSync(void);
|
||||
#endif
|
||||
|
||||
/* $(CPU)/cpu.c */
|
||||
int checkcpu (void);
|
||||
int checkicache (void);
|
||||
int checkdcache (void);
|
||||
void upmconfig (unsigned int, unsigned int *, unsigned int);
|
||||
ulong get_tbclk (void);
|
||||
|
||||
/* $(CPU)/serial.c */
|
||||
int serial_init (void);
|
||||
void serial_setbrg (void);
|
||||
void serial_putc (const char);
|
||||
void serial_puts (const char *);
|
||||
void serial_addr (unsigned int);
|
||||
int serial_getc (void);
|
||||
int serial_tstc (void);
|
||||
|
||||
/* $(CPU)/speed.c */
|
||||
int get_clocks (void);
|
||||
#if defined(CONFIG_8260)
|
||||
int prt_8260_clks (void);
|
||||
#endif
|
||||
#ifdef CONFIG_4xx
|
||||
ulong get_OPB_freq (void);
|
||||
ulong get_PCI_freq (void);
|
||||
#endif
|
||||
#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
|
||||
ulong get_FCLK (void);
|
||||
ulong get_HCLK (void);
|
||||
ulong get_PCLK (void);
|
||||
ulong get_UCLK (void);
|
||||
#endif
|
||||
ulong get_bus_freq (ulong);
|
||||
|
||||
#if defined(CONFIG_4xx) || defined(CONFIG_IOP480)
|
||||
# if defined(CONFIG_440)
|
||||
typedef PPC440_SYS_INFO sys_info_t;
|
||||
# else
|
||||
typedef PPC405_SYS_INFO sys_info_t;
|
||||
# endif
|
||||
void get_sys_info ( sys_info_t * );
|
||||
#endif
|
||||
|
||||
/* $(CPU)/cpu_init.c */
|
||||
#if defined(CONFIG_8xx) || defined(CONFIG_8260)
|
||||
void cpu_init_f (volatile immap_t *immr);
|
||||
#endif
|
||||
#ifdef CONFIG_4xx
|
||||
void cpu_init_f (void);
|
||||
#endif
|
||||
int cpu_init_r (void);
|
||||
#if defined(CONFIG_8260)
|
||||
int prt_8260_rsr (void);
|
||||
#endif
|
||||
|
||||
/* $(CPU)/interrupts.c */
|
||||
int interrupt_init (void);
|
||||
void timer_interrupt (struct pt_regs *);
|
||||
void external_interrupt (struct pt_regs *);
|
||||
void irq_install_handler(int, interrupt_handler_t *, void *);
|
||||
void irq_free_handler (int);
|
||||
void reset_timer (void);
|
||||
ulong get_timer (ulong base);
|
||||
void set_timer (ulong t);
|
||||
void enable_interrupts (void);
|
||||
int disable_interrupts (void);
|
||||
|
||||
/* $(CPU)/.../commproc.c */
|
||||
int dpram_init (void);
|
||||
uint dpram_base(void);
|
||||
uint dpram_base_align(uint align);
|
||||
uint dpram_alloc(uint size);
|
||||
uint dpram_alloc_align(uint size,uint align);
|
||||
void post_word_store (ulong);
|
||||
ulong post_word_load (void);
|
||||
|
||||
/* $(CPU)/.../<eth> */
|
||||
void mii_init (void);
|
||||
|
||||
/* $(CPU)/.../lcd.c */
|
||||
ulong lcd_setmem (ulong);
|
||||
|
||||
/* $(CPU)/.../vfd.c */
|
||||
ulong vfd_setmem (ulong);
|
||||
|
||||
/* $(CPU)/.../video.c */
|
||||
ulong video_setmem (ulong);
|
||||
|
||||
/* ppc/cache.c */
|
||||
void flush_cache (unsigned long, unsigned long);
|
||||
|
||||
/* ppc/ticks.S */
|
||||
unsigned long long get_ticks(void);
|
||||
void wait_ticks (unsigned long);
|
||||
|
||||
/* ppc/time.c */
|
||||
void udelay (unsigned long);
|
||||
ulong usec2ticks (unsigned long usec);
|
||||
ulong ticks2usec (unsigned long ticks);
|
||||
int init_timebase (void);
|
||||
|
||||
/* ppc/vsprintf.c */
|
||||
ulong simple_strtoul(const char *cp,char **endp,unsigned int base);
|
||||
long simple_strtol(const char *cp,char **endp,unsigned int base);
|
||||
void panic(const char *fmt, ...);
|
||||
int sprintf(char * buf, const char *fmt, ...);
|
||||
int vsprintf(char *buf, const char *fmt, va_list args);
|
||||
|
||||
/* ppc/crc32.c */
|
||||
ulong crc32 (ulong, const unsigned char *, uint);
|
||||
ulong crc32_no_comp (ulong, const unsigned char *, uint);
|
||||
|
||||
/* common/console.c */
|
||||
extern void **syscall_tbl;
|
||||
|
||||
int console_init_f(void); /* Before relocation; uses the serial stuff */
|
||||
int console_init_r(void); /* After relocation; uses the console stuff */
|
||||
int console_assign (int file, char *devname); /* Assign the console */
|
||||
int ctrlc (void);
|
||||
int had_ctrlc (void); /* have we had a Control-C since last clear? */
|
||||
void clear_ctrlc (void); /* clear the Control-C condition */
|
||||
int disable_ctrlc (int); /* 1 to disable, 0 to enable Control-C detect */
|
||||
|
||||
/*
|
||||
* STDIO based functions (can always be used)
|
||||
*/
|
||||
|
||||
/* serial stuff */
|
||||
void serial_printf (const char *fmt, ...);
|
||||
|
||||
/* stdin */
|
||||
int getc(void);
|
||||
int tstc(void);
|
||||
|
||||
/* stdout */
|
||||
void putc(const char c);
|
||||
void puts(const char *s);
|
||||
void printf(const char *fmt, ...);
|
||||
|
||||
/* stderr */
|
||||
#define eputc(c) fputc(stderr, c)
|
||||
#define eputs(s) fputs(stderr, s)
|
||||
#define eprintf(fmt,args...) fprintf(stderr,fmt ,##args)
|
||||
|
||||
/*
|
||||
* FILE based functions (can only be used AFTER relocation!)
|
||||
*/
|
||||
|
||||
#define stdin 0
|
||||
#define stdout 1
|
||||
#define stderr 2
|
||||
#define MAX_FILES 3
|
||||
|
||||
void fprintf(int file, const char *fmt, ...);
|
||||
void fputs(int file, const char *s);
|
||||
void fputc(int file, const char c);
|
||||
int ftstc(int file);
|
||||
int fgetc(int file);
|
||||
|
||||
int pcmcia_init (void);
|
||||
|
||||
#ifdef CONFIG_SHOW_BOOT_PROGRESS
|
||||
void show_boot_progress (int status);
|
||||
#endif
|
||||
|
||||
#endif /* __COMMON_H_ */
|
452
include/configs/BAB7xx.h
Normal file
452
include/configs/BAB7xx.h
Normal file
@ -0,0 +1,452 @@
|
||||
/*
|
||||
* (C) Copyright 2002 ELTEC Elektronik AG
|
||||
* Frank Gottschling <fgottschling@eltec.de>
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#include <asm/processor.h>
|
||||
|
||||
#undef DEBUG
|
||||
#define GTREGREAD(x) 0xffffffff /* needed for debug */
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
/* these hardware addresses are pretty bogus, please change them to
|
||||
suit your needs */
|
||||
|
||||
/* first ethernet */
|
||||
#define CONFIG_ETHADDR 00:00:5b:ee:de:ad
|
||||
|
||||
#define CONFIG_IPADDR 192.168.0.105
|
||||
#define CONFIG_SERVERIP 192.168.0.100
|
||||
|
||||
#define CONFIG_BAB7xx 1 /* this is an BAB740/BAB750 board */
|
||||
|
||||
#define CONFIG_BAUDRATE 9600 /* console baudrate */
|
||||
|
||||
#undef CONFIG_WATCHDOG
|
||||
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
|
||||
#define CONFIG_ZERO_BOOTDELAY_CHECK
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"bootp 1000000; " \
|
||||
"setenv bootargs root=ramfs console=ttyS00,9600 " \
|
||||
"ip=$(ipaddr):$(serverip):$(rootpath):$(gatewayip):" \
|
||||
"$(netmask):$(hostname):eth0:none; " \
|
||||
"bootm"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 0 /* echo off for serial download */
|
||||
#define CFG_LOADS_BAUD_CHANGE /* allow baudrate changes */
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | CFG_CMD_PCI | CFG_CMD_JFFS2 |\
|
||||
CFG_CMD_SCSI | CFG_CMD_IDE | CFG_CMD_DATE |\
|
||||
CFG_CMD_FDC | CFG_CMD_ELF)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
/*
|
||||
* choose between COM1 and COM2 as serial console
|
||||
*/
|
||||
#define CONFIG_CONS_INDEX 1
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00000000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x04000000 /* 0 ... 64 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x1000000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* dec. freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
#define CFG_BOARD_ASM_INIT
|
||||
#define CONFIG_MISC_INIT_R
|
||||
|
||||
/*
|
||||
* Choose the address mapping scheme for the MPC106 mem controller.
|
||||
* Default is mapping B (CHRP), set this define to choose mapping A (PReP).
|
||||
*/
|
||||
#define CFG_ADDRESS_MAP_A
|
||||
#ifdef CFG_ADDRESS_MAP_A
|
||||
|
||||
#define CFG_PCI_MEMORY_BUS 0x80000000
|
||||
#define CFG_PCI_MEMORY_PHYS 0x00000000
|
||||
#define CFG_PCI_MEMORY_SIZE 0x80000000
|
||||
|
||||
#define CFG_PCI_MEM_BUS 0x00000000
|
||||
#define CFG_PCI_MEM_PHYS 0xc0000000
|
||||
#define CFG_PCI_MEM_SIZE 0x3f000000
|
||||
|
||||
#define CFG_ISA_MEM_BUS 0
|
||||
#define CFG_ISA_MEM_PHYS 0
|
||||
#define CFG_ISA_MEM_SIZE 0
|
||||
|
||||
#define CFG_PCI_IO_BUS 0x1000
|
||||
#define CFG_PCI_IO_PHYS 0x81000000
|
||||
#define CFG_PCI_IO_SIZE 0x01000000-CFG_PCI_IO_BUS
|
||||
|
||||
#define CFG_ISA_IO_BUS 0x00000000
|
||||
#define CFG_ISA_IO_PHYS 0x80000000
|
||||
#define CFG_ISA_IO_SIZE 0x00800000
|
||||
|
||||
#else
|
||||
|
||||
#define CFG_PCI_MEMORY_BUS 0x00000000
|
||||
#define CFG_PCI_MEMORY_PHYS 0x00000000
|
||||
#define CFG_PCI_MEMORY_SIZE 0x40000000
|
||||
|
||||
#define CFG_PCI_MEM_BUS 0x80000000
|
||||
#define CFG_PCI_MEM_PHYS 0x80000000
|
||||
#define CFG_PCI_MEM_SIZE 0x7d000000
|
||||
|
||||
#define CFG_ISA_MEM_BUS 0x00000000
|
||||
#define CFG_ISA_MEM_PHYS 0xfd000000
|
||||
#define CFG_ISA_MEM_SIZE 0x01000000
|
||||
|
||||
#define CFG_PCI_IO_BUS 0x00800000
|
||||
#define CFG_PCI_IO_PHYS 0xfe800000
|
||||
#define CFG_PCI_IO_SIZE 0x00400000
|
||||
|
||||
#define CFG_ISA_IO_BUS 0x00000000
|
||||
#define CFG_ISA_IO_PHYS 0xfe000000
|
||||
#define CFG_ISA_IO_SIZE 0x00800000
|
||||
|
||||
#endif /*CFG_ADDRESS_MAP_A */
|
||||
|
||||
#define CFG_60X_PCI_MEM_OFFSET 0x00000000
|
||||
|
||||
/* driver defines FDC,IDE,... */
|
||||
#define CFG_ISA_IO_BASE_ADDRESS CFG_ISA_IO_PHYS
|
||||
#define CFG_ISA_IO CFG_ISA_IO_PHYS
|
||||
#define CFG_60X_PCI_IO_OFFSET CFG_ISA_IO_PHYS
|
||||
|
||||
/*
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xfff00000
|
||||
|
||||
/*
|
||||
* Definitions for initial stack pointer and data area
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR 0x00fd0000 /* above the memtest region */
|
||||
#define CFG_INIT_RAM_END 0x4000
|
||||
#define CFG_GBL_DATA_SIZE 64 /* size in bytes reserved for init data */
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
/*
|
||||
* Flash mapping/organization on the MPC10x.
|
||||
*/
|
||||
#define FLASH_BASE0_PRELIM 0xff800000
|
||||
#define FLASH_BASE1_PRELIM 0xffc00000
|
||||
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 67 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
#define CFG_JFFS2_FIRST_BANK 0 /* use for JFFS2 */
|
||||
#define CFG_JFFS2_NUM_BANKS 1 /* ! second bank contains U-Boot */
|
||||
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MONITOR_LEN 0x40000 /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN 0x20000 /* Reserve 128 kB for malloc() */
|
||||
#undef CFG_MEMTEST
|
||||
|
||||
/*
|
||||
* Environment settings
|
||||
*/
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
#define CFG_ENV_IS_IN_NVRAM 1 /* use NVRAM for environment vars */
|
||||
#define CFG_NVRAM_SIZE 0x1ff0 /* NVRAM size (8kB), we must protect the clock data (16 bytes) */
|
||||
#define CFG_ENV_SIZE 0x400 /* Size of Environment vars (1kB) */
|
||||
/*
|
||||
* We store the environment and an image of revision eeprom in the upper part of the NVRAM. Thus,
|
||||
* user applications can use the remaining space for other purposes.
|
||||
*/
|
||||
#define CFG_ENV_ADDR (CFG_NVRAM_SIZE +0x10 -0x800)
|
||||
#define CFG_NV_SROM_COPY_ADDR (CFG_NVRAM_SIZE +0x10 -0x400)
|
||||
#define CFG_NVRAM_ACCESS_ROUTINE /* This board needs a special routine to access the NVRAM */
|
||||
#define CFG_SROM_SIZE 0x100 /* shadow of revision info is in nvram */
|
||||
|
||||
/*
|
||||
* Serial devices
|
||||
*/
|
||||
#define CFG_NS16550
|
||||
#define CFG_NS16550_SERIAL
|
||||
#define CFG_NS16550_REG_SIZE 1
|
||||
#define CFG_NS16550_CLK 1843200
|
||||
#define CFG_NS16550_COM1 (CFG_ISA_IO + CFG_NS87308_UART1_BASE)
|
||||
#define CFG_NS16550_COM2 (CFG_ISA_IO + CFG_NS87308_UART2_BASE)
|
||||
|
||||
/*
|
||||
* PCI stuff
|
||||
*/
|
||||
#define CONFIG_PCI /* include pci support */
|
||||
#define CONFIG_PCI_PNP /* pci plug-and-play */
|
||||
#define CONFIG_PCI_HOST PCI_HOST_AUTO
|
||||
#undef CONFIG_PCI_SCAN_SHOW
|
||||
|
||||
/*
|
||||
* Video console (graphic: SMI LynxEM, keyboard: i8042)
|
||||
*/
|
||||
#define CONFIG_VIDEO
|
||||
#define CONFIG_CFB_CONSOLE
|
||||
#define CONFIG_VIDEO_SMI_LYNXEM
|
||||
#define CONFIG_I8042_KBD
|
||||
#define CONFIG_VIDEO_LOGO
|
||||
#define CONFIG_CONSOLE_TIME
|
||||
#define CONFIG_CONSOLE_EXTRA_INFO
|
||||
#define CONFIG_CONSOLE_CURSOR
|
||||
#define CFG_CONSOLE_BLINK_COUNT 30000 /* approx. 2 HZ */
|
||||
|
||||
/*
|
||||
* IDE/SCSI globals
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
extern unsigned int eltec_board;
|
||||
extern unsigned int ata_reset_time;
|
||||
extern unsigned int scsi_reset_time;
|
||||
extern unsigned short scsi_dev_id;
|
||||
extern unsigned int scsi_max_scsi_id;
|
||||
extern unsigned char scsi_sym53c8xx_ccf;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ATAPI Support (experimental)
|
||||
*/
|
||||
#define CONFIG_ATAPI
|
||||
#define CFG_IDE_MAXBUS 1 /* max. 2 IDE busses */
|
||||
#define CFG_IDE_MAXDEVICE (CFG_IDE_MAXBUS*2) /* max. 2 drives per IDE bus */
|
||||
|
||||
#define CFG_ATA_BASE_ADDR CFG_60X_PCI_IO_OFFSET /* base address */
|
||||
#define CFG_ATA_IDE0_OFFSET 0x1F0 /* default ide0 offste */
|
||||
#define CFG_ATA_IDE1_OFFSET 0x170 /* default ide1 offset */
|
||||
#define CFG_ATA_DATA_OFFSET 0 /* data reg offset */
|
||||
#define CFG_ATA_REG_OFFSET 0 /* reg offset */
|
||||
#define CFG_ATA_ALT_OFFSET 0x200 /* alternate register offset */
|
||||
|
||||
#define ATA_RESET_TIME (ata_reset_time)
|
||||
|
||||
#undef CONFIG_IDE_PCMCIA /* no pcmcia interface required */
|
||||
#undef CONFIG_IDE_LED /* no led for ide supported */
|
||||
|
||||
/*
|
||||
* SCSI support (experimental) only SYM53C8xx supported
|
||||
*/
|
||||
#define CONFIG_SCSI_SYM53C8XX
|
||||
#define CONFIG_SCSI_DEV_ID (scsi_dev_id) /* 875 or 860 */
|
||||
#define CFG_SCSI_SYM53C8XX_CCF (scsi_sym53c8xx_ccf) /* value for none 40 mhz clocks */
|
||||
#define CFG_SCSI_MAX_LUN 8 /* number of supported LUNs */
|
||||
#define CFG_SCSI_MAX_SCSI_ID (scsi_max_scsi_id) /* max SCSI ID (0-6) */
|
||||
#define CFG_SCSI_MAX_DEVICE (15 * CFG_SCSI_MAX_LUN) /* max. Target devices */
|
||||
#define CFG_SCSI_SPIN_UP_TIME (scsi_reset_time)
|
||||
|
||||
/*
|
||||
* Partion suppport
|
||||
*/
|
||||
#define CONFIG_DOS_PARTITION
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_ISO_PARTITION
|
||||
|
||||
/*
|
||||
* Winbond Configuration
|
||||
*/
|
||||
#define CFG_WINBOND_83C553 1 /* has a winbond bridge */
|
||||
#define CFG_USE_WINBOND_IDE 0 /* use winbond 83c553 internal ide */
|
||||
#define CFG_WINBOND_ISA_CFG_ADDR 0x80005800 /* pci-isa bridge config addr */
|
||||
#define CFG_WINBOND_IDE_CFG_ADDR 0x80005900 /* ide config addr */
|
||||
|
||||
/*
|
||||
* NS87308 Configuration
|
||||
*/
|
||||
#define CFG_NS87308 /* Nat Semi super-io cntr on ISA bus */
|
||||
#define CFG_NS87308_BADDR_10 1
|
||||
#define CFG_NS87308_DEVS (CFG_NS87308_UART1 | \
|
||||
CFG_NS87308_UART2 | \
|
||||
CFG_NS87308_KBC1 | \
|
||||
CFG_NS87308_MOUSE | \
|
||||
CFG_NS87308_FDC | \
|
||||
CFG_NS87308_RARP | \
|
||||
CFG_NS87308_GPIO | \
|
||||
CFG_NS87308_POWRMAN | \
|
||||
CFG_NS87308_RTC_APC )
|
||||
|
||||
#define CFG_NS87308_PS2MOD
|
||||
#define CFG_NS87308_GPIO_BASE 0x0220
|
||||
#define CFG_NS87308_PWMAN_BASE 0x0460
|
||||
#define CFG_NS87308_PMC2 0x00 /* SuperI/O clock source is 24MHz via X1 */
|
||||
|
||||
/*
|
||||
* set up the NVRAM access registers
|
||||
* NVRAM's controlled by the configurable CS line from the 87308
|
||||
*/
|
||||
#define CFG_NS87308_CS0_BASE 0x0076
|
||||
#define CFG_NS87308_CS0_CONF 0x40
|
||||
#define CFG_NS87308_CS1_BASE 0x0070
|
||||
#define CFG_NS87308_CS1_CONF 0x1C
|
||||
#define CFG_NS87308_CS2_BASE 0x0071
|
||||
#define CFG_NS87308_CS2_CONF 0x1C
|
||||
|
||||
#define CONFIG_RTC_MK48T59
|
||||
|
||||
/*
|
||||
* Initial BATs
|
||||
*/
|
||||
#if 1
|
||||
|
||||
#define CFG_IBAT0L 0
|
||||
#define CFG_IBAT0U 0
|
||||
#define CFG_DBAT0L CFG_IBAT1L
|
||||
#define CFG_DBAT0U CFG_IBAT1U
|
||||
|
||||
#define CFG_IBAT1L 0
|
||||
#define CFG_IBAT1U 0
|
||||
#define CFG_DBAT1L CFG_IBAT1L
|
||||
#define CFG_DBAT1U CFG_IBAT1U
|
||||
|
||||
#define CFG_IBAT2L 0
|
||||
#define CFG_IBAT2U 0
|
||||
#define CFG_DBAT2L CFG_IBAT2L
|
||||
#define CFG_DBAT2U CFG_IBAT2U
|
||||
|
||||
#define CFG_IBAT3L 0
|
||||
#define CFG_IBAT3U 0
|
||||
#define CFG_DBAT3L CFG_IBAT3L
|
||||
#define CFG_DBAT3U CFG_IBAT3U
|
||||
|
||||
#else
|
||||
|
||||
/* SDRAM */
|
||||
#define CFG_IBAT0L (CFG_SDRAM_BASE | BATL_RW)
|
||||
#define CFG_IBAT0U (CFG_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT0L CFG_IBAT1L
|
||||
#define CFG_DBAT0U CFG_IBAT1U
|
||||
|
||||
/* address range for flashes */
|
||||
#define CFG_IBAT1L (CFG_FLASH_BASE | BATL_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT1U (CFG_FLASH_BASE | BATU_BL_16M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT1L CFG_IBAT1L
|
||||
#define CFG_DBAT1U CFG_IBAT1U
|
||||
|
||||
/* ISA IO space */
|
||||
#define CFG_IBAT2L (CFG_ISA_IO | BATL_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT2U (CFG_ISA_IO | BATU_BL_16M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT2L CFG_IBAT2L
|
||||
#define CFG_DBAT2U CFG_IBAT2U
|
||||
|
||||
/* ISA memory space */
|
||||
#define CFG_IBAT3L (CFG_ISA_MEM | BATL_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT3U (CFG_ISA_MEM | BATU_BL_16M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT3L CFG_IBAT3L
|
||||
#define CFG_DBAT3U CFG_IBAT3U
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Speed settings are board specific
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
extern unsigned long bab7xx_get_bus_freq (void);
|
||||
extern unsigned long bab7xx_get_gclk_freq (void);
|
||||
#endif
|
||||
#define CFG_BUS_HZ bab7xx_get_bus_freq()
|
||||
#define CFG_BUS_CLK CFG_BUS_HZ
|
||||
#define CFG_CPU_CLK bab7xx_get_gclk_freq()
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 32 /* For all MPC74xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* L2 Cache Configuration is board specific for BAB740/BAB750
|
||||
* Init values read from revision srom.
|
||||
*/
|
||||
#undef CFG_L2
|
||||
#define L2_INIT (L2CR_L2SIZ_HM | L2CR_L2CLK_3 | L2CR_L2RAM_BURST | \
|
||||
L2CR_L2OH_5 | L2CR_L2CTL | L2CR_L2WT)
|
||||
#define L2_ENABLE (L2_INIT | L2CR_L2E)
|
||||
|
||||
#define CFG_L2_BAB7xx
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
|
||||
#define CONFIG_NET_MULTI /* Multi ethernet cards support */
|
||||
#define CONFIG_TULIP
|
||||
#define CONFIG_TULIP_SELECT_MEDIA
|
||||
|
||||
#endif /* __CONFIG_H */
|
338
include/configs/ELPPC.h
Normal file
338
include/configs/ELPPC.h
Normal file
@ -0,0 +1,338 @@
|
||||
/*
|
||||
* (C) Copyright 2002 ELTEC Elektronik AG
|
||||
* Frank Gottschling <fgottschling@eltec.de>
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#include <asm/processor.h>
|
||||
|
||||
#undef DEBUG
|
||||
#define GTREGREAD(x) 0xffffffff /* needed for debug */
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
/* these hardware addresses are pretty bogus, please change them to
|
||||
suit your needs */
|
||||
|
||||
/* first ethernet */
|
||||
#define CONFIG_ETHADDR 00:00:5b:ee:de:ad
|
||||
|
||||
#define CONFIG_IPADDR 192.168.0.105
|
||||
#define CONFIG_SERVERIP 192.168.0.100
|
||||
|
||||
#define CONFIG_ELPPC 1 /* this is an BAB740/BAB750 board */
|
||||
|
||||
#define CONFIG_BAUDRATE 9600 /* console baudrate */
|
||||
|
||||
#undef CONFIG_WATCHDOG
|
||||
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
|
||||
#define CONFIG_ZERO_BOOTDELAY_CHECK
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"bootp 1000000; " \
|
||||
"setenv bootargs root=ramfs console=ttyS00,9600 " \
|
||||
"ip=$(ipaddr):$(serverip):$(rootpath):$(gatewayip):" \
|
||||
"$(netmask):$(hostname):eth0:none; " \
|
||||
"bootm"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 0 /* echo off for serial download */
|
||||
#define CFG_LOADS_BAUD_CHANGE /* allow baudrate changes */
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | CFG_CMD_PCI | CFG_CMD_JFFS2)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
/*
|
||||
* choose between COM1 and COM2 as serial console
|
||||
*/
|
||||
#define CONFIG_CONS_INDEX 1
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00000000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x04000000 /* 0 ... 64 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x1000000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* dec. freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
#define CFG_BOARD_ASM_INIT
|
||||
#define CONFIG_MISC_INIT_R
|
||||
|
||||
/*
|
||||
* Address mapping scheme for the MPC107 mem controller is mapping B (CHRP)
|
||||
*/
|
||||
#undef CFG_ADDRESS_MAP_A
|
||||
|
||||
#define CFG_PCI_MEMORY_BUS 0x00000000
|
||||
#define CFG_PCI_MEMORY_PHYS 0x00000000
|
||||
#define CFG_PCI_MEMORY_SIZE 0x40000000
|
||||
|
||||
#define CFG_PCI_MEM_BUS 0x80000000
|
||||
#define CFG_PCI_MEM_PHYS 0x80000000
|
||||
#define CFG_PCI_MEM_SIZE 0x7d000000
|
||||
|
||||
#define CFG_ISA_MEM_BUS 0x00000000
|
||||
#define CFG_ISA_MEM_PHYS 0xfd000000
|
||||
#define CFG_ISA_MEM_SIZE 0x01000000
|
||||
|
||||
#define CFG_PCI_IO_BUS 0x00800000
|
||||
#define CFG_PCI_IO_PHYS 0xfe800000
|
||||
#define CFG_PCI_IO_SIZE 0x00400000
|
||||
|
||||
#define CFG_ISA_IO_BUS 0x00000000
|
||||
#define CFG_ISA_IO_PHYS 0xfe000000
|
||||
#define CFG_ISA_IO_SIZE 0x00800000
|
||||
|
||||
/* driver defines FDC,IDE,... */
|
||||
#define CFG_ISA_IO_BASE_ADDRESS CFG_ISA_IO_PHYS
|
||||
#define CFG_ISA_IO CFG_ISA_IO_PHYS
|
||||
#define CFG_60X_PCI_IO_OFFSET CFG_ISA_IO_PHYS
|
||||
|
||||
/*
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
|
||||
#define CFG_USR_LED_BASE 0x78000000
|
||||
#define CFG_NVRAM_BASE 0xff000000
|
||||
#define CFG_UART_BASE 0xff400000
|
||||
#define CFG_FLASH_BASE 0xfff00000
|
||||
|
||||
#define MPC107_EUMB_ADDR 0xfce00000
|
||||
#define MPC107_EUMB_PI 0xfce41090
|
||||
#define MPC107_EUMB_GCR 0xfce41020
|
||||
#define MPC107_EUMB_IACKR 0xfce600a0
|
||||
#define MPC107_I2C_ADDR 0xfce03000
|
||||
|
||||
/*
|
||||
* Definitions for initial stack pointer and data area
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR 0x00fd0000 /* above the memtest region */
|
||||
#define CFG_INIT_RAM_END 0x4000
|
||||
#define CFG_GBL_DATA_SIZE 64 /* size in bytes reserved for init data */
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
/*
|
||||
* Flash mapping/organization on the MPC10x.
|
||||
*/
|
||||
#define FLASH_BASE0_PRELIM 0xff800000
|
||||
#define FLASH_BASE1_PRELIM 0xffc00000
|
||||
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 67 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
#define CFG_JFFS2_FIRST_BANK 0 /* use for JFFS2 */
|
||||
#define CFG_JFFS2_NUM_BANKS 2 /* ! second bank contains U-Boot */
|
||||
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MONITOR_LEN 0x40000 /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN 0x20000 /* Reserve 128 kB for malloc() */
|
||||
#undef CFG_MEMTEST
|
||||
|
||||
/*
|
||||
* Environment settings
|
||||
*/
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
#define CFG_ENV_IS_IN_NVRAM 1 /* use NVRAM for environment vars */
|
||||
#define CFG_NVRAM_SIZE 0x800 /* NVRAM size (2kB) */
|
||||
#define CFG_ENV_SIZE 0x400 /* Size of Environment vars (1kB) */
|
||||
#define CFG_ENV_ADDR 0x0
|
||||
#define CFG_ENV_MAP_ADRS 0xff000000
|
||||
#define CFG_NV_SROM_COPY_ADDR (CFG_ENV_ADDR + CFG_ENV_SIZE)
|
||||
#define CFG_NVRAM_ACCESS_ROUTINE /* only byte accsess alowed */
|
||||
#define CFG_SROM_SIZE 0x100 /* shadow of revision info is in nvram */
|
||||
|
||||
/*
|
||||
* Serial devices
|
||||
*/
|
||||
#define CFG_NS16550
|
||||
#define CFG_NS16550_SERIAL
|
||||
#define CFG_NS16550_REG_SIZE 1
|
||||
#define CFG_NS16550_CLK 24000000
|
||||
#define CFG_NS16550_COM1 (CFG_UART_BASE + 0)
|
||||
#define CFG_NS16550_COM2 (CFG_UART_BASE + 8)
|
||||
|
||||
/*
|
||||
* PCI stuff
|
||||
*/
|
||||
#define CONFIG_PCI /* include pci support */
|
||||
#define CONFIG_PCI_PNP /* pci plug-and-play */
|
||||
#define CONFIG_PCI_HOST PCI_HOST_AUTO
|
||||
#undef CONFIG_PCI_SCAN_SHOW
|
||||
|
||||
/*
|
||||
* Optional Video console (graphic: SMI LynxEM)
|
||||
*/
|
||||
#define CONFIG_VIDEO
|
||||
#define CONFIG_CFB_CONSOLE
|
||||
#define VIDEO_KBD_INIT_FCT (simple_strtol (getenv("console"), NULL, 10))
|
||||
#define VIDEO_TSTC_FCT serial_tstc
|
||||
#define VIDEO_GETC_FCT serial_getc
|
||||
|
||||
#define CONFIG_VIDEO_SMI_LYNXEM
|
||||
#define CONFIG_VIDEO_LOGO
|
||||
#define CONFIG_CONSOLE_EXTRA_INFO
|
||||
|
||||
/*
|
||||
* Initial BATs
|
||||
*/
|
||||
#if 1
|
||||
|
||||
#define CFG_IBAT0L 0
|
||||
#define CFG_IBAT0U 0
|
||||
#define CFG_DBAT0L CFG_IBAT1L
|
||||
#define CFG_DBAT0U CFG_IBAT1U
|
||||
|
||||
#define CFG_IBAT1L 0
|
||||
#define CFG_IBAT1U 0
|
||||
#define CFG_DBAT1L CFG_IBAT1L
|
||||
#define CFG_DBAT1U CFG_IBAT1U
|
||||
|
||||
#define CFG_IBAT2L 0
|
||||
#define CFG_IBAT2U 0
|
||||
#define CFG_DBAT2L CFG_IBAT2L
|
||||
#define CFG_DBAT2U CFG_IBAT2U
|
||||
|
||||
#define CFG_IBAT3L 0
|
||||
#define CFG_IBAT3U 0
|
||||
#define CFG_DBAT3L CFG_IBAT3L
|
||||
#define CFG_DBAT3U CFG_IBAT3U
|
||||
|
||||
#else
|
||||
|
||||
/* SDRAM */
|
||||
#define CFG_IBAT0L (CFG_SDRAM_BASE | BATL_RW)
|
||||
#define CFG_IBAT0U (CFG_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT0L CFG_IBAT1L
|
||||
#define CFG_DBAT0U CFG_IBAT1U
|
||||
|
||||
/* address range for flashes */
|
||||
#define CFG_IBAT1L (CFG_FLASH_BASE | BATL_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT1U (CFG_FLASH_BASE | BATU_BL_16M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT1L CFG_IBAT1L
|
||||
#define CFG_DBAT1U CFG_IBAT1U
|
||||
|
||||
/* ISA IO space */
|
||||
#define CFG_IBAT2L (CFG_ISA_IO | BATL_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT2U (CFG_ISA_IO | BATU_BL_16M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT2L CFG_IBAT2L
|
||||
#define CFG_DBAT2U CFG_IBAT2U
|
||||
|
||||
/* ISA memory space */
|
||||
#define CFG_IBAT3L (CFG_ISA_MEM | BATL_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT3U (CFG_ISA_MEM | BATU_BL_16M | BATU_VS | BATU_VP)
|
||||
#define CFG_DBAT3L CFG_IBAT3L
|
||||
#define CFG_DBAT3U CFG_IBAT3U
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Speed settings are board specific
|
||||
*/
|
||||
#define CFG_BUS_HZ 100000000
|
||||
#define CFG_CPU_CLK 400000000
|
||||
#define CFG_BUS_CLK CFG_BUS_HZ
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 32 /* For all MPC74xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* L2CR setup -- make sure this is right for your board!
|
||||
* look in include/mpc74xx.h for the defines used here
|
||||
*/
|
||||
|
||||
#define CFG_L2
|
||||
|
||||
#if 1
|
||||
#define L2_INIT 0 /* cpu 750 CXe*/
|
||||
#else
|
||||
#define L2_INIT (L2CR_L2SIZ_2M | L2CR_L2CLK_3 | L2CR_L2RAM_BURST | \
|
||||
L2CR_L2OH_5 | L2CR_L2CTL | L2CR_L2WT)
|
||||
#endif
|
||||
#define L2_ENABLE (L2_INIT | L2CR_L2E)
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#define CONFIG_NET_MULTI /* Multi ethernet cards support */
|
||||
#define CONFIG_EEPRO100
|
||||
#define CONFIG_EEPRO100_SROM_WRITE
|
||||
|
||||
#endif /* __CONFIG_H */
|
372
include/configs/ERIC.h
Normal file
372
include/configs/ERIC.h
Normal file
@ -0,0 +1,372 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_405GP 1 /* This is a PPC405 CPU */
|
||||
#define CONFIG_4xx 1 /* ...member of PPC4xx family */
|
||||
#define CONFIG_ERIC 1 /* ...on a ERIC board */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1 /* run board_pre_init() */
|
||||
|
||||
#define CONFIG_SYS_CLK_FREQ 33333333 /* external frequency to pll */
|
||||
|
||||
#if 1
|
||||
#define CFG_ENV_IS_IN_FLASH 1 /* use FLASH for environment vars */
|
||||
#endif
|
||||
#if 0
|
||||
#define CFG_ENV_IS_IN_NVRAM 1 /* use NVRAM for environment vars */
|
||||
#endif
|
||||
#if 0
|
||||
#define CFG_ENV_IS_IN_EEPROM 1 /* use I2C RTC X1240 for environment vars */
|
||||
#define CFG_ENV_OFFSET 0x000 /* environment starts at the beginning of the EEPROM */
|
||||
#define CFG_ENV_SIZE 0x800 /* 2048 bytes may be used for env vars */
|
||||
#endif /* total size of a X1240 is 2048 bytes */
|
||||
|
||||
#define CONFIG_HARD_I2C 1 /* I2C with hardware support */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
#define CFG_I2C_EEPROM_ADDR 0x57 /* X1240 has two I2C slave addresses, one for EEPROM */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 2 /* address length for the eeprom */
|
||||
#define CONFIG_I2C_RTC 1 /* we have a Xicor X1240 RTC */
|
||||
#define CFG_I2C_RTC_ADDR 0x6F /* and one for RTC */
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_FLASH
|
||||
#undef CFG_ENV_IS_IN_NVRAM
|
||||
#undef CFG_ENV_IS_IN_EEPROM
|
||||
#else
|
||||
#ifdef CFG_ENV_IS_IN_NVRAM
|
||||
#undef CFG_ENV_IS_IN_FLASH
|
||||
#undef CFG_ENV_IS_IN_EEPROM
|
||||
#else
|
||||
#ifdef CFG_ENV_IS_IN_EEPROM
|
||||
#undef CFG_ENV_IS_IN_NVRAM
|
||||
#undef CFG_ENV_IS_IN_FLASH
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
#define CONFIG_BOOTDELAY 3 /* autoboot after 3 seconds */
|
||||
|
||||
#if 1
|
||||
#define CONFIG_BOOTCOMMAND "bootm ffc00000" /* autoboot command */
|
||||
#else
|
||||
#define CONFIG_BOOTCOMMAND "bootp" /* autoboot command */
|
||||
#endif
|
||||
|
||||
#define CONFIG_BOOTARGS "console=ttyS0,115200 root=/dev/nfs " \
|
||||
"nfsroot=192.168.1.2:/eric_root_devel " \
|
||||
"ip=192.168.1.22:192.168.1.2"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#define CFG_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
|
||||
|
||||
#define CONFIG_MII 1 /* MII PHY management */
|
||||
#define CONFIG_PHY_ADDR 1 /* PHY address */
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
|
||||
CFG_CMD_PCI | \
|
||||
CFG_CMD_IRQ | \
|
||||
CFG_CMD_ENV | \
|
||||
CFG_CMD_FLASH)
|
||||
|
||||
/*
|
||||
* #define CONFIG_COMMANDS (CONFIG_CMD_DFL | CFG_CMD_PCI | CFG_CMD_IRQ | \
|
||||
* CFG_CMD_KGDB | CFG_CMD_I2C | CFG_CMD_EEPROM | \
|
||||
* CFG_CMD_ENV | CFG_CMD_FLASH)
|
||||
*/
|
||||
|
||||
/* CFG_CMD_ENV est definie */
|
||||
/* ((CONFIG_CMD_DFL | CFG_CMD_PCI | CFG_CMD_IRQ | CFG_CMD_KGDB) & ~(CFG_CMD_ENV))
|
||||
*/
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#undef CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
|
||||
|
||||
#define CFG_EXT_SERIAL_CLOCK 14318180
|
||||
|
||||
/* The following table includes the supported baudrates */
|
||||
#define CFG_BAUDRATE_TABLE \
|
||||
{ 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, \
|
||||
57600, 115200, 230400, 460800, 921600 }
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
#define CFG_EXTBDINFO 1 /* To use extended board_into (bd_t) */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCI stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define PCI_HOST_ADAPTER 0 /* configure ar pci adapter */
|
||||
#define PCI_HOST_FORCE 1 /* configure as pci host */
|
||||
#define PCI_HOST_AUTO 2 /* detected via arbiter enable */
|
||||
|
||||
#define CONFIG_PCI /* include pci support */
|
||||
#define CONFIG_PCI_HOST PCI_HOST_FORCE /* select pci host function */
|
||||
#undef CONFIG_PCI_PNP /* no pci plug-and-play */
|
||||
/* resource configuration */
|
||||
|
||||
#define CFG_PCI_SUBSYS_VENDORID 0x1743 /* PCI Vendor ID: Peppercon AG */
|
||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0405 /* PCI Device ID: 405GP */
|
||||
#define CFG_PCI_PTM1LA 0xFFFC0000 /* point to flash */
|
||||
#define CFG_PCI_PTM1MS 0xFFFFF001 /* 4kB, enable hard-wired to 1 */
|
||||
#define CFG_PCI_PTM1PCI 0x00000000 /* Host: use this pci address */
|
||||
#define CFG_PCI_PTM2LA 0x00000000 /* disabled */
|
||||
#define CFG_PCI_PTM2MS 0x00000000 /* disabled */
|
||||
#define CFG_PCI_PTM2PCI 0x04000000 /* Host: use this pci address */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* External peripheral base address
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* Bank 0 - Flash/SRAM 0xFF000000 16MB 16 Bit */
|
||||
/* Bank 1 - NVRAM/RTC 0xF0000000 1MB 8 Bit */
|
||||
/* Bank 2 - A/D converter 0xF0100000 1MB 8 Bit */
|
||||
/* Bank 3 - Ethernet PHY Reset 0xF0200000 1MB 8 Bit */
|
||||
/* Bank 4 - PC-MIP PRSNT1# 0xF0300000 1MB 8 Bit */
|
||||
/* Bank 5 - PC-MIP PRSNT2# 0xF0400000 1MB 8 Bit */
|
||||
/* Bank 6 - CPU LED0 0xF0500000 1MB 8 Bit */
|
||||
/* Bank 7 - CPU LED1 0xF0600000 1MB 8 Bit */
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 0 (Flash) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS0_AP 0x9B015480
|
||||
#define CS0_CR 0xFF87A000 /* BAS=0xFF8,BS=(8MB),BU=0x3(R/W), BW=(16 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 1 (NVRAM/RTC) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS1_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS1_CR 0xF0018000 /* BAS=0xF00,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 2 (A/D converter) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS2_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS2_CR 0xF0118000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 3 (Ethernet PHY Reset) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS3_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS3_CR 0xF0218000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 4 (PC-MIP PRSNT1#) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS4_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS4_CR 0xF0318000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 5 (PC-MIP PRSNT2#) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS5_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS5_CR 0xF0418000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 6 (CPU LED0) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS6_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS6_CR 0xF0518000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* Memory Bank 7 (CPU LED1) initialization */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#define CS7_AP 0x02815480 /* WT=1, OEN=0x1,WBN=0x1,WBF=0x1,TH=0x2,RE=0, */
|
||||
#define CS7_CR 0xF0618000 /* BAS=0xF01,BS=(1MB),BU=0x3(R/W), BW=(8 bits) */
|
||||
|
||||
#define CFG_NVRAM_REG_BASE_ADDR 0xF0000000
|
||||
#define CFG_RTC_REG_BASE_ADDR (0xF0000000 + 0x7F8)
|
||||
#define CFG_ADC_REG_BASE_ADDR 0xF0100000
|
||||
#define CFG_PHYRES_REG_BASE_ADDR 0xF0200000
|
||||
#define CFG_PRSNT1_REG_BASE_ADDR 0xF0300000
|
||||
#define CFG_PRSNT2_REG_BASE_ADDR 0xF0400000
|
||||
#define CFG_LED0_REG_BASE_ADDR 0xF0500000
|
||||
#define CFG_LED1_REG_BASE_ADDR 0xF0600000
|
||||
|
||||
|
||||
/* SDRAM CONFIG */
|
||||
#define CFG_SDRAM_MANUALLY 1
|
||||
#define CFG_SDRAM_SINGLE_BANK 1
|
||||
|
||||
#ifdef CFG_SDRAM_MANUALLY
|
||||
/*-----------------------------------------------------------------------
|
||||
* Set MB0CF for bank 0. (0-32MB) Address Mode 4 since 12x8(2)
|
||||
*----------------------------------------------------------------------*/
|
||||
#define MB0CF 0x00062001 /* 32MB @ 0 */
|
||||
/*-----------------------------------------------------------------------
|
||||
* Set MB1CF for bank 1. (32MB-64MB) Address Mode 4 since 12x8(2)
|
||||
*----------------------------------------------------------------------*/
|
||||
#ifdef CFG_SDRAM_SINGLE_BANK
|
||||
#define MB1CF 0x0 /* 0MB @ 32MB */
|
||||
#else
|
||||
#define MB1CF 0x02062001 /* 32MB @ 32MB */
|
||||
#endif
|
||||
/*-----------------------------------------------------------------------
|
||||
* Set MB2CF for bank 2. off
|
||||
*----------------------------------------------------------------------*/
|
||||
#define MB2CF 0x0 /* 0MB */
|
||||
/*-----------------------------------------------------------------------
|
||||
* Set MB3CF for bank 3. off
|
||||
*----------------------------------------------------------------------*/
|
||||
#define MB3CF 0x0 /* 0MB */
|
||||
|
||||
#define SDTR_100 0x0086400D
|
||||
#define RTR_100 0x05F0
|
||||
#define SDTR_66 0x00854006 /* orig U-Boot-wallnut says 0x00854006 */
|
||||
#define RTR_66 0x03f8
|
||||
|
||||
#endif /* CFG_SDRAM_MANUALLY */
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_SDRAM_SIZE 32
|
||||
#define CFG_FLASH_BASE 0xFF800000 /* 8 MByte Flash */
|
||||
#define CFG_MONITOR_BASE 0xFFFE0000 /* last 128kByte within Flash */
|
||||
/*#define CFG_MONITOR_LEN (192 * 1024)*/ /* Reserve 196 kB for Monitor */
|
||||
#define CFG_MONITOR_LEN (128 * 1024) /* Reserve 128 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 * 1024) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 64 /* max number of sectors on one chip */
|
||||
#define CFG_FLASH_16BIT 1 /* Rom 16 bit data bus */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
/* BEG ENVIRONNEMENT FLASH */
|
||||
#ifdef CFG_ENV_IS_IN_FLASH
|
||||
#define CFG_ENV_SECT_SIZE (128*1024)
|
||||
|
||||
#if 0 /* force ENV to be NOT embedded */
|
||||
#define CFG_ENV_ADDR 0xfffa0000
|
||||
#else /* force ENV to be embedded */
|
||||
#define CFG_ENV_SIZE (2 * 1024) /* Total Size of Environment Sector 2k */
|
||||
#define CFG_ENV_ADDR (CFG_MONITOR_BASE + CFG_MONITOR_LEN - CFG_ENV_SIZE - 0x10) /* let space for reset vector */
|
||||
/* #define CFG_ENV_ADDR (CFG_MONITOR_BASE)*/
|
||||
#define CFG_ENV_OFFSET (CFG_ENV_ADDR - CFG_FLASH_BASE)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* END ENVIRONNEMENT FLASH */
|
||||
/*-----------------------------------------------------------------------
|
||||
* NVRAM organization
|
||||
*/
|
||||
#define CFG_NVRAM_BASE_ADDR CFG_NVRAM_REG_BASE_ADDR /* NVRAM base address */
|
||||
#define CFG_NVRAM_SIZE 0x7F8 /* NVRAM size 2kByte - 8 Byte for RTC */
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_NVRAM
|
||||
#define CFG_ENV_SIZE 0x7F8 /* Size of Environment vars */
|
||||
#define CFG_ENV_ADDR \
|
||||
(CFG_NVRAM_BASE_ADDR+CFG_NVRAM_SIZE-CFG_ENV_SIZE) /* Env */
|
||||
#endif
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_DCACHE_SIZE 8192 /* For IBM 405 CPUs */
|
||||
#define CFG_CACHELINE_SIZE 32 /* ... */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*
|
||||
* BR0/1 and OR0/1 (FLASH)
|
||||
*/
|
||||
|
||||
#define FLASH_BASE0_PRELIM 0xFF800000 /* FLASH bank #0 8MB */
|
||||
#define FLASH_BASE1_PRELIM 0 /* FLASH bank #1 */
|
||||
|
||||
|
||||
/* Configuration Port location */
|
||||
/* #define CONFIG_PORT_ADDR 0xF0000500 */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR 0x00df0000 /* inside of SDRAM */
|
||||
#define CFG_INIT_RAM_END 0x0f00 /* End of used area in RAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for Serial Presence Detect EEPROM address
|
||||
* (to get SDRAM settings)
|
||||
*/
|
||||
#define SPD_EEPROM_ADDRESS 0x50
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */
|
||||
#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */
|
||||
#endif
|
||||
#endif /* __CONFIG_H */
|
356
include/configs/ETX094.h
Normal file
356
include/configs/ETX094.h
Normal file
@ -0,0 +1,356 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC850 1 /* This is a MPC850 CPU */
|
||||
#define CONFIG_ETX094 1 /* ...on a ETX_094 board */
|
||||
|
||||
#define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */
|
||||
#undef CONFIG_8xx_CONS_SMC2
|
||||
#undef CONFIG_8xx_CONS_NONE
|
||||
#define CONFIG_BAUDRATE 57600
|
||||
#if 0
|
||||
#define CONFIG_BOOTDELAY -1 /* autoboot disabled */
|
||||
#else
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
#endif
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
|
||||
#define CONFIG_BOARD_TYPES 1 /* support board types */
|
||||
|
||||
#define CONFIG_FLASH_16BIT /* for board with 16bit wide flash */
|
||||
#undef SB_ETX094 /* only for SB-Board with 16MB SDRAM */
|
||||
#define CONFIG_BOOTP_RANDOM_DELAY /* graceful BOOTP recovery mode */
|
||||
|
||||
#define CONFIG_ETHADDR 08:00:06:00:00:00
|
||||
|
||||
#ifdef CONFIG_ETHADDR
|
||||
#define CONFIG_OVERWRITE_ETHADDR_ONCE 1 /* default MAC can be overwritten once */
|
||||
#endif
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
#define CONFIG_RAMBOOTCOMMAND \
|
||||
"bootp; " \
|
||||
"setenv bootargs root=/dev/ram rw ramdisk_size=4690 " \
|
||||
"U-Boot_version=U-Boot-1.0.x-Date " \
|
||||
"panic=1 " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " \
|
||||
"bootm"
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"bootp; " \
|
||||
"setenv bootargs root=/dev/nfs rw nfsroot=$(nfsip):$(rootpath) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " \
|
||||
"bootm"
|
||||
#define CONFIG_BOOTCOMMAND CONFIG_RAMBOOTCOMMAND
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* don't allow baudrate change */
|
||||
|
||||
#define CONFIG_WATCHDOG 1 /* watchdog enabled */
|
||||
|
||||
#define CONFIG_STATUS_LED 1 /* Status LED enabled */
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0300000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0700000 /* 3 ... 7 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
/*-----------------------------------------------------------------------
|
||||
* Internal Memory Mapped Register
|
||||
*/
|
||||
#define CFG_IMMR 0xFFF00000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2F00 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0x40000000
|
||||
#ifdef DEBUG
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#else
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#endif
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 35 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#ifdef CONFIG_FLASH_16BIT
|
||||
#define CFG_ENV_OFFSET 0x8000 /* Offset of Environment Sector */
|
||||
#define CFG_ENV_SIZE 0x8000 /* Total Size of Environment Sector */
|
||||
#else
|
||||
#define CFG_ENV_OFFSET 0x8000 /* Offset of Environment Sector */
|
||||
#define CFG_ENV_SIZE 0x4000 /* Total Size of Environment Sector */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Hardware Information Block
|
||||
*/
|
||||
#define CFG_HWINFO_OFFSET 0x0003FFC0 /* offset of HW Info block */
|
||||
#define CFG_HWINFO_SIZE 0x00000040 /* size of HW Info block */
|
||||
#define CFG_HWINFO_MAGIC 0x54514D38 /* 'TQM8' */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 16 /* For all MPC8xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 4 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
|
||||
*/
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | SYPCR_SWP)
|
||||
#endif /* CONFIG_WATCHDOG */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 11-6
|
||||
*-----------------------------------------------------------------------
|
||||
* PCMCIA config., multi-function pin tri-state
|
||||
*/
|
||||
#define CFG_SIUMCR (SIUMCR_DBGC00 | SIUMCR_DBPC00 | SIUMCR_MLRC01)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TBSCR - Time Base Status and Control 11-26
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Reference Interrupt Status, Timebase freezing enabled
|
||||
*/
|
||||
#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RTCSC - Real-Time Clock Status and Control Register 11-27
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RTCSC (RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 11-31
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS | PISCR_PITF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PLPRCR - PLL, Low-Power, and Reset Control Register 15-30
|
||||
*-----------------------------------------------------------------------
|
||||
* Reset PLL lock status sticky bit, timer expired status bit and timer
|
||||
* interrupt status bit - leave PLL multiplication factor unchanged !
|
||||
*/
|
||||
#define CFG_PLPRCR (PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock and reset Control Register 15-27
|
||||
*-----------------------------------------------------------------------
|
||||
* Set clock output, timebase and RTC source and divider,
|
||||
* power management and some other internal clocks
|
||||
*/
|
||||
#define SCCR_MASK SCCR_EBDF11
|
||||
#define CFG_SCCR (SCCR_TBS | \
|
||||
SCCR_COM00 | SCCR_DFSYNC00 | SCCR_DFBRG00 | \
|
||||
SCCR_DFNL000 | SCCR_DFNH000 | SCCR_DFLCD000 | \
|
||||
SCCR_DFALCD00)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCMCIA stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
#define CFG_PCMCIA_MEM_ADDR (0xE0000000)
|
||||
#define CFG_PCMCIA_MEM_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_DMA_ADDR (0xE4000000)
|
||||
#define CFG_PCMCIA_DMA_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_ATTRB_ADDR (0xE8000000)
|
||||
#define CFG_PCMCIA_ATTRB_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_IO_ADDR (0xEC000000)
|
||||
#define CFG_PCMCIA_IO_SIZE ( 64 << 20 )
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
/*#define CFG_DER 0x2002000F*/
|
||||
#define CFG_DER 0
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*
|
||||
* BR0/1 and OR0/1 (FLASH)
|
||||
*/
|
||||
|
||||
#define FLASH_BASE0_PRELIM 0x40000000 /* FLASH bank #0 */
|
||||
#define FLASH_BASE1_PRELIM 0x60000000 /* FLASH bank #0 */
|
||||
|
||||
/* used to re-map FLASH both when starting from SRAM or FLASH:
|
||||
* restrict access enough to keep SRAM working (if any)
|
||||
* but not too much to meddle with FLASH accesses
|
||||
*/
|
||||
#define CFG_REMAP_OR_AM 0x80000000 /* OR addr mask */
|
||||
#define CFG_PRELIM_OR_AM 0xE0000000 /* OR addr mask */
|
||||
|
||||
/* FLASH timing: ACS = 11, TRLX = 1, CSNT = 0, SCY = 2, EHTR = 0 */
|
||||
#define CFG_OR_TIMING_FLASH (OR_ACS_DIV2 | OR_BI | \
|
||||
OR_SCY_2_CLK | OR_TRLX )
|
||||
|
||||
#define CFG_OR0_REMAP (CFG_REMAP_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
|
||||
#ifdef CONFIG_FLASH_16BIT /* 16 bit data port */
|
||||
#define CFG_BR0_PRELIM ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_V | BR_PS_16)
|
||||
#define CFG_BR1_PRELIM ((FLASH_BASE1_PRELIM & BR_BA_MSK) | BR_V | BR_PS_16)
|
||||
#else /* 32 bit data port */
|
||||
#define CFG_BR0_PRELIM ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_V | BR_PS_32)
|
||||
#define CFG_BR1_PRELIM ((FLASH_BASE1_PRELIM & BR_BA_MSK) | BR_V | BR_PS_32)
|
||||
#endif /* CONFIG_FLASH_16BIT */
|
||||
|
||||
#define CFG_OR1_REMAP CFG_OR0_REMAP
|
||||
#define CFG_OR1_PRELIM CFG_OR0_PRELIM
|
||||
|
||||
/*
|
||||
* BR2/3 and OR2/3 (SDRAM)
|
||||
*
|
||||
*/
|
||||
#define SDRAM_BASE2_PRELIM 0x00000000 /* SDRAM bank #0 */
|
||||
#define SDRAM_BASE3_PRELIM 0x20000000 /* SDRAM bank #1 */
|
||||
#define SDRAM_MAX_SIZE 0x04000000 /* max 64 MB per bank */
|
||||
|
||||
/* SDRAM timing: Multiplexed addresses, GPL5 output to GPL5_A (don't care) */
|
||||
#define CFG_OR_TIMING_SDRAM 0x00000A00
|
||||
|
||||
#define CFG_OR2_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_SDRAM )
|
||||
#define CFG_BR2_PRELIM ((SDRAM_BASE2_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
|
||||
#define CFG_OR3_PRELIM CFG_OR2_PRELIM
|
||||
#define CFG_BR3_PRELIM ((SDRAM_BASE3_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
|
||||
/*
|
||||
* Memory Periodic Timer Prescaler
|
||||
*/
|
||||
|
||||
/* periodic timer for refresh */
|
||||
#define CFG_MAMR_PTA 23 /* start with divider for 100 MHz */
|
||||
|
||||
/* refresh rate 15.6 us (= 64 ms / 4K = 62.4 / quad bursts) for <= 128 MBit */
|
||||
#define CFG_MPTPR_2BK_4K MPTPR_PTP_DIV16 /* setting for 2 banks */
|
||||
#define CFG_MPTPR_1BK_4K MPTPR_PTP_DIV32 /* setting for 1 bank */
|
||||
|
||||
/* refresh rate 7.8 us (= 64 ms / 8K = 31.2 / quad bursts) for 256 MBit */
|
||||
#define CFG_MPTPR_2BK_8K MPTPR_PTP_DIV8 /* setting for 2 banks */
|
||||
#define CFG_MPTPR_1BK_8K MPTPR_PTP_DIV16 /* setting for 1 bank */
|
||||
|
||||
/*
|
||||
* MAMR settings for SDRAM
|
||||
*/
|
||||
|
||||
/* 8 column SDRAM */
|
||||
#define CFG_MAMR_8COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
|
||||
MAMR_AMA_TYPE_0 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A11 | \
|
||||
MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_1X)
|
||||
/* 9 column SDRAM */
|
||||
#define CFG_MAMR_9COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
|
||||
MAMR_AMA_TYPE_1 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A10 | \
|
||||
MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_1X)
|
||||
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
459
include/configs/IP860.h
Normal file
459
include/configs/IP860.h
Normal file
@ -0,0 +1,459 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC860 1 /* This is a MPC860 CPU */
|
||||
#define CONFIG_IP860 1 /* ...on a IP860 board */
|
||||
|
||||
#define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
|
||||
#define CONFIG_PREBOOT "echo;echo Type \"run flash_nfs\" to mount root filesystem over NFS;echo" \
|
||||
"\0load=tftp \"/tftpboot/u-boot.bin\"\0update=protect off 1:0;era 1:0;cp.b 100000 10000000 $(filesize)\0"
|
||||
|
||||
#define CONFIG_ETHADDR 00:30:bf:01:02:d2
|
||||
#define CONFIG_IPADDR 10.0.0.5
|
||||
#define CONFIG_SERVERIP 10.0.0.2
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"bootp; " \
|
||||
"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " \
|
||||
"bootm"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* don't allow baudrate change */
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
|
||||
|
||||
/* enable I2C and select the hardware/software driver */
|
||||
#undef CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
#define CONFIG_SOFT_I2C 1 /* I2C bit-banged */
|
||||
/*
|
||||
* Software (bit-bang) I2C driver configuration
|
||||
*/
|
||||
#define PB_SCL 0x00000020 /* PB 26 */
|
||||
#define PB_SDA 0x00000010 /* PB 27 */
|
||||
|
||||
#define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
|
||||
#define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
|
||||
#define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
|
||||
#define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
|
||||
#define I2C_SDA(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SDA
|
||||
#define I2C_SCL(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SCL
|
||||
#define I2C_DELAY udelay(5) /* 1/4 I2C clock duration */
|
||||
|
||||
|
||||
# define CFG_I2C_SPEED 50000
|
||||
# define CFG_I2C_SLAVE 0xFE
|
||||
# define CFG_I2C_EEPROM_ADDR 0x50 /* EEPROM X24C16 */
|
||||
# define CFG_I2C_EEPROM_ADDR_LEN 1 /* bytes of address */
|
||||
/* mask of address bits that overflow into the "EEPROM chip address" */
|
||||
#define CFG_I2C_EEPROM_ADDR_OVERFLOW 0x07
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 4
|
||||
#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10 /* takes up to 10 msec */
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
|
||||
CFG_CMD_BEDBUG | \
|
||||
CFG_CMD_I2C | \
|
||||
CFG_CMD_EEPROM)
|
||||
|
||||
#define CONFIG_BOOTP_MASK CONFIG_BOOTP_DEFAULT
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x00F00000 /* 1 ... 15MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x00100000 /* default load address */
|
||||
|
||||
#define CFG_PIO_MODE 0 /* IDE interface in PIO Mode 0 */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
/*-----------------------------------------------------------------------
|
||||
* Internal Memory Mapped Register
|
||||
*/
|
||||
#define CFG_IMMR 0xF1000000 /* Non-standard value!! */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2F00 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0x10000000
|
||||
#ifdef DEBUG
|
||||
#define CFG_MONITOR_LEN (512 << 10) /* Reserve 512 kB for Monitor */
|
||||
#else
|
||||
#if 0 /* need more space for I2C tests */
|
||||
#define CFG_MONITOR_LEN (128 << 10) /* Reserve 128 kB for Monitor */
|
||||
#else
|
||||
#define CFG_MONITOR_LEN (256 << 10)
|
||||
#endif
|
||||
#endif
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 124 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
#undef CFG_ENV_IS_IN_FLASH
|
||||
#undef CFG_ENV_IS_IN_NVRAM
|
||||
#undef CFG_ENV_IS_IN_NVRAM
|
||||
#undef DEBUG_I2C
|
||||
#define CFG_ENV_IS_IN_EEPROM
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_NVRAM
|
||||
#define CFG_ENV_ADDR 0x20000000 /* use SRAM */
|
||||
#define CFG_ENV_SIZE (16<<10) /* use 16 kB */
|
||||
#endif /* CFG_ENV_IS_IN_NVRAM */
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_EEPROM
|
||||
#define CFG_ENV_OFFSET 512 /* Leave 512 bytes free for other data */
|
||||
#define CFG_ENV_SIZE 1536 /* Use remaining space */
|
||||
#endif /* CFG_ENV_IS_IN_EEPROM */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 16 /* For all MPC8xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 4 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
|
||||
* +0x0004
|
||||
*/
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | SYPCR_SWP)
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 11-6
|
||||
*-----------------------------------------------------------------------
|
||||
* +0x0000 => 0x80600800
|
||||
*/
|
||||
#define CFG_SIUMCR (SIUMCR_EARB | SIUMCR_EARP0 | \
|
||||
SIUMCR_DBGC11 | SIUMCR_MLRC10)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Clock Setting - the IP860 has no 32kHz clock, so automatic detection fails
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CONFIG_8xx_GCLK_FREQ 50000000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TBSCR - Time Base Status and Control 11-26
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Reference Interrupt Status, Timebase freezing enabled
|
||||
* +0x0200 => 0x00C2
|
||||
*/
|
||||
#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 11-31
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
|
||||
* +0x0240 => 0x0082
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS | PISCR_PITF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PLPRCR - PLL, Low-Power, and Reset Control Register 15-30
|
||||
*-----------------------------------------------------------------------
|
||||
* Reset PLL lock status sticky bit, timer expired status bit and timer
|
||||
* interrupt status bit, set PLL multiplication factor !
|
||||
*/
|
||||
/* +0x0286 => was: 0x0000D000 */
|
||||
#define CFG_PLPRCR \
|
||||
( PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST | \
|
||||
/*PLPRCR_CSRC|*/ PLPRCR_LPM_NORMAL | \
|
||||
PLPRCR_CSR | PLPRCR_LOLRE /*|PLPRCR_FIOPD*/ \
|
||||
)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock and reset Control Register 15-27
|
||||
*-----------------------------------------------------------------------
|
||||
* Set clock output, timebase and RTC source and divider,
|
||||
* power management and some other internal clocks
|
||||
*/
|
||||
#define SCCR_MASK SCCR_EBDF11
|
||||
#define CFG_SCCR (SCCR_COM00 | SCCR_TBS | \
|
||||
SCCR_RTDIV | SCCR_RTSEL | \
|
||||
/*SCCR_CRQEN|*/ /*SCCR_PRQEN|*/ \
|
||||
SCCR_EBDF00 | SCCR_DFSYNC00 | \
|
||||
SCCR_DFBRG00 | SCCR_DFNL000 | \
|
||||
SCCR_DFNH000)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RTCSC - Real-Time Clock Status and Control Register 11-27
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* +0x0220 => 0x00C3 */
|
||||
#define CFG_RTCSC (RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RCCR - RISC Controller Configuration Register 19-4
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* +0x09C4 => TIMEP=1 */
|
||||
#define CFG_RCCR 0x0100
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RMDS - RISC Microcode Development Support Control Register
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RMDS 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* DER - Debug Event Register
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
/*#define CFG_DER 0x2002000F*/
|
||||
#define CFG_DER 0
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*/
|
||||
|
||||
/*
|
||||
* MAMR settings for SDRAM - 16-14
|
||||
* => 0xC3804114
|
||||
*/
|
||||
|
||||
/* periodic timer for refresh */
|
||||
#define CFG_MAMR_PTA 0xC3
|
||||
|
||||
#define CFG_MAMR ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
|
||||
MAMR_AMA_TYPE_0 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A10 | \
|
||||
MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_4X)
|
||||
/*
|
||||
* BR1 and OR1 (FLASH)
|
||||
*/
|
||||
#define FLASH_BASE 0x10000000 /* FLASH bank #0 */
|
||||
|
||||
/* used to re-map FLASH
|
||||
* restrict access enough to keep SRAM working (if any)
|
||||
* but not too much to meddle with FLASH accesses
|
||||
*/
|
||||
/* allow for max 8 MB of Flash */
|
||||
#define CFG_REMAP_OR_AM 0xFF800000 /* OR addr mask */
|
||||
#define CFG_PRELIM_OR_AM 0xFF800000 /* OR addr mask */
|
||||
|
||||
#define CFG_OR_TIMING_FLASH (OR_CSNT_SAM | OR_ACS_DIV2 | OR_BI | OR_SCY_6_CLK)
|
||||
|
||||
#define CFG_OR0_REMAP (CFG_REMAP_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
/* 16 bit, bank valid */
|
||||
#define CFG_BR0_PRELIM ((FLASH_BASE & BR_BA_MSK) | BR_PS_32 | BR_V )
|
||||
|
||||
#define CFG_OR1_PRELIM CFG_OR0_PRELIM
|
||||
#define CFG_BR1_PRELIM CFG_BR0_PRELIM
|
||||
|
||||
/*
|
||||
* BR2/OR2 - SDRAM
|
||||
*/
|
||||
#define SDRAM_BASE 0x00000000 /* SDRAM bank */
|
||||
#define SDRAM_PRELIM_OR_AM 0xF8000000 /* map max. 128 MB */
|
||||
#define SDRAM_TIMING 0x00000A00 /* SDRAM-Timing */
|
||||
|
||||
#define SDRAM_MAX_SIZE 0x04000000 /* max 64 MB SDRAM */
|
||||
|
||||
#define CFG_OR2 (SDRAM_PRELIM_OR_AM | SDRAM_TIMING )
|
||||
#define CFG_BR2 ((SDRAM_BASE & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
|
||||
/*
|
||||
* BR3/OR3 - SRAM (16 bit)
|
||||
*/
|
||||
#define SRAM_BASE 0x20000000
|
||||
#define CFG_OR3 0xFFF00130 /* BI/SCY = 5/TRLX (internal) */
|
||||
#define CFG_BR3 ((SRAM_BASE & BR_BA_MSK) | BR_PS_16 | BR_V)
|
||||
#define SRAM_SIZE (1 + (~(CFG_OR3 & BR_BA_MSK)))
|
||||
#define CFG_OR3_PRELIM CFG_OR3 /* Make sure to map early */
|
||||
#define CFG_BR3_PRELIM CFG_BR3 /* in case it's used for ENV */
|
||||
|
||||
/*
|
||||
* BR4/OR4 - Board Control & Status (8 bit)
|
||||
*/
|
||||
#define BCSR_BASE 0xFC000000
|
||||
#define CFG_OR4 0xFFFF0120 /* BI (internal) */
|
||||
#define CFG_BR4 ((BCSR_BASE & BR_BA_MSK) | BR_PS_8 | BR_V)
|
||||
|
||||
/*
|
||||
* BR5/OR5 - IP Slot A/B (16 bit)
|
||||
*/
|
||||
#define IP_SLOT_BASE 0x40000000
|
||||
#define CFG_OR5 0xFE00010C /* SETA/TRLX/BI/ SCY=0 (external) */
|
||||
#define CFG_BR5 ((IP_SLOT_BASE & BR_BA_MSK) | BR_PS_16 | BR_V)
|
||||
|
||||
/*
|
||||
* BR6/OR6 - VME STD (16 bit)
|
||||
*/
|
||||
#define VME_STD_BASE 0xFE000000
|
||||
#define CFG_OR6 0xFF00010C /* SETA/TRLX/BI/SCY=0 (external) */
|
||||
#define CFG_BR6 ((VME_STD_BASE & BR_BA_MSK) | BR_PS_16 | BR_V)
|
||||
|
||||
/*
|
||||
* BR7/OR7 - SHORT I/O + RTC + IACK (16 bit)
|
||||
*/
|
||||
#define VME_SHORT_BASE 0xFF000000
|
||||
#define CFG_OR7 0xFF00010C /* SETA/TRLX/BI/ SCY=0 (external) */
|
||||
#define CFG_BR7 ((VME_SHORT_BASE & BR_BA_MSK) | BR_PS_16 | BR_V)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Board Control and Status Region:
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
typedef struct ip860_bcsr_s {
|
||||
unsigned char shmem_addr; /* +00 shared memory address register */
|
||||
unsigned char reserved0;
|
||||
unsigned char mbox_addr; /* +02 mailbox address register */
|
||||
unsigned char reserved1;
|
||||
unsigned char vme_int_mask; /* +04 VME Bus interrupt mask register */
|
||||
unsigned char reserved2;
|
||||
unsigned char vme_int_pend; /* +06 VME interrupt pending register */
|
||||
unsigned char reserved3;
|
||||
unsigned char bd_int_mask; /* +08 board interrupt mask register */
|
||||
unsigned char reserved4;
|
||||
unsigned char bd_int_pend; /* +0A board interrupt pending register */
|
||||
unsigned char reserved5;
|
||||
unsigned char bd_ctrl; /* +0C board control register */
|
||||
unsigned char reserved6;
|
||||
unsigned char bd_status; /* +0E board status register */
|
||||
unsigned char reserved7;
|
||||
unsigned char vme_irq; /* +10 VME interrupt request register */
|
||||
unsigned char reserved8;
|
||||
unsigned char vme_ivec; /* +12 VME interrupt vector register */
|
||||
unsigned char reserved9;
|
||||
unsigned char cli_mbox; /* +14 clear mailbox irq */
|
||||
unsigned char reservedA;
|
||||
unsigned char rtc; /* +16 RTC control register */
|
||||
unsigned char reservedB;
|
||||
unsigned char mbox_data; /* +18 mailbox read/write register */
|
||||
unsigned char reservedC;
|
||||
unsigned char wd_trigger; /* +1A Watchdog trigger register */
|
||||
unsigned char reservedD;
|
||||
unsigned char rmw_req; /* +1C RMW request register */
|
||||
} ip860_bcsr_t;
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Board Control Register: bd_ctrl (Offset 0x0C)
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define BD_CTRL_IPLSE 0x80 /* IP Slot Long Select Enable */
|
||||
#define BD_CTRL_WDOGE 0x40 /* Watchdog Enable */
|
||||
#define BD_CTRL_FLWE 0x20 /* Flash Write Enable */
|
||||
#define BD_CTRL_RWDN 0x10 /* VMEBus Requester Release When Done Enable */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
354
include/configs/IPHASE4539.h
Normal file
354
include/configs/IPHASE4539.h
Normal file
@ -0,0 +1,354 @@
|
||||
/*
|
||||
* (C) Copyright 2002 Wolfgang Grandegger <wg@denx.de>
|
||||
*
|
||||
* This file is based on similar values for other boards found in
|
||||
* other U-Boot config files, mainly tqm8260.h and mpc8260ads.h.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* Config header file for a Interphase 4539 PMC, 64 MB SDRAM, 4MB Flash.
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#undef DEBUG /* General debug */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC8260 1 /* This is an MPC8260 CPU */
|
||||
#define CONFIG_IPHASE4539 1 /* ...on a Interphase 4539 PMC */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* select serial console configuration
|
||||
*
|
||||
* if either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
|
||||
* CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
|
||||
* for SCC).
|
||||
*
|
||||
* if CONFIG_CONS_NONE is defined, then the serial console routines must
|
||||
* defined elsewhere (for example, on the cogent platform, there are serial
|
||||
* ports on the motherboard which are used for the serial console - see
|
||||
* cogent/cma101/serial.[ch]).
|
||||
*/
|
||||
#define CONFIG_CONS_ON_SMC /* define if console on SMC */
|
||||
#undef CONFIG_CONS_ON_SCC /* define if console on SCC */
|
||||
#undef CONFIG_CONS_NONE /* define if console on something else */
|
||||
#define CONFIG_CONS_INDEX 1 /* which serial channel for console */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* select ethernet configuration
|
||||
*
|
||||
* if either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected, then
|
||||
* CONFIG_ETHER_INDEX must be set to the channel number (1-4 for SCC, 1-3
|
||||
* for FCC)
|
||||
*
|
||||
* if CONFIG_ETHER_NONE is defined, then either the ethernet routines must be
|
||||
* defined elsewhere (as for the console), or CFG_CMD_NET must be removed
|
||||
* from CONFIG_COMMANDS to remove support for networking.
|
||||
*/
|
||||
#undef CONFIG_ETHER_ON_SCC /* define if ether on SCC */
|
||||
#define CONFIG_ETHER_ON_FCC /* define if ether on FCC */
|
||||
#undef CONFIG_ETHER_NONE /* define if ether on something else */
|
||||
#define CONFIG_ETHER_INDEX 3 /* which channel for ether */
|
||||
|
||||
#if defined(CONFIG_ETHER_ON_FCC) && (CONFIG_ETHER_INDEX == 3)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* - Rx-CLK is CLK14
|
||||
* - Tx-CLK is CLK16
|
||||
* - Select bus for bd/buffers (see 28-13)
|
||||
* - Half duplex
|
||||
*/
|
||||
# define CFG_CMXFCR_MASK (CMXFCR_FC3 | CMXFCR_RF3CS_MSK | CMXFCR_TF3CS_MSK)
|
||||
# define CFG_CMXFCR_VALUE (CMXFCR_RF3CS_CLK14 | CMXFCR_TF3CS_CLK16)
|
||||
# define CFG_CPMFCR_RAMTYPE 0
|
||||
# define CFG_FCC_PSMR (FCC_PSMR_FDE|FCC_PSMR_LPB)
|
||||
|
||||
#endif /* CONFIG_ETHER_ON_FCC, CONFIG_ETHER_INDEX */
|
||||
|
||||
/* other options */
|
||||
|
||||
#define CONFIG_8260_CLKIN 66666666 /* in Hz */
|
||||
#define CONFIG_BAUDRATE 19200
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT|CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
/*
|
||||
* select i2c support configuration
|
||||
*
|
||||
* Supported configurations are {none, software, hardware} drivers.
|
||||
* If the software driver is chosen, there are some additional
|
||||
* configuration items that the driver uses to drive the port pins.
|
||||
*/
|
||||
#undef CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
#define CONFIG_SOFT_I2C 1 /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
/*
|
||||
* Software (bit-bang) I2C driver configuration
|
||||
*/
|
||||
#ifdef CONFIG_SOFT_I2C
|
||||
#define I2C_PORT 3 /* Port A=0, B=1, C=2, D=3 */
|
||||
#define I2C_ACTIVE (iop->pdir |= 0x00010000)
|
||||
#define I2C_TRISTATE (iop->pdir &= ~0x00010000)
|
||||
#define I2C_READ ((iop->pdat & 0x00010000) != 0)
|
||||
#define I2C_SDA(bit) if(bit) iop->pdat |= 0x00010000; \
|
||||
else iop->pdat &= ~0x00010000
|
||||
#define I2C_SCL(bit) if(bit) iop->pdat |= 0x00020000; \
|
||||
else iop->pdat &= ~0x00020000
|
||||
#define I2C_DELAY udelay(5) /* 1/4 I2C clock duration */
|
||||
#endif /* CONFIG_SOFT_I2C */
|
||||
|
||||
#define CONFIG_COMMANDS CONFIG_CMD_DFL
|
||||
|
||||
/* 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"
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#undef CONFIG_KGDB_ON_SMC /* define if kgdb on SMC */
|
||||
#define CONFIG_KGDB_ON_SCC /* define if kgdb on SCC */
|
||||
#undef CONFIG_KGDB_NONE /* define if kgdb on something else */
|
||||
#define CONFIG_KGDB_INDEX 2 /* which serial channel for kgdb */
|
||||
#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port at */
|
||||
#endif
|
||||
|
||||
#undef CONFIG_WATCHDOG /* disable platform specific watchdog */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x00F00000 /* 1 ... 15 MB in DRAM */
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passed to Linux in MHz */
|
||||
/* for versions < 2.4.5-pre5 */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
#define CFG_RESET_ADDRESS 0x04400000
|
||||
|
||||
#define CONFIG_MISC_INIT_R 1 /* We need misc_init_r() */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration (Setup by the
|
||||
* startup code). Please note that CFG_SDRAM_BASE _must_ start at 0.
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xFF800000
|
||||
|
||||
#define CFG_MONITOR_BASE TEXT_BASE
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max num of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 64 /* max num of sects on one chip */
|
||||
#define CFG_MAX_FLASH_SIZE (CFG_MAX_FLASH_SECT * 0x10000) /* 4 MB */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 2400000 /* Flash Erase Timeout (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */
|
||||
|
||||
/* Environment in FLASH, there is little space left in Serial EEPROM */
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_SECT_SIZE 0x10000 /* We use one complete sector */
|
||||
#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x10000) /* 2. sector */
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Hard Reset Configuration Words
|
||||
*
|
||||
* if you change bits in the HRCW, you must also change the CFG_*
|
||||
* defines for the various registers affected by the HRCW e.g. changing
|
||||
* HRCW_DPPCxx requires you to also change CFG_SIUMCR.
|
||||
*/
|
||||
#define CFG_HRCW_MASTER ( ( HRCW_BPS01 | HRCW_EBM ) |\
|
||||
( HRCW_L2CPC10 | HRCW_ISB110 ) |\
|
||||
( HRCW_MMR11 | HRCW_APPC10 ) |\
|
||||
( HRCW_CS10PC01 | HRCW_MODCK_H0101 ) \
|
||||
) /* 0x14863245 */
|
||||
|
||||
/* no slaves */
|
||||
#define CFG_HRCW_SLAVE1 0
|
||||
#define CFG_HRCW_SLAVE2 0
|
||||
#define CFG_HRCW_SLAVE3 0
|
||||
#define CFG_HRCW_SLAVE4 0
|
||||
#define CFG_HRCW_SLAVE5 0
|
||||
#define CFG_HRCW_SLAVE6 0
|
||||
#define CFG_HRCW_SLAVE7 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Internal Memory Mapped Register
|
||||
*/
|
||||
#define CFG_IMMR 0xFF000000 /* We keep original value */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x4000 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 32 /* For MPC8260 CPU */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* HIDx - Hardware Implementation-dependent Registers 2-11
|
||||
*-----------------------------------------------------------------------
|
||||
* HID0 also contains cache control.
|
||||
*
|
||||
* HID1 has only read-only information - nothing to set.
|
||||
*/
|
||||
#define CFG_HID0_INIT (HID0_ICE|HID0_DCE|HID0_ICFI|HID0_DCI|\
|
||||
HID0_IFEM|HID0_ABE)
|
||||
#define CFG_HID0_FINAL (HID0_IFEM|HID0_ABE)
|
||||
#define CFG_HID2 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RMR - Reset Mode Register 5-5
|
||||
*-----------------------------------------------------------------------
|
||||
* turn on Checkstop Reset Enable
|
||||
*/
|
||||
#define CFG_RMR RMR_CSRE
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* BCR - Bus Configuration 4-25
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_BCR 0xA01C0000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 4-31
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_SIUMCR 0X4205C000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 4-35
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Watchdog & Bus Monitor Timer max, 60x Bus Monitor enable
|
||||
*/
|
||||
#if defined (CONFIG_WATCHDOG)
|
||||
#define CFG_SYPCR (SYPCR_SWTC|SYPCR_BMT|SYPCR_PBME|SYPCR_LBME|\
|
||||
SYPCR_SWRI|SYPCR_SWP|SYPCR_SWE)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC|SYPCR_BMT|SYPCR_PBME|SYPCR_LBME|\
|
||||
SYPCR_SWRI|SYPCR_SWP)
|
||||
#endif /* CONFIG_WATCHDOG */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TMCNTSC - Time Counter Status and Control 4-40
|
||||
* Clear once per Second and Alarm Interrupt Status, Set 32KHz timersclk,
|
||||
* and enable Time Counter
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_TMCNTSC (TMCNTSC_SEC|TMCNTSC_ALR|TMCNTSC_TCF|TMCNTSC_TCE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 4-42
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Set 32KHz timersclk, and enable
|
||||
* Periodic timer
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS|PISCR_PTF|PISCR_PTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock Control 9-8
|
||||
*-----------------------------------------------------------------------
|
||||
* Ensure DFBRG is Divide by 16
|
||||
*/
|
||||
#define CFG_SCCR 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RCCR - RISC Controller Configuration 13-7
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RCCR 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Init Memory Controller:
|
||||
*
|
||||
* Bank Bus Machine PortSz Device
|
||||
* ---- --- ------- ------ ------
|
||||
* 0 60x GPCM 64 bit FLASH
|
||||
* 1 60x SDRAM 64 bit SDRAM
|
||||
*/
|
||||
|
||||
#define CFG_BR0_PRELIM ((CFG_FLASH_BASE & BRx_BA_MSK) | 0x0801)
|
||||
#define CFG_OR0_PRELIM 0xFF800882
|
||||
#define CFG_BR1_PRELIM ((CFG_SDRAM_BASE & BRx_BA_MSK) | 0x0041)
|
||||
#define CFG_OR1_PRELIM 0xF8002CD0
|
||||
|
||||
#define CFG_PSDMR 0x404A241A
|
||||
#define CFG_MPTPR 0x00007400
|
||||
#define CFG_PSRT 0x00000007
|
||||
|
||||
#endif /* __CONFIG_H */
|
307
include/configs/MBX.h
Normal file
307
include/configs/MBX.h
Normal file
@ -0,0 +1,307 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||
* Marius Groeger <mgroeger@sysgo.de>
|
||||
*
|
||||
* Configuation settings for the MBX8xx board.
|
||||
*
|
||||
* -----------------------------------------------------------------
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
/*
|
||||
* Changed 2002-10-01
|
||||
* Added PCMCIA defines mostly taken from other U-Boot boards that
|
||||
* have PCMCIA already working. If you find any bugs, incorrect assumptions
|
||||
* feel free to fix them yourself and submit a patch.
|
||||
* Rod Boyce <rod_boyce@stratexnet.com.
|
||||
*/
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC860 1 /* This is a MPC860 CPU */
|
||||
#define CONFIG_MBX 1 /* ...on an MBX module */
|
||||
|
||||
#define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */
|
||||
#undef CONFIG_8xx_CONS_SMC2
|
||||
#undef CONFIG_8xx_CONS_NONE
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
/* Define this to use the PCI bus */
|
||||
#undef CONFIG_USE_PCI
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
#define CONFIG_8xx_GCLK_FREQ (50000000UL)
|
||||
#if 1
|
||||
#define CONFIG_BOOTDELAY -1 /* autoboot disabled */
|
||||
#else
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
#endif
|
||||
#define CONFIG_BOOTCOMMAND "bootm 20000" /* autoboot command */
|
||||
|
||||
#define CONFIG_BOOTARGS "root=/dev/nfs rw " \
|
||||
"nfsroot=10.0.0.2:/opt/eldk/ppc_8xx " \
|
||||
"nfsaddrs=10.0.0.99:10.0.0.2"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* don't allow baudrate change */
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
|
||||
#define CONFIG_COMMANDS ( CFG_CMD_NET | CONFIG_CMD_DFL | CFG_CMD_SDRAM | \
|
||||
CFG_CMD_PCMCIA | CFG_CMD_IDE )
|
||||
|
||||
#define CONFIG_DOS_PARTITION
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#undef CFG_HUSH_PARSER /* Hush parse for U-Boot */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Physical memory map as defined by the MBX PGM
|
||||
*/
|
||||
#define CFG_IMMR 0xFA200000 /* Internal Memory Mapped Register*/
|
||||
#define CFG_NVRAM_BASE 0xFA000000 /* NVRAM */
|
||||
#define CFG_NVRAM_OR 0xffe00000 /* w/o speed dependent flags!! */
|
||||
#define CFG_CSR_BASE 0xFA100000 /* Control/Status Registers */
|
||||
#define CFG_PCIMEM_BASE 0x80000000 /* PCI I/O and Memory Spaces */
|
||||
#define CFG_PCIMEM_OR 0xA0000108
|
||||
#define CFG_PCIBRIDGE_BASE 0xFA210000 /* PCI-Bus Bridge Registers */
|
||||
#define CFG_PCIBRIDGE_OR 0xFFFF0108
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2f00 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* size in bytes reserved for initial data */
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_VPD_SIZE 256 /* size in bytes reserved for vpd buffer */
|
||||
#define CFG_INIT_VPD_OFFSET (CFG_GBL_DATA_OFFSET - CFG_INIT_VPD_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET (CFG_INIT_VPD_OFFSET-8)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Offset in DPMEM where we keep the VPD data
|
||||
*/
|
||||
#define CFG_DPRAMVPD (CFG_INIT_VPD_OFFSET - 0x2000)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xfe000000
|
||||
#ifdef DEBUG
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#else
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#endif
|
||||
#undef CFG_MONITOR_BASE /* 0x200000 to run U-Boot from RAM */
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 16 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* NVRAM Configuration
|
||||
*
|
||||
* Note: the MBX is special because there is already a firmware on this
|
||||
* board: EPPC-Bug from Motorola. To avoid collisions in NVRAM Usage, we
|
||||
* access the NVRAM at the offset 0x1000.
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_NVRAM 1 /* turn on NVRAM env feature */
|
||||
#define CFG_ENV_ADDR (CFG_NVRAM_BASE + 0x1000)
|
||||
#define CFG_ENV_SIZE 0x1000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 16 /* For all MPC8xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 4 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
|
||||
*/
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF)
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 11-6
|
||||
*-----------------------------------------------------------------------
|
||||
* PCMCIA config., multi-function pin tri-state
|
||||
*/
|
||||
/* #define CFG_SIUMCR (SIUMCR_DBGC11 | SIUMCR_DPC | SIUMCR_MLRC10 | SIUMCR_SEME) */
|
||||
#define CFG_SIUMCR (SIUMCR_DBGC11 | SIUMCR_DPC | SIUMCR_MLRC11 | SIUMCR_SEME | SIUMCR_BSC )
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TBSCR - Time Base Status and Control 11-26
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Reference Interrupt Status, Timebase freezing enabled
|
||||
*/
|
||||
#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 11-31
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS | PISCR_PITF | PISCR_PTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PLPRCR - PLL, Low-Power, and Reset Control Register 15-30
|
||||
*-----------------------------------------------------------------------
|
||||
* Reset PLL lock status sticky bit, timer expired status bit and timer
|
||||
* interrupt status bit - leave PLL multiplication factor unchanged !
|
||||
*/
|
||||
#define CFG_PLPRCR (PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock and reset Control Register 15-27
|
||||
*-----------------------------------------------------------------------
|
||||
* Set clock output, timebase and RTC source and divider,
|
||||
* power management and some other internal clocks
|
||||
*/
|
||||
#define SCCR_MASK (SCCR_RTDIV | SCCR_RTSEL)
|
||||
#define CFG_SCCR SCCR_TBS
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCMCIA stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
#define CFG_PCMCIA_MEM_ADDR (0xE0000000)
|
||||
#define CFG_PCMCIA_MEM_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_DMA_ADDR (0xE4000000)
|
||||
#define CFG_PCMCIA_DMA_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_ATTRB_ADDR (0xE8000000)
|
||||
#define CFG_PCMCIA_ATTRB_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_IO_ADDR (0xEC000000)
|
||||
#define CFG_PCMCIA_IO_SIZE ( 64 << 20 )
|
||||
|
||||
#define CFG_PCMCIA_INTERRUPT SIU_LEVEL6
|
||||
|
||||
#define CONFIG_PCMCIA_SLOT_A 1
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* IDE/ATA stuff (Supports IDE harddisk on PCMCIA Adapter)
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define CONFIG_IDE_8xx_PCCARD 1 /* Use IDE with PC Card Adapter */
|
||||
|
||||
#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
|
||||
#undef CONFIG_IDE_LED /* LED for ide not supported */
|
||||
#undef CONFIG_IDE_RESET /* reset for ide not supported */
|
||||
|
||||
#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */
|
||||
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */
|
||||
|
||||
#define CFG_ATA_IDE0_OFFSET 0x0000
|
||||
|
||||
#define CFG_ATA_BASE_ADDR CFG_PCMCIA_MEM_ADDR
|
||||
|
||||
/* Offset for data I/O */
|
||||
#define CFG_ATA_DATA_OFFSET (CFG_PCMCIA_MEM_SIZE + 0x320)
|
||||
|
||||
/* Offset for normal register accesses */
|
||||
#define CFG_ATA_REG_OFFSET (2 * CFG_PCMCIA_MEM_SIZE + 0x320)
|
||||
|
||||
/* Offset for alternate registers */
|
||||
#define CFG_ATA_ALT_OFFSET 0x0100
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Debug Entry Mode
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
#define CFG_DER 0
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
371
include/configs/MHPC.h
Normal file
371
include/configs/MHPC.h
Normal file
@ -0,0 +1,371 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Frank Gottschling, ELTEC Elektronik AG, fgottschling@eltec.de
|
||||
*
|
||||
* (C) Copyright 2001
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* Configuation settings for the miniHiPerCam.
|
||||
*
|
||||
* -----------------------------------------------------------------
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
#define CONFIG_MPC823 1 /* This is a MPC823 CPU */
|
||||
#define CONFIG_MHPC 1 /* on a miniHiPerCam */
|
||||
#define CONFIG_BOARD_PRE_INIT 1 /* do special hardware init. */
|
||||
#define CONFIG_MISC_INIT_R 1
|
||||
|
||||
#define CONFIG_8xx_GCLK_FREQ MPC8XX_SPEED
|
||||
#undef CONFIG_8xx_CONS_SMC1
|
||||
#define CONFIG_8xx_CONS_SMC2 1 /* Console is on SMC2 */
|
||||
#undef CONFIG_8xx_CONS_NONE
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
|
||||
#define CONFIG_ENV_OVERWRITE 1
|
||||
#define CONFIG_ETHADDR 00:00:5b:ee:de:ad
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"bootp;" \
|
||||
"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;" \
|
||||
"bootm"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* don't allow baudrate change */
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
#define CONFIG_RTC_MPC8xx /* use internal RTC of MPC8xx */
|
||||
|
||||
#undef CONFIG_UCODE_PATCH
|
||||
|
||||
/* enable I2C and select the hardware/software driver */
|
||||
#undef CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
#define CONFIG_SOFT_I2C 1 /* I2C bit-banged */
|
||||
/*
|
||||
* Software (bit-bang) I2C driver configuration
|
||||
*/
|
||||
#define PB_SCL 0x00000020 /* PB 26 */
|
||||
#define PB_SDA 0x00000010 /* PB 27 */
|
||||
|
||||
#define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
|
||||
#define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
|
||||
#define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
|
||||
#define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
|
||||
#define I2C_SDA(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SDA
|
||||
#define I2C_SCL(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SCL
|
||||
#define I2C_DELAY udelay(5) /* 1/4 I2C clock duration */
|
||||
|
||||
#define CFG_I2C_SPEED 50000
|
||||
#define CFG_I2C_SLAVE 0xFE
|
||||
#define CFG_I2C_EEPROM_ADDR 0x50 /* EEPROM X24C04 */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 1 /* bytes of address */
|
||||
/* mask of address bits that overflow into the "EEPROM chip address" */
|
||||
#define CFG_I2C_EEPROM_ADDR_OVERFLOW 0x07
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 3
|
||||
#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10
|
||||
|
||||
#define LCD_VIDEO_ADDR (SDRAM_MAX_SIZE-SDRAM_RES_SIZE)
|
||||
#define LCD_VIDEO_SIZE SDRAM_RES_SIZE /* 2MB */
|
||||
#define LCD_VIDEO_COLS 640
|
||||
#define LCD_VIDEO_ROWS 480
|
||||
#define LCD_VIDEO_FG 255
|
||||
#define LCD_VIDEO_BG 0
|
||||
|
||||
#undef CONFIG_VIDEO /* test only ! s.a devices.c and 8xx */
|
||||
#define CONFIG_CFB_CONSOLE /* framebuffer console with std input */
|
||||
#define CONFIG_VIDEO_LOGO
|
||||
|
||||
#define VIDEO_KBD_INIT_FCT 0 /* no KBD dev on MHPC - use serial */
|
||||
#define VIDEO_TSTC_FCT serial_tstc
|
||||
#define VIDEO_GETC_FCT serial_getc
|
||||
|
||||
#define CONFIG_BR0_WORKAROUND 1
|
||||
|
||||
#define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_EEPROM | \
|
||||
CFG_CMD_ELF | \
|
||||
CFG_CMD_I2C | \
|
||||
CFG_CMD_JFFS2 | \
|
||||
CFG_CMD_REGINFO )
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x300000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Physical memory map
|
||||
*/
|
||||
#define CFG_IMMR 0xFFF00000 /* Internal Memory Mapped Register*/
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2F00 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xfe000000
|
||||
|
||||
#define CFG_MONITOR_LEN 0x40000 /* Reserve 256 kB for Monitor */
|
||||
#undef CFG_MONITOR_BASE /* to run U-Boot from RAM */
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
#define CFG_JFFS2_FIRST_BANK 0 /* use for JFFS2 */
|
||||
#define CFG_JFFS2_NUM_BANKS 1 /* one flash only */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map- for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 64 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_OFFSET CFG_MONITOR_LEN /* Offset of Environment */
|
||||
#define CFG_ENV_SIZE 0x20000 /* Total Size of Environment */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 16 /* For all MPC8xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 4 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
|
||||
*/
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWP)
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 11-6
|
||||
*-----------------------------------------------------------------------
|
||||
* PCMCIA config., multi-function pin tri-state
|
||||
*/
|
||||
#define CFG_SIUMCR (SIUMCR_SEME)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TBSCR - Time Base Status and Control 11-26
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Reference Interrupt Status, Timebase freezing enabled
|
||||
*/
|
||||
#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 11-31
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS | PISCR_PITF | PISCR_PTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RTCSC - Real-Time Clock Status and Control Register 12-18
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RTCSC (RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PLPRCR - PLL, Low-Power, and Reset Control Register 15-30
|
||||
*-----------------------------------------------------------------------
|
||||
* Reset PLL lock status sticky bit, timer expired status bit and timer
|
||||
* interrupt status bit - leave PLL multiplication factor unchanged !
|
||||
*/
|
||||
#define MPC8XX_SPEED 50000000L
|
||||
#define MPC8XX_XIN 5000000L /* ref clk */
|
||||
#define MPC8XX_FACT (MPC8XX_SPEED/MPC8XX_XIN)
|
||||
#define CFG_PLPRCR (((MPC8XX_FACT-1) << PLPRCR_MF_SHIFT) | \
|
||||
PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock and reset Control Register 15-27
|
||||
*-----------------------------------------------------------------------
|
||||
* Set clock output, timebase and RTC source and divider,
|
||||
* power management and some other internal clocks
|
||||
*/
|
||||
|
||||
#define SCCR_MASK (SCCR_RTDIV | SCCR_RTSEL) /* SCCR_EBDF11 */
|
||||
#define CFG_SCCR (SCCR_TBS | SCCR_DFLCD001)
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* MAMR settings for SDRAM - 16-14
|
||||
* => 0xC080200F
|
||||
*-----------------------------------------------------------------------
|
||||
* periodic timer for refresh
|
||||
*/
|
||||
#define CFG_MAMR_PTA 0xC0
|
||||
#define CFG_MAMR ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | MAMR_G0CLA_A11 | MAMR_TLFA_MSK)
|
||||
|
||||
/*
|
||||
* BR0 and OR0 (FLASH) used to re-map FLASH
|
||||
*/
|
||||
|
||||
/* allow for max 8 MB of Flash */
|
||||
#define FLASH_BASE 0xFE000000 /* FLASH bank #0*/
|
||||
#define FLASH_BASE0_PRELIM 0xFE000000 /* FLASH bank #0*/
|
||||
#define CFG_REMAP_OR_AM 0xFF800000 /* OR addr mask */
|
||||
#define CFG_PRELIM_OR_AM 0xFF800000 /* OR addr mask */
|
||||
|
||||
#define CFG_OR_TIMING_FLASH (OR_CSNT_SAM | OR_BI | OR_SCY_8_CLK) /* (OR_CSNT_SAM | OR_ACS_DIV2 | OR_BI | OR_SCY_6_CLK)*/
|
||||
|
||||
#define CFG_OR0_REMAP (CFG_REMAP_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
#define CFG_BR0_PRELIM ((FLASH_BASE & BR_BA_MSK) | BR_PS_16 | BR_MS_GPCM | BR_V )
|
||||
|
||||
/*
|
||||
* BR1 and OR1 (SDRAM)
|
||||
*/
|
||||
#define SDRAM_BASE1_PRELIM 0x00000000 /* SDRAM bank #0 */
|
||||
#define SDRAM_MAX_SIZE 0x01000000 /* max 16 MB */
|
||||
#define SDRAM_RES_SIZE 0x00200000 /* 2 MB for framebuffer */
|
||||
|
||||
/* SDRAM timing: drive GPL5 high on first cycle */
|
||||
#define CFG_OR_TIMING_SDRAM (OR_G5LS)
|
||||
|
||||
#define CFG_OR1_PRELIM ((~(SDRAM_MAX_SIZE)+1)| CFG_OR_TIMING_SDRAM )
|
||||
#define CFG_BR1_PRELIM ((SDRAM_BASE1_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
|
||||
/*
|
||||
* BR2/OR2 - DIMM
|
||||
*/
|
||||
#define CFG_OR2 (OR_ACS_DIV4)
|
||||
#define CFG_BR2 (BR_MS_UPMA)
|
||||
|
||||
/*
|
||||
* BR3/OR3 - DIMM
|
||||
*/
|
||||
#define CFG_OR3 (OR_ACS_DIV4)
|
||||
#define CFG_BR3 (BR_MS_UPMA)
|
||||
|
||||
/*
|
||||
* BR4/OR4
|
||||
*/
|
||||
#define CFG_OR4 0
|
||||
#define CFG_BR4 0
|
||||
|
||||
/*
|
||||
* BR5/OR5
|
||||
*/
|
||||
#define CFG_OR5 0
|
||||
#define CFG_BR5 0
|
||||
|
||||
/*
|
||||
* BR6/OR6
|
||||
*/
|
||||
#define CFG_OR6 0
|
||||
#define CFG_BR6 0
|
||||
|
||||
/*
|
||||
* BR7/OR7
|
||||
*/
|
||||
#define CFG_OR7 0
|
||||
#define CFG_BR7 0
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Debug Entry Mode
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
#define CFG_DER 0
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
267
include/configs/MPC8260ADS.h
Normal file
267
include/configs/MPC8260ADS.h
Normal file
@ -0,0 +1,267 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Stuart Hughes <stuarth@lineo.com>
|
||||
* This file is based on similar values for other boards found in other
|
||||
* U-Boot config files, and some that I found in the mpc8260ads manual.
|
||||
*
|
||||
* Note: my board is a PILOT rev.
|
||||
* Note: the mpc8260ads doesn't come with a proper Ethernet MAC address.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* Config header file for a MPC8260ADS Pilot 16M Ram Simm, 8Mbytes Flash Simm
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC8260 1 /* This is an MPC8260 CPU */
|
||||
#define CONFIG_MPC8260ADS 1 /* ...on motorola ads board */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1 /* Call board_pre_init */
|
||||
|
||||
/* allow serial and ethaddr to be overwritten */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
/*
|
||||
* select serial console configuration
|
||||
*
|
||||
* if either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
|
||||
* CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
|
||||
* for SCC).
|
||||
*
|
||||
* if CONFIG_CONS_NONE is defined, then the serial console routines must
|
||||
* defined elsewhere (for example, on the cogent platform, there are serial
|
||||
* ports on the motherboard which are used for the serial console - see
|
||||
* cogent/cma101/serial.[ch]).
|
||||
*/
|
||||
#undef CONFIG_CONS_ON_SMC /* define if console on SMC */
|
||||
#define CONFIG_CONS_ON_SCC /* define if console on SCC */
|
||||
#undef CONFIG_CONS_NONE /* define if console on something else */
|
||||
#define CONFIG_CONS_INDEX 1 /* which serial channel for console */
|
||||
|
||||
/*
|
||||
* select ethernet configuration
|
||||
*
|
||||
* if either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected, then
|
||||
* CONFIG_ETHER_INDEX must be set to the channel number (1-4 for SCC, 1-3
|
||||
* for FCC)
|
||||
*
|
||||
* if CONFIG_ETHER_NONE is defined, then either the ethernet routines must be
|
||||
* defined elsewhere (as for the console), or CFG_CMD_NET must be removed
|
||||
* from CONFIG_COMMANDS to remove support for networking.
|
||||
*/
|
||||
#undef CONFIG_ETHER_ON_SCC /* define if ether on SCC */
|
||||
#define CONFIG_ETHER_ON_FCC /* define if ether on FCC */
|
||||
#undef CONFIG_ETHER_NONE /* define if ether on something else */
|
||||
#define CONFIG_ETHER_INDEX 2 /* which channel for ether */
|
||||
|
||||
#if (CONFIG_ETHER_INDEX == 2)
|
||||
|
||||
/*
|
||||
* - Rx-CLK is CLK13
|
||||
* - Tx-CLK is CLK14
|
||||
* - Select bus for bd/buffers (see 28-13)
|
||||
* - Half duplex
|
||||
*/
|
||||
# define CFG_CMXFCR_MASK (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
|
||||
# define CFG_CMXFCR_VALUE (CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
|
||||
# define CFG_CPMFCR_RAMTYPE 0
|
||||
# define CFG_FCC_PSMR 0
|
||||
|
||||
#endif /* CONFIG_ETHER_INDEX */
|
||||
|
||||
/* other options */
|
||||
#define CONFIG_HARD_I2C 1 /* To enable I2C support */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
|
||||
#define CONFIG_8260_CLKIN 66666666 /* in Hz */
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
|
||||
#define CONFIG_COMMANDS (CFG_CMD_ALL & ~( \
|
||||
CFG_CMD_BEDBUG | \
|
||||
CFG_CMD_BSP | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_DOC | \
|
||||
CFG_CMD_DTT | \
|
||||
CFG_CMD_EEPROM | \
|
||||
CFG_CMD_ELF | \
|
||||
CFG_CMD_FDC | \
|
||||
CFG_CMD_HWFLOW | \
|
||||
CFG_CMD_IDE | \
|
||||
CFG_CMD_JFFS2 | \
|
||||
CFG_CMD_KGDB | \
|
||||
CFG_CMD_MII | \
|
||||
CFG_CMD_PCI | \
|
||||
CFG_CMD_PCMCIA | \
|
||||
CFG_CMD_SCSI | \
|
||||
CFG_CMD_VFD | \
|
||||
CFG_CMD_USB ) )
|
||||
|
||||
/* 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"
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#undef CONFIG_KGDB_ON_SMC /* define if kgdb on SMC */
|
||||
#define CONFIG_KGDB_ON_SCC /* define if kgdb on SCC */
|
||||
#undef CONFIG_KGDB_NONE /* define if kgdb on something else */
|
||||
#define CONFIG_KGDB_INDEX 2 /* which serial channel for kgdb */
|
||||
#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port at */
|
||||
#endif
|
||||
|
||||
#undef CONFIG_WATCHDOG /* disable platform specific watchdog */
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
/* for versions < 2.4.5-pre5 */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
||||
|
||||
#define CFG_FLASH_BASE 0xff800000
|
||||
#define FLASH_BASE 0xff800000
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max num of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 32 /* max num of sects on one chip */
|
||||
#define CFG_FLASH_SIZE 8
|
||||
#define CFG_FLASH_ERASE_TOUT 8000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 5 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
/* this is stuff came out of the Motorola docs */
|
||||
#define CFG_DEFAULT_IMMR 0x0F010000
|
||||
|
||||
#define CFG_IMMR 0x04700000
|
||||
#define CFG_BCSR 0x04500000
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_LSDRAM_BASE 0x04000000
|
||||
|
||||
#define RS232EN_1 0x02000002
|
||||
#define RS232EN_2 0x01000001
|
||||
#define FETHIEN 0x08000008
|
||||
#define FETH_RST 0x04000004
|
||||
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x4000 /* 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 */
|
||||
#define CFG_HRCW_MASTER ( ( HRCW_BPS11 | HRCW_CIP ) |\
|
||||
( HRCW_L2CPC10 | HRCW_DPPC10 | HRCW_ISB010 ) |\
|
||||
( HRCW_BMS | HRCW_APPC10 ) |\
|
||||
( HRCW_MODCK_H0101 ) \
|
||||
)
|
||||
|
||||
/* no slaves */
|
||||
#define CFG_HRCW_SLAVE1 0
|
||||
#define CFG_HRCW_SLAVE2 0
|
||||
#define CFG_HRCW_SLAVE3 0
|
||||
#define CFG_HRCW_SLAVE4 0
|
||||
#define CFG_HRCW_SLAVE5 0
|
||||
#define CFG_HRCW_SLAVE6 0
|
||||
#define CFG_HRCW_SLAVE7 0
|
||||
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#define CFG_MONITOR_BASE TEXT_BASE
|
||||
#if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
|
||||
# define CFG_RAMBOOT
|
||||
#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 */
|
||||
|
||||
#ifndef CFG_RAMBOOT
|
||||
# define CFG_ENV_IS_IN_FLASH 1
|
||||
# define CFG_ENV_ADDR (CFG_MONITOR_BASE + 0x40000)
|
||||
# define CFG_ENV_SECT_SIZE 0x40000
|
||||
#else
|
||||
# define CFG_ENV_IS_IN_NVRAM 1
|
||||
# define CFG_ENV_ADDR (CFG_MONITOR_BASE - 0x1000)
|
||||
# define CFG_ENV_SIZE 0x200
|
||||
#endif /* CFG_RAMBOOT */
|
||||
|
||||
|
||||
#define CFG_CACHELINE_SIZE 32 /* For MPC8260 CPU */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
|
||||
#define CFG_HID0_INIT 0
|
||||
#define CFG_HID0_FINAL (HID0_ICE | HID0_IFEM | HID0_ABE )
|
||||
|
||||
#define CFG_HID2 0
|
||||
|
||||
#define CFG_SYPCR 0xFFFFFFC3
|
||||
#define CFG_BCR 0x100C0000
|
||||
#define CFG_SIUMCR 0x0A200000
|
||||
#define CFG_SCCR 0x00000000
|
||||
#define CFG_BR0_PRELIM 0xFF801801
|
||||
#define CFG_OR0_PRELIM 0xFF800836
|
||||
#define CFG_BR1_PRELIM 0x04501801
|
||||
#define CFG_OR1_PRELIM 0xFFFF8010
|
||||
|
||||
#define CFG_RMR 0
|
||||
#define CFG_TMCNTSC (TMCNTSC_SEC|TMCNTSC_ALR|TMCNTSC_TCF|TMCNTSC_TCE)
|
||||
#define CFG_PISCR (PISCR_PS|PISCR_PTF|PISCR_PTE)
|
||||
#define CFG_RCCR 0
|
||||
#define CFG_PSDMR 0x016EB452
|
||||
#define CFG_MPTPR 0x00001900
|
||||
#define CFG_PSRT 0x00000021
|
||||
|
||||
#define CFG_RESET_ADDRESS 0x04400000
|
||||
|
||||
#endif /* __CONFIG_H */
|
266
include/configs/PCIPPC2.h
Normal file
266
include/configs/PCIPPC2.h
Normal file
@ -0,0 +1,266 @@
|
||||
/*
|
||||
* (C) Copyright 2002
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
* Configuration settings for the PCIPPC-2 board.
|
||||
*
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_PCIPPC2 1 /* this is a PCIPPC2 board */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1
|
||||
#define CONFIG_MISC_INIT_R 1
|
||||
|
||||
#define CONFIG_CONS_INDEX 1
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passed to Linux in MHz */
|
||||
|
||||
#define CONFIG_PREBOOT ""
|
||||
#define CONFIG_BOOTDELAY 5
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | \
|
||||
CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_DOS_PARTITION
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
|
||||
CFG_CMD_ASKENV | \
|
||||
CFG_CMD_BSP | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_DHCP | \
|
||||
CFG_CMD_DOC | \
|
||||
CFG_CMD_ELF | \
|
||||
CFG_CMD_PCI )
|
||||
|
||||
#define CONFIG_PCI 1
|
||||
#define CONFIG_PCI_PNP 1 /* PCI plug-and-play */
|
||||
|
||||
/* This must be included AFTER the definition of CONFIG_COMMANDS (if any)
|
||||
*/
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
|
||||
/* Print Buffer Size
|
||||
*/
|
||||
#define CFG_PBSIZE (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
|
||||
|
||||
#define CFG_MAXARGS 64 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
#define CFG_LOAD_ADDR 0x00100000 /* Default load address */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xFFF00000
|
||||
#define CFG_FLASH_MAX_SIZE 0x00100000
|
||||
/* Maximum amount of RAM.
|
||||
*/
|
||||
#define CFG_MAX_RAM_SIZE 0x20000000 /* 512Mb */
|
||||
|
||||
#define CFG_RESET_ADDRESS 0xFFF00100
|
||||
|
||||
#define CFG_MONITOR_BASE TEXT_BASE
|
||||
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
#if CFG_MONITOR_BASE >= CFG_SDRAM_BASE && \
|
||||
CFG_MONITOR_BASE < CFG_SDRAM_BASE + CFG_MAX_RAM_SIZE
|
||||
#define CFG_RAMBOOT
|
||||
#else
|
||||
#undef CFG_RAMBOOT
|
||||
#endif
|
||||
|
||||
#define CFG_MEMTEST_START 0x00004000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x02000000 /* 0 ... 32 MB in DRAM */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area
|
||||
*/
|
||||
|
||||
/* Size in bytes reserved for initial data
|
||||
*/
|
||||
#define CFG_GBL_DATA_SIZE 128
|
||||
|
||||
#define CFG_INIT_RAM_ADDR 0x40000000
|
||||
#define CFG_INIT_RAM_END 0x8000
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
#define CFG_INIT_RAM_LOCK
|
||||
|
||||
/*
|
||||
* Temporary buffer for serial data until the real serial driver
|
||||
* is initialised (memtest will destroy this buffer)
|
||||
*/
|
||||
#define CFG_SCONSOLE_ADDR CFG_INIT_RAM_ADDR
|
||||
#define CFG_SCONSOLE_SIZE 0x0002000
|
||||
|
||||
/* SDRAM 0 - 256MB
|
||||
*/
|
||||
#define CFG_DBAT0L (CFG_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT0U (CFG_SDRAM_BASE | \
|
||||
BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
/* SDRAM 1 - 256MB
|
||||
*/
|
||||
#define CFG_DBAT1L ((CFG_SDRAM_BASE + 0x10000000) | \
|
||||
BATL_PP_10 | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT1U ((CFG_SDRAM_BASE + 0x10000000) | \
|
||||
BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
|
||||
/* Init RAM in the CPU DCache (no backing memory)
|
||||
*/
|
||||
#define CFG_DBAT2L (CFG_INIT_RAM_ADDR | \
|
||||
BATL_PP_10 | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT2U (CFG_INIT_RAM_ADDR | \
|
||||
BATU_BL_128K | BATU_VS | BATU_VP)
|
||||
|
||||
/* I/O and PCI memory at 0xf0000000
|
||||
*/
|
||||
#define CFG_DBAT3L (0xf0000000 | BATL_PP_10 | BATL_CACHEINHIBIT)
|
||||
#define CFG_DBAT3U (0xf0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
|
||||
#define CFG_IBAT0L CFG_DBAT0L
|
||||
#define CFG_IBAT0U CFG_DBAT0U
|
||||
#define CFG_IBAT1L CFG_DBAT1L
|
||||
#define CFG_IBAT1U CFG_DBAT1U
|
||||
#define CFG_IBAT2L CFG_DBAT2L
|
||||
#define CFG_IBAT2U CFG_DBAT2U
|
||||
#define CFG_IBAT3L CFG_DBAT3L
|
||||
#define CFG_IBAT3U CFG_DBAT3U
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
* For the detail description refer to the PCIPPC2 user's manual.
|
||||
*/
|
||||
#define CFG_HZ 1000
|
||||
#define CFG_BUS_HZ 100000000 /* bus speed - 100 mhz */
|
||||
#define CFG_CPU_CLK 300000000
|
||||
#define CFG_BUS_CLK 100000000
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* Max number of flash banks */
|
||||
#define CFG_MAX_FLASH_SECT 16 /* Max number of sectors in one bank */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
/*
|
||||
* Note: environment is not EMBEDDED in the U-Boot code.
|
||||
* It's stored in flash separately.
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x70000)
|
||||
#define CFG_ENV_SIZE 0x1000 /* Size of the Environment */
|
||||
#define CFG_ENV_SECT_SIZE 0x10000 /* Size of the Environment Sector */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 32
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* L2 cache
|
||||
*/
|
||||
#undef CFG_L2
|
||||
#define L2_INIT (L2CR_L2SIZ_2M | L2CR_L2CLK_3 | L2CR_L2RAM_BURST | \
|
||||
L2CR_L2OH_5 | L2CR_L2CTL | L2CR_L2WT)
|
||||
#define L2_ENABLE (L2_INIT | L2CR_L2E)
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Disk-On-Chip configuration
|
||||
*/
|
||||
|
||||
#define CFG_MAX_DOC_DEVICE 1 /* Max number of DOC devices */
|
||||
|
||||
#define CFG_DOC_SUPPORT_2000
|
||||
#undef CFG_DOC_SUPPORT_MILLENNIUM
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
RTC m48t59
|
||||
*/
|
||||
#define CONFIG_RTC_MK48T59
|
||||
|
||||
#define CONFIG_WATCHDOG
|
||||
|
||||
#define CONFIG_NET_MULTI /* Multi ethernet cards support */
|
||||
|
||||
#define CONFIG_EEPRO100
|
||||
#define CONFIG_TULIP
|
||||
|
||||
#endif /* __CONFIG_H */
|
282
include/configs/PCIPPC6.h
Normal file
282
include/configs/PCIPPC6.h
Normal file
@ -0,0 +1,282 @@
|
||||
/*
|
||||
* (C) Copyright 2002
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
* Configuration settings for the PCIPPC-6 board.
|
||||
*
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_PCIPPC2 1 /* this is a PCIPPC2 board */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1
|
||||
#define CONFIG_MISC_INIT_R 1
|
||||
|
||||
#define CONFIG_CONS_INDEX 1
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passed to Linux in MHz */
|
||||
|
||||
#define CONFIG_PREBOOT ""
|
||||
#define CONFIG_BOOTDELAY 5
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | \
|
||||
CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_DOS_PARTITION
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
|
||||
CFG_CMD_ASKENV | \
|
||||
CFG_CMD_BSP | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_DHCP | \
|
||||
CFG_CMD_DOC | \
|
||||
CFG_CMD_ELF | \
|
||||
CFG_CMD_PCI | \
|
||||
CFG_CMD_SCSI )
|
||||
|
||||
|
||||
#define CONFIG_PCI 1
|
||||
#define CONFIG_PCI_PNP 1 /* PCI plug-and-play */
|
||||
|
||||
/* This must be included AFTER the definition of CONFIG_COMMANDS (if any)
|
||||
*/
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
|
||||
/* Print Buffer Size
|
||||
*/
|
||||
#define CFG_PBSIZE (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
|
||||
|
||||
#define CFG_MAXARGS 64 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
#define CFG_LOAD_ADDR 0x00100000 /* Default load address */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xFFF00000
|
||||
#define CFG_FLASH_MAX_SIZE 0x00100000
|
||||
/* Maximum amount of RAM.
|
||||
*/
|
||||
#define CFG_MAX_RAM_SIZE 0x20000000 /* 512Mb */
|
||||
|
||||
#define CFG_RESET_ADDRESS 0xFFF00100
|
||||
|
||||
#define CFG_MONITOR_BASE TEXT_BASE
|
||||
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
#if CFG_MONITOR_BASE >= CFG_SDRAM_BASE && \
|
||||
CFG_MONITOR_BASE < CFG_SDRAM_BASE + CFG_MAX_RAM_SIZE
|
||||
#define CFG_RAMBOOT
|
||||
#else
|
||||
#undef CFG_RAMBOOT
|
||||
#endif
|
||||
|
||||
#define CFG_MEMTEST_START 0x00004000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x02000000 /* 0 ... 32 MB in DRAM */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area
|
||||
*/
|
||||
|
||||
/* Size in bytes reserved for initial data
|
||||
*/
|
||||
#define CFG_GBL_DATA_SIZE 128
|
||||
|
||||
#define CFG_INIT_RAM_ADDR 0x40000000
|
||||
#define CFG_INIT_RAM_END 0x8000
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
#define CFG_INIT_RAM_LOCK
|
||||
|
||||
/*
|
||||
* Temporary buffer for serial data until the real serial driver
|
||||
* is initialised (memtest will destroy this buffer)
|
||||
*/
|
||||
#define CFG_SCONSOLE_ADDR CFG_INIT_RAM_ADDR
|
||||
#define CFG_SCONSOLE_SIZE 0x0002000
|
||||
|
||||
/* SDRAM 0 - 256MB
|
||||
*/
|
||||
#define CFG_DBAT0L (CFG_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT0U (CFG_SDRAM_BASE | \
|
||||
BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
/* SDRAM 1 - 256MB
|
||||
*/
|
||||
#define CFG_DBAT1L ((CFG_SDRAM_BASE + 0x10000000) | \
|
||||
BATL_PP_10 | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT1U ((CFG_SDRAM_BASE + 0x10000000) | \
|
||||
BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
|
||||
/* Init RAM in the CPU DCache (no backing memory)
|
||||
*/
|
||||
#define CFG_DBAT2L (CFG_INIT_RAM_ADDR | \
|
||||
BATL_PP_10 | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT2U (CFG_INIT_RAM_ADDR | \
|
||||
BATU_BL_128K | BATU_VS | BATU_VP)
|
||||
|
||||
/* I/O and PCI memory at 0xf0000000
|
||||
*/
|
||||
#define CFG_DBAT3L (0xf0000000 | BATL_PP_10 | BATL_CACHEINHIBIT)
|
||||
#define CFG_DBAT3U (0xf0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
|
||||
#define CFG_IBAT0L CFG_DBAT0L
|
||||
#define CFG_IBAT0U CFG_DBAT0U
|
||||
#define CFG_IBAT1L CFG_DBAT1L
|
||||
#define CFG_IBAT1U CFG_DBAT1U
|
||||
#define CFG_IBAT2L CFG_DBAT2L
|
||||
#define CFG_IBAT2U CFG_DBAT2U
|
||||
#define CFG_IBAT3L CFG_DBAT3L
|
||||
#define CFG_IBAT3U CFG_DBAT3U
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
* For the detail description refer to the PCIPPC2 user's manual.
|
||||
*/
|
||||
#define CFG_HZ 1000
|
||||
#define CFG_BUS_HZ 100000000 /* bus speed - 100 mhz */
|
||||
#define CFG_CPU_CLK 300000000
|
||||
#define CFG_BUS_CLK 100000000
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* Max number of flash banks */
|
||||
#define CFG_MAX_FLASH_SECT 16 /* Max number of sectors in one bank */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
/*
|
||||
* Note: environment is not EMBEDDED in the U-Boot code.
|
||||
* It's stored in flash separately.
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x70000)
|
||||
#define CFG_ENV_SIZE 0x1000 /* Size of the Environment */
|
||||
#define CFG_ENV_SECT_SIZE 0x10000 /* Size of the Environment Sector */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 32
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* L2 cache
|
||||
*/
|
||||
#undef CFG_L2
|
||||
#define L2_INIT (L2CR_L2SIZ_2M | L2CR_L2CLK_3 | L2CR_L2RAM_BURST | \
|
||||
L2CR_L2OH_5 | L2CR_L2CTL | L2CR_L2WT)
|
||||
#define L2_ENABLE (L2_INIT | L2CR_L2E)
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Disk-On-Chip configuration
|
||||
*/
|
||||
|
||||
#define CFG_MAX_DOC_DEVICE 1 /* Max number of DOC devices */
|
||||
|
||||
#define CFG_DOC_SUPPORT_2000
|
||||
#undef CFG_DOC_SUPPORT_MILLENNIUM
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
RTC m48t59
|
||||
*/
|
||||
#define CONFIG_RTC_MK48T59
|
||||
|
||||
#define CONFIG_WATCHDOG
|
||||
|
||||
#define CONFIG_NET_MULTI /* Multi ethernet cards support */
|
||||
|
||||
#define CONFIG_EEPRO100
|
||||
#define CONFIG_TULIP
|
||||
|
||||
|
||||
#define CONFIG_SCSI_SYM53C8XX
|
||||
#define CONFIG_SCSI_DEV_ID 0x000B /* 53c896 */
|
||||
#define CFG_SCSI_MAX_LUN 8 /* number of supported LUNs */
|
||||
#define CFG_SCSI_MAX_SCSI_ID 15 /* maximum SCSI ID (0..6) */
|
||||
#define CFG_SCSI_MAX_DEVICE CFG_SCSI_MAX_SCSI_ID * CFG_SCSI_MAX_LUN /* maximum Target devices */
|
||||
#define CFG_SCSI_SPIN_UP_TIME 2
|
||||
#define CFG_SCSI_SCAN_BUS_REVERSE 0
|
||||
#define CONFIG_DOS_PARTITION
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_ISO_PARTITION
|
||||
|
||||
|
||||
|
||||
#endif /* __CONFIG_H */
|
467
include/configs/RRvision.h
Normal file
467
include/configs/RRvision.h
Normal file
@ -0,0 +1,467 @@
|
||||
/*
|
||||
* (C) Copyright 2000, 2001, 2002
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC823 1 /* This is a MPC823 CPU */
|
||||
#define CONFIG_RRVISION 1 /* ...on a RRvision board */
|
||||
|
||||
#define CONFIG_8xx_GCLK_FREQ 64000000
|
||||
|
||||
#define CONFIG_8xx_CONS_SMC1 1 /* Console is on SMC1 */
|
||||
#undef CONFIG_8xx_CONS_SMC2
|
||||
#undef CONFIG_8xx_CONS_NONE
|
||||
#define CONFIG_BAUDRATE 115200 /* console baudrate = 115kbps */
|
||||
#if 0
|
||||
#define CONFIG_BOOTDELAY -1 /* autoboot disabled */
|
||||
#else
|
||||
#define CONFIG_BOOTDELAY 3 /* autoboot after 5 seconds */
|
||||
#endif
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
|
||||
#define CONFIG_PREBOOT "setenv stdout serial"
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
#define CONFIG_ETHADDR 00:50:C2:00:E0:70
|
||||
#define CONFIG_OVERWRITE_ETHADDR_ONCE 1
|
||||
#define CONFIG_IPADDR 10.0.0.5
|
||||
#define CONFIG_SERVERIP 10.0.0.2
|
||||
#define CONFIG_NETMASK 255.0.0.0
|
||||
#define CONFIG_ROOTPATH /opt/eldk/ppc_8xx
|
||||
#define CONFIG_BOOTCOMMAND "run flash_self"
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"ramargs=setenv bootargs root=/dev/ram rw\0" \
|
||||
"nfsargs=setenv bootargs root=/dev/nfs rw " \
|
||||
"nfsroot=$(serverip):$(rootpath)\0" \
|
||||
"addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip)" \
|
||||
":$(gatewayip):$(netmask):$(hostname):$(netdev):off\0" \
|
||||
"addtty=setenv bootargs $(bootargs) console=ttyS0,$(baudrate)\0"\
|
||||
"load=tftp 100000 /tftpboot/u-boot.bin\0" \
|
||||
"update=protect off 1:0-8;era 1:0-8;" \
|
||||
"cp.b 100000 40000000 $(filesize);" \
|
||||
"setenv filesize;saveenv\0" \
|
||||
"kernel_addr=40040000\0" \
|
||||
"ramdisk_addr=40100000\0" \
|
||||
"kernel_img=/tftpboot/pImage\0" \
|
||||
"kernel_load=tftp 200000 $(kernel_img)\0" \
|
||||
"net_nfs=run kernel_load nfsargs addip addtty;bootm\0" \
|
||||
"flash_nfs=run nfsargs addip addtty;bootm $(kernel_addr)\0" \
|
||||
"flash_self=run ramargs addip addtty;" \
|
||||
"bootm $(kernel_addr) $(ramdisk_addr)\0"
|
||||
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* don't allow baudrate change */
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
|
||||
#undef CONFIG_STATUS_LED /* disturbs display */
|
||||
|
||||
#undef CONFIG_CAN_DRIVER /* CAN Driver support disabled */
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_DOS_PARTITION
|
||||
|
||||
#define CONFIG_RTC_MPC8xx /* use internal RTC of MPC8xx */
|
||||
|
||||
|
||||
#if 1
|
||||
#define CONFIG_VIDEO 1 /* To enable the video initialization */
|
||||
|
||||
/* Video related */
|
||||
#define CONFIG_VIDEO_LOGO 1 /* Show the logo */
|
||||
#define CONFIG_VIDEO_ENCODER_AD7176 1 /* Enable this encoder */
|
||||
#define CONFIG_VIDEO_ENCODER_AD7176_ADDR 0x2A /* ALSB to ground */
|
||||
#endif
|
||||
|
||||
/* enable I2C and select the hardware/software driver */
|
||||
#undef CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
#define CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
|
||||
# define CFG_I2C_SPEED 50000 /* 50 kHz is supposed to work */
|
||||
# define CFG_I2C_SLAVE 0xFE
|
||||
|
||||
#ifdef CONFIG_SOFT_I2C
|
||||
/*
|
||||
* Software (bit-bang) I2C driver configuration
|
||||
*/
|
||||
#define PB_SCL 0x00000020 /* PB 26 */
|
||||
#define PB_SDA 0x00000010 /* PB 27 */
|
||||
|
||||
#define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
|
||||
#define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
|
||||
#define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
|
||||
#define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
|
||||
#define I2C_SDA(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SDA
|
||||
#define I2C_SCL(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SCL
|
||||
#define I2C_DELAY udelay(1) /* 1/4 I2C clock duration */
|
||||
#endif /* CONFIG_SOFT_I2C */
|
||||
|
||||
|
||||
|
||||
#define CONFIG_COMMANDS ( ( CONFIG_CMD_DFL | \
|
||||
CFG_CMD_DHCP | \
|
||||
CFG_CMD_I2C | \
|
||||
CFG_CMD_IDE | \
|
||||
CFG_CMD_DATE ) & \
|
||||
~( CFG_CMD_PCMCIA | \
|
||||
CFG_CMD_IDE ) )
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
/*-----------------------------------------------------------------------
|
||||
* Internal Memory Mapped Register
|
||||
*/
|
||||
#define CFG_IMMR 0xFFF00000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2F00 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0x40000000
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 71 /* max number of sectors on one chip */
|
||||
|
||||
/* timeout values are in ticks = ms */
|
||||
#define CFG_FLASH_ERASE_TOUT (120*CFG_HZ) /* Timeout for Flash Erase */
|
||||
#define CFG_FLASH_WRITE_TOUT (1 * CFG_HZ) /* Timeout for Flash Write */
|
||||
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_OFFSET 0x8000 /* Offset of Environment Sector */
|
||||
#define CFG_ENV_SIZE 0x4000 /* Total Size of Environment Sector */
|
||||
|
||||
/* Address and size of Redundant Environment Sector */
|
||||
#define CFG_ENV_OFFSET_REDUND (CFG_ENV_OFFSET+CFG_ENV_SIZE)
|
||||
#define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 16 /* For all MPC8xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 4 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
|
||||
*/
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | SYPCR_SWP)
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 11-6
|
||||
*-----------------------------------------------------------------------
|
||||
* PCMCIA config., multi-function pin tri-state
|
||||
*/
|
||||
#ifndef CONFIG_CAN_DRIVER
|
||||
#define CFG_SIUMCR (SIUMCR_DBGC00 | SIUMCR_DBPC00 | SIUMCR_MLRC01)
|
||||
#else /* we must activate GPL5 in the SIUMCR for CAN */
|
||||
#define CFG_SIUMCR (SIUMCR_DBGC11 | SIUMCR_DBPC00 | SIUMCR_MLRC01)
|
||||
#endif /* CONFIG_CAN_DRIVER */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TBSCR - Time Base Status and Control 11-26
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Reference Interrupt Status, Timebase freezing enabled
|
||||
*/
|
||||
#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RTCSC - Real-Time Clock Status and Control Register 11-27
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RTCSC (RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 11-31
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS | PISCR_PITF | PISCR_PTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PLPRCR - PLL, Low-Power, and Reset Control Register 15-30
|
||||
*-----------------------------------------------------------------------
|
||||
* Reset PLL lock status sticky bit, timer expired status bit and timer
|
||||
* interrupt status bit
|
||||
*/
|
||||
|
||||
/* for 64 MHz, we use a 16 MHz clock * 4 */
|
||||
#define CFG_PLPRCR ( (4-1)<<PLPRCR_MF_SHIFT | PLPRCR_TEXPS | PLPRCR_TMIST )
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock and reset Control Register 15-27
|
||||
*-----------------------------------------------------------------------
|
||||
* Set clock output, timebase and RTC source and divider,
|
||||
* power management and some other internal clocks
|
||||
*/
|
||||
#define SCCR_MASK SCCR_EBDF11
|
||||
#define CFG_SCCR (/* SCCR_TBS | */ SCCR_RTSEL | SCCR_RTDIV | \
|
||||
SCCR_COM00 | SCCR_DFSYNC00 | SCCR_DFBRG00 | \
|
||||
SCCR_DFNL000 | SCCR_DFNH000 | SCCR_DFLCD000 | \
|
||||
SCCR_DFALCD00)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCMCIA stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
#define CFG_PCMCIA_MEM_ADDR (0xE0000000)
|
||||
#define CFG_PCMCIA_MEM_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_DMA_ADDR (0xE4000000)
|
||||
#define CFG_PCMCIA_DMA_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_ATTRB_ADDR (0xE8000000)
|
||||
#define CFG_PCMCIA_ATTRB_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_IO_ADDR (0xEC000000)
|
||||
#define CFG_PCMCIA_IO_SIZE ( 64 << 20 )
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* IDE/ATA stuff (Supports IDE harddisk on PCMCIA Adapter)
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define CONFIG_IDE_8xx_PCCARD 1 /* Use IDE with PC Card Adapter */
|
||||
|
||||
#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
|
||||
#undef CONFIG_IDE_LED /* LED for ide not supported */
|
||||
#undef CONFIG_IDE_RESET /* reset for ide not supported */
|
||||
|
||||
#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */
|
||||
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */
|
||||
|
||||
#define CFG_ATA_IDE0_OFFSET 0x0000
|
||||
|
||||
#define CFG_ATA_BASE_ADDR CFG_PCMCIA_MEM_ADDR
|
||||
|
||||
/* Offset for data I/O */
|
||||
#define CFG_ATA_DATA_OFFSET (CFG_PCMCIA_MEM_SIZE + 0x320)
|
||||
|
||||
/* Offset for normal register accesses */
|
||||
#define CFG_ATA_REG_OFFSET (2 * CFG_PCMCIA_MEM_SIZE + 0x320)
|
||||
|
||||
/* Offset for alternate registers */
|
||||
#define CFG_ATA_ALT_OFFSET 0x0100
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
/*#define CFG_DER 0x2002000F*/
|
||||
#define CFG_DER 0
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*
|
||||
* BR0/1 (FLASH)
|
||||
*/
|
||||
|
||||
#define FLASH_BASE0_PRELIM 0x40000000 /* FLASH bank #0 */
|
||||
|
||||
/* used to re-map FLASH both when starting from SRAM or FLASH:
|
||||
* restrict access enough to keep SRAM working (if any)
|
||||
* but not too much to meddle with FLASH accesses
|
||||
*/
|
||||
#define CFG_REMAP_OR_AM 0x80000000 /* OR addr mask */
|
||||
#define CFG_PRELIM_OR_AM 0xE0000000 /* OR addr mask */
|
||||
|
||||
/*
|
||||
* FLASH timing:
|
||||
*/
|
||||
/* 66 MHz CPU - 66 MHz bus: ACS = 00, TRLX = 1, CSNT = 1, SCY = 3, EHTR = 1 */
|
||||
#define CFG_OR_TIMING_FLASH (OR_ACS_DIV1 | OR_TRLX | OR_CSNT_SAM | \
|
||||
OR_SCY_3_CLK | OR_EHTR | OR_BI)
|
||||
|
||||
#define CFG_OR0_REMAP (CFG_REMAP_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_FLASH)
|
||||
#define CFG_BR0_PRELIM ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_V )
|
||||
|
||||
/*
|
||||
* BR2/3 and OR2/3 (SDRAM)
|
||||
*
|
||||
*/
|
||||
#define SDRAM_BASE2_PRELIM 0x00000000 /* SDRAM bank #0 */
|
||||
#define SDRAM_BASE3_PRELIM 0x20000000 /* SDRAM bank #1 */
|
||||
#define SDRAM_MAX_SIZE 0x04000000 /* max 64 MB per bank */
|
||||
|
||||
/* SDRAM timing: Multiplexed addresses, GPL5 output to GPL5_A (don't care) */
|
||||
#define CFG_OR_TIMING_SDRAM 0x00000A00
|
||||
|
||||
#define CFG_OR2_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_SDRAM )
|
||||
#define CFG_BR2_PRELIM ((SDRAM_BASE2_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
|
||||
#ifndef CONFIG_CAN_DRIVER
|
||||
#define CFG_OR3_PRELIM CFG_OR2_PRELIM
|
||||
#define CFG_BR3_PRELIM ((SDRAM_BASE3_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
#else /* CAN uses CS3#, so we can have only one SDRAM bank anyway */
|
||||
#define CFG_CAN_BASE 0xC0000000 /* CAN mapped at 0xC0000000 */
|
||||
#define CFG_CAN_OR_AM 0xFFFF8000 /* 32 kB address mask */
|
||||
#define CFG_OR3_CAN (CFG_CAN_OR_AM | OR_G5LA | OR_BI)
|
||||
#define CFG_BR3_CAN ((CFG_CAN_BASE & BR_BA_MSK) | \
|
||||
BR_PS_8 | BR_MS_UPMB | BR_V )
|
||||
#endif /* CONFIG_CAN_DRIVER */
|
||||
|
||||
/*
|
||||
* Memory Periodic Timer Prescaler
|
||||
*
|
||||
* The Divider for PTA (refresh timer) configuration is based on an
|
||||
* example SDRAM configuration (64 MBit, one bank). The adjustment to
|
||||
* the number of chip selects (NCS) and the actually needed refresh
|
||||
* rate is done by setting MPTPR.
|
||||
*
|
||||
* PTA is calculated from
|
||||
* PTA = (gclk * Trefresh) / ((2 ^ (2 * DFBRG)) * PTP * NCS)
|
||||
*
|
||||
* gclk CPU clock (not bus clock!)
|
||||
* Trefresh Refresh cycle * 4 (four word bursts used)
|
||||
*
|
||||
* 4096 Rows from SDRAM example configuration
|
||||
* 1000 factor s -> ms
|
||||
* 32 PTP (pre-divider from MPTPR) from SDRAM example configuration
|
||||
* 4 Number of refresh cycles per period
|
||||
* 64 Refresh cycle in ms per number of rows
|
||||
* --------------------------------------------
|
||||
* Divider = 4096 * 32 * 1000 / (4 * 64) = 512000
|
||||
*
|
||||
* 50 MHz => 50.000.000 / Divider = 98
|
||||
* 66 Mhz => 66.000.000 / Divider = 129
|
||||
* 80 Mhz => 80.000.000 / Divider = 156
|
||||
*/
|
||||
#define CFG_MAMR_PTA 129
|
||||
|
||||
/*
|
||||
* For 16 MBit, refresh rates could be 31.3 us
|
||||
* (= 64 ms / 2K = 125 / quad bursts).
|
||||
* For a simpler initialization, 15.6 us is used instead.
|
||||
*
|
||||
* #define CFG_MPTPR_2BK_2K MPTPR_PTP_DIV32 for 2 banks
|
||||
* #define CFG_MPTPR_1BK_2K MPTPR_PTP_DIV64 for 1 bank
|
||||
*/
|
||||
#define CFG_MPTPR_2BK_4K MPTPR_PTP_DIV16 /* setting for 2 banks */
|
||||
#define CFG_MPTPR_1BK_4K MPTPR_PTP_DIV32 /* setting for 1 bank */
|
||||
|
||||
/* refresh rate 7.8 us (= 64 ms / 8K = 31.2 / quad bursts) for 256 MBit */
|
||||
#define CFG_MPTPR_2BK_8K MPTPR_PTP_DIV8 /* setting for 2 banks */
|
||||
#define CFG_MPTPR_1BK_8K MPTPR_PTP_DIV16 /* setting for 1 bank */
|
||||
|
||||
/*
|
||||
* MAMR settings for SDRAM
|
||||
*/
|
||||
|
||||
/* 8 column SDRAM */
|
||||
#define CFG_MAMR_8COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
|
||||
MAMR_AMA_TYPE_0 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A11 | \
|
||||
MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_4X)
|
||||
/* 9 column SDRAM */
|
||||
#define CFG_MAMR_9COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
|
||||
MAMR_AMA_TYPE_1 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A10 | \
|
||||
MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_4X)
|
||||
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
326
include/configs/W7OLMC.h
Normal file
326
include/configs/W7OLMC.h
Normal file
@ -0,0 +1,326 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Erik Theisen, Wave 7 Optics, etheisen@mindspring.com
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_405GP 1 /* This is a PPC405GP CPU */
|
||||
#define CONFIG_4xx 1 /* ...member of PPC405 family */
|
||||
#define CONFIG_W7O 1 /* ...on a Wave 7 Optics board */
|
||||
#define CONFIG_W7OLMC 1 /* ...specifically an LMC */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1 /* Call board_pre_init */
|
||||
|
||||
#define CONFIG_SYS_CLK_FREQ 33333333 /* external frequency to pll */
|
||||
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CONFIG_BOOTDELAY 3 /* autoboot after 3 seconds */
|
||||
|
||||
#if 1
|
||||
#define CONFIG_BOOTCOMMAND "bootvx" /* VxWorks boot command */
|
||||
#else
|
||||
#define CONFIG_BOOTCOMMAND "bootp" /* autoboot command */
|
||||
#endif
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
|
||||
#define CONFIG_LOADADDR F0080000
|
||||
|
||||
#define CONFIG_ETHADDR 00:06:0D:00:00:00 /* Default, overridden at boot */
|
||||
#define CONFIG_OVERWRITE_ETHADDR_ONCE
|
||||
#define CONFIG_IPADDR 192.168.1.1
|
||||
#define CONFIG_NETMASK 255.255.255.0
|
||||
#define CONFIG_SERVERIP 192.168.1.2
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* disallow baudrate change */
|
||||
|
||||
#define CONFIG_MII 1 /* MII PHY management */
|
||||
#define CONFIG_PHY_ADDR 0 /* PHY address */
|
||||
|
||||
#define CONFIG_RTC_M48T35A 1 /* ST Electronics M48 timekeeper */
|
||||
|
||||
#define CONFIG_COMMANDS \
|
||||
(CONFIG_CMD_DFL | CFG_CMD_PCI | CFG_CMD_IRQ | CFG_CMD_ASKENV | \
|
||||
CFG_CMD_DHCP | CFG_CMD_BEDBUG | CFG_CMD_DATE | CFG_CMD_I2C | \
|
||||
CFG_CMD_EEPROM | CFG_CMD_ELF | CFG_CMD_BSP | CFG_CMD_REGINFO)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
#define CONFIG_HW_WATCHDOG /* HW Watchdog, board specific */
|
||||
|
||||
#define CONFIG_SPD_EEPROM /* SPD EEPROM for SDRAM param. */
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "Wave7Optics> " /* Monitor Command Prompt */
|
||||
#undef CFG_HUSH_PARSER /* No hush parse for U-Boot */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
|
||||
|
||||
#undef CFG_EXT_SERIAL_CLOCK /* external serial clock */
|
||||
#define CFG_405_UART_ERRATA_59 /* 405GP/CR Rev. D silicon */
|
||||
#define CFG_BASE_BAUD 384000
|
||||
|
||||
|
||||
/* The following table includes the supported baudrates */
|
||||
#define CFG_BAUDRATE_TABLE {9600}
|
||||
|
||||
#define CFG_CLKS_IN_HZ 1 /* everything, incl board info, in Hz */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
#define CFG_EXTBDINFO 1 /* use extended board_info (bd_t) */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCI stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define PCI_HOST_ADAPTER 0 /* configure as pci adapter */
|
||||
#define PCI_HOST_FORCE 1 /* configure as pci host */
|
||||
#define PCI_HOST_AUTO 2 /* detected via arbiter enable */
|
||||
|
||||
|
||||
#define CONFIG_PCI /* include pci support */
|
||||
#define CONFIG_PCI_HOST PCI_HOST_AUTO /* select pci host function */
|
||||
#define CONFIG_PCI_PNP /* pci plug-and-play */
|
||||
/* resource configuration */
|
||||
#define CFG_PCI_SUBSYS_VENDORID 0x1014 /* PCI Vendor ID: IBM */
|
||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0156 /* PCI Device ID: 405GP */
|
||||
#define CFG_PCI_PTM1LA 0x00000000 /* point to sdram */
|
||||
#define CFG_PCI_PTM1MS 0x80000001 /* 2GB, enable hard-wired to 1 */
|
||||
#define CFG_PCI_PTM1PCI 0x00000000 /* Host: use this pci address */
|
||||
#define CFG_PCI_PTM2LA 0x00000000 /* disabled */
|
||||
#define CFG_PCI_PTM2MS 0x00000000 /* disabled */
|
||||
#define CFG_PCI_PTM2PCI 0x00000000 /* Host: use this pci address */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Set up values for external bus controller
|
||||
* used by cpu_init.c
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* Don't use PerWE instead of PCI_INT ( these functions share a pin ) */
|
||||
#undef CONFIG_USE_PERWE
|
||||
|
||||
/* use on chip memory ( OCM ) for temperary stack until sdram is tested */
|
||||
#define CFG_TEMP_STACK_OCM 1
|
||||
|
||||
/* bank 0 is boot flash */
|
||||
/* BME=0,TWT=6,CSN=1,OEN=1,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_W7O_EBC_PB0AP 0x03050440
|
||||
/* BAS=0xFFE,BS=0x1(2MB),BU=0x3(R/W),BW=0x0(8 bits) */
|
||||
#define CFG_W7O_EBC_PB0CR 0xFFE38000
|
||||
|
||||
/* bank 1 is main flash */
|
||||
/* BME=0,TWT=11,CSN=1,OEN=1,WBN=0,WBF=0,TH=1,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_EBC_PB1AP 0x05850240
|
||||
/* BAS=0xF00,BS=0x7(128MB),BU=0x3(R/W),BW=0x10(32 bits) */
|
||||
#define CFG_EBC_PB1CR 0xF00FC000
|
||||
|
||||
/* bank 2 is RTC/NVRAM */
|
||||
/* BME=0,TWT=6,CSN=0,OEN=0,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_EBC_PB2AP 0x03000440
|
||||
/* BAS=0xFC0,BS=0x0(1MB),BU=0x3(R/W),BW=0x0(8 bits) */
|
||||
#define CFG_EBC_PB2CR 0xFC018000
|
||||
|
||||
/* bank 3 is FPGA 0 */
|
||||
/* BME=0,TWT=4,CSN=0,OEN=0,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=0,PEN=0 */
|
||||
#define CFG_EBC_PB3AP 0x02000400
|
||||
/* BAS=0xFD0,BS=0x0(1MB),BU=0x3(R/W),BW=0x1(16 bits) */
|
||||
#define CFG_EBC_PB3CR 0xFD01A000
|
||||
|
||||
/* bank 4 is FPGA 1 */
|
||||
/* BME=,TWT=,CSN=,OEN=,WBN=,WBF=,TH=,RE=,SOR=,BEM=,PEN= */
|
||||
#define CFG_EBC_PB4AP 0x02000400
|
||||
/* BAS=,BS=,BU=0x3(R/W),BW=0x0(8 bits) */
|
||||
#define CFG_EBC_PB4CR 0xFD11A000
|
||||
|
||||
/* bank 5 is FPGA 2 */
|
||||
/* BME=,TWT=,CSN=,OEN=,WBN=,WBF=,TH=,RE=,SOR=,BEM=,PEN= */
|
||||
#define CFG_EBC_PB5AP 0x02000400
|
||||
/* BAS=,BS=,BU=0x3(R/W),BW=0x1(16 bits) */
|
||||
#define CFG_EBC_PB5CR 0xFD21A000
|
||||
|
||||
/* bank 6 is unused */
|
||||
/* pb6ap = 0 */
|
||||
#define CFG_EBC_PB6AP 0x00000000
|
||||
/* pb6cr = 0 */
|
||||
#define CFG_EBC_PB6CR 0x00000000
|
||||
|
||||
/* bank 7 is LED register */
|
||||
/* BME=0,TWT=6,CSN=1,OEN=1,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_W7O_EBC_PB7AP 0x03050440
|
||||
/* BAS=0xFE0,BS=0x0(1MB),BU=0x3(R/W),BW=0x2(32 bits) */
|
||||
#define CFG_W7O_EBC_PB7CR 0xFE01C000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xFFFC0000
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 * 1024) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 256 /* max number of sec on 1 chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout, Flash Erase, in ms */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout, Flash Write, in ms */
|
||||
#define CFG_FLASH_PROTECTION 1 /* Use real Flash protection */
|
||||
|
||||
#if 1 /* Use NVRAM for environment variables */
|
||||
/*-----------------------------------------------------------------------
|
||||
* NVRAM organization
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_NVRAM 1 /* use NVRAM for env vars */
|
||||
#define CFG_NVRAM_BASE_ADDR 0xfc000000 /* NVRAM base address */
|
||||
#define CFG_NVRAM_SIZE (32*1024) /* NVRAM size */
|
||||
#define CFG_ENV_SIZE 0x1000 /* Size of Environment vars */
|
||||
/*define CFG_ENV_ADDR \
|
||||
(CFG_NVRAM_BASE_ADDR+CFG_NVRAM_SIZE-CFG_ENV_SIZE) Env */
|
||||
#define CFG_ENV_ADDR CFG_NVRAM_BASE_ADDR
|
||||
|
||||
#else /* Use Boot Flash for environment variables */
|
||||
/*-----------------------------------------------------------------------
|
||||
* Flash EEPROM for environment
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_OFFSET 0x00040000 /* Offset of Environment Sector */
|
||||
#define CFG_ENV_SIZE 0x10000 /* Total Size of env. sector */
|
||||
|
||||
#define CFG_ENV_SECT_SIZE 0x10000 /* see README - env sec tot sze */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* I2C EEPROM (CAT24WC08) for environment
|
||||
*/
|
||||
#define CONFIG_HARD_I2C /* I2c with hardware support */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
#define CFG_I2C_EEPROM_ADDR 0x50 /* EEPROM CAT28WC08 */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address */
|
||||
/* mask of address bits that overflow into the "EEPROM chip address" */
|
||||
#define CFG_I2C_EEPROM_ADDR_OVERFLOW 0x07
|
||||
#define CFG_EEPROM_PAGE_WRITE_ENABLE
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 4 /* The Catalyst CAT24WC08 has */
|
||||
/* 16 byte page write mode using*/
|
||||
/* last 4 bits of the address */
|
||||
#define CFG_I2C_MULTI_EEPROMS
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for Serial Presence Detect EEPROM address
|
||||
* (to get SDRAM settings)
|
||||
*/
|
||||
#define SPD_EEPROM_ADDRESS 0x50 /* XXX conflicting address!!! XXX */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_DCACHE_SIZE 8192 /* For IBM 405 CPUs */
|
||||
#define CFG_CACHELINE_SIZE 32 /* ... */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above val. */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*/
|
||||
#define FLASH_BASE0_PRELIM 0xFFE00000 /* FLASH bank #0 */
|
||||
#define FLASH_BASE1_PRELIM 0xF0000000 /* FLASH bank #1 */
|
||||
|
||||
/* On Chip Memory location */
|
||||
#define CFG_OCM_DATA_ADDR 0xF8000000
|
||||
#define CFG_OCM_DATA_SIZE 0x1000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in RAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_OCM_DATA_ADDR /* inside of SDRAM */
|
||||
#define CFG_INIT_RAM_END CFG_OCM_DATA_SIZE /* End of used area in RAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */
|
||||
#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* FPGA(s) configuration
|
||||
*/
|
||||
#define CFG_FPGA_IMAGE_LEN 0x80000 /* 512KB FPGA image */
|
||||
#define CONFIG_NUM_FPGAS 3 /* Number of FPGAs on board */
|
||||
#define CONFIG_MAX_FPGAS 6 /* Maximum number of FPGAs */
|
||||
#define CONFIG_FPGAS_BASE 0xFD000000L /* Base address of FPGAs */
|
||||
#define CONFIG_FPGAS_BANK_SIZE 0x00100000L /* FPGAs' mmap bank size */
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
|
326
include/configs/W7OLMG.h
Normal file
326
include/configs/W7OLMG.h
Normal file
@ -0,0 +1,326 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Erik Theisen, Wave 7 Optics, etheisen@mindspring.com
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_405GP 1 /* This is a PPC405GP CPU */
|
||||
#define CONFIG_4xx 1 /* ...member of PPC405 family */
|
||||
#define CONFIG_W7O 1 /* ...on a Wave 7 Optics board */
|
||||
#define CONFIG_W7OLMG 1 /* ...specifically an LMG */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1 /* Call board_pre_init */
|
||||
|
||||
#define CONFIG_SYS_CLK_FREQ 33333333 /* external frequency to pll */
|
||||
|
||||
#define CONFIG_BAUDRATE 9600
|
||||
#define CONFIG_BOOTDELAY 3 /* autoboot after 3 seconds */
|
||||
|
||||
#if 1
|
||||
#define CONFIG_BOOTCOMMAND "bootvx" /* VxWorks boot command */
|
||||
#else
|
||||
#define CONFIG_BOOTCOMMAND "bootp" /* autoboot command */
|
||||
#endif
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
|
||||
#define CONFIG_LOADADDR F0080000
|
||||
|
||||
#define CONFIG_ETHADDR 00:06:0D:00:00:00 /* Default, overridden at boot */
|
||||
#define CONFIG_OVERWRITE_ETHADDR_ONCE
|
||||
#define CONFIG_IPADDR 192.168.1.1
|
||||
#define CONFIG_NETMASK 255.255.255.0
|
||||
#define CONFIG_SERVERIP 192.168.1.2
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* disallow baudrate change */
|
||||
|
||||
#define CONFIG_MII 1 /* MII PHY management */
|
||||
#define CONFIG_PHY_ADDR 0 /* PHY address */
|
||||
|
||||
#define CONFIG_RTC_M48T35A 1 /* ST Electronics M48 timekeeper */
|
||||
#define CONFIG_DTT_LM75 1 /* ON Semi's LM75 */
|
||||
#define CONFIG_DTT_SENSORS {2, 4} /* Sensor addresses */
|
||||
#define CFG_DTT_MAX_TEMP 70
|
||||
#define CFG_DTT_LOW_TEMP -30
|
||||
#define CFG_DTT_HYSTERESIS 3
|
||||
|
||||
#define CONFIG_COMMANDS \
|
||||
(CONFIG_CMD_DFL | CFG_CMD_PCI | CFG_CMD_IRQ | CFG_CMD_ASKENV | \
|
||||
CFG_CMD_DHCP | CFG_CMD_BEDBUG | CFG_CMD_DATE | CFG_CMD_I2C | \
|
||||
CFG_CMD_EEPROM | CFG_CMD_ELF | CFG_CMD_BSP | CFG_CMD_REGINFO | \
|
||||
CFG_CMD_DTT)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
#define CONFIG_HW_WATCHDOG /* HW Watchdog, board specific */
|
||||
|
||||
#define CONFIG_SPD_EEPROM /* SPD EEPROM for SDRAM param. */
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "Wave7Optics> " /* Monitor Command Prompt */
|
||||
#undef CFG_HUSH_PARSER /* No hush parse for U-Boot */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
|
||||
|
||||
#undef CFG_EXT_SERIAL_CLOCK /* external serial clock */
|
||||
#define CFG_405_UART_ERRATA_59 /* 405GP/CR Rev. D silicon */
|
||||
#define CFG_BASE_BAUD 384000
|
||||
|
||||
|
||||
/* The following table includes the supported baudrates */
|
||||
#define CFG_BAUDRATE_TABLE {9600}
|
||||
|
||||
#define CFG_CLKS_IN_HZ 1 /* everything, incl board info, in Hz */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
#define CFG_EXTBDINFO 1 /* use extended board_info (bd_t) */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCI stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define PCI_HOST_ADAPTER 0 /* configure as pci adapter */
|
||||
#define PCI_HOST_FORCE 1 /* configure as pci host */
|
||||
#define PCI_HOST_AUTO 2 /* detected via arbiter enable */
|
||||
|
||||
#define CONFIG_PCI /* include pci support */
|
||||
#define CONFIG_PCI_HOST PCI_HOST_AUTO /* select pci host function */
|
||||
#define CONFIG_PCI_PNP /* pci plug-and-play */
|
||||
/* resource configuration */
|
||||
#define CFG_PCI_SUBSYS_VENDORID 0x1014 /* PCI Vendor ID: IBM */
|
||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0156 /* PCI Device ID: 405GP */
|
||||
#define CFG_PCI_PTM1LA 0x00000000 /* point to sdram */
|
||||
#define CFG_PCI_PTM1MS 0x80000001 /* 2GB, enable hard-wired to 1 */
|
||||
#define CFG_PCI_PTM1PCI 0x00000000 /* Host: use this pci address */
|
||||
#define CFG_PCI_PTM2LA 0x00000000 /* disabled */
|
||||
#define CFG_PCI_PTM2MS 0x00000000 /* disabled */
|
||||
#define CFG_PCI_PTM2PCI 0x00000000 /* Host: use this pci address */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Set up values for external bus controller
|
||||
* used by cpu_init.c
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* use PerWE instead of PCI_INT ( these functions share a pin ) */
|
||||
#define CONFIG_USE_PERWE 1
|
||||
|
||||
/* use on chip memory ( OCM ) for temperary stack until sdram is tested */
|
||||
#define CFG_TEMP_STACK_OCM 1
|
||||
|
||||
/* bank 0 is boot flash */
|
||||
/* BME=0,TWT=6,CSN=1,OEN=1,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_W7O_EBC_PB0AP 0x03050440
|
||||
/* BAS=0xFFE,BS=0x1(2MB),BU=0x3(R/W),BW=0x0(8 bits) */
|
||||
#define CFG_W7O_EBC_PB0CR 0xFFE38000
|
||||
|
||||
/* bank 1 is main flash */
|
||||
/* BME=0,TWT=9,CSN=1,OEN=1,WBN=0,WBF=0,TH=1,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_EBC_PB1AP 0x04850240
|
||||
/* BAS=0xF00,BS=0x7(128MB),BU=0x3(R/W),BW=0x10(32 bits) */
|
||||
#define CFG_EBC_PB1CR 0xF00FC000
|
||||
|
||||
/* bank 2 is RTC/NVRAM */
|
||||
/* BME=0,TWT=6,CSN=0,OEN=0,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_EBC_PB2AP 0x03000440
|
||||
/* BAS=0xFC0,BS=0x0(1MB),BU=0x3(R/W),BW=0x0(8 bits) */
|
||||
#define CFG_EBC_PB2CR 0xFC018000
|
||||
|
||||
/* bank 3 is FPGA 0 */
|
||||
/* BME=0,TWT=4,CSN=0,OEN=0,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=0,PEN=0 */
|
||||
#define CFG_EBC_PB3AP 0x02000400
|
||||
/* BAS=0xFD0,BS=0x0(1MB),BU=0x3(R/W),BW=0x1(16 bits) */
|
||||
#define CFG_EBC_PB3CR 0xFD01A000
|
||||
|
||||
/* bank 4 is SAM 8 bit range */
|
||||
/* BME=,TWT=,CSN=,OEN=,WBN=,WBF=,TH=,RE=,SOR=,BEM=,PEN= */
|
||||
#define CFG_EBC_PB4AP 0x02840380
|
||||
/* BAS=,BS=,BU=0x3(R/W),BW=0x0(8 bits) */
|
||||
#define CFG_EBC_PB4CR 0xFE878000
|
||||
|
||||
/* bank 5 is SAM 16 bit range */
|
||||
/* BME=0,TWT=10,CSN=2,OEN=0,WBN=0,WBF=0,TH=6,RE=1,SOR=1,BEM=0,PEN=0 */
|
||||
#define CFG_EBC_PB5AP 0x05040d80
|
||||
/* BAS=,BS=,BU=0x3(R/W),BW=0x1(16 bits) */
|
||||
#define CFG_EBC_PB5CR 0xFD87A000
|
||||
|
||||
/* bank 6 is unused */
|
||||
/* pb6ap = 0 */
|
||||
#define CFG_EBC_PB6AP 0x00000000
|
||||
/* pb6cr = 0 */
|
||||
#define CFG_EBC_PB6CR 0x00000000
|
||||
|
||||
/* bank 7 is LED register */
|
||||
/* BME=0,TWT=6,CSN=1,OEN=1,WBN=0,WBF=0,TH=2,RE=0,SOR=0,BEM=1,PEN=0 */
|
||||
#define CFG_W7O_EBC_PB7AP 0x03050440
|
||||
/* BAS=0xFE0,BS=0x0(1MB),BU=0x3(R/W),BW=0x2(32 bits) */
|
||||
#define CFG_W7O_EBC_PB7CR 0xFE01C000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0xFFFC0000
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MONITOR_LEN (256 * 1024) /* Reserve 196 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 * 1024) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 256 /* max number of sec on 1 chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout, Flash Erase, in ms */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout, Flash Write, in ms */
|
||||
#define CFG_FLASH_PROTECTION 1 /* Use real Flash protection */
|
||||
|
||||
#if 1 /* Use NVRAM for environment variables */
|
||||
/*-----------------------------------------------------------------------
|
||||
* NVRAM organization
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_NVRAM 1 /* use NVRAM for env vars */
|
||||
#define CFG_NVRAM_BASE_ADDR 0xfc000000 /* NVRAM base address */
|
||||
#define CFG_NVRAM_SIZE (32*1024) /* NVRAM size */
|
||||
#define CFG_ENV_SIZE 0x1000 /* Size of Environment vars */
|
||||
/*define CFG_ENV_ADDR \
|
||||
(CFG_NVRAM_BASE_ADDR+CFG_NVRAM_SIZE-CFG_ENV_SIZE) Env */
|
||||
#define CFG_ENV_ADDR CFG_NVRAM_BASE_ADDR
|
||||
|
||||
#else /* Use Boot Flash for environment variables */
|
||||
/*-----------------------------------------------------------------------
|
||||
* Flash EEPROM for environment
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_OFFSET 0x00040000 /* Offset of Environment Sector */
|
||||
#define CFG_ENV_SIZE 0x10000 /* Total Size of env. sector */
|
||||
|
||||
#define CFG_ENV_SECT_SIZE 0x10000 /* see README - env sec tot sze */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* I2C EEPROM (ATMEL 24C04N)
|
||||
*/
|
||||
#define CONFIG_HARD_I2C 1 /* Hardware assisted I2C */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
#define CFG_I2C_EEPROM_ADDR 0x50 /* EEPROM ATMEL 24C04N */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address */
|
||||
#define CFG_EEPROM_PAGE_WRITE_ENABLE
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 3
|
||||
#define CFG_I2C_MULTI_EEPROMS
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for Serial Presence Detect EEPROM address
|
||||
* (to get SDRAM settings)
|
||||
*/
|
||||
#define SPD_EEPROM_ADDRESS 0x50 /* XXX conflicting address!!! XXX */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_DCACHE_SIZE 8192 /* For IBM 405 CPUs */
|
||||
#define CFG_CACHELINE_SIZE 32 /* ... */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above val. */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*/
|
||||
#define FLASH_BASE0_PRELIM 0xFFE00000 /* FLASH bank #0 */
|
||||
#define FLASH_BASE1_PRELIM 0xF0000000 /* FLASH bank #1 */
|
||||
|
||||
/* On Chip Memory location */
|
||||
#define CFG_OCM_DATA_ADDR 0xF8000000
|
||||
#define CFG_OCM_DATA_SIZE 0x1000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in RAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_OCM_DATA_ADDR /* inside of SDRAM */
|
||||
#define CFG_INIT_RAM_END CFG_OCM_DATA_SIZE /* End of used area in RAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */
|
||||
#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* FPGA(s) configuration
|
||||
*/
|
||||
#define CFG_FPGA_IMAGE_LEN 0x80000 /* 512KB FPGA image */
|
||||
#define CONFIG_NUM_FPGAS 1 /* Number of FPGAs on board */
|
||||
#define CONFIG_MAX_FPGAS 6 /* Maximum number of FPGAs */
|
||||
#define CONFIG_FPGAS_BASE 0xFD000000L /* Base address of FPGAs */
|
||||
#define CONFIG_FPGAS_BANK_SIZE 0x00100000L /* FPGAs' mmap bank size */
|
||||
|
||||
#endif /* __CONFIG_H */
|
534
include/configs/lwmon.h
Normal file
534
include/configs/lwmon.h
Normal file
@ -0,0 +1,534 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC823 1 /* This is a MPC823E CPU */
|
||||
#define CONFIG_LWMON 1 /* ...on a LWMON board */
|
||||
|
||||
#define CONFIG_BOARD_PRE_INIT 1 /* Call board_pre_init */
|
||||
|
||||
#define CONFIG_LCD 1 /* use LCD controller ... */
|
||||
#define CONFIG_HLD1045 1 /* ... with a HLD1045 display */
|
||||
|
||||
#if 1
|
||||
#define CONFIG_8xx_CONS_SMC2 1 /* Console is on SMC2 */
|
||||
#else
|
||||
#define CONFIG_8xx_CONS_SCC2
|
||||
#endif
|
||||
|
||||
#define CONFIG_BAUDRATE 115200 /* with watchdog >= 38400 needed */
|
||||
|
||||
#define CONFIG_BOOTDELAY 1 /* autoboot after 1 second */
|
||||
|
||||
#define CONFIG_CLOCKS_IN_MHZ 1 /* clocks passsed to Linux in MHz */
|
||||
|
||||
/* pre-boot commands */
|
||||
#define CONFIG_PREBOOT "setenv bootdelay 15"
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
|
||||
/* POST support */
|
||||
#define CONFIG_POST (CFG_POST_CACHE | \
|
||||
CFG_POST_WATCHDOG | \
|
||||
CFG_POST_RTC | \
|
||||
CFG_POST_MEMORY | \
|
||||
CFG_POST_CPU | \
|
||||
CFG_POST_UART | \
|
||||
CFG_POST_ETHER | \
|
||||
CFG_POST_SPI | \
|
||||
CFG_POST_USB | \
|
||||
CFG_POST_SPR)
|
||||
|
||||
#define CONFIG_BOOTCOMMAND "run flash_self"
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"kernel_addr=40040000\0" \
|
||||
"ramdisk_addr=40100000\0" \
|
||||
"magic_keys=#3\0" \
|
||||
"key_magic#=28\0" \
|
||||
"key_cmd#=setenv addfb setenv bootargs \\$(bootargs) console=tty0\0" \
|
||||
"key_magic3=24\0" \
|
||||
"key_cmd3=echo *** Entering Test Mode ***;" \
|
||||
"setenv add_misc setenv bootargs \\$(bootargs) testmode\0" \
|
||||
"nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath)\0" \
|
||||
"ramargs=setenv bootargs root=/dev/ram rw\0" \
|
||||
"addfb=setenv bootargs $(bootargs) console=ttyS1,$(baudrate)\0" \
|
||||
"addip=setenv bootargs $(bootargs) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off " \
|
||||
"panic=1\0" \
|
||||
"add_wdt=setenv bootargs $(bootargs) $(wdt_args)\0" \
|
||||
"flash_nfs=run nfsargs addip add_wdt addfb;" \
|
||||
"bootm $(kernel_addr)\0" \
|
||||
"flash_self=run ramargs addip add_wdt addfb;" \
|
||||
"bootm $(kernel_addr) $(ramdisk_addr)\0" \
|
||||
"net_nfs=tftp 100000 /tftpboot/pImage.lwmon;" \
|
||||
"run nfsargs addip add_wdt addfb;bootm\0" \
|
||||
"rootpath=/opt/eldk/ppc_8xx\0" \
|
||||
"load=tftp 100000 /tftpboot/u-boot.bin\0" \
|
||||
"update=protect off 1:0;era 1:0;cp.b 100000 40000000 $(filesize)\0" \
|
||||
"wdt_args=wdt_8xx=off\0" \
|
||||
"verify=no"
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#undef CFG_LOADS_BAUD_CHANGE /* don't allow baudrate change */
|
||||
|
||||
#define CONFIG_WATCHDOG 1 /* watchdog enabled */
|
||||
|
||||
#undef CONFIG_STATUS_LED /* Status LED disabled */
|
||||
|
||||
/* enable I2C and select the hardware/software driver */
|
||||
#define CONFIG_HARD_I2C 1 /* I2C with hardware support */
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
|
||||
#ifdef CONFIG_HARD_I2C
|
||||
/*
|
||||
* Hardware (CPM) I2C driver configuration
|
||||
*/
|
||||
# define CFG_I2C_SPEED 93000 /* 93 kHz is supposed to work */
|
||||
# define CFG_I2C_SLAVE 0xFE
|
||||
#endif /* CONFIG_HARD_I2C */
|
||||
|
||||
#ifdef CONFIG_SOFT_I2C
|
||||
/*
|
||||
* Software (bit-bang) I2C driver configuration
|
||||
*/
|
||||
#define PB_SCL 0x00000020 /* PB 26 */
|
||||
#define PB_SDA 0x00000010 /* PB 27 */
|
||||
|
||||
#define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
|
||||
#define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
|
||||
#define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
|
||||
#define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
|
||||
#define I2C_SDA(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SDA
|
||||
#define I2C_SCL(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
|
||||
else immr->im_cpm.cp_pbdat &= ~PB_SCL
|
||||
#define I2C_DELAY udelay(1) /* 1/4 I2C clock duration */
|
||||
#endif /* CONFIG_SOFT_I2C */
|
||||
|
||||
|
||||
#define CONFIG_RTC_PCF8563 /* use Philips PCF8563 RTC */
|
||||
|
||||
#ifdef CONFIG_POST
|
||||
#define CFG_CMD_POST_DIAG CFG_CMD_DIAG
|
||||
#else
|
||||
#define CFG_CMD_POST_DIAG 0
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_8xx_CONS_SCC2 /* Can't use ethernet, then */
|
||||
#define CONFIG_COMMANDS ( (CONFIG_CMD_DFL & ~CFG_CMD_NET) | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_I2C | \
|
||||
CFG_CMD_EEPROM | \
|
||||
CFG_CMD_IDE | \
|
||||
CFG_CMD_BSP | \
|
||||
CFG_CMD_POST_DIAG )
|
||||
#else
|
||||
#define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \
|
||||
CFG_CMD_DHCP | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_I2C | \
|
||||
CFG_CMD_EEPROM | \
|
||||
CFG_CMD_IDE | \
|
||||
CFG_CMD_BSP | \
|
||||
CFG_CMD_POST_DIAG )
|
||||
#endif
|
||||
#define CONFIG_MAC_PARTITION
|
||||
#define CONFIG_DOS_PARTITION
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#undef CFG_HUSH_PARSER /* enable "hush" shell */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x00F00000 /* 1 ... 15MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x00100000 /* default load address */
|
||||
|
||||
#define CFG_PIO_MODE 0 /* IDE interface in PIO Mode 0 */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
/*-----------------------------------------------------------------------
|
||||
* Internal Memory Mapped Register
|
||||
*/
|
||||
#define CFG_IMMR 0xFFF00000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2F00 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 64 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
*/
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_FLASH_BASE 0x40000000
|
||||
#if defined(DEBUG) || (CONFIG_COMMANDS & CFG_CMD_IDE)
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
||||
#else
|
||||
#define CFG_MONITOR_LEN (128 << 10) /* Reserve 128 kB for Monitor */
|
||||
#endif
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 128 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 180000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 600 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
#if 1
|
||||
/* Put environment in flash which is much faster to boot */
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_ADDR 0x40040000 /* Address of Environment Sector */
|
||||
#define CFG_ENV_SIZE 0x2000 /* Total Size of Environment */
|
||||
#define CFG_ENV_SECT_SIZE 0x40000 /* we have BIG sectors only :-( */
|
||||
#else
|
||||
/* Environment in EEPROM */
|
||||
#define CFG_ENV_IS_IN_EEPROM 1
|
||||
#define CFG_ENV_OFFSET 0
|
||||
#define CFG_ENV_SIZE 2048
|
||||
#endif
|
||||
/*-----------------------------------------------------------------------
|
||||
* I2C/EEPROM Configuration
|
||||
*/
|
||||
|
||||
#define CFG_I2C_AUDIO_ADDR 0x28 /* Audio volume control */
|
||||
#define CFG_I2C_SYSMON_ADDR 0x2E /* LM87 System Monitor */
|
||||
#define CFG_I2C_RTC_ADDR 0x51 /* PCF8563 RTC */
|
||||
#define CFG_I2C_POWER_A_ADDR 0x52 /* PCMCIA/USB power switch, channel A */
|
||||
#define CFG_I2C_POWER_B_ADDR 0x53 /* PCMCIA/USB power switch, channel B */
|
||||
#define CFG_I2C_KEYBD_ADDR 0x56 /* PIC LWE keyboard */
|
||||
#define CFG_I2C_PICIO_ADDR 0x57 /* PIC IO Expander */
|
||||
|
||||
#define CONFIG_USE_FRAM /* Use FRAM instead of EEPROM */
|
||||
#ifdef CONFIG_USE_FRAM /* use FRAM */
|
||||
#define CFG_I2C_EEPROM_ADDR 0x55 /* FRAM FM24CL64 */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 2
|
||||
#else /* use EEPROM */
|
||||
#define CFG_I2C_EEPROM_ADDR 0x58 /* EEPROM AT24C164 */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 1
|
||||
#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10 /* takes up to 10 msec */
|
||||
#endif /* CONFIG_USE_FRAM */
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 4
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 16 /* For all MPC8xx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 4 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
|
||||
*/
|
||||
#if 0 && defined(CONFIG_WATCHDOG) /* LWMON uses external MAX706TESA WD */
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
|
||||
SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
|
||||
#else
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | SYPCR_SWP)
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 11-6
|
||||
*-----------------------------------------------------------------------
|
||||
* PCMCIA config., multi-function pin tri-state
|
||||
*/
|
||||
/* EARB, DBGC and DBPC are initialised by the HCW */
|
||||
/* => 0x000000C0 */
|
||||
#define CFG_SIUMCR (SIUMCR_GB5E)
|
||||
/*#define CFG_SIUMCR (SIUMCR_DBGC00 | SIUMCR_DBPC00 | SIUMCR_MLRC01) */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TBSCR - Time Base Status and Control 11-26
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Reference Interrupt Status, Timebase freezing enabled
|
||||
*/
|
||||
#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 11-31
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS | PISCR_PITF)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PLPRCR - PLL, Low-Power, and Reset Control Register 15-30
|
||||
*-----------------------------------------------------------------------
|
||||
* Reset PLL lock status sticky bit, timer expired status bit and timer
|
||||
* interrupt status bit, set PLL multiplication factor !
|
||||
*/
|
||||
/* 0x00405000 */
|
||||
#define CFG_PLPRCR_MF 4 /* (4+1) * 13.2 = 66 MHz Clock */
|
||||
#define CFG_PLPRCR \
|
||||
( (CFG_PLPRCR_MF << PLPRCR_MF_SHIFT) | \
|
||||
PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST | \
|
||||
/*PLPRCR_CSRC|*/ PLPRCR_LPM_NORMAL | \
|
||||
PLPRCR_CSR /*| PLPRCR_LOLRE|PLPRCR_FIOPD*/ \
|
||||
)
|
||||
|
||||
#define CONFIG_8xx_GCLK_FREQ ((CFG_PLPRCR_MF+1)*13200000)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock and reset Control Register 15-27
|
||||
*-----------------------------------------------------------------------
|
||||
* Set clock output, timebase and RTC source and divider,
|
||||
* power management and some other internal clocks
|
||||
*/
|
||||
#define SCCR_MASK SCCR_EBDF11
|
||||
/* 0x01800000 */
|
||||
#define CFG_SCCR (SCCR_COM00 | /*SCCR_TBS|*/ \
|
||||
SCCR_RTDIV | SCCR_RTSEL | \
|
||||
/*SCCR_CRQEN|*/ /*SCCR_PRQEN|*/ \
|
||||
SCCR_EBDF00 | SCCR_DFSYNC00 | \
|
||||
SCCR_DFBRG00 | SCCR_DFNL000 | \
|
||||
SCCR_DFNH000 | SCCR_DFLCD100 | \
|
||||
SCCR_DFALCD01)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RTCSC - Real-Time Clock Status and Control Register 11-27
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* 0x00C3 => 0x0003 */
|
||||
#define CFG_RTCSC (RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RCCR - RISC Controller Configuration Register 19-4
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RCCR 0x0000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RMDS - RISC Microcode Development Support Control Register
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RMDS 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*
|
||||
* Interrupt Levels
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_CPM_INTERRUPT 13 /* SIU_LEVEL6 */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCMCIA stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
#define CFG_PCMCIA_MEM_ADDR (0x50000000)
|
||||
#define CFG_PCMCIA_MEM_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_DMA_ADDR (0x54000000)
|
||||
#define CFG_PCMCIA_DMA_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_ATTRB_ADDR (0x58000000)
|
||||
#define CFG_PCMCIA_ATTRB_SIZE ( 64 << 20 )
|
||||
#define CFG_PCMCIA_IO_ADDR (0x5C000000)
|
||||
#define CFG_PCMCIA_IO_SIZE ( 64 << 20 )
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* IDE/ATA stuff (Supports IDE harddisk on PCMCIA Adapter)
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define CONFIG_IDE_8xx_PCCARD 1 /* Use IDE with PC Card Adapter */
|
||||
|
||||
#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
|
||||
#undef CONFIG_IDE_LED /* LED for ide not supported */
|
||||
#undef CONFIG_IDE_RESET /* reset for ide not supported */
|
||||
|
||||
#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */
|
||||
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */
|
||||
|
||||
#define CFG_ATA_IDE0_OFFSET 0x0000
|
||||
|
||||
#define CFG_ATA_BASE_ADDR CFG_PCMCIA_MEM_ADDR
|
||||
|
||||
/* Offset for data I/O */
|
||||
#define CFG_ATA_DATA_OFFSET (CFG_PCMCIA_MEM_SIZE + 0x320)
|
||||
|
||||
/* Offset for normal register accesses */
|
||||
#define CFG_ATA_REG_OFFSET (2 * CFG_PCMCIA_MEM_SIZE + 0x320)
|
||||
|
||||
/* Offset for alternate registers */
|
||||
#define CFG_ATA_ALT_OFFSET 0x0100
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*
|
||||
*-----------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
/*#define CFG_DER 0x2002000F*/
|
||||
#define CFG_DER 0
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*
|
||||
* BR0/1 and OR0/1 (FLASH) - second Flash bank optional
|
||||
*/
|
||||
|
||||
#define FLASH_BASE0_PRELIM 0x40000000 /* FLASH bank #0 */
|
||||
#define FLASH_BASE1_PRELIM 0x41000000 /* FLASH bank #1 */
|
||||
|
||||
/* used to re-map FLASH:
|
||||
* restrict access enough to keep SRAM working (if any)
|
||||
* but not too much to meddle with FLASH accesses
|
||||
*/
|
||||
#define CFG_REMAP_OR_AM 0xFF000000 /* OR addr mask */
|
||||
#define CFG_PRELIM_OR_AM 0xFF000000 /* OR addr mask */
|
||||
|
||||
/* FLASH timing: ACS = 00, TRLX = 0, CSNT = 1, SCY = 8, EHTR = 0 */
|
||||
#define CFG_OR_TIMING_FLASH (OR_SCY_8_CLK)
|
||||
|
||||
#define CFG_OR0_REMAP ( CFG_REMAP_OR_AM | OR_CSNT_SAM | OR_ACS_DIV1 | OR_BI | \
|
||||
CFG_OR_TIMING_FLASH)
|
||||
#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | OR_ACS_DIV1 | OR_BI | \
|
||||
CFG_OR_TIMING_FLASH)
|
||||
/* 16 bit, bank valid */
|
||||
#define CFG_BR0_PRELIM ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_PS_32 | BR_V )
|
||||
|
||||
#define CFG_OR1_REMAP CFG_OR0_REMAP
|
||||
#define CFG_OR1_PRELIM CFG_OR0_PRELIM
|
||||
#define CFG_BR1_PRELIM ((FLASH_BASE1_PRELIM & BR_BA_MSK) | BR_PS_32 | BR_V )
|
||||
|
||||
/*
|
||||
* BR3/OR3: SDRAM
|
||||
*
|
||||
* Multiplexed addresses, GPL5 output to GPL5_A (don't care)
|
||||
*/
|
||||
#define SDRAM_BASE3_PRELIM 0x00000000 /* SDRAM bank */
|
||||
#define SDRAM_PRELIM_OR_AM 0xF0000000 /* map 256 MB (>SDRAM_MAX_SIZE!) */
|
||||
#define SDRAM_TIMING OR_SCY_0_CLK /* SDRAM-Timing */
|
||||
|
||||
#define SDRAM_MAX_SIZE 0x08000000 /* max 128 MB SDRAM */
|
||||
|
||||
#define CFG_OR3_PRELIM (SDRAM_PRELIM_OR_AM | OR_CSNT_SAM | OR_G5LS | SDRAM_TIMING )
|
||||
#define CFG_BR3_PRELIM ((SDRAM_BASE3_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
|
||||
|
||||
/*
|
||||
* BR5/OR5: Touch Panel
|
||||
*
|
||||
* AM=0xFFC00 ATM=0 CSNT/SAM=0 ACS/G5LA/G5LS=3 BIH=1 SCY=0 SETA=0 TRLX=0 EHTR=0
|
||||
*/
|
||||
#define TOUCHPNL_BASE 0x20000000
|
||||
#define TOUCHPNL_OR_AM 0xFFFF8000
|
||||
#define TOUCHPNL_TIMING OR_SCY_0_CLK
|
||||
|
||||
#define CFG_OR5_PRELIM (TOUCHPNL_OR_AM | OR_CSNT_SAM | OR_ACS_DIV1 | OR_BI | \
|
||||
TOUCHPNL_TIMING )
|
||||
#define CFG_BR5_PRELIM ((TOUCHPNL_BASE & BR_BA_MSK) | BR_PS_32 | BR_V )
|
||||
|
||||
#define CFG_MEMORY_75
|
||||
#undef CFG_MEMORY_7E
|
||||
#undef CFG_MEMORY_8E
|
||||
|
||||
/*
|
||||
* Memory Periodic Timer Prescaler
|
||||
*/
|
||||
|
||||
/* periodic timer for refresh */
|
||||
#define CFG_MPTPR 0x200
|
||||
|
||||
/*
|
||||
* MAMR settings for SDRAM
|
||||
*/
|
||||
|
||||
#define CFG_MAMR_8COL 0x80802114
|
||||
#define CFG_MAMR_9COL 0x80904114
|
||||
|
||||
/*
|
||||
* MAR setting for SDRAM
|
||||
*/
|
||||
#define CFG_MAR 0x00000088
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
415
include/configs/rsdproto.h
Normal file
415
include/configs/rsdproto.h
Normal file
@ -0,0 +1,415 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Murray Jensen <Murray.Jensen@cmst.csiro.au>
|
||||
*
|
||||
* (C) Copyright 2000
|
||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||
* Marius Groeger <mgroeger@sysgo.de>
|
||||
*
|
||||
* Configuation settings for the R&S Protocol Board board.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
|
||||
#define CONFIG_MPC8260 1 /* This is an MPC8260 CPU */
|
||||
#define CONFIG_RSD_PROTO 1 /* on a R&S Protocol Board */
|
||||
|
||||
/*
|
||||
* select serial console configuration
|
||||
*
|
||||
* if either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
|
||||
* CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
|
||||
* for SCC).
|
||||
*
|
||||
* if CONFIG_CONS_NONE is defined, then the serial console routines must
|
||||
* defined elsewhere.
|
||||
*/
|
||||
#undef CONFIG_CONS_ON_SMC /* define if console on SMC */
|
||||
#define CONFIG_CONS_ON_SCC /* define if console on SCC */
|
||||
#undef CONFIG_CONS_NONE /* define if console on neither */
|
||||
#define CONFIG_CONS_INDEX 1 /* which SMC/SCC channel for console */
|
||||
|
||||
/*
|
||||
* select ethernet configuration
|
||||
*
|
||||
* if either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected, then
|
||||
* CONFIG_ETHER_INDEX must be set to the channel number (1-4 for SCC, 1-3
|
||||
* for FCC)
|
||||
*
|
||||
* if CONFIG_ETHER_NONE is defined, then either the ethernet routines must be
|
||||
* defined elsewhere (as for the console), or CFG_CMD_NET must be removed
|
||||
* from CONFIG_COMMANDS to remove support for networking.
|
||||
*/
|
||||
#undef CONFIG_ETHER_ON_SCC /* define if ethernet on SCC */
|
||||
#define CONFIG_ETHER_ON_FCC /* define if ethernet on FCC */
|
||||
#undef CONFIG_ETHER_NONE /* define if ethernet on neither */
|
||||
#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)
|
||||
* - Enable Full Duplex in FSMR
|
||||
*/
|
||||
# define CFG_CMXFCR_MASK (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
|
||||
# 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_ETHER_INDEX */
|
||||
|
||||
|
||||
/* allow to overwrite serial and ethaddr */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
/* enable I2C */
|
||||
#define CONFIG_HARD_I2C 1 /* I2C with hardware support */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
|
||||
/* system clock rate (CLKIN) - equal to the 60x and local bus speed */
|
||||
#define CONFIG_8260_CLKIN 50000000 /* in Hz */
|
||||
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL & ~CFG_CMD_KGDB)
|
||||
|
||||
/* Define this if you want to boot from 0x00000100. If you don't define
|
||||
* this, you will need to program the bootloader to 0xfff00000, and
|
||||
* get the hardware reset config words at 0xfe000000. The simplest
|
||||
* way to do that is to program the bootloader at both addresses.
|
||||
* It is suggested that you just let U-Boot live at 0x00000000.
|
||||
*/
|
||||
#define CFG_RSD_BOOT_LOW 1
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#define CONFIG_BOOTDELAY 5
|
||||
#define CONFIG_BOOTARGS "devfs=mount root=ramfs"
|
||||
#define CONFIG_ETHADDR 08:00:3e:26:0a:5a
|
||||
#define CONFIG_NETMASK 255.255.0.0
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */
|
||||
#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00400000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x01c00000 /* 4 ... 28 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
/* valid baudrates */
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
|
||||
/*
|
||||
* Low Level Configuration Settings
|
||||
* (address mappings, register initial values, etc.)
|
||||
* You should know what you are doing if you make changes here.
|
||||
*/
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Physical Memory Map
|
||||
*/
|
||||
#define PHYS_SDRAM_60X 0x00000000 /* SDRAM (60x Bus) */
|
||||
#define PHYS_SDRAM_60X_SIZE 0x08000000 /* 128 MB */
|
||||
|
||||
#define PHYS_SDRAM_LOCAL 0x40000000 /* SDRAM (Local Bus) */
|
||||
#define PHYS_SDRAM_LOCAL_SIZE 0x04000000 /* 64 MB */
|
||||
|
||||
#define PHYS_DPRAM_PCI 0xE8000000 /* DPRAM PPC/PCI */
|
||||
#define PHYS_DPRAM_PCI_SIZE 0x00020000 /* 128 KB */
|
||||
|
||||
/*#define PHYS_DPRAM_PCI_SEM 0x04020000 / * DPRAM PPC/PCI Semaphore */
|
||||
/*#define PHYS_DPRAM_PCI_SEM_SIZE 0x00000001 / * 1 Byte */
|
||||
|
||||
#define PHYS_DPRAM_SHARC 0xE8100000 /* DPRAM PPC/Sharc */
|
||||
#define PHYS_DPRAM_SHARC_SIZE 0x00040000 /* 256 KB */
|
||||
|
||||
/*#define PHYS_DPRAM_SHARC_SEM 0x04140000 / * DPRAM PPC/Sharc Semaphore */
|
||||
/*#define PHYS_DPRAM_SHARC_SEM_SIZE 0x00000001 / * 1 Byte */
|
||||
|
||||
#define PHYS_VIRTEX_REGISTER 0xE8300000 /* FPGA implemented register */
|
||||
#define PHYS_VIRTEX_REGISTER_SIZE 0x00000100
|
||||
|
||||
#define PHYS_USB 0x04200000 /* USB Controller (60x Bus) */
|
||||
#define PHYS_USB_SIZE 0x00000002 /* 2 Bytes */
|
||||
|
||||
#define PHYS_IMMR 0xF0000000 /* Internal Memory Mapped Reg. */
|
||||
|
||||
#define PHYS_FLASH 0xFF000000 /* Flash (60x Bus) */
|
||||
#define PHYS_FLASH_SIZE 0x01000000 /* 16 MB */
|
||||
|
||||
#define CFG_IMMR PHYS_IMMR
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Reset Address
|
||||
*
|
||||
* In order to reset the CPU, U-Boot jumps to a special address which
|
||||
* causes a machine check exception. The default address for this is
|
||||
* CFG_MONITOR_BASE - sizeof (ulong), which might not always work, eg. when
|
||||
* testing the monitor in RAM using a JTAG debugger.
|
||||
*
|
||||
* Just set CFG_RESET_ADDRESS to an address that you know is sure to
|
||||
* cause a bus error on your hardware.
|
||||
*/
|
||||
#define CFG_RESET_ADDRESS 0x20000000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Hard Reset Configuration Words
|
||||
*/
|
||||
|
||||
#if defined(CFG_RSD_BOOT_LOW)
|
||||
# define CFG_RSD_HRCW_BOOT_FLAGS (HRCW_CIP | HRCW_BMS)
|
||||
#else
|
||||
# define CFG_RSD_HRCW_BOOT_FLAGS (0)
|
||||
#endif /* defined(CFG_RSD_BOOT_LOW) */
|
||||
|
||||
/* get the HRCW ISB field from CFG_IMMR */
|
||||
#define CFG_RSD_HRCW_IMMR ( ((CFG_IMMR & 0x10000000) >> 10) |\
|
||||
((CFG_IMMR & 0x01000000) >> 7) |\
|
||||
((CFG_IMMR & 0x00100000) >> 4) )
|
||||
|
||||
#define CFG_HRCW_MASTER (HRCW_L2CPC10 | \
|
||||
HRCW_DPPC11 | \
|
||||
CFG_RSD_HRCW_IMMR |\
|
||||
HRCW_MMR00 | \
|
||||
HRCW_APPC10 | \
|
||||
HRCW_CS10PC00 | \
|
||||
HRCW_MODCK_H0000 |\
|
||||
CFG_RSD_HRCW_BOOT_FLAGS)
|
||||
|
||||
/* no slaves */
|
||||
#define CFG_HRCW_SLAVE1 0
|
||||
#define CFG_HRCW_SLAVE2 0
|
||||
#define CFG_HRCW_SLAVE3 0
|
||||
#define CFG_HRCW_SLAVE4 0
|
||||
#define CFG_HRCW_SLAVE5 0
|
||||
#define CFG_HRCW_SLAVE6 0
|
||||
#define CFG_HRCW_SLAVE7 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions for initial stack pointer and data area (in DPRAM)
|
||||
*/
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x4000 /* 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
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Start addresses for the final memory configuration
|
||||
* (Set up by the startup code)
|
||||
* Please note that CFG_SDRAM_BASE _must_ start at 0
|
||||
* Note also that the logic that sets CFG_RAMBOOT is platform dependend.
|
||||
*/
|
||||
#define CFG_SDRAM_BASE PHYS_SDRAM_60X
|
||||
#define CFG_FLASH_BASE PHYS_FLASH
|
||||
/*#define CFG_MONITOR_BASE 0x200000 */
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
#if CFG_MONITOR_BASE < CFG_FLASH_BASE
|
||||
#define CFG_RAMBOOT
|
||||
#endif
|
||||
#define CFG_MONITOR_LEN (160 << 10) /* Reserve 160 kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH and environment organization
|
||||
*/
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
|
||||
#define CFG_MAX_FLASH_SECT 63 /* max number of sectors on one chip */
|
||||
|
||||
#define CFG_FLASH_ERASE_TOUT 12000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 3000 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
/* turn off NVRAM env feature */
|
||||
#undef CONFIG_NVRAM_ENV
|
||||
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_ADDR (PHYS_FLASH + 0x28000) /* Addr of Environment Sector */
|
||||
#define CFG_ENV_SECT_SIZE 0x8000 /* Total Size of Environment Sector */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*/
|
||||
#define CFG_CACHELINE_SIZE 32 /* For MPC8260 CPU */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* HIDx - Hardware Implementation-dependent Registers 2-11
|
||||
*-----------------------------------------------------------------------
|
||||
* HID0 also contains cache control - initially enable both caches and
|
||||
* invalidate contents, then the final state leaves only the instruction
|
||||
* cache enabled. Note that Power-On and Hard reset invalidate the caches,
|
||||
* but Soft reset does not.
|
||||
*
|
||||
* HID1 has only read-only information - nothing to set.
|
||||
*/
|
||||
#define CFG_HID0_INIT (HID0_ICE|HID0_DCE|HID0_ICFI|HID0_DCI|HID0_IFEM|HID0_ABE)
|
||||
#define CFG_HID0_FINAL (HID0_ICE|HID0_IFEM|HID0_ABE|HID0_EMCP)
|
||||
#define CFG_HID2 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RMR - Reset Mode Register
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RMR 0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* BCR - Bus Configuration 4-25
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_BCR 0x100c0000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration 4-31
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define CFG_SIUMCR (SIUMCR_DPPC11 | SIUMCR_L2CPC10 | SIUMCR_APPC10 | \
|
||||
SIUMCR_CS10PC01 | SIUMCR_BCTLC01)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SYPCR - System Protection Control 11-9
|
||||
* SYPCR can only be written once after reset!
|
||||
*-----------------------------------------------------------------------
|
||||
* Watchdog & Bus Monitor Timer max, 60x Bus Monitor enable
|
||||
*/
|
||||
#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_PBME | SYPCR_LBME | \
|
||||
SYPCR_SWRI | SYPCR_SWP)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* TMCNTSC - Time Counter Status and Control 4-40
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear once per Second and Alarm Interrupt Status, Set 32KHz timersclk,
|
||||
* and enable Time Counter
|
||||
*/
|
||||
#define CFG_TMCNTSC (TMCNTSC_SEC | TMCNTSC_ALR | TMCNTSC_TCF | TMCNTSC_TCE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PISCR - Periodic Interrupt Status and Control 4-42
|
||||
*-----------------------------------------------------------------------
|
||||
* Clear Periodic Interrupt Status, Set 32KHz timersclk, and enable
|
||||
* Periodic timer
|
||||
*/
|
||||
#define CFG_PISCR (PISCR_PS|PISCR_PTF|PISCR_PTE)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock Control 9-8
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_SCCR 0x00000000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* RCCR - RISC Controller Configuration 13-7
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_RCCR 0
|
||||
|
||||
/*
|
||||
* Init Memory Controller:
|
||||
*/
|
||||
|
||||
#define CFG_PSDMR 0x494D2452
|
||||
#define CFG_LSDMR 0x49492552
|
||||
|
||||
/* Flash */
|
||||
#define CFG_BR0_PRELIM (PHYS_FLASH | BRx_V)
|
||||
#define CFG_OR0_PRELIM (P2SZ_TO_AM(PHYS_FLASH_SIZE) | \
|
||||
ORxG_BCTLD | \
|
||||
ORxG_SCY_5_CLK)
|
||||
|
||||
/* DPRAM to the PCI BUS on the protocol board */
|
||||
#define CFG_BR1_PRELIM (PHYS_DPRAM_PCI | BRx_V)
|
||||
#define CFG_OR1_PRELIM (P2SZ_TO_AM(PHYS_DPRAM_PCI_SIZE) | \
|
||||
ORxG_ACS_DIV4)
|
||||
|
||||
/* 60x Bus SDRAM */
|
||||
#define CFG_BR2_PRELIM (PHYS_SDRAM_60X | BRx_MS_SDRAM_P | BRx_V)
|
||||
#define CFG_OR2_PRELIM (ORxS_SIZE_TO_AM(PHYS_SDRAM_60X_SIZE) | \
|
||||
ORxS_BPD_4 | \
|
||||
ORxS_ROWST_PBI1_A2 | \
|
||||
ORxS_NUMR_13 | \
|
||||
ORxS_IBID)
|
||||
|
||||
/* Virtex-FPGA - Register */
|
||||
#define CFG_BR3_PRELIM (PHYS_VIRTEX_REGISTER | BRx_V)
|
||||
#define CFG_OR3_PRELIM (ORxS_SIZE_TO_AM(PHYS_VIRTEX_REGISTER_SIZE) | \
|
||||
ORxG_SCY_1_CLK | \
|
||||
ORxG_ACS_DIV2 | \
|
||||
ORxG_CSNT )
|
||||
|
||||
/* local bus SDRAM */
|
||||
#define CFG_BR4_PRELIM (PHYS_SDRAM_LOCAL | BRx_PS_32 | BRx_MS_SDRAM_L | BRx_V)
|
||||
#define CFG_OR4_PRELIM (ORxS_SIZE_TO_AM(PHYS_SDRAM_LOCAL_SIZE) | \
|
||||
ORxS_BPD_4 | \
|
||||
ORxS_ROWST_PBI1_A4 | \
|
||||
ORxS_NUMR_13)
|
||||
|
||||
/* DPRAM to the Sharc-Bus on the protocol board */
|
||||
#define CFG_BR5_PRELIM (PHYS_DPRAM_SHARC | BRx_V)
|
||||
#define CFG_OR5_PRELIM (P2SZ_TO_AM(PHYS_DPRAM_SHARC_SIZE) | \
|
||||
ORxG_ACS_DIV4)
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#endif /* __CONFIG_H */
|
87
include/linux/mtd/nand.h
Normal file
87
include/linux/mtd/nand.h
Normal file
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* u-boot/include/linux/mtd/nand.h
|
||||
*
|
||||
* Copyright (c) 2000 David Woodhouse <dwmw2@mvhi.com>
|
||||
* Steven J. Hill <sjhill@cotw.com>
|
||||
*
|
||||
* $Id: nand.h,v 1.8 2000/10/30 17:16:17 sjhill Exp $
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Info:
|
||||
* Contains standard defines and IDs for NAND flash devices
|
||||
*
|
||||
* Changelog:
|
||||
* 01-31-2000 DMW Created
|
||||
* 09-18-2000 SJH Moved structure out of the Disk-On-Chip drivers
|
||||
* so it can be used by other NAND flash device
|
||||
* drivers. I also changed the copyright since none
|
||||
* of the original contents of this file are specific
|
||||
* to DoC devices. David can whack me with a baseball
|
||||
* bat later if I did something naughty.
|
||||
* 10-11-2000 SJH Added private NAND flash structure for driver
|
||||
* 10-24-2000 SJH Added prototype for 'nand_scan' function
|
||||
*/
|
||||
#ifndef __LINUX_MTD_NAND_H
|
||||
#define __LINUX_MTD_NAND_H
|
||||
|
||||
/*
|
||||
* Standard NAND flash commands
|
||||
*/
|
||||
#define NAND_CMD_READ0 0
|
||||
#define NAND_CMD_READ1 1
|
||||
#define NAND_CMD_PAGEPROG 0x10
|
||||
#define NAND_CMD_READOOB 0x50
|
||||
#define NAND_CMD_ERASE1 0x60
|
||||
#define NAND_CMD_STATUS 0x70
|
||||
#define NAND_CMD_SEQIN 0x80
|
||||
#define NAND_CMD_READID 0x90
|
||||
#define NAND_CMD_ERASE2 0xd0
|
||||
#define NAND_CMD_RESET 0xff
|
||||
|
||||
/*
|
||||
* NAND Flash Manufacturer ID Codes
|
||||
*/
|
||||
#define NAND_MFR_TOSHIBA 0x98
|
||||
#define NAND_MFR_SAMSUNG 0xec
|
||||
|
||||
/*
|
||||
* NAND Flash Device ID Structure
|
||||
*
|
||||
* Structure overview:
|
||||
*
|
||||
* name - Complete name of device
|
||||
*
|
||||
* manufacture_id - manufacturer ID code of device.
|
||||
*
|
||||
* model_id - model ID code of device.
|
||||
*
|
||||
* chipshift - total number of address bits for the device which
|
||||
* is used to calculate address offsets and the total
|
||||
* number of bytes the device is capable of.
|
||||
*
|
||||
* page256 - denotes if flash device has 256 byte pages or not.
|
||||
*
|
||||
* pageadrlen - number of bytes minus one needed to hold the
|
||||
* complete address into the flash array. Keep in
|
||||
* mind that when a read or write is done to a
|
||||
* specific address, the address is input serially
|
||||
* 8 bits at a time. This structure member is used
|
||||
* by the read/write routines as a loop index for
|
||||
* shifting the address out 8 bits at a time.
|
||||
*
|
||||
* erasesize - size of an erase block in the flash device.
|
||||
*/
|
||||
struct nand_flash_dev {
|
||||
char * name;
|
||||
int manufacture_id;
|
||||
int model_id;
|
||||
int chipshift;
|
||||
char page256;
|
||||
char pageadrlen;
|
||||
unsigned long erasesize;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_MTD_NAND_H */
|
52
include/linux/mtd/nand_ids.h
Normal file
52
include/linux/mtd/nand_ids.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* u-boot/include/linux/mtd/nand_ids.h
|
||||
*
|
||||
* Copyright (c) 2000 David Woodhouse <dwmw2@mvhi.com>
|
||||
* Steven J. Hill <sjhill@cotw.com>
|
||||
*
|
||||
* $Id: nand_ids.h,v 1.1 2000/10/13 16:16:26 mdeans Exp $
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Info:
|
||||
* Contains standard defines and IDs for NAND flash devices
|
||||
*
|
||||
* Changelog:
|
||||
* 01-31-2000 DMW Created
|
||||
* 09-18-2000 SJH Moved structure out of the Disk-On-Chip drivers
|
||||
* so it can be used by other NAND flash device
|
||||
* drivers. I also changed the copyright since none
|
||||
* of the original contents of this file are specific
|
||||
* to DoC devices. David can whack me with a baseball
|
||||
* bat later if I did something naughty.
|
||||
* 10-11-2000 SJH Added private NAND flash structure for driver
|
||||
* 2000-10-13 BE Moved out of 'nand.h' - avoids duplication.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_MTD_NAND_IDS_H
|
||||
#define __LINUX_MTD_NAND_IDS_H
|
||||
|
||||
static struct nand_flash_dev nand_flash_ids[] = {
|
||||
{"Toshiba TC5816BDC", NAND_MFR_TOSHIBA, 0x64, 21, 1, 2, 0x1000},
|
||||
{"Toshiba TC5832DC", NAND_MFR_TOSHIBA, 0x6b, 22, 0, 2, 0x2000},
|
||||
{"Toshiba TH58V128DC", NAND_MFR_TOSHIBA, 0x73, 24, 0, 2, 0x4000},
|
||||
{"Toshiba TC58256FT/DC", NAND_MFR_TOSHIBA, 0x75, 25, 0, 2, 0x4000},
|
||||
{"Toshiba TH58512FT", NAND_MFR_TOSHIBA, 0x76, 26, 0, 3, 0x4000},
|
||||
{"Toshiba TC58V32DC", NAND_MFR_TOSHIBA, 0xe5, 22, 0, 2, 0x2000},
|
||||
{"Toshiba TC58V64AFT/DC", NAND_MFR_TOSHIBA, 0xe6, 23, 0, 2, 0x2000},
|
||||
{"Toshiba TC58V16BDC", NAND_MFR_TOSHIBA, 0xea, 21, 1, 2, 0x1000},
|
||||
{"Samsung KM29N16000", NAND_MFR_SAMSUNG, 0x64, 21, 1, 2, 0x1000},
|
||||
{"Samsung unknown 4Mb", NAND_MFR_SAMSUNG, 0x6b, 22, 0, 2, 0x2000},
|
||||
{"Samsung KM29U128T", NAND_MFR_SAMSUNG, 0x73, 24, 0, 2, 0x4000},
|
||||
{"Samsung KM29U256T", NAND_MFR_SAMSUNG, 0x75, 25, 0, 2, 0x4000},
|
||||
{"Samsung unknown 64Mb", NAND_MFR_SAMSUNG, 0x76, 26, 0, 3, 0x4000},
|
||||
{"Samsung KM29W32000", NAND_MFR_SAMSUNG, 0xe3, 22, 0, 2, 0x2000},
|
||||
{"Samsung unknown 4Mb", NAND_MFR_SAMSUNG, 0xe5, 22, 0, 2, 0x2000},
|
||||
{"Samsung KM29U64000", NAND_MFR_SAMSUNG, 0xe6, 23, 0, 2, 0x2000},
|
||||
{"Samsung KM29W16000", NAND_MFR_SAMSUNG, 0xea, 21, 1, 2, 0x1000},
|
||||
{NULL,}
|
||||
};
|
||||
|
||||
#endif /* __LINUX_MTD_NAND_IDS_H */
|
Loading…
Reference in New Issue
Block a user