mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	PMC405 and CPCI405: Moved configuration of pci resources into config file.
PMC405 and CPCI2DP: Added firmware download and booting via pci. Patch by Matthias Fuchs, 20 Dec 2005
This commit is contained in:
		
							parent
							
								
									c4b465f63e
								
							
						
					
					
						commit
						2076d0a15f
					
				@ -2,6 +2,11 @@
 | 
			
		||||
Changes since U-Boot 1.1.4:
 | 
			
		||||
======================================================================
 | 
			
		||||
 | 
			
		||||
* PMC405 and CPCI405: Moved configuration of pci resources
 | 
			
		||||
  into config file.
 | 
			
		||||
  PMC405 and CPCI2DP: Added firmware download and booting via pci.
 | 
			
		||||
  Patch by Matthias Fuchs, 20 Dec 2005
 | 
			
		||||
 | 
			
		||||
* Fix 28F256J3A support on PM520 board
 | 
			
		||||
  (without bank-switching only 32 MB can be accessed)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										123
									
								
								board/esd/common/cmd_loadpci.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								board/esd/common/cmd_loadpci.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,123 @@
 | 
			
		||||
/*
 | 
			
		||||
 * (C) Copyright 2005
 | 
			
		||||
 * Matthias Fuchs, esd GmbH Germany, matthias.fuchs@esd-electronics.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>
 | 
			
		||||
#include <command.h>
 | 
			
		||||
 | 
			
		||||
#if (CONFIG_COMMANDS & CFG_CMD_BSP)
 | 
			
		||||
 | 
			
		||||
extern int do_bootm (cmd_tbl_t *, int, int, char *[]);
 | 
			
		||||
extern int do_autoscript (cmd_tbl_t *, int, int, char *[]);
 | 
			
		||||
 | 
			
		||||
#define ADDRMASK 0xfffff000
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Command loadpci: wait for signal from host and boot image.
 | 
			
		||||
 */
 | 
			
		||||
