diff options
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | board/rmu/Makefile | 44 | ||||
| -rw-r--r-- | board/rmu/flash.c | 540 | ||||
| -rw-r--r-- | board/rmu/rmu.c | 162 | ||||
| -rw-r--r-- | board/rmu/u-boot.lds | 96 | ||||
| -rw-r--r-- | board/rmu/u-boot.lds.debug | 130 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | doc/README.scrapyard | 1 | ||||
| -rw-r--r-- | include/configs/rmu.h | 426 | 
9 files changed, 1 insertions, 1400 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index 8eb5efe44..8bb757211 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -107,7 +107,6 @@ Wolfgang Denk <wd@denx.de>  	LANTEC		MPC850  	LWMON		MPC823  	R360MPI		MPC823 -	RMU		MPC850  	RRvision	MPC823  	SM850		MPC850  	SPD823TS	MPC823 diff --git a/board/rmu/Makefile b/board/rmu/Makefile deleted file mode 100644 index 6dc495c36..000000000 --- a/board/rmu/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# -# (C) Copyright 2000-2006 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -include $(TOPDIR)/config.mk - -LIB	= $(obj)lib$(BOARD).o - -COBJS	= $(BOARD).o flash.o - -SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS	:= $(addprefix $(obj),$(COBJS)) -SOBJS	:= $(addprefix $(obj),$(SOBJS)) - -$(LIB):	$(obj).depend $(OBJS) -	$(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/rmu/flash.c b/board/rmu/flash.c deleted file mode 100644 index 283b19d04..000000000 --- a/board/rmu/flash.c +++ /dev/null @@ -1,540 +0,0 @@ -/* - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -/* #define DEBUG */ - -#include <common.h> -#include <mpc8xx.h> - -flash_info_t	flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips	*/ - -/*----------------------------------------------------------------------- - * Functions - */ -static ulong flash_get_size (vu_long *addr, flash_info_t *info); -static int write_word (flash_info_t *info, ulong dest, ulong data); -static void flash_get_offsets (ulong base, flash_info_t *info); - -/*----------------------------------------------------------------------- - */ - -unsigned long flash_init (void) -{ -	volatile immap_t     *immap  = (immap_t *)CONFIG_SYS_IMMR; -	volatile memctl8xx_t *memctl = &immap->im_memctl; -	unsigned long size_b0 ; -	int i; - -	/* Init: no FLASHes known */ -	for (i=0; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i) { -		flash_info[i].flash_id = FLASH_UNKNOWN; -	} - -	/* Static FLASH Bank configuration here - FIXME XXX */ - -	debug ("\n## Get flash bank size @ 0x%08x\n", FLASH_BASE_PRELIM); - -	size_b0 = flash_get_size((vu_long *)FLASH_BASE_PRELIM, &flash_info[0]); -	if (flash_info[0].flash_id == FLASH_UNKNOWN) { -		printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n", -			size_b0, size_b0<<20); -	} - -	debug  ("## Before remap:  BR0: 0x%08x    OR0: 0x%08x\n", -		memctl->memc_br0, memctl->memc_or0); - -	/* Remap FLASH according to real size */ -	memctl->memc_or0 = CONFIG_SYS_OR_TIMING_FLASH | (-size_b0 & 0xFFFF8000); -	memctl->memc_br0 = (CONFIG_SYS_FLASH_BASE & BR_BA_MSK) | BR_MS_GPCM | BR_V; - -	debug ("## BR0: 0x%08x    OR0: 0x%08x\n", -		memctl->memc_br0, memctl->memc_or0); - -	/* Re-do sizing to get full correct info */ - -	size_b0 = flash_get_size((vu_long *)CONFIG_SYS_FLASH_BASE, &flash_info[0]); -	flash_get_offsets (CONFIG_SYS_FLASH_BASE, &flash_info[0]); - -	/* monitor protection ON by default */ -	flash_protect(FLAG_PROTECT_SET, -		      CONFIG_SYS_MONITOR_BASE, -		      CONFIG_SYS_MONITOR_BASE+monitor_flash_len-1, -		      &flash_info[0]); - -#ifdef	CONFIG_ENV_IS_IN_FLASH -	/* ENV protection ON by default */ -	flash_protect(FLAG_PROTECT_SET, -		      CONFIG_ENV_ADDR, -		      CONFIG_ENV_ADDR+CONFIG_ENV_SECT_SIZE-1, -		      &flash_info[0]); -#endif - -#if defined(CONFIG_ENV_ADDR_REDUND) || defined(CONFIG_ENV_OFFSET_REDUND) -	debug ("Protect redundand environment: %08lx ... %08lx\n", -		(ulong)CONFIG_ENV_ADDR_REDUND, -		(ulong)CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1); - -	flash_protect(FLAG_PROTECT_SET, -		      CONFIG_ENV_ADDR_REDUND, -		      CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1, -		      &flash_info[0]); -#endif - -	flash_info[0].size = size_b0; - -	debug ("## Final Flash bank size: %08lx\n", size_b0); - -	return (size_b0); -} - -/*----------------------------------------------------------------------- - */ -static void flash_get_offsets (ulong base, flash_info_t *info) -{ -	int i; - -	/* set up sector start address table */ -	if (info->flash_id & FLASH_BTYPE) { -		/* set sector offsets for bottom boot block type	*/ -		info->start[0] = base + 0x00000000; -		info->start[1] = base + 0x00010000; -		info->start[2] = base + 0x00018000; -		info->start[3] = base + 0x00020000; -		for (i = 4; i < info->sector_count; i++) { -			info->start[i] = base + ((i-3) * 0x00040000) ; -		} -	} else { -		/* set sector offsets for top boot block type		*/ -		i = info->sector_count - 1; -		info->start[i--] = base + info->size - 0x00010000; -		info->start[i--] = base + info->size - 0x00018000; -		info->start[i--] = base + info->size - 0x00020000; -		for (; i >= 0; i--) { -			info->start[i] = base + i * 0x00040000; -		} -	} - -} - -/*----------------------------------------------------------------------- - */ -void flash_print_info  (flash_info_t *info) -{ -	int i; - -	if (info->flash_id == FLASH_UNKNOWN) { -		printf ("missing or unknown FLASH type\n"); -		return; -	} - -	switch (info->flash_id & FLASH_VENDMASK) { -	case FLASH_MAN_AMD:	printf ("AMD ");		break; -	case FLASH_MAN_FUJ:	printf ("FUJITSU ");		break; -	default:		printf ("Unknown Vendor ");	break; -	} - -	switch (info->flash_id & FLASH_TYPEMASK) { -	case FLASH_AM400B:	printf ("AM29LV400B (4 Mbit, bottom boot sect)\n"); -				break; -	case FLASH_AM400T:	printf ("AM29LV400T (4 Mbit, top boot sector)\n"); -				break; -	case FLASH_AM800B:	printf ("AM29LV800B (8 Mbit, bottom boot sect)\n"); -				break; -	case FLASH_AM800T:	printf ("AM29LV800T (8 Mbit, top boot sector)\n"); -				break; -	case FLASH_AM160B:	printf ("AM29LV160B (16 Mbit, bottom boot sect)\n"); -				break; -	case FLASH_AM160T:	printf ("AM29LV160T (16 Mbit, top boot sector)\n"); -				break; -	case FLASH_AM320B:	printf ("AM29LV320B (32 Mbit, bottom boot sect)\n"); -				break; -	case FLASH_AM320T:	printf ("AM29LV320T (32 Mbit, top boot sector)\n"); -				break; -	default:		printf ("Unknown Chip Type\n"); -				break; -	} - -	printf ("  Size: %ld MB in %d Sectors\n", -		info->size >> 20, info->sector_count); - -	printf ("  Sector Start Addresses:"); -	for (i=0; i<info->sector_count; ++i) { -		if ((i % 5) == 0) -			printf ("\n   "); -		printf (" %08lX%s", -			info->start[i], -			info->protect[i] ? " (RO)" : "     " -		); -	} -	printf ("\n"); -	return; -} - -/*----------------------------------------------------------------------- - */ - - -/*----------------------------------------------------------------------- - */ - -/* - * The following code cannot be run from FLASH! - */ - -static ulong flash_get_size (vu_long *addr, flash_info_t *info) -{ -	short i; -	ulong value; -	ulong base = (ulong)addr; - -	/* Write auto select command: read Manufacturer ID */ -	addr[0xAAA] = 0xAAAAAAAA ; -	addr[0x555] = 0x55555555 ; -	addr[0xAAA] = 0x90909090 ; - -	value = addr[0] ; - -	debug ("Manuf. ID @ 0x%08lx: 0x%08lx\n", (ulong)addr, value); - -	switch (value & 0x00FF00FF) { -	case AMD_MANUFACT: -		info->flash_id = FLASH_MAN_AMD; -		break; -	case FUJ_MANUFACT: -		info->flash_id = FLASH_MAN_FUJ; -		break; -	default: -		info->flash_id = FLASH_UNKNOWN; -		info->sector_count = 0; -		info->size = 0; -		return (0);			/* no or unknown flash	*/ -	} - -	value = addr[2] ;		/* device ID		*/ - -	debug ("Device ID @ 0x%08lx: 0x%08lx\n", (ulong)(&addr[1]), value); - -	switch (value & 0x00FF00FF) { -	case (AMD_ID_LV400T & 0x00FF00FF): -		info->flash_id += FLASH_AM400T; -		info->sector_count = 11; -		info->size = 0x00100000; -		break;				/* => 1 MB		*/ - -	case (AMD_ID_LV400B & 0x00FF00FF): -		info->flash_id += FLASH_AM400B; -		info->sector_count = 11; -		info->size = 0x00100000; -		break;				/* => 1 MB		*/ - -	case (AMD_ID_LV800T & 0x00FF00FF): -		info->flash_id += FLASH_AM800T; -		info->sector_count = 19; -		info->size = 0x00200000; -		break;				/* => 2 MB		*/ - -	case (AMD_ID_LV800B & 0x00FF00FF): -		info->flash_id += FLASH_AM800B; -		info->sector_count = 19; -		info->size = 0x00400000;	/*%%% Size doubled by yooth */ -		break;				/* => 4 MB		*/ - -	case (AMD_ID_LV160T & 0x00FF00FF): -		info->flash_id += FLASH_AM160T; -		info->sector_count = 35; -		info->size = 0x00400000; -		break;				/* => 4 MB		*/ - -	case (AMD_ID_LV160B & 0x00FF00FF): -		info->flash_id += FLASH_AM160B; -		info->sector_count = 35; -		info->size = 0x00800000; -		break;				/* => 8 MB		*/ -	case (AMD_ID_LV320T & 0x00FF00FF): -		info->flash_id += FLASH_AM320T; -		info->sector_count = 67; -		info->size = 0x00800000; -		break;				/* => 8 MB		*/ - -	case (AMD_ID_LV320B & 0x00FF00FF): -		info->flash_id += FLASH_AM320B; -		info->sector_count = 67; -		info->size = 0x01000000; -		break;				/* => 16 MB		*/ -	default: -		info->flash_id = FLASH_UNKNOWN; -		return (0);			/* => no or unknown flash */ - -	} -	/* set up sector start address table */ -	if (info->flash_id & FLASH_BTYPE) { -		/* set sector offsets for bottom boot block type	*/ -		info->start[0] = base + 0x00000000; -		info->start[1] = base + 0x00010000; -		info->start[2] = base + 0x00018000; -		info->start[3] = base + 0x00020000; -		for (i = 4; i < info->sector_count; i++) { -			info->start[i] = base + ((i-3) * 0x00040000) ; -		} -	} else { -		/* set sector offsets for top boot block type		*/ -		i = info->sector_count - 1; -		info->start[i--] = base + info->size - 0x00010000; -		info->start[i--] = base + info->size - 0x00018000; -		info->start[i--] = base + info->size - 0x00020000; -		for (; i >= 0; i--) { -			info->start[i] = base + i * 0x00040000; -		} -	} - -	/* check for protected sectors */ -	for (i = 0; i < info->sector_count; i++) { -		/* read sector protection at sector address, (A7 .. A0) = 0x02 */ -		/* D0 = 1 if protected */ -		addr = (volatile unsigned long *)(info->start[i]); -		info->protect[i] = addr[4] & 1 ; -	} - -	/* -	 * Prevent writes to uninitialized FLASH. -	 */ -	if (info->flash_id != FLASH_UNKNOWN) { -		addr = (volatile unsigned long *)info->start[0]; - -		*addr = 0xF0F0F0F0;	/* reset bank */ -	} - -	return (info->size); -} - - -/*----------------------------------------------------------------------- - */ - -int	flash_erase (flash_info_t *info, int s_first, int s_last) -{ -	vu_long *addr = (vu_long*)(info->start[0]); -	int flag, prot, sect, l_sect; -	ulong start, now, last; - -	debug ("flash_erase: first: %d last: %d\n", s_first, s_last); - -	if ((s_first < 0) || (s_first > s_last)) { -		if (info->flash_id == FLASH_UNKNOWN) { -			printf ("- missing\n"); -		} else { -			printf ("- no sectors to erase\n"); -		} -		return 1; -	} - -	if ((info->flash_id == FLASH_UNKNOWN) || -	    (info->flash_id > FLASH_AMD_COMP)) { -		printf ("Can't erase unknown flash type %08lx - aborted\n", -			info->flash_id); -		return 1; -	} - -	prot = 0; -	for (sect=s_first; sect<=s_last; ++sect) { -		if (info->protect[sect]) { -			prot++; -		} -	} - -	if (prot) { -		printf ("- Warning: %d protected sectors will not be erased!\n", -			prot); -	} else { -		printf ("\n"); -	} - -	l_sect = -1; - -	/* Disable interrupts which might cause a timeout here */ -	flag = disable_interrupts(); - -	addr[0xAAA] = 0xAAAAAAAA; -	addr[0x555] = 0x55555555; -	addr[0xAAA] = 0x80808080; -	addr[0xAAA] = 0xAAAAAAAA; -	addr[0x555] = 0x55555555; - -	/* Start erase on unprotected sectors */ -	for (sect = s_first; sect<=s_last; sect++) { -		if (info->protect[sect] == 0) {	/* not protected */ -			addr = (vu_long *)(info->start[sect]) ; -			addr[0] = 0x30303030 ; -			l_sect = sect; -		} -	} - -	/* re-enable interrupts if necessary */ -	if (flag) -		enable_interrupts(); - -	/* wait at least 80us - let's wait 1 ms */ -	udelay (1000); - -	/* -	 * We wait for the last triggered sector -	 */ -	if (l_sect < 0) -		goto DONE; - -	start = get_timer (0); -	last  = start; -	addr = (vu_long *)(info->start[l_sect]); -	while ((addr[0] & 0x80808080) != 0x80808080) { -		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) { -			printf ("Timeout\n"); -			return 1; -		} -		/* show that we're waiting */ -		if ((now - last) > 1000) {	/* every second */ -			putc ('.'); -			last = now; -		} -	} - -DONE: -	/* reset to read mode */ -	addr = (vu_long *)info->start[0]; -	addr[0] = 0xF0F0F0F0;	/* reset bank */ - -	printf (" done\n"); -	return 0; -} - -/*----------------------------------------------------------------------- - * Copy memory to flash, returns: - * 0 - OK - * 1 - write timeout - * 2 - Flash not erased - */ - -int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt) -{ -	ulong cp, wp, data; -	int i, l, rc; - -	wp = (addr & ~3);	/* get lower word aligned address */ - -	/* -	 * handle unaligned start bytes -	 */ -	if ((l = addr - wp) != 0) { -		data = 0; -		for (i=0, cp=wp; i<l; ++i, ++cp) { -			data = (data << 8) | (*(uchar *)cp); -		} -		for (; i<4 && cnt>0; ++i) { -			data = (data << 8) | *src++; -			--cnt; -			++cp; -		} -		for (; cnt==0 && i<4; ++i, ++cp) { -			data = (data << 8) | (*(uchar *)cp); -		} - -		if ((rc = write_word(info, wp, data)) != 0) { -			return (rc); -		} -		wp += 4; -	} - -	/* -	 * handle word aligned part -	 */ -	while (cnt >= 4) { -		data = 0; -		for (i=0; i<4; ++i) { -			data = (data << 8) | *src++; -		} -		if ((rc = write_word(info, wp, data)) != 0) { -			return (rc); -		} -		wp  += 4; -		cnt -= 4; -	} - -	if (cnt == 0) { -		return (0); -	} - -	/* -	 * handle unaligned tail bytes -	 */ -	data = 0; -	for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) { -		data = (data << 8) | *src++; -		--cnt; -	} -	for (; i<4; ++i, ++cp) { -		data = (data << 8) | (*(uchar *)cp); -	} - -	return (write_word(info, wp, data)); -} - -/*----------------------------------------------------------------------- - * Write a word to Flash, returns: - * 0 - OK - * 1 - write timeout - * 2 - Flash not erased - */ -static int write_word (flash_info_t *info, ulong dest, ulong data) -{ -	vu_long *addr = (vu_long *)(info->start[0]); -	ulong start; -	int flag; - -	/* Check if Flash is (sufficiently) erased */ -	if ((*((vu_long *)dest) & data) != data) { -		return (2); -	} -	/* Disable interrupts which might cause a timeout here */ -	flag = disable_interrupts(); - -	addr[0xAAA] = 0xAAAAAAAA; -	addr[0x555] = 0x55555555; -	addr[0xAAA] = 0xA0A0A0A0; - -	*((vu_long *)dest) = data; - -	/* re-enable interrupts if necessary */ -	if (flag) -		enable_interrupts(); - -	/* data polling for D7 */ -	start = get_timer (0); -	while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) { -		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) { -			return (1); -		} -	} -	return (0); -} - -/*----------------------------------------------------------------------- - */ diff --git a/board/rmu/rmu.c b/board/rmu/rmu.c deleted file mode 100644 index cd02b9c6e..000000000 --- a/board/rmu/rmu.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * (C) Copyright 2000 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - - -#include <common.h> -#include <mpc8xx.h> - -/* ------------------------------------------------------------------------- */ - -static long int dram_size (long int, long int *, long int); - -/* ------------------------------------------------------------------------- */ - -#define	_NOT_USED_	0xFFFFCC25 - -const uint sdram_table[] = -{ -	/* -	 * Single Read. (Offset 00h in UPMA RAM) -	 */ -	0x0F03CC04, 0x00ACCC24, 0x1FF74C20, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_, - -	/* -	 * Burst Read. (Offset 08h in UPMA RAM) -	 */ -	0x0F03CC04, 0x00ACCC24, 0x00FFCC20, 0x00FFCC20, -	0x01FFCC20, 0x1FF74C20, _NOT_USED_, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_, - -	/* -	 * Single Write. (Offset 18h in UPMA RAM) -	 */ -	0x0F03CC02, 0x00AC0C24, 0x1FF74C25, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_, - -	/* -	 * Burst Write. (Offset 20h in UPMA RAM) -	 */ -	0x0F03CC00, 0x00AC0C20, 0x00FFFC20, 0x00FFFC22, -	0x01FFFC24, 0x1FF74C25, _NOT_USED_, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_, - -	/* -	 * Refresh. (Offset 30h in UPMA RAM) -	 * (Initialization code at 0x36) -	 */ -	0x0FF0CC24, 0xFFFFCC24, _NOT_USED_, _NOT_USED_, -	_NOT_USED_, _NOT_USED_, 0xEFFB8C34, 0x0FF74C34, -	0x0FFACCB4, 0x0FF5CC34, 0x0FFFCC34, 0x0FFFCCB4, - -	/* -	 * Exception. (Offset 3Ch in UPMA RAM) -	 */ -	0x0FEA8C34, 0x1FB54C34, 0xFFFFCC34, _NOT_USED_ -}; - -/* ------------------------------------------------------------------------- */ - - -/* - * Check Board Identity: - */ - -int checkboard (void) -{ -	puts ("Board: RMU\n") ; -	return (0) ; -} - -/* ------------------------------------------------------------------------- */ - -phys_size_t initdram (int board_type) -{ -	volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR; -	volatile memctl8xx_t *memctl = &immap->im_memctl; -	long int size9; - -	upmconfig (UPMA, (uint *) sdram_table, -		   sizeof (sdram_table) / sizeof (uint)); - -	/* Refresh clock prescalar */ -	memctl->memc_mptpr = CONFIG_SYS_MPTPR; - -	memctl->memc_mar = 0x00000088; - -	/* Map controller banks 1 to the SDRAM bank */ -	memctl->memc_or1 = CONFIG_SYS_OR1_PRELIM; -	memctl->memc_br1 = CONFIG_SYS_BR1_PRELIM; - -	memctl->memc_mamr = CONFIG_SYS_MAMR_9COL & (~(MAMR_PTAE));	/* no refresh yet */ - -	udelay (200); - -	/* perform SDRAM initializsation sequence */ - -	memctl->memc_mcr = 0x80002136;	/* SDRAM bank 0 */ -	udelay (1); - -	memctl->memc_mamr |= MAMR_PTAE;	/* enable refresh */ - -	udelay (1000); - -	/* Check Bank 0 Memory Size, -	 * 9 column mode -	 */ - -	size9 = dram_size (CONFIG_SYS_MAMR_9COL, (long *) SDRAM_BASE_PRELIM, -			   SDRAM_MAX_SIZE); - -	/* -	 * Final mapping: -	 */ - -	memctl->memc_or1 = ((-size9) & 0xFFFF0000) | CONFIG_SYS_OR_TIMING_SDRAM; -	udelay (1000); - -	return (size9); -} - -/* ------------------------------------------------------------------------- */ - -/* - * Check memory range for valid RAM. A simple memory test determines - * the actually available RAM size between addresses `base' and - * `base + maxsize'. Some (not all) hardware errors are detected: - * - short between address lines - * - short between data lines - */ - -static long int dram_size (long int mamr_value, long int *base, -			   long int maxsize) -{ -	volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR; -	volatile memctl8xx_t *memctl = &immap->im_memctl; - -	memctl->memc_mamr = mamr_value; - -	return (get_ram_size(base, maxsize)); -} diff --git a/board/rmu/u-boot.lds b/board/rmu/u-boot.lds deleted file mode 100644 index d0b60cf7c..000000000 --- a/board/rmu/u-boot.lds +++ /dev/null @@ -1,96 +0,0 @@ -/* - * (C) Copyright 2000-2010 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(powerpc) - -SECTIONS -{ -  /* Read-only sections, merged into text segment: */ -  . = + SIZEOF_HEADERS; -  .text      : -  { -    arch/powerpc/cpu/mpc8xx/start.o	(.text*) -    arch/powerpc/cpu/mpc8xx/traps.o	(.text*) - -    *(.text*) -  } -  _etext = .; -  PROVIDE (etext = .); -  .rodata    : -  { -    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) -  } - -  /* Read-write section, merged into data segment: */ -  . = (. + 0x00FF) & 0xFFFFFF00; -  _erotext = .; -  PROVIDE (erotext = .); -  .reloc   : -  { -    _GOT2_TABLE_ = .; -    KEEP(*(.got2)) -    KEEP(*(.got)) -    PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4); -    _FIXUP_TABLE_ = .; -    KEEP(*(.fixup)) -  } -  __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1; -  __fixup_entries = (. - _FIXUP_TABLE_)>>2; - -  .data    : -  { -    *(.data*) -    *(.sdata*) -  } -  _edata  =  .; -  PROVIDE (edata = .); - -  . = .; -  __u_boot_cmd_start = .; -  .u_boot_cmd : { *(.u_boot_cmd) } -  __u_boot_cmd_end = .; - - -  . = .; -  __start___ex_table = .; -  __ex_table : { *(__ex_table) } -  __stop___ex_table = .; - -  . = ALIGN(256); -  __init_begin = .; -  .text.init : { *(.text.init) } -  .data.init : { *(.data.init) } -  . = ALIGN(256); -  __init_end = .; - -  __bss_start = .; -  .bss (NOLOAD)       : -  { -   *(.bss*) -   *(.sbss*) -   *(COMMON) -   . = ALIGN(4); -  } -  __bss_end__ = . ; -  PROVIDE (end = .); -} diff --git a/board/rmu/u-boot.lds.debug b/board/rmu/u-boot.lds.debug deleted file mode 100644 index abc4640ee..000000000 --- a/board/rmu/u-boot.lds.debug +++ /dev/null @@ -1,130 +0,0 @@ -/* - * (C) Copyright 2000 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(powerpc) -/* Do we need any of these for elf? -   __DYNAMIC = 0;    */ -SECTIONS -{ -  /* Read-only sections, merged into text segment: */ -  . = + SIZEOF_HEADERS; -  .interp : { *(.interp) } -  .hash          : { *(.hash)		} -  .dynsym        : { *(.dynsym)		} -  .dynstr        : { *(.dynstr)		} -  .rel.text      : { *(.rel.text)		} -  .rela.text     : { *(.rela.text)	} -  .rel.data      : { *(.rel.data)		} -  .rela.data     : { *(.rela.data)	} -  .rel.rodata    : { *(.rel.rodata)	} -  .rela.rodata   : { *(.rela.rodata)	} -  .rel.got       : { *(.rel.got)		} -  .rela.got      : { *(.rela.got)		} -  .rel.ctors     : { *(.rel.ctors)	} -  .rela.ctors    : { *(.rela.ctors)	} -  .rel.dtors     : { *(.rel.dtors)	} -  .rela.dtors    : { *(.rela.dtors)	} -  .rel.bss       : { *(.rel.bss)		} -  .rela.bss      : { *(.rela.bss)		} -  .rel.plt       : { *(.rel.plt)		} -  .rela.plt      : { *(.rela.plt)		} -  .init          : { *(.init)	} -  .plt : { *(.plt) } -  .text      : -  { -    /* WARNING - the following is hand-optimized to fit within	*/ -    /* the sector layout of our flash chips!	XXX FIXME XXX	*/ - -    arch/powerpc/cpu/mpc8xx/start.o	(.text) -    common/dlmalloc.o	(.text) -    lib/vsprintf.o	(.text) -    lib/crc32.o		(.text) - -    . = env_offset; -    common/env_embedded.o(.text) - -    *(.text) -    *(.got1) -  } -  _etext = .; -  PROVIDE (etext = .); -  .rodata    : -  { -    *(.rodata) -    *(.rodata1) -    *(.rodata.str1.4) -    *(.eh_frame) -  } -  .fini      : { *(.fini)    } =0 -  .ctors     : { *(.ctors)   } -  .dtors     : { *(.dtors)   } - -  /* Read-write section, merged into data segment: */ -  . = (. + 0x0FFF) & 0xFFFFF000; -  _erotext = .; -  PROVIDE (erotext = .); -  .reloc   : -  { -    *(.got) -    _GOT2_TABLE_ = .; -    *(.got2) -    _FIXUP_TABLE_ = .; -    *(.fixup) -  } -  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2; -  __fixup_entries = (. - _FIXUP_TABLE_)>>2; - -  .data    : -  { -    *(.data) -    *(.data1) -    *(.sdata) -    *(.sdata2) -    *(.dynamic) -    CONSTRUCTORS -  } -  _edata  =  .; -  PROVIDE (edata = .); - -  __start___ex_table = .; -  __ex_table : { *(__ex_table) } -  __stop___ex_table = .; - -  . = ALIGN(4096); -  __init_begin = .; -  .text.init : { *(.text.init) } -  .data.init : { *(.data.init) } -  . = ALIGN(4096); -  __init_end = .; - -  __bss_start = .; -  .bss       : -  { -   *(.sbss) *(.scommon) -   *(.dynbss) -   *(.bss) -   *(COMMON) -  } -  __bss_end__ = . ; -  PROVIDE (end = .); -} diff --git a/boards.cfg b/boards.cfg index 5a66fae10..12f5f6f16 100644 --- a/boards.cfg +++ b/boards.cfg @@ -806,7 +806,6 @@ NX823                        powerpc     mpc8xx      nx823  quantum                      powerpc     mpc8xx  R360MPI                      powerpc     mpc8xx      r360mpi  RBC823                       powerpc     mpc8xx      rbc823 -rmu                          powerpc     mpc8xx  RPXClassic                   powerpc     mpc8xx  RPXlite                      powerpc     mpc8xx  RPXlite_DW                   powerpc     mpc8xx      RPXlite_dw          -              -           RPXlite_DW diff --git a/doc/README.scrapyard b/doc/README.scrapyard index aceae7c0e..08e5a9e30 100644 --- a/doc/README.scrapyard +++ b/doc/README.scrapyard @@ -11,6 +11,7 @@ easily if here is something they might want to dig for...  Board	Arch	CPU	removed	    Commit	last known maintainer/contact  ============================================================================= +rmu	powerpc	MPC850	-	  2011-12-07	Wolfgang Denk <wd@denx.de>  OXC	powerpc	MPC8240	-	  2011-12-07  BAB7xx	powerpc	MPC740/MPC750  -  2011-12-07	Frank Gottschling <fgottschling@eltec.de>  xm250   arm     pxa     c746cdd   2011-25-11 diff --git a/include/configs/rmu.h b/include/configs/rmu.h deleted file mode 100644 index 064716f90..000000000 --- a/include/configs/rmu.h +++ /dev/null @@ -1,426 +0,0 @@ -/* - * (C) Copyright 2003-2005 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -/* - * board/config.h - configuration options, board specific - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - - -/* - * High Level Configuration Options - * (easy to change) - */ - -#undef CONFIG_MPC860 -#define CONFIG_MPC850		1	/* This is a MPC850 CPU		*/ -#define CONFIG_RPXLITE		1	/* RMU is the RPXlite clone */ -#define CONFIG_RMU			1 - -#define	CONFIG_SYS_TEXT_BASE	0xfff00000 - -#define	CONFIG_8xx_CONS_SMC1	1	/* Console is on SMC1		*/ -#undef	CONFIG_8xx_CONS_SMC2 -#undef	CONFIG_8xx_CONS_NONE -#define CONFIG_BAUDRATE		9600	/* console baudrate = 9600bps	*/ -#if 0 -#define CONFIG_BOOTDELAY	-1	/* autoboot disabled		*/ -#else -#define CONFIG_BOOTDELAY	5	/* autoboot after 5 seconds	*/ -#endif - -#undef	CONFIG_BOOTARGS -#define CONFIG_BOOTCOMMAND							\ -	"bootp; "								\ -	"setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} "	\ -	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; "	\ -	"bootm" - -#define CONFIG_LOADS_ECHO	1	/* echo on for serial download	*/ -#undef	CONFIG_SYS_LOADS_BAUD_CHANGE		/* don't allow baudrate change	*/ - -/* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		40000	/* 40 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -/* Software (bit-bang) I2C driver configuration */ -#define PB_SCL		0x00000020	/* PB 26 */ -#define PB_SDA		0x00000010	/* PB 27 */ - -#define I2C_INIT	(immr->im_cpm.cp_pbdir |=  PB_SCL) -#define I2C_ACTIVE	(immr->im_cpm.cp_pbdir |=  PB_SDA) -#define I2C_TRISTATE	(immr->im_cpm.cp_pbdir &= ~PB_SDA) -#define I2C_READ	((immr->im_cpm.cp_pbdat & PB_SDA) != 0) -#define I2C_SDA(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SDA; \ -			else    immr->im_cpm.cp_pbdat &= ~PB_SDA -#define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \ -			else    immr->im_cpm.cp_pbdat &= ~PB_SCL -#define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ - -/* M41T11 Serial Access Timekeeper(R) SRAM */ -#define CONFIG_RTC_M41T11 1 -#define CONFIG_SYS_I2C_RTC_ADDR 0x68 -#define CONFIG_SYS_M41T11_BASE_YEAR 1900	/* play along with the linux driver */ - -#undef	CONFIG_WATCHDOG			/* watchdog disabled		*/ - - -/* - * Command line configuration. - */ -#include <config_cmd_default.h> - -#define CONFIG_CMD_DATE -#define CONFIG_CMD_DHCP -#define CONFIG_CMD_I2C -#define CONFIG_CMD_NFS -#define CONFIG_CMD_SNTP - - -/* - * BOOTP options - */ -#define CONFIG_BOOTP_SUBNETMASK -#define CONFIG_BOOTP_GATEWAY -#define CONFIG_BOOTP_HOSTNAME -#define CONFIG_BOOTP_BOOTPATH -#define CONFIG_BOOTP_BOOTFILESIZE - - -#define	CONFIG_AUTOBOOT_KEYED		/* Enable password protection */ -#define	CONFIG_AUTOBOOT_PROMPT		\ -	"\nEnter password - autoboot in %d sec...\n", bootdelay -#define	CONFIG_AUTOBOOT_DELAY_STR	"system" - -/* - * Miscellaneous configurable options - */ -#define	CONFIG_SYS_LONGHELP			/* undef to save memory		*/ -#define	CONFIG_SYS_PROMPT	"=> "		/* Monitor Command Prompt	*/ -#if defined(CONFIG_CMD_KGDB) -#define	CONFIG_SYS_CBSIZE	1024		/* Console I/O Buffer Size	*/ -#else -#define	CONFIG_SYS_CBSIZE	256		/* Console I/O Buffer Size	*/ -#endif -#define	CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ -#define	CONFIG_SYS_MAXARGS	16		/* max number of command args	*/ -#define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE	/* Boot Argument Buffer Size	*/ - -#define CONFIG_SYS_MEMTEST_START	0x0040000	/* memtest works on	*/ -#define CONFIG_SYS_MEMTEST_END		0x00C0000	/* 4 ... 12 MB in DRAM	*/ - -#define	CONFIG_SYS_LOAD_ADDR		0x100000	/* default load address	*/ - -#define	CONFIG_SYS_HZ		1000		/* decrementer freq: 1 ms ticks	*/ - -#define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 } - -/* - * Low Level Configuration Settings - * (address mappings, register initial values, etc.) - * You should know what you are doing if you make changes here. - */ -/*----------------------------------------------------------------------- - * Internal Memory Mapped Register - */ -#define CONFIG_SYS_IMMR		0xFA200000 - -/*----------------------------------------------------------------------- - * Definitions for initial stack pointer and data area (in DPRAM) - */ -#define CONFIG_SYS_INIT_RAM_ADDR	CONFIG_SYS_IMMR -#define	CONFIG_SYS_INIT_RAM_SIZE	0x2F00	/* Size of used area in DPRAM	*/ -#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) -#define	CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET - -/*----------------------------------------------------------------------- - * Start addresses for the final memory configuration - * (Set up by the startup code) - * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0 - */ -#define	CONFIG_SYS_SDRAM_BASE		0x00000000 -#define CONFIG_SYS_FLASH_BASE		(0-flash_info[0].size)	/* Put flash at end	*/ -#if defined(DEBUG) || defined(CONFIG_CMD_IDE) -#define	CONFIG_SYS_MONITOR_LEN		(256 << 10)	/* Reserve 256 kB for Monitor	*/ -#else -#define	CONFIG_SYS_MONITOR_LEN		(128 << 10)	/* Reserve 128 kB for Monitor	*/ -#endif -#define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_TEXT_BASE -#define	CONFIG_SYS_MALLOC_LEN		(128 << 10)	/* Reserve 128 kB for malloc()	*/ - -/* - * For booting Linux, the board info and command line data - * have to be in the first 8 MB of memory, since this is - * the maximum mapped by the Linux kernel during initialization. - */ -#define	CONFIG_SYS_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux	*/ - -/*----------------------------------------------------------------------- - * FLASH organization - */ -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks		*/ -#define CONFIG_SYS_MAX_FLASH_SECT	67	/* max number of sectors on one chip	*/ - -#define CONFIG_SYS_FLASH_ERASE_TOUT	120000	/* Timeout for Flash Erase (in ms)	*/ -#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Timeout for Flash Write (in ms)	*/ - -#define	CONFIG_ENV_IS_IN_FLASH	1 -#define CONFIG_ENV_ADDR		((CONFIG_SYS_TEXT_BASE) + 0x40000) -#define	CONFIG_ENV_SECT_SIZE	0x40000		/* Total Size of Environment Sector	*/ -#define	CONFIG_ENV_SIZE		CONFIG_ENV_SECT_SIZE	/* Used size for environment	*/ - -/* Address and size of Redundant Environment Sector	*/ -#define CONFIG_ENV_ADDR_REDUND	(CONFIG_ENV_ADDR+CONFIG_ENV_SIZE) -#define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) - -/*----------------------------------------------------------------------- - * Reset address - */ -#define	CONFIG_SYS_RESET_ADDRESS	((ulong)((((immap_t *)CONFIG_SYS_IMMR)->im_clkrst.res))) - -/*----------------------------------------------------------------------- - * Cache Configuration - */ -#define CONFIG_SYS_CACHELINE_SIZE	16	/* For all MPC8xx CPUs			*/ -#if defined(CONFIG_CMD_KGDB) -#define CONFIG_SYS_CACHELINE_SHIFT	4	/* log base 2 of the above value	*/ -#endif - -/*----------------------------------------------------------------------- - * SYPCR - System Protection Control				11-9 - * SYPCR can only be written once after reset! - *----------------------------------------------------------------------- - * Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze - */ -#if defined(CONFIG_WATCHDOG) -#define CONFIG_SYS_SYPCR	(SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \ -			 SYPCR_SWE  | SYPCR_SWRI| SYPCR_SWP) -#else -#define CONFIG_SYS_SYPCR	(SYPCR_SWTC | 0x00000600 | SYPCR_BME | SYPCR_SWF | SYPCR_SWP) -#endif - -/*----------------------------------------------------------------------- - * SIUMCR - SIU Module Configuration				11-6 - *----------------------------------------------------------------------- - * PCMCIA config., multi-function pin tri-state - */ -#define CONFIG_SYS_SIUMCR	(SIUMCR_MLRC10) - -/*----------------------------------------------------------------------- - * TBSCR - Time Base Status and Control				11-26 - *----------------------------------------------------------------------- - * Clear Reference Interrupt Status, Timebase freezing enabled - */ -#define CONFIG_SYS_TBSCR	(TBSCR_REFA | TBSCR_REFB | TBSCR_TBF | TBSCR_TBE) - -/*----------------------------------------------------------------------- - * RTCSC - Real-Time Clock Status and Control Register		11-27 - *----------------------------------------------------------------------- - */ -/*%%%#define CONFIG_SYS_RTCSC	(RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE) */ -#define CONFIG_SYS_RTCSC	(RTCSC_SEC | RTCSC_RTE) - -/*----------------------------------------------------------------------- - * PISCR - Periodic Interrupt Status and Control		11-31 - *----------------------------------------------------------------------- - * Clear Periodic Interrupt Status, Interrupt Timer freezing enabled - */ -#define CONFIG_SYS_PISCR (PISCR_PS | PISCR_PITF) - -/*----------------------------------------------------------------------- - * PLPRCR - PLL, Low-Power, and Reset Control Register		15-30 - *----------------------------------------------------------------------- - * Reset PLL lock status sticky bit, timer expired status bit and timer - * interrupt status bit - * - * If this is a 80 MHz CPU, set PLL multiplication factor to 5 (5*16=80)! - */ -/* up to 50 MHz we use a 1:1 clock */ -#define CONFIG_SYS_PLPRCR	( (5 << PLPRCR_MF_SHIFT) | PLPRCR_TEXPS ) - -/*----------------------------------------------------------------------- - * SCCR - System Clock and reset Control Register		15-27 - *----------------------------------------------------------------------- - * Set clock output, timebase and RTC source and divider, - * power management and some other internal clocks - */ -#define SCCR_MASK	SCCR_EBDF00 -/* up to 50 MHz we use a 1:1 clock */ -#define CONFIG_SYS_SCCR	(SCCR_COM00 | SCCR_TBS) - -/*----------------------------------------------------------------------- - * PCMCIA stuff - *----------------------------------------------------------------------- - * - */ -#define CONFIG_SYS_PCMCIA_MEM_ADDR	(0xE0000000) -#define CONFIG_SYS_PCMCIA_MEM_SIZE	( 64 << 20 ) -#define CONFIG_SYS_PCMCIA_DMA_ADDR	(0xE4000000) -#define CONFIG_SYS_PCMCIA_DMA_SIZE	( 64 << 20 ) -#define CONFIG_SYS_PCMCIA_ATTRB_ADDR	(0xE8000000) -#define CONFIG_SYS_PCMCIA_ATTRB_SIZE	( 64 << 20 ) -#define CONFIG_SYS_PCMCIA_IO_ADDR	(0xEC000000) -#define CONFIG_SYS_PCMCIA_IO_SIZE	( 64 << 20 ) - -/*----------------------------------------------------------------------- - * IDE/ATA stuff (Supports IDE harddisk on PCMCIA Adapter) - *----------------------------------------------------------------------- - */ - -#define	CONFIG_IDE_8xx_PCCARD	1	/* Use IDE with PC Card	Adapter	*/ - -#undef	CONFIG_IDE_8xx_DIRECT		/* Direct IDE    not supported	*/ -#undef	CONFIG_IDE_LED			/* LED   for ide not supported	*/ -#undef	CONFIG_IDE_RESET		/* reset for ide not supported	*/ - -#define CONFIG_SYS_IDE_MAXBUS		1	/* max. 1 IDE bus		*/ -#define CONFIG_SYS_IDE_MAXDEVICE	1	/* max. 1 drive per IDE bus	*/ - -#define CONFIG_SYS_ATA_IDE0_OFFSET	0x0000 - -#define CONFIG_SYS_ATA_BASE_ADDR	CONFIG_SYS_PCMCIA_MEM_ADDR - -/* Offset for data I/O			*/ -#define CONFIG_SYS_ATA_DATA_OFFSET	(CONFIG_SYS_PCMCIA_MEM_SIZE + 0x320) - -/* Offset for normal register accesses	*/ -#define CONFIG_SYS_ATA_REG_OFFSET	(2 * CONFIG_SYS_PCMCIA_MEM_SIZE + 0x320) - -/* Offset for alternate registers	*/ -#define CONFIG_SYS_ATA_ALT_OFFSET	0x0100 - -/*----------------------------------------------------------------------- - * - *----------------------------------------------------------------------- - * - */ -/*#define	CONFIG_SYS_DER	0x2002000F*/ -#define CONFIG_SYS_DER	0 - -/* - * Init Memory Controller: - * - * BR0 and OR0 (FLASH) - */ - -#define FLASH_BASE_PRELIM	0xFC000000	/* FLASH base - up to 64 MB of flash */ -#define CONFIG_SYS_PRELIM_OR_AM	0xFC000000	/* OR addr mask - map 64 MB */ - -/* FLASH timing: ACS = 0, TRLX = 0, CSNT = 0, SCY = 4, ETHR = 0, BIH = 1 */ -#define CONFIG_SYS_OR_TIMING_FLASH (OR_SCY_4_CLK | OR_BI) - -#define CONFIG_SYS_OR0_PRELIM	(CONFIG_SYS_PRELIM_OR_AM | CONFIG_SYS_OR_TIMING_FLASH) -#define CONFIG_SYS_BR0_PRELIM	((FLASH_BASE_PRELIM & BR_BA_MSK) | BR_V) - -/* - * BR1 and OR1 (SDRAM) - * - */ -#define SDRAM_BASE_PRELIM	0x00000000	/* SDRAM base	*/ -#define	SDRAM_MAX_SIZE		0x08000000	/* max 128 MB */ - -/* SDRAM timing: Multiplexed addresses, GPL5 output to GPL5_A (don't care)	*/ -#define CONFIG_SYS_OR_TIMING_SDRAM	0x00000E00 - -#define CONFIG_SYS_OR1_PRELIM	(0xF0000000 | CONFIG_SYS_OR_TIMING_SDRAM ) /* map 256 MB */ -#define CONFIG_SYS_BR1_PRELIM	((SDRAM_BASE_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V ) - -/* RPXLITE mem setting */ -#define CONFIG_SYS_NVRAM_BASE	0xFA000000		/* NVRAM & SRAM base */ -/*      IMMR:		0xFA200000		   IMMR base address - see above */ -#define	CONFIG_SYS_BCSR_BASE	0xFA400000		/* BCSR base address */ - -#define	CONFIG_SYS_BR3_PRELIM	(CONFIG_SYS_BCSR_BASE | BR_V)			/* BCSR */ -#define CONFIG_SYS_OR3_PRELIM	0xFFFF8910 -#define CONFIG_SYS_BR4_PRELIM  (CONFIG_SYS_NVRAM_BASE | BR_PS_8 | BR_V)	/* NVRAM & SRAM */ -#define CONFIG_SYS_OR4_PRELIM	0xFFFE0970 - -/* - * Memory Periodic Timer Prescaler - */ - -/* periodic timer for refresh */ -#define CONFIG_SYS_MAMR_PTA	20 - -/* - * Refresh clock Prescalar - */ -#define CONFIG_SYS_MPTPR	MPTPR_PTP_DIV2 - -/* - * MAMR settings for SDRAM - */ - -/* 9 column SDRAM */ -#define CONFIG_SYS_MAMR_9COL	((CONFIG_SYS_MAMR_PTA << MAMR_PTA_SHIFT)  | MAMR_PTAE	    |	\ -			 MAMR_AMA_TYPE_1 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A10 |	\ -			 MAMR_RLFA_16X | MAMR_WLFA_16X | MAMR_TLFA_16X) - -/* - * BCSRx - * - * Board Status and Control Registers - * - */ - -#define BCSR0	(CONFIG_SYS_BCSR_BASE + 0) -#define BCSR1	(CONFIG_SYS_BCSR_BASE + 1) -#define BCSR2	(CONFIG_SYS_BCSR_BASE + 2) -#define BCSR3	(CONFIG_SYS_BCSR_BASE + 3) - -#define BCSR0_ENMONXCVR	0x01	/* Monitor XVCR Control */ -#define BCSR0_ENNVRAM	0x02	/* CS4# Control */ -#define BCSR0_LED5	0x04	/* LED5 control 0='on' 1='off' */ -#define BCSR0_LED4	0x08	/* LED4 control 0='on' 1='off' */ -#define BCSR0_FULLDPLX	0x10	/* Ethernet XCVR Control */ -#define BCSR0_COLTEST	0x20 -#define BCSR0_ETHLPBK	0x40 -#define BCSR0_ETHEN	0x80 - -#define BCSR1_PCVCTL7	0x01	/* PC Slot B Control */ -#define BCSR1_PCVCTL6	0x02 -#define BCSR1_PCVCTL5	0x04 -#define BCSR1_PCVCTL4	0x08 -#define BCSR1_IPB5SEL	0x10 - -#define BCSR2_ENPA5HDR	0x08	/* USB Control */ -#define BCSR2_ENUSBCLK	0x10 -#define BCSR2_USBPWREN	0x20 -#define BCSR2_USBSPD	0x40 -#define BCSR2_USBSUSP	0x80 - -#define BCSR3_BWRTC	0x01	/* Real Time Clock Battery */ -#define BCSR3_BWNVR	0x02	/* NVRAM Battery */ -#define BCSR3_RDY_BSY	0x04	/* Flash Operation */ -#define BCSR3_RPXL	0x08	/* Reserved (reads back '1') */ -#define BCSR3_D27	0x10	/* Dip Switch settings */ -#define BCSR3_D26	0x20 -#define BCSR3_D25	0x40 -#define BCSR3_D24	0x80 - -#endif	/* __CONFIG_H */ |