Add support for TB5200 board

The TB5200 ("Tinybox") is a small baseboard for the TQM5200 module
integrated in a little aluminium case.
Patch by Martin Krause, 8 Jun 2006

Some code cleanup
This commit is contained in:
Wolfgang Denk 2006-07-19 13:50:38 +02:00
parent f3e06df7e8
commit b87dfd2854
29 changed files with 871 additions and 287 deletions

View File

@ -2,6 +2,11 @@
Changes since U-Boot 1.1.4: Changes since U-Boot 1.1.4:
====================================================================== ======================================================================
* Add support for TB5200 board
The TB5200 ("Tinybox") is a small baseboard for the TQM5200 module
integrated in a little aluminium case.
Patch by Martin Krause, 8 Jun 2006
* Enable buffered flash writes for TQM5200 board. * Enable buffered flash writes for TQM5200 board.
* Fix problems with SanDisk Corporation Cruzer Micro USB memory stick. * Fix problems with SanDisk Corporation Cruzer Micro USB memory stick.
@ -18,7 +23,7 @@ Changes since U-Boot 1.1.4:
* Add support for SPC1920 board. * Add support for SPC1920 board.
Patch by Markus Klotzbuecher, 12 Jul 2006 Patch by Markus Klotzbuecher, 12 Jul 2006
* MCC200 board: support console on any one of the Quad UART ports. * MCC200 board: support console on any one of the Quad UART ports.
* Fix error in flash protection calculation on MCC200 board. * Fix error in flash protection calculation on MCC200 board.
@ -60,14 +65,14 @@ Changes since U-Boot 1.1.4:
* VoiceBlue update: use new MTD flash partitioning methods, use more * VoiceBlue update: use new MTD flash partitioning methods, use more
reasonable TEXT_BASE, update default environment and enable keyed reasonable TEXT_BASE, update default environment and enable keyed
autoboot. autoboot.
Patch by Ladislav Michl, 16. Aug 2005 Patch by Ladislav Michl, 16. Aug 2005
* Add forgotten changes for the PLEB 2 Board. * Add forgotten changes for the PLEB 2 Board.
Patch by David Snowdon, 13. Aug 2005 Patch by David Snowdon, 13. Aug 2005
* Add support for wrPPMC7xx/74xx boards * Add support for wrPPMC7xx/74xx boards
Patch by Richard Danter, 12 Aug 2005 Patch by Richard Danter, 12 Aug 2005
* Add support for gth2 board * Add support for gth2 board
Patch by Thomas Lange, Aug 11 2005 Patch by Thomas Lange, Aug 11 2005
@ -89,7 +94,7 @@ Changes since U-Boot 1.1.4:
With this fix pin I2CSCL (PG6) is really configured as GPIO With this fix pin I2CSCL (PG6) is really configured as GPIO
so the clock pulses are really generated. so the clock pulses are really generated.
Patch by Martin Krause, 04 Apr 2006 Patch by Martin Krause, 04 Apr 2006
* Fix DDR6 errata on TQM834x boards * Fix DDR6 errata on TQM834x boards
Patch by Thomas Waehner, 07 Mar 2006 Patch by Thomas Waehner, 07 Mar 2006
@ -106,7 +111,7 @@ Changes since U-Boot 1.1.4:
has been programmed. Jumper Settings: X66 1-2, 9-10; X61 2-3 has been programmed. Jumper Settings: X66 1-2, 9-10; X61 2-3
* Fix TRAB channel switching delay for trab_fkt.bin standalone applikation * Fix TRAB channel switching delay for trab_fkt.bin standalone applikation
In tsc2000_read_channel() the delay after setting the multiplexer In tsc2000_read_channel() the delay after setting the multiplexer
to a temperature channel is increased from 1,5 ms to 10 ms. This to a temperature channel is increased from 1,5 ms to 10 ms. This
is to allow the multiplexer inputs to stabilize after huge steps is to allow the multiplexer inputs to stabilize after huge steps
of the input signal level. of the input signal level.

View File

@ -360,6 +360,11 @@ spieval_config: unconfig
@echo "... with automatic CS configuration" @echo "... with automatic CS configuration"
@./mkconfig -a spieval ppc mpc5xxx tqm5200 @./mkconfig -a spieval ppc mpc5xxx tqm5200
TB5200_config: unconfig
@echo "#define CONFIG_CS_AUTOCONF">>include/config.h
@echo "... with automatic CS configuration"
@./mkconfig -a TB5200 ppc mpc5xxx tqm5200
MINI5200_config \ MINI5200_config \
EVAL5200_config \ EVAL5200_config \
TOP5200_config: unconfig TOP5200_config: unconfig
@ -1461,7 +1466,7 @@ ZUMA_config: unconfig
ppmc7xx_config: unconfig ppmc7xx_config: unconfig
@./mkconfig $(@:_config=) ppc 74xx_7xx ppmc7xx @./mkconfig $(@:_config=) ppc 74xx_7xx ppmc7xx
#======================================================================== #========================================================================
# ARM # ARM
#======================================================================== #========================================================================

View File

@ -30,7 +30,7 @@
#include <asm/byteorder.h> #include <asm/byteorder.h>
extern void print_evb440spe_info(void); extern void print_evb440spe_info(void);
static int setBootStrapClock(cmd_tbl_t *cmdtp, int incrflag, static int setBootStrapClock(cmd_tbl_t *cmdtp, int incrflag,
int flag, int argc, char *argv[]); int flag, int argc, char *argv[]);
extern int cmd_get_data_size(char* arg, int default_size); extern int cmd_get_data_size(char* arg, int default_size);

View File

@ -1004,7 +1004,7 @@ unsigned long flash_init(void)
} }
} /*else if (index == 0) {*/ } /*else if (index == 0) {*/
/* if (in8(FPGA_SETTING_REG) & FPGA_SET_REG_OP_CODE_FLASH_ABOVE)*/ /* if (in8(FPGA_SETTING_REG) & FPGA_SET_REG_OP_CODE_FLASH_ABOVE)*/
/* index = 8;*//* sram below op code flash -> new index 8*/ /* index = 8;*/ /* sram below op code flash -> new index 8*/
/* }*/ /* }*/
DEBUGF("\n"); DEBUGF("\n");

View File

@ -102,4 +102,3 @@ tlbtab:
tlbentry(CFG_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) tlbentry(CFG_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I) tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I)
tlbtab_end tlbtab_end

View File

@ -1094,4 +1094,3 @@ unsigned long ppcMfsdr(unsigned long sdr_reg)
return (sdr_value); return (sdr_value);
} }

View File

@ -39,4 +39,3 @@ TEXT_BASE = 0x90000000
endif endif
endif endif
endif endif

View File