int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	unsigned int *ptr = 0;
 | 
			
		||||
	int count = 0;
 | 
			
		||||
	int count2 = 0;
 | 
			
		||||
	char addr[16];
 | 
			
		||||
	char str[] = "\\|/-";
 | 
			
		||||
	char *local_args[2];
 | 
			
		||||
 | 
			
		||||
	while(1) {
 | 
			
		||||
		/*
 | 
			
		||||
		 * Mark sync address
 | 
			
		||||
		 */
 | 
			
		||||
		ptr = 0;
 | 
			
		||||
		memset(ptr, 0, 0x20);
 | 
			
		||||
 | 
			
		||||
		*ptr = 0xffffffff;
 | 
			
		||||
		puts("\nWaiting for action from pci host -");
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Wait for host to write the start address
 | 
			
		||||
		 */
 | 
			
		||||
		while (*ptr == 0xffffffff) {
 | 
			
		||||
			count++;
 | 
			
		||||
			if (!(count % 100)) {
 | 
			
		||||
				count2++;
 | 
			
		||||
				putc(0x08); /* backspace */
 | 
			
		||||
				putc(str[count2 % 4]);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/* Abort if ctrl-c was pressed */
 | 
			
		||||
			if (ctrlc()) {
 | 
			
		||||
				puts("\nAbort\n");
 | 
			
		||||
				return 0;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			udelay(1000);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		printf("\nGot bootcode %08x: ", *ptr);
 | 
			
		||||
		sprintf(addr, "%08x", *ptr & ADDRMASK);
 | 
			
		||||
 | 
			
		||||
		switch (*ptr & ~ADDRMASK) {
 | 
			
		||||
		case 0:
 | 
			
		||||
			/*
 | 
			
		||||
			 * Boot image via bootm
 | 
			
		||||
			 */
 | 
			
		||||
			printf("booting image at addr 0x%s ...\n", addr);
 | 
			
		||||
			setenv("loadaddr", addr);
 | 
			
		||||
 | 
			
		||||
			do_bootm (cmdtp, 0, 0, NULL);
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 1:
 | 
			
		||||
			/*
 | 
			
		||||
			 * Boot image via autoscr
 | 
			
		||||
			 */
 | 
			
		||||
			printf("executing script at addr 0x%s ...\n", addr);
 | 
			
		||||
 | 
			
		||||
			local_args[0] = addr;
 | 
			
		||||
			local_args[1] = NULL;
 | 
			
		||||
			do_autoscript(cmdtp, 0, 1, local_args);
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 2:
 | 
			
		||||
			/*
 | 
			
		||||
			 * Call run_cmd
 | 
			
		||||
			 */
 | 
			
		||||
			printf("running command at addr 0x%s ...\n", addr);
 | 
			
		||||
			run_command ((char*)(*ptr & ADDRMASK), 0);
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		default:
 | 
			
		||||
			printf("unhandled boot method\n");
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
U_BOOT_CMD(
 | 
			
		||||
	loadpci,	1,	1,	do_loadpci,
 | 
			
		||||
	"loadpci - Wait for pci bootcmd and boot it\n",
 | 
			
		||||
	NULL
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 | 
			
		||||
 | 
			
		||||
LIB	= lib$(BOARD).a
 | 
			
		||||
 | 
			
		||||
OBJS	= $(BOARD).o flash.o ../common/misc.o
 | 
			
		||||
OBJS	= $(BOARD).o flash.o ../common/misc.o ../common/cmd_loadpci.o
 | 
			
		||||
 | 
			
		||||
$(LIB):	$(OBJS) $(SOBJS)
 | 
			
		||||
	$(AR) crv $@ $(OBJS)
 | 
			
		||||
 | 
			
		||||
@ -31,17 +31,15 @@ int board_early_init_f (void)
 | 
			
		||||
	unsigned long cntrl0Reg;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Setup GPIO pins (CS4+CS7 as GPIO)
 | 
			
		||||
	 * Setup GPIO pins
 | 
			
		||||
	 */
 | 
			
		||||
	cntrl0Reg = mfdcr(cntrl0);
 | 
			
		||||
	mtdcr(cntrl0, cntrl0Reg | 0x00900000);
 | 
			
		||||
	mtdcr(cntrl0, cntrl0Reg | ((CFG_EEPROM_WP | CFG_PB_LED | CFG_SELF_RST | CFG_INTA_FAKE) << 5));
 | 
			
		||||
 | 
			
		||||
	/* set output pins to high */
 | 
			
		||||
	out32(GPIO0_OR,	 CFG_INTA_FAKE | CFG_EEPROM_WP | CFG_PB_LED);
 | 
			
		||||
	/* INTA# is open drain */
 | 
			
		||||
	out32(GPIO0_ODR, CFG_INTA_FAKE);
 | 
			
		||||
	/* setup for output */
 | 
			
		||||
	out32(GPIO0_TCR, CFG_INTA_FAKE | CFG_EEPROM_WP);
 | 
			
		||||
        /* set output pins to high */
 | 
			
		||||
	out32(GPIO0_OR,  CFG_EEPROM_WP);
 | 
			
		||||
        /* setup for output (LED=off) */
 | 
			
		||||
	out32(GPIO0_TCR, CFG_EEPROM_WP | CFG_PB_LED);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * IRQ 0-15  405GP internally generated; active high; level sensitive
 | 
			
		||||
@ -130,16 +128,6 @@ long int initdram (int board_type)
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
int testdram (void)
 | 
			
		||||
{
 | 
			
		||||
	/* TODO: XXX XXX XXX */
 | 
			
		||||
	printf ("test: 64 MB - ok\n");
 | 
			
		||||
 | 
			
		||||
	return (0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
#if defined(CFG_EEPROM_WREN)
 | 
			
		||||
/* Input: <dev_addr>  I2C address of EEPROM device to enable.
 | 
			
		||||
 *	   <state>     -1: deliver current state
 | 
			
		||||
@ -207,8 +195,8 @@ int do_eep_wren (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
U_BOOT_CMD(
 | 
			
		||||
	   eepwren,	2,	0,	do_eep_wren,
 | 
			
		||||
	   "eepwren - Enable / disable / query EEPROM write access\n",
 | 
			
		||||
	   NULL
 | 
			
		||||
	   );
 | 
			
		||||
	eepwren,	2,	0,	do_eep_wren,
 | 
			
		||||
	"eepwren - Enable / disable / query EEPROM write access\n",
 | 
			
		||||
	NULL
 | 
			
		||||
	);
 | 
			
		||||
#endif /* #if defined(CFG_EEPROM_WREN) */
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ CPLD    = ../common/xilinx_jtag/lenval.o \
 | 
			
		||||
	  ../common/xilinx_jtag/micro.o \
 | 
			
		||||
	  ../common/xilinx_jtag/ports.o
 | 
			
		||||
 | 
			
		||||
OBJS	= $(BOARD).o ../common/misc.o $(CPLD)
 | 
			
		||||
OBJS	= $(BOARD).o ../common/misc.o ../common/cmd_loadpci.o $(CPLD)
 | 
			
		||||
 | 
			
		||||
$(LIB):	$(OBJS) $(SOBJS)
 | 
			
		||||
	$(AR) crv $@ $(OBJS)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,9 @@
 | 
			
		||||
/*
 | 
			
		||||
 * (C) Copyright 2001-2003
 | 
			
		||||
 * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
 | 
			
		||||
 * Stefan Roese, DENX Software Engineering, sr@denx.de.
 | 
			
		||||
 *
 | 
			
		||||
 * (C) Copyright 2005
 | 
			
		||||
 * Matthias Fuchs, esd gmbh germany, matthias.fuchs@esd-electronics.com
 | 
			
		||||
 *
 | 
			
		||||
 * See file CREDITS for list of people who contributed to this
 | 
			
		||||
 * project.
 | 
			
		||||
@ -66,16 +69,27 @@ int board_early_init_f (void)
 | 
			
		||||
	mtebc (epcr, 0xa8400000);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Setup GPIO pins (CS6+CS7 as GPIO)
 | 
			
		||||
	 * Setup GPIO pins
 | 
			
		||||
	 */
 | 
			
		||||
	mtdcr(cntrl0, mfdcr(cntrl0) | 0x00300000);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Configure GPIO pins
 | 
			
		||||
	mtdcr(cntrl0, mfdcr(cntrl0) | ((CFG_FPGA_INIT | \
 | 
			
		||||
					CFG_FPGA_DONE | \
 | 
			
		||||
					CFG_XEREADY | \
 | 
			
		||||
					CFG_NONMONARCH | \
 | 
			
		||||
					CFG_REV1_2) << 5));
 | 
			
		||||
 | 
			
		||||
	if (!(in32(GPIO0_IR) & CFG_REV1_2)) {
 | 
			
		||||
		/* rev 1.2 boards */
 | 
			
		||||
		mtdcr(cntrl0, mfdcr(cntrl0) | ((CFG_INTA_FAKE | \
 | 
			
		||||
						CFG_SELF_RST) << 5));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	out32(GPIO0_OR, 0);
 | 
			
		||||
	out32(GPIO0_TCR, CFG_FPGA_PRG | CFG_FPGA_CLK | CFG_FPGA_DATA | CFG_XEREADY); /* setup for output */
 | 
			
		||||
 | 
			
		||||
	/* - check if rev1_2 is low, then:
 | 
			
		||||
	 * - set/reset CFG_INTA_FAKE/CFG_SELF_RST in TCR to assert INTA# or SELFRST#
 | 
			
		||||
	 */
 | 
			
		||||
	out32(GPIO0_ODR, 0x00000000);                                /* no open drain pins */
 | 
			
		||||
	out32(GPIO0_TCR, CFG_FPGA_PRG | CFG_FPGA_CLK | CFG_FPGA_DATA); /* setup for output */
 | 
			
		||||
	out32(GPIO0_OR, 0);                                            /* outputs -> low   */
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
@ -83,11 +97,6 @@ int board_early_init_f (void)
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
int misc_init_f (void)
 | 
			
		||||
{
 | 
			
		||||
	return 0;  /* dummy implementation */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int misc_init_r (void)
 | 
			
		||||
{
 | 
			
		||||
@ -97,16 +106,30 @@ int misc_init_r (void)
 | 
			
		||||
	gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize;
 | 
			
		||||
	gd->bd->bi_flashoffset = 0;
 | 
			
		||||
 | 
			
		||||
	out32(GPIO0_OR, in32(GPIO0_OR) | CFG_XEREADY); /* deassert EREADY# */
 | 
			
		||||
	return (0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ushort pmc405_pci_subsys_deviceid(void)
 | 
			
		||||
{
 | 
			
		||||
	ulong val;
 | 
			
		||||
	val = in32(GPIO0_IR);
 | 
			
		||||
	if (!(val & CFG_REV1_2)) { /* low=rev1.2 */
 | 
			
		||||
		if (val & CFG_NONMONARCH) { /* monarch# signal */
 | 
			
		||||
			return CFG_PCI_SUBSYS_DEVICEID_NONMONARCH;
 | 
			
		||||
		}
 | 
			
		||||
		return CFG_PCI_SUBSYS_DEVICEID_MONARCH;
 | 
			
		||||
	}
 | 
			
		||||
	return CFG_PCI_SUBSYS_DEVICEID_NONMONARCH;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Check Board Identity:
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
int checkboard (void)
 | 
			
		||||
{
 | 
			
		||||
	ulong val;
 | 
			
		||||
 | 
			
		||||
	char str[64];
 | 
			
		||||
	int i = getenv_r ("serial#", str, sizeof(str));
 | 
			
		||||
 | 
			
		||||
@ -118,12 +141,18 @@ int checkboard (void)
 | 
			
		||||
		puts(str);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	putc ('\n');
 | 
			
		||||
	val = in32(GPIO0_IR);
 | 
			
		||||
	if (!(val & CFG_REV1_2)) { /* low=rev1.2 */
 | 
			
		||||
		puts(" rev1.2 (");
 | 
			
		||||
		if (val & CFG_NONMONARCH) { /* monarch# signal */
 | 
			
		||||
			puts("non-");
 | 
			
		||||
		}
 | 
			
		||||
		puts("monarch)");
 | 
			
		||||
	} else {
 | 
			
		||||
		puts(" <=rev1.1");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Disable sleep mode in LXT971
 | 
			
		||||
	 */
 | 
			
		||||
	lxt971_no_sleep();
 | 
			
		||||
	putc ('\n');
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
@ -145,17 +174,19 @@ long int initdram (int board_type)
 | 
			
		||||
	return (4*1024*1024 << ((val & 0x000e0000) >> 17));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
int testdram (void)
 | 
			
		||||
void reset_phy(void)
 | 
			
		||||
{
 | 
			
		||||
	/* TODO: XXX XXX XXX */
 | 
			
		||||
	printf ("test: 16 MB - ok\n");
 | 
			
		||||
#ifdef CONFIG_LXT971_NO_SLEEP
 | 
			
		||||
 | 
			
		||||
	return (0);
 | 
			
		||||
	/*
 | 
			
		||||
	 * Disable sleep mode in LXT971
 | 
			
		||||
	 */
 | 
			
		||||
	lxt971_no_sleep();
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
int do_cantest(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@ -81,6 +81,10 @@
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_PCI
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_PMC405)
 | 
			
		||||
ushort pmc405_pci_subsys_deviceid(void);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*#define DEBUG*/
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------------+
 | 
			
		||||
@ -96,13 +100,10 @@ void pci_405gp_init(struct pci_controller *hose)
 | 
			
		||||
	unsigned short temp_short;
 | 
			
		||||
	unsigned long ptmpcila[2] = {CFG_PCI_PTM1PCI, CFG_PCI_PTM2PCI};
 | 
			
		||||
#if defined(CONFIG_CPCI405) || defined(CONFIG_PMC405)
 | 
			
		||||
	unsigned long ptmla[2]    = {bd->bi_memstart, bd->bi_flashstart};
 | 
			
		||||
	unsigned long ptmms[2]    = {~(bd->bi_memsize - 1) | 1, ~(bd->bi_flashsize - 1) | 1};
 | 
			
		||||
	char *ptmla_str, *ptmms_str;
 | 
			
		||||
#else
 | 
			
		||||
#endif
 | 
			
		||||
	unsigned long ptmla[2]    = {CFG_PCI_PTM1LA, CFG_PCI_PTM2LA};
 | 
			
		||||
	unsigned long ptmms[2]    = {CFG_PCI_PTM1MS, CFG_PCI_PTM2MS};
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(CONFIG_PIP405) || defined (CONFIG_MIP405)
 | 
			
		||||
	unsigned long pmmla[3]    = {0x80000000, 0xA0000000, 0};
 | 
			
		||||
	unsigned long pmmma[3]    = {0xE0000001, 0xE0000001, 0};
 | 
			
		||||
 | 
			
		||||
@ -143,8 +143,9 @@
 | 
			
		||||
#define CFG_PCI_SUBSYS_VENDORID 0x12FE  /* PCI Vendor ID: esd gmbh      */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID 0x040b  /* PCI Device ID: CPCI-2DP      */
 | 
			
		||||
#define CFG_PCI_CLASSCODE       0x0280	/* PCI Class Code: Network/Other*/
 | 
			
		||||
#define CFG_PCI_PTM1LA  0x00000000      /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  0xfc000001      /* 64MB, enable hard-wired to 1 */
 | 
			
		||||
 | 
			
		||||
#define CFG_PCI_PTM1LA  (bd->bi_memstart) /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  (~(bd->bi_memsize - 1) | 1) /* memsize, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1PCI 0x00000000      /* Host: use this pci address   */
 | 
			
		||||
#define CFG_PCI_PTM2LA	0xef000000	/* point to internal regs + PB0/1 */
 | 
			
		||||
#define CFG_PCI_PTM2MS  0xff000001      /* 16MB, enable                  */
 | 
			
		||||
@ -250,14 +251,15 @@
 | 
			
		||||
 | 
			
		||||
#define CFG_INIT_RAM_ADDR	0x40000000  /* use data cache		       */
 | 
			
		||||
#define CFG_INIT_RAM_END	0x2000	/* End of used area in RAM	       */
 | 
			
		||||
#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_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
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * GPIO definitions
 | 
			
		||||
 */
 | 
			
		||||
#define CFG_EEPROM_WP		(0x80000000 >> 13)   /* GPIO13 */
 | 
			
		||||
#define CFG_SELF_RST		(0x80000000 >> 14)   /* GPIO14 */
 | 
			
		||||
#define CFG_PB_LED		(0x80000000 >> 16)   /* GPIO16 */
 | 
			
		||||
#define CFG_INTA_FAKE		(0x80000000 >> 23)   /* GPIO23 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -151,8 +151,8 @@
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0405  /* PCI Device ID: CPCI-405      */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID2 0x0406 /* PCI Device ID: CPCI-405-A    */
 | 
			
		||||
#define CFG_PCI_CLASSCODE       0x0b20  /* PCI Class Code: Processor/PPC*/
 | 
			
		||||
#define CFG_PCI_PTM1LA  0x00000000      /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  0xfc000001      /* 64MB, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1LA  (bd->bi_memstart) /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  (~(bd->bi_memsize - 1) | 1) /* memsize, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1PCI 0x00000000      /* Host: use this pci address   */
 | 
			
		||||
#define CFG_PCI_PTM2LA  0xffc00000      /* point to flash               */
 | 
			
		||||
#define CFG_PCI_PTM2MS  0xffc00001      /* 4MB, enable                  */
 | 
			
		||||
 | 
			
		||||
@ -178,8 +178,8 @@
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0405  /* PCI Device ID: CPCI-405      */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID2 0x0406 /* PCI Device ID: CPCI-405-A    */
 | 
			
		||||
#define CFG_PCI_CLASSCODE       0x0b20  /* PCI Class Code: Processor/PPC*/
 | 
			
		||||
#define CFG_PCI_PTM1LA  0x00000000      /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  0xfc000001      /* 64MB, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1LA  (bd->bi_memstart) /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  (~(bd->bi_memsize - 1) | 1) /* memsize, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1PCI 0x00000000      /* Host: use this pci address   */
 | 
			
		||||
#define CFG_PCI_PTM2LA  0xffc00000      /* point to flash               */
 | 
			
		||||
#define CFG_PCI_PTM2MS  0xffc00001      /* 4MB, enable                  */
 | 
			
		||||
 | 
			
		||||
@ -161,8 +161,8 @@
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0405	/* PCI Device ID: CPCI-405	*/
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID2 0x0406 /* PCI Device ID: CPCI-405-A	*/
 | 
			
		||||
#define CFG_PCI_CLASSCODE	0x0b20	/* PCI Class Code: Processor/PPC*/
 | 
			
		||||
#define CFG_PCI_PTM1LA	0x00000000	/* point to sdram		*/
 | 
			
		||||
#define CFG_PCI_PTM1MS	0xfc000001	/* 64MB, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1LA  (bd->bi_memstart) /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  (~(bd->bi_memsize - 1) | 1) /* memsize, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1PCI 0x00000000	/* Host: use this pci address	*/
 | 
			
		||||
#define CFG_PCI_PTM2LA	0xffc00000	/* point to flash		*/
 | 
			
		||||
#define CFG_PCI_PTM2MS	0xffc00001	/* 4MB, enable			*/
 | 
			
		||||
 | 
			
		||||
@ -183,8 +183,8 @@
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0405  /* PCI Device ID: CPCI-405      */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID2 0x0406 /* PCI Device ID: CPCI-405-A    */
 | 
			
		||||
#define CFG_PCI_CLASSCODE       0x0b20  /* PCI Class Code: Processor/PPC*/
 | 
			
		||||
#define CFG_PCI_PTM1LA  0x00000000      /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  0xfc000001      /* 64MB, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1LA  (bd->bi_memstart) /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  (~(bd->bi_memsize - 1) | 1) /* memsize, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1PCI 0x00000000      /* Host: use this pci address   */
 | 
			
		||||
#define CFG_PCI_PTM2LA  0xffc00000      /* point to flash               */
 | 
			
		||||
#define CFG_PCI_PTM2MS  0xffc00001      /* 4MB, enable                  */
 | 
			
		||||
 | 
			
		||||
@ -53,9 +53,15 @@
 | 
			
		||||
#define CONFIG_LOADS_ECHO	1	/* echo on for serial download	*/
 | 
			
		||||
#define CFG_LOADS_BAUD_CHANGE	1	/* allow baudrate change	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_NET_MULTI	1
 | 
			
		||||
#undef  CONFIG_HAS_ETH1
 | 
			
		||||
 | 
			
		||||
#define CONFIG_MII		1	/* MII PHY management		*/
 | 
			
		||||
#define CONFIG_PHY_ADDR		0	/* PHY address			*/
 | 
			
		||||
#define CONFIG_LXT971_NO_SLEEP  1       /* disable sleep mode in LXT971 */
 | 
			
		||||
#define CONFIG_RESET_PHY_R      1       /* use reset_phy() to disable phy sleep mode */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_COMMANDS	      ( CONFIG_CMD_DFL	| \
 | 
			
		||||
				CFG_CMD_BSP	| \
 | 
			
		||||
@ -154,15 +160,24 @@
 | 
			
		||||
#define CONFIG_PCI_BOOTDELAY    0       /* enable pci bootdelay variable*/
 | 
			
		||||
 | 
			
		||||
#define CFG_PCI_SUBSYS_VENDORID 0x12FE  /* PCI Vendor ID: esd gmbh      */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID 0x0408  /* PCI Device ID: PMC-405       */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID_NONMONARCH 0x0408  /* PCI Device ID: Non-Monarch */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID_MONARCH 0x0409     /* PCI Device ID: Monarch */
 | 
			
		||||
#define CFG_PCI_SUBSYS_DEVICEID pmc405_pci_subsys_deviceid()
 | 
			
		||||
 | 
			
		||||
#define CFG_PCI_CLASSCODE       0x0b20  /* PCI Class Code: Processor/PPC*/
 | 
			
		||||
#define CFG_PCI_PTM1LA  0x00000000      /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  0xfc000001      /* 64MB, enable hard-wired to 1 */
 | 
			
		||||
 | 
			
		||||
#define CFG_PCI_PTM1LA  (bd->bi_memstart) /* point to sdram               */
 | 
			
		||||
#define CFG_PCI_PTM1MS  (~(bd->bi_memsize - 1) | 1) /* memsize, enable hard-wired to 1 */
 | 
			
		||||
#define CFG_PCI_PTM1PCI 0x00000000      /* Host: use this pci address   */
 | 
			
		||||
#if 1
 | 
			
		||||
#define CFG_PCI_PTM2LA	0xef000000	/* point to internal regs       */
 | 
			
		||||
#define CFG_PCI_PTM2MS  0xff000001      /* 16MB, enable                 */
 | 
			
		||||
#define CFG_PCI_PTM2PCI 0x00000000      /* Host: use this pci address   */
 | 
			
		||||
#else /* old mapping */
 | 
			
		||||
#define CFG_PCI_PTM2LA  0xffc00000      /* point to flash               */
 | 
			
		||||
#define CFG_PCI_PTM2MS  0xffc00001      /* 4MB, enable                  */
 | 
			
		||||
#define CFG_PCI_PTM2PCI 0x04000000      /* Host: use this pci address   */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Start addresses for the final memory configuration
 | 
			
		||||
 * (Set up by the startup code)
 | 
			
		||||
@ -259,7 +274,7 @@
 | 
			
		||||
#define FLASH1_BA	0xFE000000	    /* FLASH 1 Base Address		*/
 | 
			
		||||
#define CAN_BA		0xF0000000	    /* CAN Base Address			*/
 | 
			
		||||
#define RTC_BA		0xF0000500	    /* RTC Base Address			*/
 | 
			
		||||
#define CF_BA		0xF0100000	    /* CompactFlash Base Address	*/
 | 
			
		||||
#define NVRAM_BA        0xF0200000          /* NVRAM Base Address               */
 | 
			
		||||
 | 
			
		||||
/* Memory Bank 0 (Flash Bank 0) initialization					*/
 | 
			
		||||
#define CFG_EBC_PB0AP	0x92015480
 | 
			
		||||
@ -273,9 +288,11 @@
 | 
			
		||||
#define CFG_EBC_PB2AP	0x03000440   /* TWT=5,TH=2,CSN=0,OEN=0,WBN=0,WBF=0      */
 | 
			
		||||
#define CFG_EBC_PB2CR	CAN_BA | 0x18000    /* BAS=0xF00,BS=1MB,BU=R/W,BW=8bit	*/
 | 
			
		||||
 | 
			
		||||
/* Memory Bank 3 (CompactFlash IDE, FPGA internal) initialization		*/
 | 
			
		||||
#define CFG_EBC_PB3AP	0x010059C0   /* BWT=2,WBN=1,WBF=1,TH=1,RE=1,SOR=1,BEM=1 */
 | 
			
		||||
#define CFG_EBC_PB3CR	CF_BA | 0x1A000	    /* BAS=0xF01,BS=1MB,BU=R/W,BW=16bit */
 | 
			
		||||
/* Memory Bank 3 -> unused */
 | 
			
		||||
 | 
			
		||||
/* Memory Bank 4 (NVRAM) initialization					*/
 | 
			
		||||
#define CFG_EBC_PB4AP	0x03000440   /* TWT=5,TH=2,CSN=0,OEN=0,WBN=0,WBF=0      */
 | 
			
		||||
#define CFG_EBC_PB4CR	NVRAM_BA | 0x18000    /* BAS=0xF00,BS=1MB,BU=R/W,BW=8bit	*/
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * FPGA stuff
 | 
			
		||||
@ -292,6 +309,15 @@
 | 
			
		||||
 | 
			
		||||
#define CFG_VXWORKS_MAC_PTR	0x00000000	/* Pass Ethernet MAC to VxWorks */
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * GPIOs
 | 
			
		||||
 */
 | 
			
		||||
#define CFG_NONMONARCH		(0x80000000 >> 14)   /* GPIO24 */
 | 
			
		||||
#define CFG_XEREADY		(0x80000000 >> 15)   /* GPIO15 */
 | 
			
		||||
#define CFG_INTA_FAKE		(0x80000000 >> 19)   /* GPIO19 */
 | 
			
		||||
#define CFG_SELF_RST		(0x80000000 >> 21)   /* GPIO21 */
 | 
			
		||||
#define CFG_REV1_2		(0x80000000 >> 23)   /* GPIO23 */
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Definitions for initial stack pointer and data area (in data cache)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user