@ -8,7 +8,7 @@
For documentaion, see data sheet for DS2438, 2438.pdf For documentaion, see data sheet for DS2438, 2438.pdf
By Thomas.Lange@corelatus.com 001025 By Thomas.Lange@corelatus.com 001025
Copyright (C) 2000-2005 Corelatus AB */ Copyright (C) 2000-2005 Corelatus AB */
/* This program is free software; you can redistribute it and/or /* This program is free software; you can redistribute it and/or
@ -105,7 +105,7 @@ static u8 make_new_crc( u8 Old_crc, u8 New_value ){
/* Compute a new checksum with new byte, using previous checksum as input /* Compute a new checksum with new byte, using previous checksum as input
See DS app note 17, understanding and using cyclic redundancy checks... See DS app note 17, understanding and using cyclic redundancy checks...
Also see DS2438, page 11 */ Also see DS2438, page 11 */
return( crc_lookup[Old_crc ^ New_value ]); return( crc_lookup[Old_crc ^ New_value ]);
} }
int ee_crc_ok( u8 *Buffer, int Len, u8 Crc ){ int ee_crc_ok( u8 *Buffer, int Len, u8 Crc ){
@ -119,16 +119,16 @@ int ee_crc_ok( u8 *Buffer, int Len, u8 Crc ){
Curr_byte++; Curr_byte++;
} }
E_DEBUG("Calculated CRC = 0x%x, read = 0x%x\n", Curr_crc, Crc); E_DEBUG("Calculated CRC = 0x%x, read = 0x%x\n", Curr_crc, Crc);
if(Curr_crc == Crc){ if(Curr_crc == Crc){
/* Good */ /* Good */
return(TRUE); return(TRUE);
} }
printk(KERN_ERR"EE checksum error, Calculated CRC = 0x%x, read = 0x%x\n", Curr_crc, Crc); printk(KERN_ERR"EE checksum error, Calculated CRC = 0x%x, read = 0x%x\n", Curr_crc, Crc);
return(FALSE); return(FALSE);
} }
static void static void
set_idle(void){ set_idle(void){
/* Send idle and keep start time /* Send idle and keep start time
Continous 1 is idle */ Continous 1 is idle */
@ -136,7 +136,7 @@ set_idle(void){
} }
static int static int
do_cpu_reset(void){ do_cpu_reset(void){
/* Release reset and verify that chip responds with presence pulse */ /* Release reset and verify that chip responds with presence pulse */
int Retries=0; int Retries=0;
@ -146,10 +146,10 @@ do_cpu_reset(void){
/* Send reset */ /* Send reset */
WRITE_PORT(0); WRITE_PORT(0);
udelay(RESET_LOW_TIME); udelay(RESET_LOW_TIME);
/* Release reset */ /* Release reset */
WRITE_PORT(1); WRITE_PORT(1);
/* Wait for EEPROM to drive output */ /* Wait for EEPROM to drive output */
udelay(PRESENCE_TIMEOUT); udelay(PRESENCE_TIMEOUT);
if(!READ_PORT){ if(!READ_PORT){
@ -166,17 +166,17 @@ do_cpu_reset(void){
} }
printk(KERN_ERR"eeprom did not respond when releasing reset\n"); printk(KERN_ERR"eeprom did not respond when releasing reset\n");
/* Make sure chip releases pin */ /* Make sure chip releases pin */
udelay(PRESENCE_LOW_TIME); udelay(PRESENCE_LOW_TIME);
/* Set to idle again */ /* Set to idle again */
set_idle(); set_idle();
return(-EIO); return(-EIO);
} }
static u8 static u8
read_cpu_byte(void){ read_cpu_byte(void){
/* Read a single byte from EEPROM /* Read a single byte from EEPROM
Read LSb first */ Read LSb first */
@ -186,36 +186,36 @@ read_cpu_byte(void){
u32 Flags; u32 Flags;
E_DEBUG("Reading byte\n"); E_DEBUG("Reading byte\n");
for(i=0;i<8;i++){ for(i=0;i<8;i++){
/* Small delay between pulses */ /* Small delay between pulses */
udelay(1); udelay(1);
#ifdef __KERNEL__ #ifdef __KERNEL__
/* Disable irq */ /* Disable irq */
save_flags(Flags); save_flags(Flags);
cli(); cli();
#endif #endif
/* Pull down pin short time to start read /* Pull down pin short time to start read
See page 26 in data sheet */ See page 26 in data sheet */
WRITE_PORT(0); WRITE_PORT(0);
udelay(READ_LOW); udelay(READ_LOW);
WRITE_PORT(1); WRITE_PORT(1);
/* Wait for chip to drive pin */ /* Wait for chip to drive pin */
udelay(READ_TIMEOUT); udelay(READ_TIMEOUT);
Value = READ_PORT; Value = READ_PORT;
if(Value) if(Value)
Value=1; Value=1;
#ifdef __KERNEL__ #ifdef __KERNEL__
/* Enable irq */ /* Enable irq */
restore_flags(Flags); restore_flags(Flags);
#endif #endif
/* Wait for chip to release pin */ /* Wait for chip to release pin */
udelay(TOTAL_READ_LOW-READ_TIMEOUT); udelay(TOTAL_READ_LOW-READ_TIMEOUT);
@ -230,30 +230,30 @@ read_cpu_byte(void){
return(Result); return(Result);
} }
static void static void
write_cpu_byte(u8 Byte){ write_cpu_byte(u8 Byte){
/* Write a single byte to EEPROM /* Write a single byte to EEPROM
Write LSb first */ Write LSb first */
int i; int i;
int Value; int Value;
u32 Flags; u32 Flags;
E_DEBUG("Writing byte 0x%x\n",Byte); E_DEBUG("Writing byte 0x%x\n",Byte);
for(i=0;i<8;i++){ for(i=0;i<8;i++){
/* Small delay between pulses */ /* Small delay between pulses */
udelay(1); udelay(1);
Value = Byte&1; Value = Byte&1;
#ifdef __KERNEL__ #ifdef __KERNEL__
/* Disable irq */ /* Disable irq */
save_flags(Flags); save_flags(Flags);
cli(); cli();
#endif #endif
/* Pull down pin short time for a 1, long time for a 0 /* Pull down pin short time for a 1, long time for a 0
See page 26 in data sheet */ See page 26 in data sheet */
WRITE_PORT(0); WRITE_PORT(0);
if(Value){ if(Value){
/* Write a 1 */ /* Write a 1 */
@ -267,54 +267,54 @@ write_cpu_byte(u8 Byte){
WRITE_PORT(1); WRITE_PORT(1);
#ifdef __KERNEL__ #ifdef __KERNEL__
/* Enable irq */ /* Enable irq */
restore_flags(Flags); restore_flags(Flags);
#endif #endif
if(Value) if(Value)
/* Wait for chip to read the 1 */ /* Wait for chip to read the 1 */
udelay(TOTAL_WRITE_LOW-WRITE_1_LOW); udelay(TOTAL_WRITE_LOW-WRITE_1_LOW);
/* E_DEBUG("Wrote %d\n",Value); */ /* E_DEBUG("Wrote %d\n",Value); */
Byte>>=1; Byte>>=1;
} }
} }
int ee_do_cpu_command( u8 *Tx, int Tx_len, u8 *Rx, int Rx_len, int Send_skip ){ int ee_do_cpu_command( u8 *Tx, int Tx_len, u8 *Rx, int Rx_len, int Send_skip ){
/* Execute this command string, including /* Execute this command string, including
giving reset and setting to idle after command giving reset and setting to idle after command
if Rx_len is set, we read out data from EEPROM */ if Rx_len is set, we read out data from EEPROM */
int i; int i;
E_DEBUG("Command, Tx_len %d, Rx_len %d\n", Tx_len, Rx_len ); E_DEBUG("Command, Tx_len %d, Rx_len %d\n", Tx_len, Rx_len );
if(do_cpu_reset()){ if(do_cpu_reset()){
/* Failed! */ /* Failed! */
return(-EIO); return(-EIO);
} }
if(Send_skip) if(Send_skip)
/* Always send SKIP_ROM first to tell chip we are sending a command, /* Always send SKIP_ROM first to tell chip we are sending a command,
except when we read out rom data for chip */ except when we read out rom data for chip */
write_cpu_byte(SKIP_ROM); write_cpu_byte(SKIP_ROM);
/* Always have Tx data */ /* Always have Tx data */
for(i=0;i<Tx_len;i++){ for(i=0;i<Tx_len;i++){
write_cpu_byte(Tx[i]); write_cpu_byte(Tx[i]);
} }
if(Rx_len){ if(Rx_len){
for(i=0;i<Rx_len;i++){ for(i=0;i<Rx_len;i++){
Rx[i]=read_cpu_byte(); Rx[i]=read_cpu_byte();
} }
} }
set_idle(); set_idle();
E_DEBUG("Command done\n"); E_DEBUG("Command done\n");
return(0); return(0);
} }
int ee_init_cpu_data(void){ int ee_init_cpu_data(void){
int i; int i;
@ -323,7 +323,7 @@ int ee_init_cpu_data(void){
/* Leave it floting since altera is driving the same pin */ /* Leave it floting since altera is driving the same pin */
set_idle(); set_idle();
/* Copy all User EEPROM data to scratchpad */ /* Copy all User EEPROM data to scratchpad */
for(i=0;i<USER_PAGES;i++){ for(i=0;i<USER_PAGES;i++){
Tx[0]=RECALL_MEMORY; Tx[0]=RECALL_MEMORY;
Tx[1]=EE_USER_PAGE_0+i; Tx[1]=EE_USER_PAGE_0+i;
@ -332,16 +332,16 @@ int ee_init_cpu_data(void){
/* Make sure chip doesnt store measurements in NVRAM */ /* Make sure chip doesnt store measurements in NVRAM */
Tx[0]=WRITE_SCRATCHPAD; Tx[0]=WRITE_SCRATCHPAD;
Tx[1]=0; /* Page */ Tx[1]=0; /* Page */
Tx[2]=9; Tx[2]=9;
if(ee_do_cpu_command(Tx,3,NULL,0,TRUE)) return(-EIO); if(ee_do_cpu_command(Tx,3,NULL,0,TRUE)) return(-EIO);
Tx[0]=COPY_SCRATCHPAD; Tx[0]=COPY_SCRATCHPAD;
if(ee_do_cpu_command(Tx,2,NULL,0,TRUE)) return(-EIO); if(ee_do_cpu_command(Tx,2,NULL,0,TRUE)) return(-EIO);
for(i=0;i<10;i++){ for(i=0;i<10;i++){
udelay(1000); udelay(1000);
} }
return(0); return(0);
} }

View File

@ -21,7 +21,7 @@ int ee_crc_ok( u8 *Buffer, int Len, u8 Crc );
#define EE_BUSY 0x40000000 #define EE_BUSY 0x40000000
#define EE_ERROR 0x20000000 #define EE_ERROR 0x20000000
/* Commands */ /* Commands */
#define EE_CMD_NOP 0 #define EE_CMD_NOP 0
#define EE_CMD_INIT_RES 1 #define EE_CMD_INIT_RES 1
#define EE_CMD_WR_BYTE 2 #define EE_CMD_WR_BYTE 2

View File

@ -21,7 +21,7 @@
#ifndef INCeedevh #ifndef INCeedevh
#define INCeedevh #define INCeedevh
#define E_DEBUG(fmt,args...) if( Debug ) printk(KERN_DEBUG"EE: " fmt, ##args) #define E_DEBUG(fmt,args...) if( Debug ) printk(KERN_DEBUG"EE: " fmt, ##args)
/* MIPS */ /* MIPS */
#define WRITE_PORT(Value) write_gpio_data(Value) #define WRITE_PORT(Value) write_gpio_data(Value)

View File

@ -61,13 +61,13 @@ void init_log_serial(void){
u32 *serial_log_offsetp = (u32*)SERIAL_LOG_BUFFER; u32 *serial_log_offsetp = (u32*)SERIAL_LOG_BUFFER;
/* Copy buffer from last run */ /* Copy buffer from last run */
memcpy(serial_log_buffer + 4096, memcpy(serial_log_buffer + 4096,
serial_log_buffer, serial_log_buffer,
4096); 4096);
memset(serial_log_buffer, 0, 4096); memset(serial_log_buffer, 0, 4096);
*serial_log_offsetp = 4; *serial_log_offsetp = 4;
} }
@ -118,7 +118,7 @@ void set_ledcard(u32 value){
udelay(1); udelay(1);
*sys_outputclr = GPIO_LEDCLK; *sys_outputclr = GPIO_LEDCLK;
udelay(1); udelay(1);
value<<=1; value<<=1;
} }
/* Data is enable output */ /* Data is enable output */
@ -228,7 +228,7 @@ static void write_bootdata (volatile u16 * addr, u8 System, u8 Count)
printf ("Invalid boot count %u, setting 1\n", Count); printf ("Invalid boot count %u, setting 1\n", Count);
Count = 1; Count = 1;
} }
printf ("Boot attempt %d\n", Count); printf ("Boot attempt %d\n", Count);
data = (System << 8) | Count; data = (System << 8) | Count;
@ -241,9 +241,9 @@ static void write_bootdata (volatile u16 * addr, u8 System, u8 Count)
} }
static int random_system(void){ static int random_system(void){
/* EEPROM read failed. Just try to choose one /* EEPROM read failed. Just try to choose one
system release and hope it works */ system release and hope it works */
/* FIXME */ /* FIXME */
return(SYSTEM_BOOT); return(SYSTEM_BOOT);
} }
@ -320,8 +320,8 @@ static void check_boot_tries (void)
data = *addr; data = *addr;
system = data >> 8; system = data >> 8;
count = data & 0xFF; count = data & 0xFF;
if ((system != SYSTEM_BOOT) & if ((system != SYSTEM_BOOT) &
(system != SYSTEM2_BOOT) & (system != SYSTEM2_BOOT) &
(system != FAILSAFE_BOOT)) { (system != FAILSAFE_BOOT)) {
printf ("*** Wrong system %d\n", system); printf ("*** Wrong system %d\n", system);
system = FAILSAFE_BOOT; system = FAILSAFE_BOOT;

View File

@ -197,11 +197,11 @@ noCacheJump:
/* RCE2 CP Altera */ /* RCE2 CP Altera */
li t0, MEM_STCFG2 li t0, MEM_STCFG2
li t1, 0x00000280 /* BE, EW */ li t1, 0x00000280 /* BE, EW */
sw t1, 0(t0) sw t1, 0(t0)
li t0, MEM_STTIME2 li t0, MEM_STTIME2
li t1, 0x0303000c li t1, 0x0303000c
sw t1, 0(t0) sw t1, 0(t0)
li t0, MEM_STADDR2 li t0, MEM_STADDR2
@ -210,11 +210,11 @@ noCacheJump:
/* RCE3 DP Altera */ /* RCE3 DP Altera */
li t0, MEM_STCFG3 li t0, MEM_STCFG3
li t1, 0x00000280 /* BE, EW */ li t1, 0x00000280 /* BE, EW */
sw t1, 0(t0) sw t1, 0(t0)
li t0, MEM_STTIME3 li t0, MEM_STTIME3
li t1, 0x0303000c li t1, 0x0303000c
sw t1, 0(t0) sw t1, 0(t0)
li t0, MEM_STADDR3 li t0, MEM_STADDR3
@ -428,14 +428,14 @@ mt0: sw t0, 0(t0)
li t0, 0x80000000 li t0, 0x80000000
li t1, 0xFFF000 /* 64 MB */ li t1, 0xFFF000 /* 64 MB */
mt1: lw t2, 0(t0) mt1: lw t2, 0(t0)
bne t0, t2, memhang bne t0, t2, memhang
add t1, -1 add t1, -1
add t0, 4 add t0, 4
bne t1, zero, mt1 bne t1, zero, mt1
nop nop
nop nop
.globl clearmem .globl clearmem
clearmem: clearmem:
/* Clear memory */ /* Clear memory */
li t0, 0x80000000 li t0, 0x80000000
li t1, 0xFFF000 /* 64 MB */ li t1, 0xFFF000 /* 64 MB */
@ -445,10 +445,10 @@ mtc: sw zero, 0(t0)
bne t1, zero, mtc bne t1, zero, mtc
nop nop
nop nop
memtestend: memtestend:
j ra j ra
nop nop
memhang: memhang:
b memhang b memhang
nop nop

View File

@ -1,6 +1,6 @@
# #
# (C) Copyright 2005 # (C) Copyright 2005
# Richard Danter, Wind River Systems # Richard Danter, Wind River Systems
# #
# (C) Copyright 2000 # (C) Copyright 2000
# Wolfgang Denk, DENX Software Engineering, wd@denx.de. # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
@ -24,10 +24,6 @@
# MA 02111-1307 USA # MA 02111-1307 USA
# #
#
#
#
TEXT_BASE = 0xFFF00000 TEXT_BASE = 0xFFF00000
TEXT_END = 0xFFF40000 TEXT_END = 0xFFF40000
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE)

View File

@ -1,10 +1,10 @@
/* /*
* flash.c * flash.c
* ------- * -------
* *
* Flash programming routines for the Wind River PPMC 74xx/7xx * Flash programming routines for the Wind River PPMC 74xx/7xx
* based on flash.c from the TQM8260 board. * based on flash.c from the TQM8260 board.
* *
* By Richard Danter (richard.danter@windriver.com) * By Richard Danter (richard.danter@windriver.com)
* Copyright (C) 2005 Wind River Systems * Copyright (C) 2005 Wind River Systems
*/ */
@ -27,13 +27,13 @@ void flash_reset (void)
{ {
unsigned long msr; unsigned long msr;
DWORD cmd_reset = 0x00F000F000F000F0LL; DWORD cmd_reset = 0x00F000F000F000F0LL;
if (flash_info[0].flash_id != FLASH_UNKNOWN) { if (flash_info[0].flash_id != FLASH_UNKNOWN) {
msr = get_msr (); msr = get_msr ();
set_msr (msr | MSR_FP); set_msr (msr | MSR_FP);
write_via_fpu ((DWORD*)flash_info[0].start[0], &cmd_reset ); write_via_fpu ((DWORD*)flash_info[0].start[0], &cmd_reset );
set_msr (msr); set_msr (msr);
} }
} }
@ -50,16 +50,16 @@ ulong flash_get_size (ulong baseaddr, flash_info_t * info)
/* Enable FPU */ /* Enable FPU */
msr = get_msr (); msr = get_msr ();
set_msr (msr | MSR_FP); set_msr (msr | MSR_FP);
/* Write auto-select command sequence */ /* Write auto-select command sequence */
write_via_fpu ((DWORD*)(baseaddr + (0x0555 << 3)), &cmd_select[0] ); write_via_fpu ((DWORD*)(baseaddr + (0x0555 << 3)), &cmd_select[0] );
write_via_fpu ((DWORD*)(baseaddr + (0x02AA << 3)), &cmd_select[1] ); write_via_fpu ((DWORD*)(baseaddr + (0x02AA << 3)), &cmd_select[1] );
write_via_fpu ((DWORD*)(baseaddr + (0x0555 << 3)), &cmd_select[2] ); write_via_fpu ((DWORD*)(baseaddr + (0x0555 << 3)), &cmd_select[2] );
/* Restore FPU */ /* Restore FPU */
set_msr (msr); set_msr (msr);
/* Read manufacturer ID */ /* Read manufacturer ID */
flashtest = *(volatile DWORD*)baseaddr; flashtest = *(volatile DWORD*)baseaddr;
switch ((int)flashtest) { switch ((int)flashtest) {
@ -70,7 +70,7 @@ ulong flash_get_size (ulong baseaddr, flash_info_t * info)
info->flash_id = FLASH_MAN_FUJ; info->flash_id = FLASH_MAN_FUJ;
break; break;
default: default:
/* No, faulty or unknown flash */ /* No, faulty or unknown flash */
info->flash_id = FLASH_UNKNOWN; info->flash_id = FLASH_UNKNOWN;
info->sector_count = 0; info->sector_count = 0;
info->size = 0; info->size = 0;
@ -291,7 +291,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
DWORD cmd_erase[6] = { 0x00AA00AA00AA00AALL, 0x0055005500550055LL, DWORD cmd_erase[6] = { 0x00AA00AA00AA00AALL, 0x0055005500550055LL,
0x0080008000800080LL, 0x00AA00AA00AA00AALL, 0x0080008000800080LL, 0x00AA00AA00AA00AALL,
0x0055005500550055LL, 0x0030003000300030LL }; 0x0055005500550055LL, 0x0030003000300030LL };
if ((s_first < 0) || (s_first > s_last)) { if ((s_first < 0) || (s_first > s_last)) {
if (info->flash_id == FLASH_UNKNOWN) { if (info->flash_id == FLASH_UNKNOWN) {
printf ("- missing\n"); printf ("- missing\n");
@ -319,7 +319,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
/* Enable FPU */ /* Enable FPU */
msr = get_msr(); msr = get_msr();
set_msr ( msr | MSR_FP ); set_msr ( msr | MSR_FP );
/* Disable interrupts which might cause a timeout here */ /* Disable interrupts which might cause a timeout here */
flag = disable_interrupts (); flag = disable_interrupts ();
@ -344,7 +344,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
/* Restore FPU */ /* Restore FPU */
set_msr (msr); set_msr (msr);
/* wait at least 80us - let's wait 1 ms */ /* wait at least 80us - let's wait 1 ms */
udelay (1000); udelay (1000);
@ -373,7 +373,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
DONE: DONE:
/* reset to read mode */ /* reset to read mode */
flash_reset (); flash_reset ();
printf (" done\n"); printf (" done\n");
return 0; return 0;
} }
@ -446,7 +446,7 @@ static int write_dword (flash_info_t * info, ulong dest, unsigned char *pdata)
DWORD data; DWORD data;
DWORD cmd_write[3] = { 0x00AA00AA00AA00AALL, 0x0055005500550055LL, DWORD cmd_write[3] = { 0x00AA00AA00AA00AALL, 0x0055005500550055LL,
0x00A000A000A000A0LL }; 0x00A000A000A000A0LL };
for (data = 0, i = 0; i < 8; i++) for (data = 0, i = 0; i < 8; i++)
data = (data << 8) + *pdata++; data = (data << 8) + *pdata++;
@ -454,11 +454,11 @@ static int write_dword (flash_info_t * info, ulong dest, unsigned char *pdata)
if ((*(DWORD*)dest & data) != data) { if ((*(DWORD*)dest & data) != data) {
return (2); return (2);
} }
/* Enable FPU */ /* Enable FPU */
msr = get_msr(); msr = get_msr();
set_msr( msr | MSR_FP ); set_msr( msr | MSR_FP );
/* Disable interrupts which might cause a timeout here */ /* Disable interrupts which might cause a timeout here */
flag = disable_interrupts (); flag = disable_interrupts ();
@ -473,7 +473,7 @@ static int write_dword (flash_info_t * info, ulong dest, unsigned char *pdata)
/* Restore FPU */ /* Restore FPU */
set_msr(msr); set_msr(msr);
/* data polling for D7 */ /* data polling for D7 */
start = get_timer (0); start = get_timer (0);
while (*(volatile DWORD*)dest != data ) { while (*(volatile DWORD*)dest != data ) {

View File

@ -21,314 +21,314 @@ board_asm_init:
ori r4,r4,0x0000 ori r4,r4,0x0000
lis r5,0xFEE0 lis r5,0xFEE0
ori r5,r5,0x0000 ori r5,r5,0x0000
lis r3,0x8000 # ADDR_00 lis r3,0x8000 # ADDR_00
ori r3,r3,0x0000 ori r3,r3,0x0000
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x1057 # VENDOR li r3,0x1057 # VENDOR
li r8, 0x0 li r8, 0x0
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_02 lis r3,0x8000 # ADDR_02
ori r3,r3,0x0002 ori r3,r3,0x0002
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x0004 # ID li r3,0x0004 # ID
li r8, 0x2 li r8, 0x2
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_04 lis r3,0x8000 # ADDR_04
ori r3,r3,0x0004 ori r3,r3,0x0004
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x0006 # PCICMD li r3,0x0006 # PCICMD
li r8, 0x0 li r8, 0x0
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_06 lis r3,0x8000 # ADDR_06
ori r3,r3,0x0006 ori r3,r3,0x0006
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00A0 # PCISTAT li r3,0x00A0 # PCISTAT
li r8, 0x2 li r8, 0x2
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_08 lis r3,0x8000 # ADDR_08
ori r3,r3,0x0008 ori r3,r3,0x0008
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x10 # REVID li r3,0x10 # REVID
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_09 lis r3,0x8000 # ADDR_09
ori r3,r3,0x0009 ori r3,r3,0x0009
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # PROGIR li r3,0x00 # PROGIR
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_0A lis r3,0x8000 # ADDR_0A
ori r3,r3,0x000A ori r3,r3,0x000A
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # SUBCCODE li r3,0x00 # SUBCCODE
stb r3,0x2(r5) stb r3,0x2(r5)
lis r3,0x8000 # ADDR_0B lis r3,0x8000 # ADDR_0B
ori r3,r3,0x000B ori r3,r3,0x000B
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x06 # PBCCR li r3,0x06 # PBCCR
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_0C lis r3,0x8000 # ADDR_0C
ori r3,r3,0x000C ori r3,r3,0x000C
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x08 # PCLSR li r3,0x08 # PCLSR
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_0D lis r3,0x8000 # ADDR_0D
ori r3,r3,0x000D ori r3,r3,0x000D
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # PLTR li r3,0x00 # PLTR
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_0E lis r3,0x8000 # ADDR_0E
ori r3,r3,0x000E ori r3,r3,0x000E
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # HEADTYPE li r3,0x00 # HEADTYPE
stb r3,0x2(r5) stb r3,0x2(r5)
lis r3,0x8000 # ADDR_0F lis r3,0x8000 # ADDR_0F
ori r3,r3,0x000F ori r3,r3,0x000F
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # BISTCTRL li r3,0x00 # BISTCTRL
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_10 lis r3,0x8000 # ADDR_10
ori r3,r3,0x0010 ori r3,r3,0x0010
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0000 # LMBAR lis r3,0x0000 # LMBAR
ori r3,r3,0x0008 ori r3,r3,0x0008
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_14 lis r3,0x8000 # ADDR_14
ori r3,r3,0x0014 ori r3,r3,0x0014
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xF000 # PCSRBAR lis r3,0xF000 # PCSRBAR
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_3C lis r3,0x8000 # ADDR_3C
ori r3,r3,0x003C ori r3,r3,0x003C
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # ILR li r3,0x00 # ILR
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_3D lis r3,0x8000 # ADDR_3D
ori r3,r3,0x003D ori r3,r3,0x003D
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x01 # INTPIN li r3,0x01 # INTPIN
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_3E lis r3,0x8000 # ADDR_3E
ori r3,r3,0x003E ori r3,r3,0x003E
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # MIN_GNT li r3,0x00 # MIN_GNT
stb r3,0x2(r5) stb r3,0x2(r5)
lis r3,0x8000 # ADDR_3F lis r3,0x8000 # ADDR_3F
ori r3,r3,0x003F ori r3,r3,0x003F
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # MAX_LAT li r3,0x00 # MAX_LAT
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_40 lis r3,0x8000 # ADDR_40
ori r3,r3,0x0040 ori r3,r3,0x0040
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # BUSNB li r3,0x00 # BUSNB
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_41 lis r3,0x8000 # ADDR_41
ori r3,r3,0x0041 ori r3,r3,0x0041
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # SBUSNB li r3,0x00 # SBUSNB
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_46 lis r3,0x8000 # ADDR_46
ori r3,r3,0x0046 ori r3,r3,0x0046
stwbrx r3,0,r4 stwbrx r3,0,r4
# li r3,0xE080 # PCIARB # li r3,0xE080 # PCIARB
li r3,-0x1F80 # PCIARB li r3,-0x1F80 # PCIARB
li r8, 0x2 li r8, 0x2
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_70 lis r3,0x8000 # ADDR_70
ori r3,r3,0x0070 ori r3,r3,0x0070
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x0000 # PMCR1 li r3,0x0000 # PMCR1
li r8, 0x0 li r8, 0x0
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_72 lis r3,0x8000 # ADDR_72
ori r3,r3,0x0072 ori r3,r3,0x0072
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0xC0 # PMCR2 li r3,0xC0 # PMCR2
stb r3,0x2(r5) stb r3,0x2(r5)
lis r3,0x8000 # ADDR_73 lis r3,0x8000 # ADDR_73
ori r3,r3,0x0073 ori r3,r3,0x0073
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0xEF # ODCR li r3,0xEF # ODCR
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_74 lis r3,0x8000 # ADDR_74
ori r3,r3,0x0074 ori r3,r3,0x0074
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x7D00 # CLKDCR li r3,0x7D00 # CLKDCR
li r8, 0x0 li r8, 0x0
sthbrx r3,r8,r5 sthbrx r3,r8,r5
lis r3,0x8000 # ADDR_76 lis r3,0x8000 # ADDR_76
ori r3,r3,0x0076 ori r3,r3,0x0076
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # MDCR li r3,0x00 # MDCR
stb r3,0x2(r5) stb r3,0x2(r5)
lis r6,0xFCE0 lis r6,0xFCE0
ori r6,r6,0x0000 # r6 is the EUMBAR Base Address ori r6,r6,0x0000 # r6 is the EUMBAR Base Address
lis r3,0x8000 # ADDR_78 lis r3,0x8000 # ADDR_78
ori r3,r3,0x0078 ori r3,r3,0x0078
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFCE0 # EUMBBAR lis r3,0xFCE0 # EUMBBAR
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_80 lis r3,0x8000 # ADDR_80
ori r3,r3,0x0080 ori r3,r3,0x0080
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFFFF # MSADDR1 lis r3,0xFFFF # MSADDR1
ori r3,r3,0x4000 ori r3,r3,0x4000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_84 lis r3,0x8000 # ADDR_84
ori r3,r3,0x0084 ori r3,r3,0x0084
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFFFF # MSADDR2 lis r3,0xFFFF # MSADDR2
ori r3,r3,0xFFFF ori r3,r3,0xFFFF
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_88 lis r3,0x8000 # ADDR_88
ori r3,r3,0x0088 ori r3,r3,0x0088
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0303 # EMSADDR1 lis r3,0x0303 # EMSADDR1
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_8C lis r3,0x8000 # ADDR_8C
ori r3,r3,0x008C ori r3,r3,0x008C
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0303 # EMSADDR2 lis r3,0x0303 # EMSADDR2
ori r3,r3,0x0303 ori r3,r3,0x0303
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_90 lis r3,0x8000 # ADDR_90
ori r3,r3,0x0090 ori r3,r3,0x0090
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFFFF # EMEADDR1 lis r3,0xFFFF # EMEADDR1
ori r3,r3,0x7F3F ori r3,r3,0x7F3F
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_94 lis r3,0x8000 # ADDR_94
ori r3,r3,0x0094 ori r3,r3,0x0094
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFFFF # EMEADDR2 lis r3,0xFFFF # EMEADDR2
ori r3,r3,0xFFFF ori r3,r3,0xFFFF
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_98 lis r3,0x8000 # ADDR_98
ori r3,r3,0x0098 ori r3,r3,0x0098
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0303 # EXTEMEM1 lis r3,0x0303 # EXTEMEM1
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_9C lis r3,0x8000 # ADDR_9C
ori r3,r3,0x009C ori r3,r3,0x009C
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0303 # EXTEMEM2 lis r3,0x0303 # EXTEMEM2
ori r3,r3,0x0303 ori r3,r3,0x0303
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_A0 lis r3,0x8000 # ADDR_A0
ori r3,r3,0x00A0 ori r3,r3,0x00A0
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x03 # MEMBNKEN li r3,0x03 # MEMBNKEN
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_A3 lis r3,0x8000 # ADDR_A3
ori r3,r3,0x00A3 ori r3,r3,0x00A3
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # MEMPMODE li r3,0x00 # MEMPMODE
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_B8 lis r3,0x8000 # ADDR_B8
ori r3,r3,0x00B8 ori r3,r3,0x00B8
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # ECCCNT li r3,0x00 # ECCCNT
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_B9 lis r3,0x8000 # ADDR_B9
ori r3,r3,0x00B9 ori r3,r3,0x00B9
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # ECCTRG li r3,0x00 # ECCTRG
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_C0 lis r3,0x8000 # ADDR_C0
ori r3,r3,0x00C0 ori r3,r3,0x00C0
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0xFF # ERRENR1 li r3,0xFF # ERRENR1
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_C1 lis r3,0x8000 # ADDR_C1
ori r3,r3,0x00C1 ori r3,r3,0x00C1
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # ERRDR1 li r3,0x00 # ERRDR1
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_C3 lis r3,0x8000 # ADDR_C3
ori r3,r3,0x00C3 ori r3,r3,0x00C3
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x50 # IPBESR li r3,0x50 # IPBESR
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_C4 lis r3,0x8000 # ADDR_C4
ori r3,r3,0x00C4 ori r3,r3,0x00C4
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0xBF # ERRENR2 li r3,0xBF # ERRENR2
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_C5 lis r3,0x8000 # ADDR_C5
ori r3,r3,0x00C5 ori r3,r3,0x00C5
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # ERRDR2 li r3,0x00 # ERRDR2
stb r3,0x1(r5) stb r3,0x1(r5)
lis r3,0x8000 # ADDR_C7 lis r3,0x8000 # ADDR_C7
ori r3,r3,0x00C7 ori r3,r3,0x00C7
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0x00 # PCIBESR li r3,0x00 # PCIBESR
stb r3,0x3(r5) stb r3,0x3(r5)
lis r3,0x8000 # ADDR_C8 lis r3,0x8000 # ADDR_C8
ori r3,r3,0x00C8 ori r3,r3,0x00C8
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0000 # BERRADDR lis r3,0x0000 # BERRADDR
ori r3,r3,0xE0FE ori r3,r3,0xE0FE
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_E0 lis r3,0x8000 # ADDR_E0
ori r3,r3,0x00E0 ori r3,r3,0x00E0
stwbrx r3,0,r4 stwbrx r3,0,r4
li r3,0xC0 # AMBOR li r3,0xC0 # AMBOR
stb r3,0x0(r5) stb r3,0x0(r5)
lis r3,0x8000 # ADDR_F4 lis r3,0x8000 # ADDR_F4
ori r3,r3,0x00F4 ori r3,r3,0x00F4
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0000 # MCCR2 lis r3,0x0000 # MCCR2
ori r3,r3,0x020C ori r3,r3,0x020C
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_F8 lis r3,0x8000 # ADDR_F8
ori r3,r3,0x00F8 ori r3,r3,0x00F8
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0230 # MCCR3 lis r3,0x0230 # MCCR3
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_FC lis r3,0x8000 # ADDR_FC
ori r3,r3,0x00FC ori r3,r3,0x00FC
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x2532 # MCCR4 lis r3,0x2532 # MCCR4
ori r3,r3,0x2220 ori r3,r3,0x2220
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_F0 lis r3,0x8000 # ADDR_F0
ori r3,r3,0x00F0 ori r3,r3,0x00F0
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFFC8 # MCCR1 lis r3,0xFFC8 # MCCR1
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_A8 lis r3,0x8000 # ADDR_A8
ori r3,r3,0x00A8 ori r3,r3,0x00A8
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0xFF14 # PICR1 lis r3,0xFF14 # PICR1
ori r3,r3,0x1CC8 ori r3,r3,0x1CC8
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5
lis r3,0x8000 # ADDR_AC lis r3,0x8000 # ADDR_AC
ori r3,r3,0x00AC ori r3,r3,0x00AC
stwbrx r3,0,r4 stwbrx r3,0,r4
lis r3,0x0000 # PICR2 lis r3,0x0000 # PICR2
ori r3,r3,0x0000 ori r3,r3,0x0000
li r8, 0x0 li r8, 0x0
stwbrx r3,r8,r5 stwbrx r3,r8,r5

View File

@ -1,9 +1,9 @@
/* /*
* ppmc7xx.c * ppmc7xx.c
* --------- * ---------
* *
* Main board-specific routines for Wind River PPMC 7xx/74xx board. * Main board-specific routines for Wind River PPMC 7xx/74xx board.
* *
* By Richard Danter (richard.danter@windriver.com) * By Richard Danter (richard.danter@windriver.com)
* Copyright (C) 2005 Wind River Systems * Copyright (C) 2005 Wind River Systems
*/ */
@ -24,7 +24,7 @@ extern void _start_warm(void);
/* /*
* initdram() * initdram()
* *
* This function normally initialises the (S)DRAM of the system. For this board * This function normally initialises the (S)DRAM of the system. For this board
* the SDRAM was already initialised by board_asm_init (see init.S) so we just * the SDRAM was already initialised by board_asm_init (see init.S) so we just
* return the size of RAM. * return the size of RAM.
@ -37,12 +37,12 @@ long initdram( int board_type )
/* /*
* after_reloc() * after_reloc()
* *
* This is called after U-Boot has been copied from Flash/ROM to RAM. It gives * This is called after U-Boot has been copied from Flash/ROM to RAM. It gives
* us an opportunity to do some additional setup before the rest of the system * us an opportunity to do some additional setup before the rest of the system
* is initialised. We don't need to do anything, so we just call board_init_r() * is initialised. We don't need to do anything, so we just call board_init_r()
* which should never return. * which should never return.
*/ */
void after_reloc( ulong dest_addr, gd_t* gd ) void after_reloc( ulong dest_addr, gd_t* gd )
{ {
/* Jump to the main U-Boot board init code */ /* Jump to the main U-Boot board init code */
@ -52,7 +52,7 @@ void after_reloc( ulong dest_addr, gd_t* gd )
/* /*
* checkboard() * checkboard()
* *
* We could do some board level checks here, such as working out what version * We could do some board level checks here, such as working out what version
* it is, but for this board we simply display it's name (on the console). * it is, but for this board we simply display it's name (on the console).
*/ */
@ -65,7 +65,7 @@ int checkboard( void )
/* /*
* misc_init_r * misc_init_r
* *
* Used for other setup which needs to be done late in the bring-up phase. * Used for other setup which needs to be done late in the bring-up phase.
*/ */
int misc_init_r( void ) int misc_init_r( void )
@ -78,27 +78,27 @@ int misc_init_r( void )
/* Enable the I-Cache */ /* Enable the I-Cache */
icache_enable(); icache_enable();
return 0; return 0;
} }
/* /*
* do_reset() * do_reset()
* *
* Shell command to reset the board. * Shell command to reset the board.
*/ */
void do_reset( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] ) void do_reset( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] )
{ {
printf( "Resetting...\n" ); printf( "Resetting...\n" );
/* Disabe and invalidate cache */ /* Disabe and invalidate cache */
icache_disable(); icache_disable();
dcache_disable(); dcache_disable();
/* Jump to warm start (in RAM) */ /* Jump to warm start (in RAM) */
_start_warm(); _start_warm();
/* Should never get here */ /* Should never get here */
while(1); while(1);
} }

View File

@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
LIB = lib$(BOARD).a LIB = lib$(BOARD).a
OBJS := $(BOARD).o cmd_stk52xx.o OBJS := $(BOARD).o cmd_stk52xx.o cmd_tb5200.o
$(LIB): $(OBJS) $(SOBJS) $(LIB): $(OBJS) $(SOBJS)
$(AR) crv $@ $(OBJS) $(AR) crv $@ $(OBJS)

View File

@ -30,6 +30,7 @@
#include <command.h> #include <command.h>
#if (CONFIG_COMMANDS & CFG_CMD_BSP) #if (CONFIG_COMMANDS & CFG_CMD_BSP)
#if defined (CONFIG_STK52XX)
#define DEFAULT_VOL 45 #define DEFAULT_VOL 45
#define DEFAULT_FREQ 500 #define DEFAULT_FREQ 500
@ -60,7 +61,6 @@ static int spi_transmit(unsigned char data);
static void pcm1772_write_reg(unsigned char addr, unsigned char data); static void pcm1772_write_reg(unsigned char addr, unsigned char data);
static void set_attenuation(unsigned char attenuation); static void set_attenuation(unsigned char attenuation);
#ifdef CONFIG_STK52XX
static void spi_init(void) static void spi_init(void)
{ {
struct mpc5xxx_spi *spi = (struct mpc5xxx_spi*)MPC5XXX_SPI; struct mpc5xxx_spi *spi = (struct mpc5xxx_spi*)MPC5XXX_SPI;

104
board/tqm5200/cmd_tb5200.c Normal file
View File

@ -0,0 +1,104 @@
/*
* (C) Copyright 2005 - 2006
* Martin Krause, TQ-Systems GmbH, martin.krause@tqs.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
*/
/*
* TB5200 specific functions
*/
/*#define DEBUG*/
#include <common.h>
#include <command.h>
#if (CONFIG_COMMANDS & CFG_CMD_BSP)
#if defined (CONFIG_TB5200)
#define SM501_PANEL_DISPLAY_CONTROL 0x00080000UL
static void led_init(void)
{
struct mpc5xxx_gpt_0_7 *gpt = (struct mpc5xxx_gpt_0_7 *)MPC5XXX_GPT;
/* configure timer 4 for simple GPIO output */
gpt->gpt4.emsr |= 0x00000024;
}
int cmd_led(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
struct mpc5xxx_gpt_0_7 *gpt = (struct mpc5xxx_gpt_0_7 *)MPC5XXX_GPT;
led_init();
if (strcmp (argv[1], "on") == 0) {
debug ("switch status LED on\n");
gpt->gpt4.emsr |= (1 << 4);
} else if (strcmp (argv[1], "off") == 0) {
debug ("switch status LED off\n");
gpt->gpt4.emsr &= ~(1 << 4);
} else {
printf ("Usage:\nled on/off\n");
return 1;
}
return 0;
}
static void sm501_backlight (unsigned int state)
{
if (state == 1) {
*(vu_long *)(SM501_MMIO_BASE+SM501_PANEL_DISPLAY_CONTROL) |=
(1 << 26) | (1 << 27);
} else if (state == 0)
*(vu_long *)(SM501_MMIO_BASE+SM501_PANEL_DISPLAY_CONTROL) &=
~((1 << 26) | (1 << 27));
}
int cmd_backlight(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
if (strcmp (argv[1], "on") == 0) {
debug ("switch backlight on\n");
sm501_backlight (1);
} else if (strcmp (argv[1], "off") == 0) {
debug ("switch backlight off\n");
sm501_backlight (0);
} else {
printf ("Usage:\nbacklight on/off\n");
return 1;
}
return 0;
}
U_BOOT_CMD(
led , 2, 1, cmd_led,
"led - switch status LED on or off\n",
"on/off\n"
);
U_BOOT_CMD(
backlight , 2, 1, cmd_backlight,
"backlight - switch backlight on or off\n",
"on/off\n"
);
#endif /* CONFIG_STK52XX */
#endif /* CFG_CMD_BSP */

View File

@ -260,6 +260,9 @@ int checkboard (void)
#if defined (CONFIG_STK52XX) #if defined (CONFIG_STK52XX)
puts (" on a STK52XX baseboard\n"); puts (" on a STK52XX baseboard\n");
#endif #endif
#if defined (CONFIG_TB5200)
puts (" on a TB5200 baseboard\n");
#endif
return 0; return 0;
} }
@ -567,9 +570,14 @@ void video_get_info_str (int line_number, char *info)
{ {
if (line_number == 1) { if (line_number == 1) {
strcpy (info, " Board: TQM5200 (TQ-Components GmbH)"); strcpy (info, " Board: TQM5200 (TQ-Components GmbH)");
#if defined (CONFIG_STK52XX) #if defined (CONFIG_STK52XX) || defined (CONFIG_TB5200)
} else if (line_number == 2) { } else if (line_number == 2) {
#if defined (CONFIG_STK52XX)
strcpy (info, " on a STK52XX baseboard"); strcpy (info, " on a STK52XX baseboard");
#endif
#if defined (CONFIG_TB5200)
strcpy (info, " on a TB5200 baseboard");
#endif
#endif #endif
} }
else { else {

View File

@ -423,4 +423,3 @@ int board_early_init_r (void)
return (0); return (0);
} }
#endif /* CONFIG_BOARD_EARLY_INIT_R */ #endif /* CONFIG_BOARD_EARLY_INIT_R */

View File

@ -635,7 +635,7 @@ void serial_setbrg (void)
tmp = gd->baudrate * udiv * 16; tmp = gd->baudrate * udiv * 16;
bdiv = (clk + tmp / 2) / tmp; bdiv = (clk + tmp / 2) / tmp;
#endif /* !defined(CFG_EXT_SERIAL_CLOCK) && (...) */ #endif /* !defined(CFG_EXT_SERIAL_CLOCK) && (...) */
#if defined(CONFIG_SERIAL_MULTI) #if defined(CONFIG_SERIAL_MULTI)
out8 (dev_base + UART_LCR, 0x80); /* set DLAB bit */ out8 (dev_base + UART_LCR, 0x80); /* set DLAB bit */

View File

@ -159,7 +159,7 @@ _start_440:
| Core bug fix. Clear the esr | Core bug fix. Clear the esr
+-----------------------------------------------------------------*/ +-----------------------------------------------------------------*/
li r0,0 li r0,0
mtspr esr,r0 mtspr esr,r0
/*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/
/* Clear and set up some registers. */ /* Clear and set up some registers. */
/*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/

View File

@ -50,7 +50,7 @@ OBJS = 3c589.o 5701rls.o ali512x.o \
videomodes.o w83c553f.o \ videomodes.o w83c553f.o \
ks8695eth.o \ ks8695eth.o \
pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o \ pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o \
rpx_pcmcia.o rpx_pcmcia.o
all: $(LIB) all: $(LIB)

View File

@ -191,7 +191,7 @@ int pcmcia_hardware_enable(int slot)
udelay(10000); udelay(10000);
debug ("[%d] %s: PIPR(%p)=0x%x\n", __LINE__,__FUNCTION__, debug ("[%d] %s: PIPR(%p)=0x%x\n", __LINE__,__FUNCTION__,
&(pcmp->pcmc_pipr),pcmp->pcmc_pipr); &(pcmp->pcmc_pipr),pcmp->pcmc_pipr);
if (check_card_is_absent(slot)) { if (check_card_is_absent(slot)) {
printf (" No Card found\n"); printf (" No Card found\n");
return (1); return (1);
@ -206,7 +206,7 @@ int pcmcia_hardware_enable(int slot)
reg, reg,
(reg&PCMCIA_VS1(slot))?"n":"ff", (reg&PCMCIA_VS1(slot))?"n":"ff",
(reg&PCMCIA_VS2(slot))?"n":"ff"); (reg&PCMCIA_VS2(slot))?"n":"ff");
if ((reg & mask) == mask) { if ((reg & mask) == mask) {
power_on_5_0(slot); power_on_5_0(slot);
puts (" 5.0V card found: "); puts (" 5.0V card found: ");
@ -228,7 +228,7 @@ int pcmcia_hardware_enable(int slot)
reg &= ~__MY_PCMCIA_GCRX_CXRESET; /* active high */ reg &= ~__MY_PCMCIA_GCRX_CXRESET; /* active high */
reg |= __MY_PCMCIA_GCRX_CXOE; /* active low */ reg |= __MY_PCMCIA_GCRX_CXOE; /* active low */
reg &= ~NSCU_GCRX_CXOE; reg &= ~NSCU_GCRX_CXOE;
PCMCIA_PGCRX(slot) = reg; PCMCIA_PGCRX(slot) = reg;
udelay(250000); /* some cards need >150 ms to come up :-( */ udelay(250000); /* some cards need >150 ms to come up :-( */
@ -285,7 +285,7 @@ int pcmcia_voltage_set(int slot, int vcc, int vpp)
reg |= __MY_PCMCIA_GCRX_CXRESET; /* active high */ reg |= __MY_PCMCIA_GCRX_CXRESET; /* active high */
reg &= ~__MY_PCMCIA_GCRX_CXOE; /* active low */ reg &= ~__MY_PCMCIA_GCRX_CXOE; /* active low */
reg |= NSCU_GCRX_CXOE; /* active low */ reg |= NSCU_GCRX_CXOE; /* active low */
PCMCIA_PGCRX(slot) = reg; PCMCIA_PGCRX(slot) = reg;
udelay(500); udelay(500);

470
include/configs/TB5200.h Normal file
View File

@ -0,0 +1,470 @@
/*
* (C) Copyright 2003-2006
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* (C) Copyright 2004-2006
* Martin Krause, TQ-Systems GmbH, martin.krause@tqs.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 __CONFIG_H
#define __CONFIG_H
/*
* High Level Configuration Options
* (easy to change)
*/
#define CONFIG_MPC5xxx 1 /* This is an MPC5xxx CPU */
#define CONFIG_MPC5200 1 /* (more precisely an MPC5200 CPU) */
#define CONFIG_TQM5200 1 /* ... on TQM5200 module */
#define CONFIG_TB5200 1 /* ... on a TB5200 base board */
#define CFG_MPC5XXX_CLKIN 33000000 /* ... running at 33.000000MHz */
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
#define BOOTFLAG_WARM 0x02 /* Software reboot */
#define CFG_CACHELINE_SIZE 32 /* For MPC5xxx CPUs */
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
#endif
/*
* Serial console configuration
*/
#define CONFIG_PSC_CONSOLE 1 /* default console is on PSC1 */
#define CONFIG_SERIAL_MULTI 1 /* support multiple consoles */
#define CONFIG_PSC_CONSOLE2 6 /* second console is on PSC6 */
#define CONFIG_BAUDRATE 115200 /* ... at 115200 bps */
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
/*
* Video console
*/
#if 1
#define CONFIG_VIDEO
#define CONFIG_VIDEO_SM501
#define CONFIG_VIDEO_SM501_32BPP
#define CONFIG_CFB_CONSOLE
#define CONFIG_VIDEO_LOGO
#define CONFIG_VGA_AS_SINGLE_DEVICE
#define CONFIG_CONSOLE_EXTRA_INFO
#define CONFIG_VIDEO_SW_CURSOR
#define CONFIG_SPLASH_SCREEN
#define CFG_CONSOLE_IS_IN_ENV
#endif
#ifdef CONFIG_VIDEO
#define ADD_BMP_CMD CFG_CMD_BMP
#else
#define ADD_BMP_CMD 0
#endif
/* Partitions */
#define CONFIG_MAC_PARTITION
#define CONFIG_DOS_PARTITION
#define CONFIG_ISO_PARTITION
/* USB */
#define CONFIG_USB_OHCI
#define ADD_USB_CMD CFG_CMD_USB | CFG_CMD_FAT
#define CONFIG_USB_STORAGE
/* POST support */
#define CONFIG_POST (CFG_POST_MEMORY | \
CFG_POST_CPU | \
CFG_POST_I2C)
#ifdef CONFIG_POST
#define CFG_CMD_POST_DIAG CFG_CMD_DIAG
/* preserve space for the post_word at end of on-chip SRAM */
#define MPC5XXX_SRAM_POST_SIZE MPC5XXX_SRAM_SIZE-4
#else
#define CFG_CMD_POST_DIAG 0
#endif
/* IDE */
#define ADD_IDE_CMD (CFG_CMD_IDE | CFG_CMD_FAT | CFG_CMD_EXT2)
/*
* Supported commands
*/
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
ADD_BMP_CMD | \
ADD_IDE_CMD | \
ADD_PCI_CMD | \
ADD_USB_CMD | \
CFG_CMD_ASKENV | \
CFG_CMD_DATE | \
CFG_CMD_DHCP | \
CFG_CMD_ECHO | \
CFG_CMD_EEPROM | \
CFG_CMD_I2C | \
CFG_CMD_JFFS2 | \
CFG_CMD_MII | \
CFG_CMD_NFS | \
CFG_CMD_PING | \
CFG_CMD_POST_DIAG | \
CFG_CMD_REGINFO | \
CFG_CMD_SNTP | \
CFG_CMD_BSP)
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
#include <cmd_confdefs.h>
#define CONFIG_TIMESTAMP /* display image timestamps */
#if (TEXT_BASE == 0xFC000000) /* Boot low */
# define CFG_LOWBOOT 1
#endif
/*
* Autobooting
*/
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
#define CONFIG_PREBOOT "echo;" \
"echo Type \"run flash_nfs\" to mount root filesystem over NFS;" \
"echo"
#undef CONFIG_BOOTARGS
#define CONFIG_EXTRA_ENV_SETTINGS \
"netdev=eth0\0" \
"rootpath=/opt/eldk/ppc_6xx\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 panic=1\0" \
"flash_self=run ramargs addip;" \
"bootm ${kernel_addr} ${ramdisk_addr}\0" \
"flash_nfs=run nfsargs addip;" \
"bootm ${kernel_addr}\0" \
"net_nfs=tftp 200000 ${bootfile};run nfsargs addip;bootm\0" \
"bootfile=/tftpboot/tqm5200/uImage\0" \
"load=tftp 200000 $(u-boot)\0" \
"u-boot=/tftpboot/tqm5200/u-boot.bin\0" \
"update=protect off FC000000 FC05FFFF;" \
"erase FC000000 FC05FFFF;" \
"cp.b 200000 FC000000 ${filesize};" \
"protect on FC000000 FC05FFFF\0" \
""
#define CONFIG_BOOTCOMMAND "run net_nfs"
/*
* IPB Bus clocking configuration.
*/
#define CFG_IPBSPEED_133 /* define for 133MHz speed */
#if defined(CFG_IPBSPEED_133)
/*
* PCI Bus clocking configuration
*
* Actually a PCI Clock of 66 MHz is only set (in cpu_init.c) if
* CFG_IPBSPEED_133 is defined. This is because a PCI Clock of 66 MHz yet hasn't
* been tested with a IPB Bus Clock of 66 MHz.
*/
#define CFG_PCISPEED_66 /* define for 66MHz speed */
#endif
/*
* I2C configuration
*/
#define CONFIG_HARD_I2C 1 /* I2C with hardware support */
#define CFG_I2C_MODULE 2 /* Select I2C module #2 */
/*
* I2C clock frequency
*
* Please notice, that the resulting clock frequency could differ from the
* configured value. This is because the I2C clock is derived from system
* clock over a frequency divider with only a few divider values. U-boot
* calculates the best approximation for CFG_I2C_SPEED. However the calculated
* approximation allways lies below the configured value, never above.
*/
#define CFG_I2C_SPEED 100000 /* 100 kHz */
#define CFG_I2C_SLAVE 0x7F
/*
* EEPROM configuration for onboard EEPROM M24C32 (M24C64 should work
* also). For other EEPROMs configuration should be verified. On Mini-FAP the
* EEPROM (24C64) is on the same I2C address (but on other I2C bus), so the
* same configuration could be used.
*/
#define CFG_I2C_EEPROM_ADDR 0x50 /* 1010000x */
#define CFG_I2C_EEPROM_ADDR_LEN 2
#define CFG_EEPROM_PAGE_WRITE_BITS 5 /* =32 Bytes per write */
#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 20
/* List of I2C addresses to be verified by POST */
#undef I2C_ADDR_LIST
#define I2C_ADDR_LIST { CFG_I2C_EEPROM_ADDR, \
CFG_I2C_RTC_ADDR, \
CFG_I2C_SLAVE }
/*
* Flash configuration
*/
#define CFG_FLASH_BASE TEXT_BASE /* 0xFC000000 */
/* use CFI flash driver if no module variant is spezified */
#define CFG_FLASH_CFI 1 /* Flash is CFI conformant */
#define CFG_FLASH_CFI_DRIVER 1 /* Use the common driver */
#define CFG_FLASH_BANKS_LIST { CFG_BOOTCS_START }
#define CFG_FLASH_EMPTY_INFO
#define CFG_FLASH_SIZE 0x04000000 /* 64 MByte */
#define CFG_MAX_FLASH_SECT 512 /* max num of sects on one chip */
#undef CFG_FLASH_USE_BUFFER_WRITE /* not supported yet for AMD */
#if !defined(CFG_LOWBOOT)
#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00760000 + 0x00800000)
#else /* CFG_LOWBOOT */
#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00060000)
#endif /* CFG_LOWBOOT */
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks
(= chip selects) */
#define CFG_FLASH_ERASE_TOUT 240000 /* Flash Erase Timeout (in ms) */
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */
/* Dynamic MTD partition support */
#define CONFIG_JFFS2_CMDLINE
#define MTDIDS_DEFAULT "nor0=TQM5200-0"
#define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:640k(firmware)," \
"1408k(kernel)," \
"2m(initrd)," \
"4m(small-fs)," \
"16m(big-fs)," \
"8m(misc)"
/*
* Environment settings
*/
#define CFG_ENV_IS_IN_FLASH 1
#define CFG_ENV_SIZE 0x10000
#define CFG_ENV_SECT_SIZE 0x20000
#define CFG_ENV_ADDR_REDUND (CFG_ENV_ADDR + CFG_ENV_SECT_SIZE)
#define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE)
/*
* Memory map
*/
#define CFG_MBAR 0xF0000000
#define CFG_SDRAM_BASE 0x00000000
#define CFG_DEFAULT_MBAR 0x80000000
/* Use ON-Chip SRAM until RAM will be available */
#define CFG_INIT_RAM_ADDR MPC5XXX_SRAM
#ifdef CONFIG_POST
/* preserve space for the post_word at end of on-chip SRAM */
#define CFG_INIT_RAM_END MPC5XXX_SRAM_POST_SIZE
#else
#define CFG_INIT_RAM_END MPC5XXX_SRAM_SIZE
#endif
#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
#define CFG_MONITOR_BASE TEXT_BASE
#if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
# define CFG_RAMBOOT 1
#endif
#define CFG_MONITOR_LEN (384 << 10) /* Reserve 384 kB for Monitor */
#define CFG_MALLOC_LEN (256 << 10) /* Reserve 256 kB for malloc() */
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
/*
* Ethernet configuration
*/
#define CONFIG_MPC5xxx_FEC 1
/*
* Define CONFIG_FEC_10MBIT to force FEC at 10Mb
*/
/* #define CONFIG_FEC_10MBIT 1 */
#define CONFIG_PHY_ADDR 0x00
/*
* GPIO configuration
*
* use pin gpio_wkup_6 as second SDRAM chip select (mem_cs1):
* Bit 0 (mask: 0x80000000): 1
* use ALT CAN position: Bits 2-3 (mask: 0x30000000):
* 00 -> No Alternatives, CAN1/2 on PSC2 according to PSC2 setting.
* 01 -> CAN1 on I2C1, CAN2 on Tmr0/1.
* Use for REV200 STK52XX boards. Do not use with REV100 modules
* (because, there I2C1 is used as I2C bus)
* use PSC1 as UART: Bits 28-31 (mask: 0x00000007): 0100
* use PSC2 as CAN: Bits 25:27 (mask: 0x00000030)
* 000 -> All PSC2 pins are GIOPs
* 001 -> CAN1/2 on PSC2 pins
* Use for REV100 STK52xx boards
* use PSC3: Bits 20:23 (mask: 0x00000300):
* 0001 -> USB2
* 0000 -> GPIO
* use PSC6:
* on STK52xx:
* use as UART. Pins PSC6_0 to PSC6_3 are used.
* Bits 9:11 (mask: 0x00700000):
* 101 -> PSC6 : Extended POST test is not available
* on MINI-FAP and TQM5200_IB:
* use PSC6_0 to PSC6_3 as GPIO: Bits 9:11 (mask: 0x00700000):
* 000 -> PSC6 could not be used as UART, CODEC or IrDA
* GPIO on PSC6_3 is used in post_hotkeys_pressed() to enable extended POST
* tests.
*/
#define CFG_GPS_PORT_CONFIG 0x81500114
/*
* RTC configuration
*/
#define CONFIG_RTC_M41T11 1
#define CFG_I2C_RTC_ADDR 0x68
#define CFG_M41T11_BASE_YEAR 1900 /* because Linux uses the same base
year */
/*
* 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 */
/* Enable an alternate, more extensive memory test */
#define CFG_ALT_MEMTEST
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
#define CFG_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
#define CFG_LOAD_ADDR 0x100000 /* default load address */
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
/*
* Enable loopw commando. This has only affect, if CFG_CMD_MEM is defined,
* which is normally part of the default commands (CFV_CMD_DFL)
*/
#define CONFIG_LOOPW
/*
* Various low-level settings
*/
#if defined(CONFIG_MPC5200)
#define CFG_HID0_INIT HID0_ICE | HID0_ICFI
#define CFG_HID0_FINAL HID0_ICE
#else
#define CFG_HID0_INIT 0
#define CFG_HID0_FINAL 0
#endif
#define CFG_BOOTCS_START CFG_FLASH_BASE
#define CFG_BOOTCS_SIZE CFG_FLASH_SIZE
#ifdef CFG_PCISPEED_66
#define CFG_BOOTCS_CFG 0x0008DF30 /* for pci_clk = 66 MHz */
#else
#define CFG_BOOTCS_CFG 0x0004DF30 /* for pci_clk = 33 MHz */
#endif
#define CFG_CS0_START CFG_FLASH_BASE
#define CFG_CS0_SIZE CFG_FLASH_SIZE
/* automatic configuration of chip selects */
#ifdef CONFIG_CS_AUTOCONF
#define CONFIG_LAST_STAGE_INIT
#endif
/*
* SRAM - Do not map below 2 GB in address space, because this area is used
* for SDRAM autosizing.
*/
#if defined (CONFIG_CS_AUTOCONF)
#define CFG_CS2_START 0xE5000000
#define CFG_CS2_SIZE 0x100000 /* 1 MByte */
#define CFG_CS2_CFG 0x0004D930
#endif
/*
* Grafic controller - Do not map below 2 GB in address space, because this
* area is used for SDRAM autosizing.
*/
#if defined (CONFIG_CS_AUTOCONF)
#define SM501_FB_BASE 0xE0000000
#define CFG_CS1_START (SM501_FB_BASE)
#define CFG_CS1_SIZE 0x4000000 /* 64 MByte */
#define CFG_CS1_CFG 0x8F48FF70
#define SM501_MMIO_BASE CFG_CS1_START + 0x03E00000
#endif
#define CFG_CS_BURST 0x00000000
#define CFG_CS_DEADCYCLE 0x33333311 /* 1 dead cycle for flash and SM501 */
#define CFG_RESET_ADDRESS 0xff000000
/*-----------------------------------------------------------------------
* USB stuff
*-----------------------------------------------------------------------
*/
#define CONFIG_USB_CLOCK 0x0001BBBB
#define CONFIG_USB_CONFIG 0x00001000
/*-----------------------------------------------------------------------
* IDE/ATA stuff Supports IDE harddisk
*-----------------------------------------------------------------------
*/
#undef CONFIG_IDE_8xx_PCCARD /* Use IDE with PC Card Adapter */
#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
#undef CONFIG_IDE_LED /* LED for ide not supported */
#define CONFIG_IDE_RESET /* reset for ide supported */
#define CONFIG_IDE_PREINIT
#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */
#define CFG_IDE_MAXDEVICE 2 /* max. 2 drives per IDE bus */
#define CFG_ATA_IDE0_OFFSET 0x0000
#define CFG_ATA_BASE_ADDR MPC5XXX_ATA
/* Offset for data I/O */
#define CFG_ATA_DATA_OFFSET (0x0060)
/* Offset for normal register accesses */
#define CFG_ATA_REG_OFFSET (CFG_ATA_DATA_OFFSET)
/* Offset for alternate registers */
#define CFG_ATA_ALT_OFFSET (0x005C)
/* Interval between registers */
#define CFG_ATA_STRIDE 4
#endif /* __CONFIG_H */

View File

@ -12,7 +12,7 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
@ -34,7 +34,7 @@
#define CONFIG_AU1000 1 #define CONFIG_AU1000 1
#define CONFIG_MISC_INIT_R 1 #define CONFIG_MISC_INIT_R 1
#define CONFIG_ETHADDR DE:AD:BE:EF:01:02 /* Ethernet address */ #define CONFIG_ETHADDR DE:AD:BE:EF:01:02 /* Ethernet address */
@ -59,21 +59,21 @@
#define CONFIG_AUTOBOOT_DELAY_STR "d" #define CONFIG_AUTOBOOT_DELAY_STR "d"
#define CONFIG_AUTOBOOT_STOP_STR " " #define CONFIG_AUTOBOOT_STOP_STR " "
#define CONFIG_TIMESTAMP /* Print image info with timestamp */ #define CONFIG_TIMESTAMP /* Print image info with timestamp */
#define CONFIG_BOOTARGS "panic=1" #define CONFIG_BOOTARGS "panic=1"
#define CONFIG_EXTRA_ENV_SETTINGS \ #define CONFIG_EXTRA_ENV_SETTINGS \
"addmisc=setenv bootargs $(bootargs) " \ "addmisc=setenv bootargs $(bootargs) " \
"ethaddr=$(ethaddr) \0" \ "ethaddr=$(ethaddr) \0" \
"netboot=bootp;run addmisc;bootm\0" \ "netboot=bootp;run addmisc;bootm\0" \
"" ""
/* Boot from Compact flash partition 2 as default */ /* Boot from Compact flash partition 2 as default */
#define CONFIG_BOOTCOMMAND "ide reset;disk 0x81000000 0:2;run addmisc;bootm" #define CONFIG_BOOTCOMMAND "ide reset;disk 0x81000000 0:2;run addmisc;bootm"
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL | CFG_CMD_IDE | CFG_CMD_DHCP ) & \ #define CONFIG_COMMANDS ((CONFIG_CMD_DFL | CFG_CMD_IDE | CFG_CMD_DHCP ) & \
~(CFG_CMD_ENV | CFG_CMD_FAT | CFG_CMD_FLASH | CFG_CMD_FPGA | \ ~(CFG_CMD_ENV | CFG_CMD_FAT | CFG_CMD_FLASH | CFG_CMD_FPGA | \
CFG_CMD_MII | CFG_CMD_LOADS | CFG_CMD_LOADB | CFG_CMD_ELF | \ CFG_CMD_MII | CFG_CMD_LOADS | CFG_CMD_LOADB | CFG_CMD_ELF | \
CFG_CMD_BDI | CFG_CMD_BEDBUG | CFG_CMD_NFS | CFG_CMD_AUTOSCRIPT )) CFG_CMD_BDI | CFG_CMD_BEDBUG | CFG_CMD_NFS | CFG_CMD_AUTOSCRIPT ))
#include <cmd_confdefs.h> #include <cmd_confdefs.h>
@ -81,11 +81,11 @@
/* /*
* Miscellaneous configurable options * Miscellaneous configurable options
*/ */
#define CFG_LONGHELP /* undef to save memory */ #define CFG_LONGHELP /* undef to save memory */
#define CFG_PROMPT "GTH2 # " /* Monitor Command Prompt */ #define CFG_PROMPT "GTH2 # " /* Monitor Command Prompt */
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ #define CFG_CBSIZE 256 /* Console I/O Buffer Size */
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
#define CFG_MAXARGS 16 /* max number of command args*/ #define CFG_MAXARGS 16 /* max number of command args*/
#define CFG_MALLOC_LEN 128*1024 #define CFG_MALLOC_LEN 128*1024
@ -93,16 +93,16 @@
#define CFG_MHZ 500 #define CFG_MHZ 500
#define CFG_HZ (CFG_MHZ * 1000000) /* FIXME causes overflow in net.c */ #define CFG_HZ (CFG_MHZ * 1000000) /* FIXME causes overflow in net.c */
#define CFG_SDRAM_BASE 0x80000000 /* Cached addr */ #define CFG_SDRAM_BASE 0x80000000 /* Cached addr */
#define CFG_LOAD_ADDR 0x81000000 /* default load address */ #define CFG_LOAD_ADDR 0x81000000 /* default load address */
#define CFG_MEMTEST_START 0x80100000 #define CFG_MEMTEST_START 0x80100000
#define CFG_MEMTEST_END 0x83000000 #define CFG_MEMTEST_END 0x83000000
#define CONFIG_HW_WATCHDOG 1 #define CONFIG_HW_WATCHDOG 1
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* FLASH and environment organization * FLASH and environment organization
@ -113,8 +113,8 @@
#define PHYS_FLASH 0xbfc00000 /* Flash Bank #1 */ #define PHYS_FLASH 0xbfc00000 /* Flash Bank #1 */
/* The following #defines are needed to get flash environment right */ /* The following #defines are needed to get flash environment right */
#define CFG_MONITOR_BASE TEXT_BASE #define CFG_MONITOR_BASE TEXT_BASE
#define CFG_MONITOR_LEN (192 << 10) #define CFG_MONITOR_LEN (192 << 10)
#define CFG_INIT_SP_OFFSET 0x400000 #define CFG_INIT_SP_OFFSET 0x400000
@ -125,7 +125,7 @@
#define CFG_FLASH_ERASE_TOUT (2 * CFG_HZ) /* Timeout for Flash Erase */ #define CFG_FLASH_ERASE_TOUT (2 * CFG_HZ) /* Timeout for Flash Erase */
#define CFG_FLASH_WRITE_TOUT (2 * CFG_HZ) /* Timeout for Flash Write */ #define CFG_FLASH_WRITE_TOUT (2 * CFG_HZ) /* Timeout for Flash Write */
#define CFG_ENV_IS_NOWHERE 1 #define CFG_ENV_IS_NOWHERE 1
/* Address and size of Primary Environment Sector */ /* Address and size of Primary Environment Sector */
#define CFG_ENV_ADDR 0xB0030000 #define CFG_ENV_ADDR 0xB0030000
@ -158,21 +158,21 @@
#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */ #define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */ #define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */
#undef CONFIG_IDE_LED /* LED for ide not supported */ #undef CONFIG_IDE_LED /* LED for ide not supported */
#undef CONFIG_IDE_RESET /* reset for ide not supported */ #undef CONFIG_IDE_RESET /* reset for ide not supported */
#define CFG_ATA_IDE0_OFFSET 0 #define CFG_ATA_IDE0_OFFSET 0
#define CFG_ATA_BASE_ADDR CFG_PCMCIA_IO_BASE #define CFG_ATA_BASE_ADDR CFG_PCMCIA_IO_BASE
/* Offset for data I/O */ /* Offset for data I/O */
#define CFG_ATA_DATA_OFFSET 0 #define CFG_ATA_DATA_OFFSET 0
/* Offset for normal register accesses */ /* Offset for normal register accesses */
#define CFG_ATA_REG_OFFSET 0 #define CFG_ATA_REG_OFFSET 0
/* Offset for alternate registers */ /* Offset for alternate registers */
#define CFG_ATA_ALT_OFFSET 0x0200 #define CFG_ATA_ALT_OFFSET 0x0200
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Cache Configuration * Cache Configuration

View File

@ -1,9 +1,9 @@
/* /*
* ppmc7xx.h * ppmc7xx.h
* --------- * ---------
* *
* Wind River PPMC 7xx/74xx board configuration file. * Wind River PPMC 7xx/74xx board configuration file.
* *
* By Richard Danter (richard.danter@windriver.com) * By Richard Danter (richard.danter@windriver.com)
* Copyright (C) 2005 Wind River Systems * Copyright (C) 2005 Wind River Systems
*/ */
@ -16,15 +16,15 @@
/*=================================================================== /*===================================================================
* *
* User configurable settings - Modify to your preference * User configurable settings - Modify to your preference
* *
*=================================================================== *===================================================================
*/ */
/* /*
* Debug * Debug
* *
* DEBUG - Define this is you want extra debug info * DEBUG - Define this is you want extra debug info
* GTREGREAD - Required to build with debug * GTREGREAD - Required to build with debug
* do_bdinfo - Required to build with debug * do_bdinfo - Required to build with debug
@ -37,7 +37,7 @@
/* /*
* CPU type * CPU type
* *
* CONFIG_7xx - We have a 750 or 755 CPU * CONFIG_7xx - We have a 750 or 755 CPU
* CONFIG_74xx - We have a 7400 CPU * CONFIG_74xx - We have a 7400 CPU
* CONFIG_ALTIVEC - We have altivec enabled CPU (only 7400) * CONFIG_ALTIVEC - We have altivec enabled CPU (only 7400)
@ -52,11 +52,11 @@
/* /*
* Monitor configuration * Monitor configuration
* *
* CONFIG_COMMANDS - List of command sets to include in shell * CONFIG_COMMANDS - List of command sets to include in shell
* *
* The following command sets have been tested and known to work: * The following command sets have been tested and known to work:
* *
* CFG_CMD_CACHE - Cache control commands * CFG_CMD_CACHE - Cache control commands
* CFG_CMD_MEMORY - Memory display, change and test commands * CFG_CMD_MEMORY - Memory display, change and test commands
* CFG_CMD_FLASH - Erase and program flash * CFG_CMD_FLASH - Erase and program flash
@ -91,7 +91,7 @@
/* /*
* PCI config * PCI config
* *
* CONFIG_PCI - Enable PCI bus * CONFIG_PCI - Enable PCI bus
* CONFIG_PCI_PNP - Enable Plug & Play support * CONFIG_PCI_PNP - Enable Plug & Play support
* CONFIG_PCI_SCAN_SHOW - Enable display of devices at startup * CONFIG_PCI_SCAN_SHOW - Enable display of devices at startup
@ -104,7 +104,7 @@
/* /*
* Network config * Network config
* *
* CONFIG_NET_MULTI - Support for multiple network interfaces * CONFIG_NET_MULTI - Support for multiple network interfaces
* CONFIG_EEPRO100 - Intel 8255x Ethernet Controller * CONFIG_EEPRO100 - Intel 8255x Ethernet Controller
* CONFIG_EEPRO100_SROM_WRITE - Enable writing to network card ROM * CONFIG_EEPRO100_SROM_WRITE - Enable writing to network card ROM
@ -117,18 +117,18 @@
/* /*
* Enable extra init functions * Enable extra init functions
* *
* CONFIG_MISC_INIT_F - Call pre-relocation init functions * CONFIG_MISC_INIT_F - Call pre-relocation init functions
* CONFIG_MISC_INIT_R - Call post relocation init functions * CONFIG_MISC_INIT_R - Call post relocation init functions
*/ */
#undef CONFIG_MISC_INIT_F #undef CONFIG_MISC_INIT_F
#define CONFIG_MISC_INIT_R #define CONFIG_MISC_INIT_R
/* /*
* Boot config * Boot config
* *
* CONFIG_BOOTCOMMAND - Command(s) to execute to auto-boot * CONFIG_BOOTCOMMAND - Command(s) to execute to auto-boot
* CONFIG_BOOTDELAY - How long to wait before auto-boot (in sec) * CONFIG_BOOTDELAY - How long to wait before auto-boot (in sec)
*/ */
@ -142,9 +142,9 @@
/*=================================================================== /*===================================================================
* *
* Board configuration settings - You should not need to modify these * Board configuration settings - You should not need to modify these
* *
*=================================================================== *===================================================================
*/ */
@ -154,9 +154,9 @@
/* /*
* Memory map * Memory map
* *
* This board runs in a standard CHRP (Map-B) configuration. * This board runs in a standard CHRP (Map-B) configuration.
* *
* Type Start End Size Width Chip Sel * Type Start End Size Width Chip Sel
* ----------- ----------- ----------- ------- ------- -------- * ----------- ----------- ----------- ------- ------- --------
* SDRAM 0x00000000 0x04000000 64MB 64b SDRAMCS0 * SDRAM 0x00000000 0x04000000 64MB 64b SDRAMCS0
@ -164,9 +164,9 @@
* UART 0x7C000000 RCS2 * UART 0x7C000000 RCS2
* Mailbox 0xFF000000 RCS1 * Mailbox 0xFF000000 RCS1
* Flash 0xFFC00000 0xFFFFFFFF 4MB 64b RCS0 * Flash 0xFFC00000 0xFFFFFFFF 4MB 64b RCS0
* *
* Flash sectors are laid out as follows. * Flash sectors are laid out as follows.
* *
* Sector Start End Size Comments * Sector Start End Size Comments
* ------- ----------- ----------- ------- ----------- * ------- ----------- ----------- ------- -----------
* 0 0xFFC00000 0xFFC3FFFF 256KB * 0 0xFFC00000 0xFFC3FFFF 256KB
@ -193,7 +193,7 @@
/* /*
* SDRAM config - see memory map details above. * SDRAM config - see memory map details above.
* *
* CFG_SDRAM_BASE - Start address of SDRAM, this _must_ be zero! * CFG_SDRAM_BASE - Start address of SDRAM, this _must_ be zero!
* CFG_SDRAM_SIZE - Total size of contiguous SDRAM bank(s) * CFG_SDRAM_SIZE - Total size of contiguous SDRAM bank(s)
*/ */
@ -202,9 +202,9 @@
#define CFG_SDRAM_SIZE 0x04000000 #define CFG_SDRAM_SIZE 0x04000000
/* /*
* Flash config - see memory map details above. * Flash config - see memory map details above.
* *
* CFG_FLASH_BASE - Start address of flash memory * CFG_FLASH_BASE - Start address of flash memory
* CFG_FLASH_SIZE - Total size of contiguous flash mem * CFG_FLASH_SIZE - Total size of contiguous flash mem
* CFG_FLASH_ERASE_TOUT - Erase timeout in ms * CFG_FLASH_ERASE_TOUT - Erase timeout in ms
@ -223,7 +223,7 @@
/* /*
* Monitor config - see memory map details above * Monitor config - see memory map details above
* *
* CFG_MONITOR_BASE - Base address of monitor code * CFG_MONITOR_BASE - Base address of monitor code
* CFG_MALLOC_LEN - Size of malloc pool (128KB) * CFG_MALLOC_LEN - Size of malloc pool (128KB)
*/ */
@ -234,7 +234,7 @@
/* /*
* Command shell settings * Command shell settings
* *
* CFG_BARGSIZE - Boot Argument buffer size * CFG_BARGSIZE - Boot Argument buffer size
* CFG_BOOTMAPSZ - Size of app's mapped RAM at boot (Linux=8MB) * CFG_BOOTMAPSZ - Size of app's mapped RAM at boot (Linux=8MB)
* CFG_CBSIZE - Console Buffer (input) size * CFG_CBSIZE - Console Buffer (input) size
@ -261,10 +261,10 @@
/* /*
* Environment config - see memory map details above * Environment config - see memory map details above
* *
* CFG_ENV_IS_IN_FLASH - The env variables are stored in flash * CFG_ENV_IS_IN_FLASH - The env variables are stored in flash
* CFG_ENV_ADDR - Address of the sector containing env vars * CFG_ENV_ADDR - Address of the sector containing env vars
* CFG_ENV_SIZE - Ammount of RAM for env vars (used to save RAM, 4KB) * CFG_ENV_SIZE - Ammount of RAM for env vars (used to save RAM, 4KB)
* CFG_ENV_SECT_SIZE - Size of sector containing env vars (32KB) * CFG_ENV_SECT_SIZE - Size of sector containing env vars (32KB)
*/ */
@ -282,7 +282,7 @@
* Since the main system RAM is initialised very early, we place the INIT_RAM * Since the main system RAM is initialised very early, we place the INIT_RAM
* in the main system RAM just above the exception vectors. The contents are * in the main system RAM just above the exception vectors. The contents are
* copied to top of RAM by the init code. * copied to top of RAM by the init code.
* *
* CFG_INIT_RAM_ADDR - Address of Init RAM, above exception vect * CFG_INIT_RAM_ADDR - Address of Init RAM, above exception vect
* CFG_INIT_RAM_END - Size of Init RAM * CFG_INIT_RAM_END - Size of Init RAM
* CFG_GBL_DATA_SIZE - Ammount of RAM to reserve for global data * CFG_GBL_DATA_SIZE - Ammount of RAM to reserve for global data
@ -297,7 +297,7 @@
/* /*
* Initial BAT config * Initial BAT config
* *
* BAT0 - System SDRAM * BAT0 - System SDRAM
* BAT1 - LED's and Serial Port * BAT1 - LED's and Serial Port
* BAT2 - PCI Memory * BAT2 - PCI Memory
@ -327,7 +327,7 @@
/* /*
* Cache config * Cache config
* *
* CFG_CACHELINE_SIZE - Size of a cache line (CPU specific) * CFG_CACHELINE_SIZE - Size of a cache line (CPU specific)
* CFG_L2 - L2 cache enabled if defined * CFG_L2 - L2 cache enabled if defined
* L2_INIT - L2 cache init flags * L2_INIT - L2 cache init flags
@ -342,7 +342,7 @@
/* /*
* Clocks config * Clocks config
* *
* CFG_BUS_HZ - Bus clock frequency in Hz * CFG_BUS_HZ - Bus clock frequency in Hz
* CFG_BUS_CLK - As above (?) * CFG_BUS_CLK - As above (?)
* CFG_HZ - Decrementer freq in Hz * CFG_HZ - Decrementer freq in Hz
@ -355,7 +355,7 @@
/* /*
* Serial port config * Serial port config
* *
* CFG_BAUDRATE_TABLE - List of valid baud rates * CFG_BAUDRATE_TABLE - List of valid baud rates
* CFG_NS16550 - Include the NS16550 driver * CFG_NS16550 - Include the NS16550 driver
* CFG_NS16550_SERIAL - Include the serial (wrapper) driver * CFG_NS16550_SERIAL - Include the serial (wrapper) driver
@ -398,7 +398,7 @@
/* /*
* Extra init functions * Extra init functions
* *
* CFG_BOARD_ASM_INIT - Call assembly init code * CFG_BOARD_ASM_INIT - Call assembly init code
*/ */
@ -407,11 +407,11 @@
/* /*
* Boot flags * Boot flags
* *
* BOOTFLAG_COLD - Indicates a power-on boot * BOOTFLAG_COLD - Indicates a power-on boot
* BOOTFLAG_WARM - Indicates a software reset * BOOTFLAG_WARM - Indicates a software reset
*/ */
#define BOOTFLAG_COLD 0x01 #define BOOTFLAG_COLD 0x01
#define BOOTFLAG_WARM 0x02 #define BOOTFLAG_WARM 0x02

View File

@ -7,7 +7,7 @@
* added prototypes for ns16550.c * added prototypes for ns16550.c
* reduced no of com ports to 2 * reduced no of com ports to 2
* modifications (c) Rob Taylor, Flying Pig Systems. 2000. * modifications (c) Rob Taylor, Flying Pig Systems. 2000.
* *
* added support for port on 64-bit bus * added support for port on 64-bit bus
* by Richard Danter (richard.danter@windriver.com), (C) 2005 Wind River Systems * by Richard Danter (richard.danter@windriver.com), (C) 2005 Wind River Systems
*/ */