mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-27 08:33:10 +01:00 
			
		
		
		
	mips: au1x00: Remove support for these SoCs
The only platform left for the AU1x00 SoCs was the pb1x00 platform, an apparent clone of the dbau1x00 platform. As pb1x00 had no listed maintainer I am assuming that it is also orphaned. Remove this platform and then remove the unused SoC support. Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Daniel Schwierzeck
						Daniel Schwierzeck
					
				
			
			
				
	
			
			
			
						parent
						
							215b4fae51
						
					
				
				
					commit
					481ea2e39d
				
			| @@ -52,15 +52,6 @@ config TARGET_VCT | ||||
| 	select SUPPORTS_CPU_MIPS32_R2 | ||||
| 	select SYS_MIPS_CACHE_INIT_RAM_LOAD | ||||
|  | ||||
| config TARGET_PB1X00 | ||||
| 	bool "Support pb1x00" | ||||
| 	select MIPS_TUNE_4KC | ||||
| 	select ROM_EXCEPTION_VECTORS | ||||
| 	select SUPPORTS_CPU_MIPS32_R1 | ||||
| 	select SUPPORTS_CPU_MIPS32_R2 | ||||
| 	select SUPPORTS_LITTLE_ENDIAN | ||||
| 	select SYS_MIPS_CACHE_INIT_RAM_LOAD | ||||
|  | ||||
| config ARCH_ATH79 | ||||
| 	bool "Support QCA/Atheros ath79" | ||||
| 	select DM | ||||
| @@ -125,7 +116,6 @@ source "board/imgtec/boston/Kconfig" | ||||
| source "board/imgtec/malta/Kconfig" | ||||
| source "board/imgtec/xilfpga/Kconfig" | ||||
| source "board/micronas/vct/Kconfig" | ||||
| source "board/pb1x00/Kconfig" | ||||
| source "board/qemu-mips/Kconfig" | ||||
| source "arch/mips/mach-ath79/Kconfig" | ||||
| source "arch/mips/mach-bmips/Kconfig" | ||||
|   | ||||
| @@ -11,7 +11,6 @@ endif | ||||
| libs-y += arch/mips/cpu/ | ||||
| libs-y += arch/mips/lib/ | ||||
|  | ||||
| machine-$(CONFIG_SOC_AU1X00) += au1x00 | ||||
| machine-$(CONFIG_ARCH_ATH79) += ath79 | ||||
| machine-$(CONFIG_ARCH_BMIPS) += bmips | ||||
| machine-$(CONFIG_MACH_PIC32) += pic32 | ||||
|   | ||||
| @@ -130,13 +130,13 @@ | ||||
|  * Returns the uncached address of a sdram address | ||||
|  */ | ||||
| #ifndef __ASSEMBLY__ | ||||
| #if defined(CONFIG_SOC_AU1X00) || defined(CONFIG_TB0229) | ||||
| #if defined(CONFIG_TB0229) | ||||
| /* We use a 36 bit physical address map here and | ||||
|    cannot access physical memory directly from core */ | ||||
| #define UNCACHED_SDRAM(a) (((unsigned long)(a)) | 0x20000000) | ||||
| #else	/* !CONFIG_SOC_AU1X00 */ | ||||
| #else	/* !CONFIG_TB0229 */ | ||||
| #define UNCACHED_SDRAM(a) CKSEG1ADDR(a) | ||||
| #endif	/* CONFIG_SOC_AU1X00 */ | ||||
| #endif	/* CONFIG_TB0229 */ | ||||
| #endif	/* __ASSEMBLY__ */ | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| # SPDX-License-Identifier: GPL-2.0+ | ||||
| # | ||||
| # (C) Copyright 2011 | ||||
| # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | ||||
|  | ||||
| obj-y	= au1x00_eth.o au1x00_serial.o au1x00_usb_ohci.o au1x00_ide.o | ||||
| @@ -1,307 +0,0 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0+ | ||||
| /* Only eth0 supported for now | ||||
|  * | ||||
|  * (C) Copyright 2003 | ||||
|  * Thomas.Lange@corelatus.se | ||||
|  */ | ||||
| #include <config.h> | ||||
|  | ||||
| #if defined(CONFIG_SYS_DISCOVER_PHY) | ||||
| #error "PHY not supported yet" | ||||
| /* We just assume that we are running 100FD for now */ | ||||
| /* We all use switches, right? ;-) */ | ||||
| #endif | ||||
|  | ||||
| /* I assume ethernet behaves like au1000 */ | ||||
|  | ||||
| #ifdef CONFIG_SOC_AU1000 | ||||
| /* Base address differ between cpu:s */ | ||||
| #define ETH0_BASE AU1000_ETH0_BASE | ||||
| #define MAC0_ENABLE AU1000_MAC0_ENABLE | ||||
| #else | ||||
| #ifdef CONFIG_SOC_AU1100 | ||||
| #define ETH0_BASE AU1100_ETH0_BASE | ||||
| #define MAC0_ENABLE AU1100_MAC0_ENABLE | ||||
| #else | ||||
| #ifdef CONFIG_SOC_AU1500 | ||||
| #define ETH0_BASE AU1500_ETH0_BASE | ||||
| #define MAC0_ENABLE AU1500_MAC0_ENABLE | ||||
| #else | ||||
| #error "No valid cpu set" | ||||
| #endif | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #include <common.h> | ||||
| #include <malloc.h> | ||||
| #include <net.h> | ||||
| #include <command.h> | ||||
| #include <asm/io.h> | ||||
| #include <mach/au1x00.h> | ||||
|  | ||||
| #if defined(CONFIG_CMD_MII) | ||||
| #include <miiphy.h> | ||||
| #endif | ||||
|  | ||||
| /* Ethernet Transmit and Receive Buffers */ | ||||
| #define DBUF_LENGTH  1520 | ||||
| #define PKT_MAXBUF_SIZE		1518 | ||||
|  | ||||
| static char txbuf[DBUF_LENGTH]; | ||||
|  | ||||
| static int next_tx; | ||||
| static int next_rx; | ||||
|  | ||||
| /* 4 rx and 4 tx fifos */ | ||||
| #define NO_OF_FIFOS 4 | ||||
|  | ||||
| typedef struct{ | ||||
| 	u32 status; | ||||
| 	u32 addr; | ||||
| 	u32 len; /* Only used for tx */ | ||||
| 	u32 not_used; | ||||
| } mac_fifo_t; | ||||
|  | ||||
| mac_fifo_t mac_fifo[NO_OF_FIFOS]; | ||||
|  | ||||
| #define MAX_WAIT 1000 | ||||
|  | ||||
| #if defined(CONFIG_CMD_MII) | ||||
| int au1x00_miiphy_read(struct mii_dev *bus, int addr, int devad, int reg) | ||||
| { | ||||
| 	unsigned short value = 0; | ||||
| 	volatile u32 *mii_control_reg = (volatile u32*)(ETH0_BASE+MAC_MII_CNTRL); | ||||
| 	volatile u32 *mii_data_reg = (volatile u32*)(ETH0_BASE+MAC_MII_DATA); | ||||
| 	u32 mii_control; | ||||
| 	unsigned int timedout = 20; | ||||
|  | ||||
| 	while (*mii_control_reg & MAC_MII_BUSY) { | ||||
| 		udelay(1000); | ||||
| 		if (--timedout == 0) { | ||||
| 			printf("au1x00_eth: miiphy_read busy timeout!!\n"); | ||||
| 			return -1; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	mii_control = MAC_SET_MII_SELECT_REG(reg) | | ||||
| 		MAC_SET_MII_SELECT_PHY(addr) | MAC_MII_READ; | ||||
|  | ||||
| 	*mii_control_reg = mii_control; | ||||
|  | ||||
| 	timedout = 20; | ||||
| 	while (*mii_control_reg & MAC_MII_BUSY) { | ||||
| 		udelay(1000); | ||||
| 		if (--timedout == 0) { | ||||
| 			printf("au1x00_eth: miiphy_read busy timeout!!\n"); | ||||
| 			return -1; | ||||
| 		} | ||||
| 	} | ||||
| 	value = *mii_data_reg; | ||||
| 	return value; | ||||
| } | ||||
|  | ||||
| int au1x00_miiphy_write(struct mii_dev *bus, int addr, int devad, int reg, | ||||
| 			u16 value) | ||||
| { | ||||
| 	volatile u32 *mii_control_reg = (volatile u32*)(ETH0_BASE+MAC_MII_CNTRL); | ||||
| 	volatile u32 *mii_data_reg = (volatile u32*)(ETH0_BASE+MAC_MII_DATA); | ||||
| 	u32 mii_control; | ||||
| 	unsigned int timedout = 20; | ||||
|  | ||||
| 	while (*mii_control_reg & MAC_MII_BUSY) { | ||||
| 		udelay(1000); | ||||
| 		if (--timedout == 0) { | ||||
| 			printf("au1x00_eth: miiphy_write busy timeout!!\n"); | ||||
| 			return -1; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	mii_control = MAC_SET_MII_SELECT_REG(reg) | | ||||
| 		MAC_SET_MII_SELECT_PHY(addr) | MAC_MII_WRITE; | ||||
|  | ||||
| 	*mii_data_reg = value; | ||||
| 	*mii_control_reg = mii_control; | ||||
| 	return 0; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| static int au1x00_send(struct eth_device *dev, void *packet, int length) | ||||
| { | ||||
| 	volatile mac_fifo_t *fifo_tx = | ||||
| 		(volatile mac_fifo_t*)(MAC0_TX_DMA_ADDR+MAC_TX_BUFF0_STATUS); | ||||
| 	int i; | ||||
| 	int res; | ||||
|  | ||||
| 	/* tx fifo should always be idle */ | ||||
| 	fifo_tx[next_tx].len = length; | ||||
| 	fifo_tx[next_tx].addr = (virt_to_phys(packet))|TX_DMA_ENABLE; | ||||
| 	au_sync(); | ||||
|  | ||||
| 	udelay(1); | ||||
| 	i=0; | ||||
| 	while(!(fifo_tx[next_tx].addr&TX_T_DONE)){ | ||||
| 		if(i>MAX_WAIT){ | ||||
| 			printf("TX timeout\n"); | ||||
| 			break; | ||||
| 		} | ||||
| 		udelay(1); | ||||
| 		i++; | ||||
| 	} | ||||
|  | ||||
| 	/* Clear done bit */ | ||||
| 	fifo_tx[next_tx].addr = 0; | ||||
| 	fifo_tx[next_tx].len = 0; | ||||
| 	au_sync(); | ||||
|  | ||||
| 	res = fifo_tx[next_tx].status; | ||||
|  | ||||
| 	next_tx++; | ||||
| 	if(next_tx>=NO_OF_FIFOS){ | ||||
| 		next_tx=0; | ||||
| 	} | ||||
| 	return(res); | ||||
| } | ||||
|  | ||||
| static int au1x00_recv(struct eth_device* dev){ | ||||
| 	volatile mac_fifo_t *fifo_rx = | ||||
| 		(volatile mac_fifo_t*)(MAC0_RX_DMA_ADDR+MAC_RX_BUFF0_STATUS); | ||||
|  | ||||
| 	int length; | ||||
| 	u32 status; | ||||
|  | ||||
| 	for(;;){ | ||||
| 		if(!(fifo_rx[next_rx].addr&RX_T_DONE)){ | ||||
| 			/* Nothing has been received */ | ||||
| 			return(-1); | ||||
| 		} | ||||
|  | ||||
| 		status = fifo_rx[next_rx].status; | ||||
|  | ||||
| 		length = status&0x3FFF; | ||||
|  | ||||
| 		if(status&RX_ERROR){ | ||||
| 			printf("Rx error 0x%x\n", status); | ||||
| 		} else { | ||||
| 			/* Pass the packet up to the protocol layers. */ | ||||
| 			net_process_received_packet(net_rx_packets[next_rx], | ||||
| 						    length - 4); | ||||
| 		} | ||||
|  | ||||
| 		fifo_rx[next_rx].addr = | ||||
| 			(virt_to_phys(net_rx_packets[next_rx])) | RX_DMA_ENABLE; | ||||
|  | ||||
| 		next_rx++; | ||||
| 		if(next_rx>=NO_OF_FIFOS){ | ||||
| 			next_rx=0; | ||||
| 		} | ||||
| 	} /* for */ | ||||
|  | ||||
| 	return(0); /* Does anyone use this? */ | ||||
| } | ||||
|  | ||||
| static int au1x00_init(struct eth_device* dev, bd_t * bd){ | ||||
|  | ||||
| 	volatile u32 *macen = (volatile u32*)MAC0_ENABLE; | ||||
| 	volatile u32 *mac_ctrl = (volatile u32*)(ETH0_BASE+MAC_CONTROL); | ||||
| 	volatile u32 *mac_addr_high = (volatile u32*)(ETH0_BASE+MAC_ADDRESS_HIGH); | ||||
| 	volatile u32 *mac_addr_low = (volatile u32*)(ETH0_BASE+MAC_ADDRESS_LOW); | ||||
| 	volatile u32 *mac_mcast_high = (volatile u32*)(ETH0_BASE+MAC_MCAST_HIGH); | ||||
| 	volatile u32 *mac_mcast_low = (volatile u32*)(ETH0_BASE+MAC_MCAST_LOW); | ||||
| 	volatile mac_fifo_t *fifo_tx = | ||||
| 		(volatile mac_fifo_t*)(MAC0_TX_DMA_ADDR+MAC_TX_BUFF0_STATUS); | ||||
| 	volatile mac_fifo_t *fifo_rx = | ||||
| 		(volatile mac_fifo_t*)(MAC0_RX_DMA_ADDR+MAC_RX_BUFF0_STATUS); | ||||
| 	int i; | ||||
|  | ||||
| 	next_tx = TX_GET_DMA_BUFFER(fifo_tx[0].addr); | ||||
| 	next_rx = RX_GET_DMA_BUFFER(fifo_rx[0].addr); | ||||
|  | ||||
| 	/* We have to enable clocks before releasing reset */ | ||||
| 	*macen = MAC_EN_CLOCK_ENABLE; | ||||
| 	udelay(10); | ||||
|  | ||||
| 	/* Enable MAC0 */ | ||||
| 	/* We have to release reset before accessing registers */ | ||||
| 	*macen = MAC_EN_CLOCK_ENABLE|MAC_EN_RESET0| | ||||
| 		MAC_EN_RESET1|MAC_EN_RESET2; | ||||
| 	udelay(10); | ||||
|  | ||||
| 	for(i=0;i<NO_OF_FIFOS;i++){ | ||||
| 		fifo_tx[i].len = 0; | ||||
| 		fifo_tx[i].addr = virt_to_phys(&txbuf[0]); | ||||
| 		fifo_rx[i].addr = (virt_to_phys(net_rx_packets[i])) | | ||||
| 			RX_DMA_ENABLE; | ||||
| 	} | ||||
|  | ||||
| 	/* Put mac addr in little endian */ | ||||
| #define ea eth_get_ethaddr() | ||||
| 	*mac_addr_high	=	(ea[5] <<  8) | (ea[4]	    ) ; | ||||
| 	*mac_addr_low	=	(ea[3] << 24) | (ea[2] << 16) | | ||||
| 		(ea[1] <<  8) | (ea[0]	    ) ; | ||||
| #undef ea | ||||
| 	*mac_mcast_low = 0; | ||||
| 	*mac_mcast_high = 0; | ||||
|  | ||||
| 	/* Make sure the MAC buffer is in the correct endian mode */ | ||||
| #ifdef __LITTLE_ENDIAN | ||||
| 	*mac_ctrl = MAC_FULL_DUPLEX; | ||||
| 	udelay(1); | ||||
| 	*mac_ctrl = MAC_FULL_DUPLEX|MAC_RX_ENABLE|MAC_TX_ENABLE; | ||||
| #else | ||||
| 	*mac_ctrl = MAC_BIG_ENDIAN|MAC_FULL_DUPLEX; | ||||
| 	udelay(1); | ||||
| 	*mac_ctrl = MAC_BIG_ENDIAN|MAC_FULL_DUPLEX|MAC_RX_ENABLE|MAC_TX_ENABLE; | ||||
| #endif | ||||
|  | ||||
| 	return(1); | ||||
| } | ||||
|  | ||||
| static void au1x00_halt(struct eth_device* dev){ | ||||
| 	volatile u32 *macen = (volatile u32*)MAC0_ENABLE; | ||||
|  | ||||
| 	/* Put MAC0 in reset */ | ||||
| 	*macen = 0; | ||||
| } | ||||
|  | ||||
| int au1x00_enet_initialize(bd_t *bis){ | ||||
| 	struct eth_device* dev; | ||||
|  | ||||
| 	if ((dev = (struct eth_device*)malloc(sizeof *dev)) == NULL) { | ||||
| 		puts ("malloc failed\n"); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	memset(dev, 0, sizeof *dev); | ||||
|  | ||||
| 	strcpy(dev->name, "Au1X00 ethernet"); | ||||
| 	dev->iobase = 0; | ||||
| 	dev->priv   = 0; | ||||
| 	dev->init   = au1x00_init; | ||||
| 	dev->halt   = au1x00_halt; | ||||
| 	dev->send   = au1x00_send; | ||||
| 	dev->recv   = au1x00_recv; | ||||
|  | ||||
| 	eth_register(dev); | ||||
|  | ||||
| #if defined(CONFIG_CMD_MII) | ||||
| 	int retval; | ||||
| 	struct mii_dev *mdiodev = mdio_alloc(); | ||||
| 	if (!mdiodev) | ||||
| 		return -ENOMEM; | ||||
| 	strncpy(mdiodev->name, dev->name, MDIO_NAME_LEN); | ||||
| 	mdiodev->read = au1x00_miiphy_read; | ||||
| 	mdiodev->write = au1x00_miiphy_write; | ||||
|  | ||||
| 	retval = mdio_register(mdiodev); | ||||
| 	if (retval < 0) | ||||
| 		return retval; | ||||
| #endif | ||||
|  | ||||
| 	return 1; | ||||
| } | ||||
|  | ||||
| int cpu_eth_init(bd_t *bis) | ||||
| { | ||||
| 	au1x00_enet_initialize(bis); | ||||
| 	return 0; | ||||
| } | ||||
| @@ -1,14 +0,0 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0+ | ||||
| /* | ||||
|  * (C) Copyright 2000-2011 | ||||
|  * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | ||||
|  */ | ||||
|  | ||||
| #include <common.h> | ||||
| #include <ide.h> | ||||
|  | ||||
| /* AU1X00 swaps data in big-endian mode, enforce little-endian function */ | ||||
| void ide_input_swap_data(int dev, ulong *sect_buf, int words) | ||||
| { | ||||
| 	ide_input_data(dev, sect_buf, words); | ||||
| } | ||||
| @@ -1,130 +0,0 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0+ | ||||
| /* | ||||
|  * AU1X00 UART support | ||||
|  * | ||||
|  * Hardcoded to UART 0 for now | ||||
|  * Speed and options also hardcoded to 115200 8N1 | ||||
|  * | ||||
|  *  Copyright (c) 2003	Thomas.Lange@corelatus.se | ||||
|  */ | ||||
|  | ||||
| #include <config.h> | ||||
| #include <common.h> | ||||
| #include <mach/au1x00.h> | ||||
| #include <serial.h> | ||||
| #include <linux/compiler.h> | ||||
|  | ||||
| /****************************************************************************** | ||||
| * | ||||
| * serial_init - initialize a channel | ||||
| * | ||||
| * This routine initializes the number of data bits, parity | ||||
| * and set the selected baud rate. Interrupts are disabled. | ||||
| * Set the modem control signals if the option is selected. | ||||
| * | ||||
| * RETURNS: N/A | ||||
| */ | ||||
|  | ||||
| static int au1x00_serial_init(void) | ||||
| { | ||||
| 	volatile u32 *uart_fifoctl = (volatile u32*)(UART0_ADDR+UART_FCR); | ||||
| 	volatile u32 *uart_enable = (volatile u32*)(UART0_ADDR+UART_ENABLE); | ||||
|  | ||||
| 	/* Enable clocks first */ | ||||
| 	*uart_enable = UART_EN_CE; | ||||
|  | ||||
| 	/* Then release reset */ | ||||
| 	/* Must release reset before setting other regs */ | ||||
| 	*uart_enable = UART_EN_CE|UART_EN_E; | ||||
|  | ||||
| 	/* Activate fifos, reset tx and rx */ | ||||
| 	/* Set tx trigger level to 12 */ | ||||
| 	*uart_fifoctl = UART_FCR_ENABLE_FIFO|UART_FCR_CLEAR_RCVR| | ||||
| 		UART_FCR_CLEAR_XMIT|UART_FCR_T_TRIGGER_12; | ||||
|  | ||||
| 	serial_setbrg(); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| static void au1x00_serial_setbrg(void) | ||||
| { | ||||
| 	volatile u32 *uart_clk = (volatile u32*)(UART0_ADDR+UART_CLK); | ||||
| 	volatile u32 *uart_lcr = (volatile u32*)(UART0_ADDR+UART_LCR); | ||||
| 	volatile u32 *sys_powerctrl = (u32 *)SYS_POWERCTRL; | ||||
| 	int sd; | ||||
| 	int divisorx2; | ||||
|  | ||||
| 	/* sd is system clock divisor			*/ | ||||
| 	/* see section 10.4.5 in au1550 datasheet	*/ | ||||
| 	sd = (*sys_powerctrl & 0x03) + 2; | ||||
|  | ||||
| 	/* calulate 2x baudrate and round */ | ||||
| 	divisorx2 = ((CONFIG_SYS_MIPS_TIMER_FREQ/(sd * 16 * CONFIG_BAUDRATE))); | ||||
|  | ||||
| 	if (divisorx2 & 0x01) | ||||
| 		divisorx2 = divisorx2 + 1; | ||||
|  | ||||
| 	*uart_clk = divisorx2 / 2; | ||||
|  | ||||
| 	/* Set parity, stop bits and word length to 8N1 */ | ||||
| 	*uart_lcr = UART_LCR_WLEN8; | ||||
| } | ||||
|  | ||||
| static void au1x00_serial_putc(const char c) | ||||
| { | ||||
| 	volatile u32 *uart_lsr = (volatile u32*)(UART0_ADDR+UART_LSR); | ||||
| 	volatile u32 *uart_tx = (volatile u32*)(UART0_ADDR+UART_TX); | ||||
|  | ||||
| 	if (c == '\n') | ||||
| 		au1x00_serial_putc('\r'); | ||||
|  | ||||
| 	/* Wait for fifo to shift out some bytes */ | ||||
| 	while((*uart_lsr&UART_LSR_THRE)==0); | ||||
|  | ||||
| 	*uart_tx = (u32)c; | ||||
| } | ||||
|  | ||||
| static int au1x00_serial_getc(void) | ||||
| { | ||||
| 	volatile u32 *uart_rx = (volatile u32*)(UART0_ADDR+UART_RX); | ||||
| 	char c; | ||||
|  | ||||
| 	while (!serial_tstc()); | ||||
|  | ||||
| 	c = (*uart_rx&0xFF); | ||||
| 	return c; | ||||
| } | ||||
|  | ||||
| static int au1x00_serial_tstc(void) | ||||
| { | ||||
| 	volatile u32 *uart_lsr = (volatile u32*)(UART0_ADDR+UART_LSR); | ||||
|  | ||||
| 	if(*uart_lsr&UART_LSR_DR){ | ||||
| 		/* Data in rfifo */ | ||||
| 		return(1); | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static struct serial_device au1x00_serial_drv = { | ||||
| 	.name	= "au1x00_serial", | ||||
| 	.start	= au1x00_serial_init, | ||||
| 	.stop	= NULL, | ||||
| 	.setbrg	= au1x00_serial_setbrg, | ||||
| 	.putc	= au1x00_serial_putc, | ||||
| 	.puts	= default_serial_puts, | ||||
| 	.getc	= au1x00_serial_getc, | ||||
| 	.tstc	= au1x00_serial_tstc, | ||||
| }; | ||||
|  | ||||
| void au1x00_serial_initialize(void) | ||||
| { | ||||
| 	serial_register(&au1x00_serial_drv); | ||||
| } | ||||
|  | ||||
| __weak struct serial_device *default_serial_console(void) | ||||
| { | ||||
| 	return &au1x00_serial_drv; | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,416 +0,0 @@ | ||||
| /* | ||||
|  * URB OHCI HCD (Host Controller Driver) for USB. | ||||
|  * | ||||
|  * (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at> | ||||
|  * (C) Copyright 2000-2001 David Brownell <dbrownell@users.sourceforge.net> | ||||
|  * | ||||
|  * usb-ohci.h | ||||
|  */ | ||||
|  | ||||
|  | ||||
| static int cc_to_error[16] = { | ||||
|  | ||||
| /* mapping of the OHCI CC status to error codes */ | ||||
| 	/* No  Error  */	0, | ||||
| 	/* CRC Error  */	USB_ST_CRC_ERR, | ||||
| 	/* Bit Stuff  */	USB_ST_BIT_ERR, | ||||
| 	/* Data Togg  */	USB_ST_CRC_ERR, | ||||
| 	/* Stall      */	USB_ST_STALLED, | ||||
| 	/* DevNotResp */	-1, | ||||
| 	/* PIDCheck   */	USB_ST_BIT_ERR, | ||||
| 	/* UnExpPID   */	USB_ST_BIT_ERR, | ||||
| 	/* DataOver   */	USB_ST_BUF_ERR, | ||||
| 	/* DataUnder  */	USB_ST_BUF_ERR, | ||||
| 	/* reservd    */	-1, | ||||
| 	/* reservd    */	-1, | ||||
| 	/* BufferOver */	USB_ST_BUF_ERR, | ||||
| 	/* BuffUnder  */	USB_ST_BUF_ERR, | ||||
| 	/* Not Access */	-1, | ||||
| 	/* Not Access */	-1 | ||||
| }; | ||||
|  | ||||
| /* ED States */ | ||||
|  | ||||
| #define ED_NEW		0x00 | ||||
| #define ED_UNLINK	0x01 | ||||
| #define ED_OPER		0x02 | ||||
| #define ED_DEL		0x04 | ||||
| #define ED_URB_DEL	0x08 | ||||
|  | ||||
| /* usb_ohci_ed */ | ||||
| struct ed { | ||||
| 	__u32 hwINFO; | ||||
| 	__u32 hwTailP; | ||||
| 	__u32 hwHeadP; | ||||
| 	__u32 hwNextED; | ||||
|  | ||||
| 	struct ed *ed_prev; | ||||
| 	__u8 int_period; | ||||
| 	__u8 int_branch; | ||||
| 	__u8 int_load; | ||||
| 	__u8 int_interval; | ||||
| 	__u8 state; | ||||
| 	__u8 type; | ||||
| 	__u16 last_iso; | ||||
| 	struct ed *ed_rm_list; | ||||
|  | ||||
| 	struct usb_device *usb_dev; | ||||
| 	__u32 unused[3]; | ||||
| } __attribute__((aligned(16))); | ||||
| typedef struct ed ed_t; | ||||
|  | ||||
|  | ||||
| /* TD info field */ | ||||
| #define TD_CC			0xf0000000 | ||||
| #define TD_CC_GET(td_p)		((td_p >>28) & 0x0f) | ||||
| #define TD_CC_SET(td_p, cc)	(td_p) = ((td_p) & 0x0fffffff) | (((cc) & 0x0f) << 28) | ||||
| #define TD_EC			0x0C000000 | ||||
| #define TD_T			0x03000000 | ||||
| #define TD_T_DATA0		0x02000000 | ||||
| #define TD_T_DATA1		0x03000000 | ||||
| #define TD_T_TOGGLE		0x00000000 | ||||
| #define TD_R			0x00040000 | ||||
| #define TD_DI			0x00E00000 | ||||
| #define TD_DI_SET(X)		(((X) & 0x07)<< 21) | ||||
| #define TD_DP			0x00180000 | ||||
| #define TD_DP_SETUP		0x00000000 | ||||
| #define TD_DP_IN		0x00100000 | ||||
| #define TD_DP_OUT		0x00080000 | ||||
|  | ||||
| #define TD_ISO			0x00010000 | ||||
| #define TD_DEL			0x00020000 | ||||
|  | ||||
| /* CC Codes */ | ||||
| #define TD_CC_NOERROR		0x00 | ||||
| #define TD_CC_CRC		0x01 | ||||
| #define TD_CC_BITSTUFFING	0x02 | ||||
| #define TD_CC_DATATOGGLEM	0x03 | ||||
| #define TD_CC_STALL		0x04 | ||||
| #define TD_DEVNOTRESP		0x05 | ||||
| #define TD_PIDCHECKFAIL		0x06 | ||||
| #define TD_UNEXPECTEDPID	0x07 | ||||
| #define TD_DATAOVERRUN		0x08 | ||||
| #define TD_DATAUNDERRUN		0x09 | ||||
| #define TD_BUFFEROVERRUN	0x0C | ||||
| #define TD_BUFFERUNDERRUN	0x0D | ||||
| #define TD_NOTACCESSED		0x0F | ||||
|  | ||||
|  | ||||
| #define MAXPSW 1 | ||||
|  | ||||
| struct td { | ||||
| 	__u32 hwINFO; | ||||
| 	__u32 hwCBP;		/* Current Buffer Pointer */ | ||||
| 	__u32 hwNextTD;		/* Next TD Pointer */ | ||||
| 	__u32 hwBE;		/* Memory Buffer End Pointer */ | ||||
|  | ||||
| 	__u16 hwPSW[MAXPSW]; | ||||
| 	__u8 unused; | ||||
| 	__u8 index; | ||||
| 	struct ed *ed; | ||||
| 	struct td *next_dl_td; | ||||
| 	struct usb_device *usb_dev; | ||||
| 	int transfer_len; | ||||
| 	__u32 data; | ||||
|  | ||||
| 	__u32 unused2[2]; | ||||
| } __attribute__((aligned(32))); | ||||
| typedef struct td td_t; | ||||
|  | ||||
| #define OHCI_ED_SKIP	(1 << 14) | ||||
|  | ||||
| /* | ||||
|  * The HCCA (Host Controller Communications Area) is a 256 byte | ||||
|  * structure defined in the OHCI spec. that the host controller is | ||||
|  * told the base address of.  It must be 256-byte aligned. | ||||
|  */ | ||||
|  | ||||
| #define NUM_INTS 32	/* part of the OHCI standard */ | ||||
| struct ohci_hcca { | ||||
| 	__u32	int_table[NUM_INTS];	/* Interrupt ED table */ | ||||
| 	__u16	frame_no;		/* current frame number */ | ||||
| 	__u16	pad1;			/* set to 0 on each frame_no change */ | ||||
| 	__u32	done_head;		/* info returned for an interrupt */ | ||||
| 	u8		reserved_for_hc[116]; | ||||
| } __attribute__((aligned(256))); | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Maximum number of root hub ports. | ||||
|  */ | ||||
| #define MAX_ROOT_PORTS	15	/* maximum OHCI root hub ports */ | ||||
|  | ||||
| /* | ||||
|  * This is the structure of the OHCI controller's memory mapped I/O | ||||
|  * region.  This is Memory Mapped I/O.	You must use the readl() and | ||||
|  * writel() macros defined in asm/io.h to access these!! | ||||
|  */ | ||||
| struct ohci_regs { | ||||
| 	/* control and status registers */ | ||||
| 	__u32	revision; | ||||
| 	__u32	control; | ||||
| 	__u32	cmdstatus; | ||||
| 	__u32	intrstatus; | ||||
| 	__u32	intrenable; | ||||
| 	__u32	intrdisable; | ||||
| 	/* memory pointers */ | ||||
| 	__u32	hcca; | ||||
| 	__u32	ed_periodcurrent; | ||||
| 	__u32	ed_controlhead; | ||||
| 	__u32	ed_controlcurrent; | ||||
| 	__u32	ed_bulkhead; | ||||
| 	__u32	ed_bulkcurrent; | ||||
| 	__u32	donehead; | ||||
| 	/* frame counters */ | ||||
| 	__u32	fminterval; | ||||
| 	__u32	fmremaining; | ||||
| 	__u32	fmnumber; | ||||
| 	__u32	periodicstart; | ||||
| 	__u32	lsthresh; | ||||
| 	/* Root hub ports */ | ||||
| 	struct	ohci_roothub_regs { | ||||
| 		__u32	a; | ||||
| 		__u32	b; | ||||
| 		__u32	status; | ||||
| 		__u32	portstatus[MAX_ROOT_PORTS]; | ||||
| 	} roothub; | ||||
| } __attribute__((aligned(32))); | ||||
|  | ||||
|  | ||||
| /* OHCI CONTROL AND STATUS REGISTER MASKS */ | ||||
|  | ||||
| /* | ||||
|  * HcControl (control) register masks | ||||
|  */ | ||||
| #define OHCI_CTRL_CBSR	(3 << 0)	/* control/bulk service ratio */ | ||||
| #define OHCI_CTRL_PLE	(1 << 2)	/* periodic list enable */ | ||||
| #define OHCI_CTRL_IE	(1 << 3)	/* isochronous enable */ | ||||
| #define OHCI_CTRL_CLE	(1 << 4)	/* control list enable */ | ||||
| #define OHCI_CTRL_BLE	(1 << 5)	/* bulk list enable */ | ||||
| #define OHCI_CTRL_HCFS	(3 << 6)	/* host controller functional state */ | ||||
| #define OHCI_CTRL_IR	(1 << 8)	/* interrupt routing */ | ||||
| #define OHCI_CTRL_RWC	(1 << 9)	/* remote wakeup connected */ | ||||
| #define OHCI_CTRL_RWE	(1 << 10)	/* remote wakeup enable */ | ||||
|  | ||||
| /* pre-shifted values for HCFS */ | ||||
| #	define OHCI_USB_RESET	(0 << 6) | ||||
| #	define OHCI_USB_RESUME	(1 << 6) | ||||
| #	define OHCI_USB_OPER	(2 << 6) | ||||
| #	define OHCI_USB_SUSPEND	(3 << 6) | ||||
|  | ||||
| /* | ||||
|  * HcCommandStatus (cmdstatus) register masks | ||||
|  */ | ||||
| #define OHCI_HCR	(1 << 0)	/* host controller reset */ | ||||
| #define OHCI_CLF	(1 << 1)	/* control list filled */ | ||||
| #define OHCI_BLF	(1 << 2)	/* bulk list filled */ | ||||
| #define OHCI_OCR	(1 << 3)	/* ownership change request */ | ||||
| #define OHCI_SOC	(3 << 16)	/* scheduling overrun count */ | ||||
|  | ||||
| /* | ||||
|  * masks used with interrupt registers: | ||||
|  * HcInterruptStatus (intrstatus) | ||||
|  * HcInterruptEnable (intrenable) | ||||
|  * HcInterruptDisable (intrdisable) | ||||
|  */ | ||||
| #define OHCI_INTR_SO	(1 << 0)	/* scheduling overrun */ | ||||
| #define OHCI_INTR_WDH	(1 << 1)	/* writeback of done_head */ | ||||
| #define OHCI_INTR_SF	(1 << 2)	/* start frame */ | ||||
| #define OHCI_INTR_RD	(1 << 3)	/* resume detect */ | ||||
| #define OHCI_INTR_UE	(1 << 4)	/* unrecoverable error */ | ||||
| #define OHCI_INTR_FNO	(1 << 5)	/* frame number overflow */ | ||||
| #define OHCI_INTR_RHSC	(1 << 6)	/* root hub status change */ | ||||
| #define OHCI_INTR_OC	(1 << 30)	/* ownership change */ | ||||
| #define OHCI_INTR_MIE	(1 << 31)	/* master interrupt enable */ | ||||
|  | ||||
|  | ||||
| /* Virtual Root HUB */ | ||||
| struct virt_root_hub { | ||||
| 	int devnum; /* Address of Root Hub endpoint */ | ||||
| 	void *dev;  /* was urb */ | ||||
| 	void *int_addr; | ||||
| 	int send; | ||||
| 	int interval; | ||||
| }; | ||||
|  | ||||
| /* USB HUB CONSTANTS (not OHCI-specific; see hub.h) */ | ||||
|  | ||||
| /* destination of request */ | ||||
| #define RH_INTERFACE		0x01 | ||||
| #define RH_ENDPOINT		0x02 | ||||
| #define RH_OTHER		0x03 | ||||
|  | ||||
| #define RH_CLASS		0x20 | ||||
| #define RH_VENDOR		0x40 | ||||
|  | ||||
| /* Requests: bRequest << 8 | bmRequestType */ | ||||
| #define RH_GET_STATUS		0x0080 | ||||
| #define RH_CLEAR_FEATURE	0x0100 | ||||
| #define RH_SET_FEATURE		0x0300 | ||||
| #define RH_SET_ADDRESS		0x0500 | ||||
| #define RH_GET_DESCRIPTOR	0x0680 | ||||
| #define RH_SET_DESCRIPTOR	0x0700 | ||||
| #define RH_GET_CONFIGURATION	0x0880 | ||||
| #define RH_SET_CONFIGURATION	0x0900 | ||||
| #define RH_GET_STATE		0x0280 | ||||
| #define RH_GET_INTERFACE	0x0A80 | ||||
| #define RH_SET_INTERFACE	0x0B00 | ||||
| #define RH_SYNC_FRAME		0x0C80 | ||||
| /* Our Vendor Specific Request */ | ||||
| #define RH_SET_EP		0x2000 | ||||
|  | ||||
|  | ||||
| /* Hub port features */ | ||||
| #define RH_PORT_CONNECTION	0x00 | ||||
| #define RH_PORT_ENABLE		0x01 | ||||
| #define RH_PORT_SUSPEND		0x02 | ||||
| #define RH_PORT_OVER_CURRENT	0x03 | ||||
| #define RH_PORT_RESET		0x04 | ||||
| #define RH_PORT_POWER		0x08 | ||||
| #define RH_PORT_LOW_SPEED	0x09 | ||||
|  | ||||
| #define RH_C_PORT_CONNECTION	0x10 | ||||
| #define RH_C_PORT_ENABLE	0x11 | ||||
| #define RH_C_PORT_SUSPEND	0x12 | ||||
| #define RH_C_PORT_OVER_CURRENT	0x13 | ||||
| #define RH_C_PORT_RESET		0x14 | ||||
|  | ||||
| /* Hub features */ | ||||
| #define RH_C_HUB_LOCAL_POWER	0x00 | ||||
| #define RH_C_HUB_OVER_CURRENT	0x01 | ||||
|  | ||||
| #define RH_DEVICE_REMOTE_WAKEUP 0x00 | ||||
| #define RH_ENDPOINT_STALL	0x01 | ||||
|  | ||||
| #define RH_ACK			0x01 | ||||
| #define RH_REQ_ERR		-1 | ||||
| #define RH_NACK			0x00 | ||||
|  | ||||
|  | ||||
| /* OHCI ROOT HUB REGISTER MASKS */ | ||||
|  | ||||
| /* roothub.portstatus [i] bits */ | ||||
| #define RH_PS_CCS		0x00000001	/* current connect status */ | ||||
| #define RH_PS_PES		0x00000002	/* port enable status*/ | ||||
| #define RH_PS_PSS		0x00000004	/* port suspend status */ | ||||
| #define RH_PS_POCI		0x00000008	/* port over current indicator */ | ||||
| #define RH_PS_PRS		0x00000010	/* port reset status */ | ||||
| #define RH_PS_PPS		0x00000100	/* port power status */ | ||||
| #define RH_PS_LSDA		0x00000200	/* low speed device attached */ | ||||
| #define RH_PS_CSC		0x00010000	/* connect status change */ | ||||
| #define RH_PS_PESC		0x00020000	/* port enable status change */ | ||||
| #define RH_PS_PSSC		0x00040000	/* port suspend status change */ | ||||
| #define RH_PS_OCIC		0x00080000	/* over current indicator change */ | ||||
| #define RH_PS_PRSC		0x00100000	/* port reset status change */ | ||||
|  | ||||
| /* roothub.status bits */ | ||||
| #define RH_HS_LPS		0x00000001	/* local power status */ | ||||
| #define RH_HS_OCI		0x00000002	/* over current indicator */ | ||||
| #define RH_HS_DRWE		0x00008000	/* device remote wakeup enable */ | ||||
| #define RH_HS_LPSC		0x00010000	/* local power status change */ | ||||
| #define RH_HS_OCIC		0x00020000	/* over current indicator change */ | ||||
| #define RH_HS_CRWE		0x80000000	/* clear remote wakeup enable */ | ||||
|  | ||||
| /* roothub.b masks */ | ||||
| #define RH_B_DR			0x0000ffff	/* device removable flags */ | ||||
| #define RH_B_PPCM		0xffff0000	/* port power control mask */ | ||||
|  | ||||
| /* roothub.a masks */ | ||||
| #define	RH_A_NDP		(0xff << 0)	/* number of downstream ports */ | ||||
| #define	RH_A_PSM		(1 << 8)	/* power switching mode */ | ||||
| #define	RH_A_NPS		(1 << 9)	/* no power switching */ | ||||
| #define	RH_A_DT			(1 << 10)	/* device type (mbz) */ | ||||
| #define	RH_A_OCPM		(1 << 11)	/* over current protection mode */ | ||||
| #define	RH_A_NOCP		(1 << 12)	/* no over current protection */ | ||||
| #define	RH_A_POTPGT		(0xff << 24)	/* power on to power good time */ | ||||
|  | ||||
| /* urb */ | ||||
| #define N_URB_TD 48 | ||||
| typedef struct | ||||
| { | ||||
| 	ed_t *ed; | ||||
| 	__u16 length;		/* number of tds associated with this request */ | ||||
| 	__u16 td_cnt;		/* number of tds already serviced */ | ||||
| 	int   state; | ||||
| 	unsigned long pipe; | ||||
| 	int actual_length; | ||||
| 	td_t *td[N_URB_TD];	/* list pointer to all corresponding TDs associated with this request */ | ||||
| } urb_priv_t; | ||||
| #define URB_DEL 1 | ||||
|  | ||||
| /* | ||||
|  * This is the full ohci controller description | ||||
|  * | ||||
|  * Note how the "proper" USB information is just | ||||
|  * a subset of what the full implementation needs. (Linus) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| typedef struct ohci { | ||||
| 	struct ohci_hcca *hcca;		/* hcca */ | ||||
| 	/*dma_addr_t hcca_dma;*/ | ||||
|  | ||||
| 	int irq; | ||||
| 	int disabled;			/* e.g. got a UE, we're hung */ | ||||
| 	int sleeping; | ||||
| 	unsigned long flags;		/* for HC bugs */ | ||||
|  | ||||
| 	struct ohci_regs *regs;		/* OHCI controller's memory */ | ||||
|  | ||||
| 	ed_t *ed_rm_list[2];		/* lists of all endpoints to be removed */ | ||||
| 	ed_t *ed_bulktail;		/* last endpoint of bulk list */ | ||||
| 	ed_t *ed_controltail;		/* last endpoint of control list */ | ||||
| 	int intrstatus; | ||||
| 	__u32 hc_control;		/* copy of the hc control reg */ | ||||
| 	struct usb_device *dev[32]; | ||||
| 	struct virt_root_hub rh; | ||||
|  | ||||
| 	const char	*slot_name; | ||||
| } ohci_t; | ||||
|  | ||||
| #define NUM_EDS 8		/* num of preallocated endpoint descriptors */ | ||||
|  | ||||
| struct ohci_device { | ||||
| 	ed_t	ed[NUM_EDS]; | ||||
| 	int ed_cnt; | ||||
| }; | ||||
|  | ||||
| /* hcd */ | ||||
| /* endpoint */ | ||||
| static int ep_link(ohci_t * ohci, ed_t * ed); | ||||
| static int ep_unlink(ohci_t * ohci, ed_t * ed); | ||||
| static ed_t * ep_add_ed(struct usb_device * usb_dev, unsigned long pipe); | ||||
|  | ||||
| /*-------------------------------------------------------------------------*/ | ||||
|  | ||||
| /* we need more TDs than EDs */ | ||||
| #define NUM_TD 64 | ||||
|  | ||||
| /* +1 so we can align the storage */ | ||||
| td_t gtd[NUM_TD+1]; | ||||
| /* pointers to aligned storage */ | ||||
| td_t *ptd; | ||||
|  | ||||
| /* TDs ... */ | ||||
| static inline struct td * | ||||
| td_alloc (struct usb_device *usb_dev) | ||||
| { | ||||
| 	int i; | ||||
| 	struct td	*td; | ||||
|  | ||||
| 	td = NULL; | ||||
| 	for (i = 0; i < NUM_TD; i++) { | ||||
| 		if (ptd[i].usb_dev == NULL) { | ||||
| 			td = &ptd[i]; | ||||
| 			td->usb_dev = usb_dev; | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 	return td; | ||||
| } | ||||
|  | ||||
| static inline void | ||||
| ed_free (struct ed *ed) | ||||
| { | ||||
| 	ed->usb_dev = NULL; | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,27 +0,0 @@ | ||||
| if TARGET_PB1X00 | ||||
|  | ||||
| config SYS_BOARD | ||||
| 	default "pb1x00" | ||||
|  | ||||
| config SYS_SOC | ||||
| 	default "au1x00" | ||||
|  | ||||
| config SYS_CONFIG_NAME | ||||
| 	default "pb1x00" | ||||
|  | ||||
| config SYS_TEXT_BASE | ||||
| 	default 0x83800000 | ||||
|  | ||||
| config SYS_DCACHE_SIZE | ||||
| 	default 16384 | ||||
|  | ||||
| config SYS_DCACHE_LINE_SIZE | ||||
| 	default 32 | ||||
|  | ||||
| config SYS_ICACHE_SIZE | ||||
| 	default 16384 | ||||
|  | ||||
| config SYS_ICACHE_LINE_SIZE | ||||
| 	default 32 | ||||
|  | ||||
| endif | ||||
| @@ -1,6 +0,0 @@ | ||||
| PB1X00 BOARD | ||||
| #M:	- | ||||
| S:	Maintained | ||||
| F:	board/pb1x00/ | ||||
| F:	include/configs/pb1x00.h | ||||
| F:	configs/pb1000_defconfig | ||||
| @@ -1,7 +0,0 @@ | ||||
| # SPDX-License-Identifier: GPL-2.0+ | ||||
| # | ||||
| # (C) Copyright 2003-2006 | ||||
| # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | ||||
|  | ||||
| obj-y	= pb1x00.o flash.o | ||||
| obj-y	+= lowlevel_init.o | ||||
| @@ -1,63 +0,0 @@ | ||||
| By Thomas.Lange@corelatus.se 2004-Oct-05 | ||||
| ---------------------------------------- | ||||
| DbAu1xx0 are development boards from AMD containing | ||||
| an Alchemy AU1xx0 series cpu with mips32 core. | ||||
| Existing cpu:s are Au1000, Au1100, Au1500 and Au1550 | ||||
|  | ||||
| Limitations & comments | ||||
| ---------------------- | ||||
| Support was originally big endian only. | ||||
| I have not tested, but several u-boot users report working | ||||
| configurations in little endian mode. | ||||
|  | ||||
| I named the board dbau1x00, to allow | ||||
| support for all three development boards | ||||
| ( dbau1000, dbau1100 and dbau1500 ). | ||||
| Now there is a new board called dbau1550 also, which | ||||
| should be supported RSN. | ||||
|  | ||||
| I only have a dbau1000, so my testing is limited | ||||
| to this board. | ||||
|  | ||||
| The board has two different flash banks, that can | ||||
| be selected via dip switch. This makes it possible | ||||
| to test new bootloaders without thrashing the YAMON | ||||
| boot loader delivered with board. | ||||
|  | ||||
| NOTE! When you switch between the two boot flashes, the | ||||
| base addresses will be swapped. | ||||
| Have this in mind when you compile u-boot. CONFIG_SYS_TEXT_BASE has | ||||
| to match the address where u-boot is located when you | ||||
| actually launch. | ||||
|  | ||||
| Ethernet only supported for mac0. | ||||
|  | ||||
| PCMCIA only supported for slot 0, only 3.3V. | ||||
|  | ||||
| PCMCIA IDE tested with Sandisk Compact Flash and | ||||
| IBM microdrive. | ||||
|  | ||||
| ################################### | ||||
| ########     NOTE!!!!!!   ######### | ||||
| ################################### | ||||
| If you partition a disk on another system (e.g. laptop), | ||||
| all bytes will be swapped on 16bit level when using | ||||
| PCMCIA and running cpu in big endian mode!!!! | ||||
|  | ||||
| This is probably due to an error in Au1000 chip. | ||||
|  | ||||
| Solution: | ||||
|  | ||||
| a) Boot via network and partition disk directly from | ||||
| dbau1x00. The endian will then be correct. | ||||
|  | ||||
| b) Partition disk on "laptop" and fill it with all files | ||||
| you need. Then write a simple program that endian swaps | ||||
| whole disk, | ||||
|  | ||||
| Example: | ||||
| Original "laptop" byte order: | ||||
| B0 B1 B2 B3 B4 B5 B6 B7 B8 B9... | ||||
|  | ||||
| Dbau1000 byte order will then be: | ||||
| B1 B0 B3 B2 B5 B4 B7 B6 B9 B8... | ||||
| @@ -1,26 +0,0 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0+ | ||||
| /* | ||||
|  * (C) Copyright 2003 | ||||
|  * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | ||||
|  */ | ||||
|  | ||||
| #include <common.h> | ||||
|  | ||||
| flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];	/* info for FLASH chips */ | ||||
|  | ||||
| /*----------------------------------------------------------------------- | ||||
|  * flash_init() | ||||
|  * | ||||
|  * sets up flash_info and returns size of FLASH (bytes) | ||||
|  */ | ||||
| unsigned long flash_init (void) | ||||
| { | ||||
| 	printf ("Skipping flash_init\n"); | ||||
| 	return (0); | ||||
| } | ||||
|  | ||||
| int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) | ||||
| { | ||||
| 	printf ("write_buff not implemented\n"); | ||||
| 	return (-1); | ||||
| } | ||||
| @@ -1,391 +0,0 @@ | ||||
| /* Memory sub-system initialization code */ | ||||
|  | ||||
| #include <config.h> | ||||
| #include <mach/au1x00.h> | ||||
| #include <asm/regdef.h> | ||||
| #include <asm/mipsregs.h> | ||||
|  | ||||
| #define AU1500_SYS_ADDR		0xB1900000 | ||||
| #define sys_endian		0x0038 | ||||
| #define CP0_Config0		$16 | ||||
| #define MEM_1MS			((396000000/1000000) * 1000) | ||||
|  | ||||
| 	.text | ||||
| 	.set noreorder | ||||
| 	.set mips32 | ||||
|  | ||||
| 	.globl	lowlevel_init | ||||
| lowlevel_init: | ||||
| 	/* | ||||
| 	 * Step 1) Establish CPU endian mode. | ||||
| 	 * NOTE: A fair amount of code is necessary on the Pb1000 to | ||||
| 	 * obtain the value of Switch S8.1 which is used to determine | ||||
| 	 * endian at run-time. | ||||
| 	 */ | ||||
|  | ||||
| 	/* RCE1 */ | ||||
| 	li		t0, MEM_STCFG1 | ||||
| 	li		t1, 0x00000083 | ||||
| 	sw		t1, 0(t0) | ||||
|  | ||||
| 	li		t0, MEM_STTIME1 | ||||
| 	li		t1, 0x33030A10 | ||||
| 	sw		t1, 0(t0) | ||||
|  | ||||
| 	li		t0, MEM_STADDR1 | ||||
| 	li		t1, 0x11803E40 | ||||
| 	sw		t1, 0(t0) | ||||
|  | ||||
| 	/* Set DSTRB bits so switch will read correctly */ | ||||
| 	li		t1, 0xBE00000C | ||||
| 	lw		t2, 0(t1) | ||||
| 	or		t2, t2, 0x00000300 | ||||
| 	sw		t2, 0(t1) | ||||
|  | ||||
| 	/* Check switch setting */ | ||||
| 	li		t1, 0xBE000014 | ||||
| 	lw		t2, 0(t1) | ||||
| 	and		t2, t2, 0x00000100 | ||||
| 	bne		t2, zero, big_endian | ||||
| 	nop | ||||
|  | ||||
| little_endian: | ||||
|  | ||||
| 	/* Change Au1 core to little endian */ | ||||
| 	li	t0, AU1500_SYS_ADDR | ||||
| 	li	t1, 1 | ||||
| 	sw	t1, sys_endian(t0) | ||||
| 	mfc0	t2, CP0_CONFIG | ||||
| 	mtc0	t2, CP0_CONFIG | ||||
| 	nop | ||||
| 	nop | ||||
|  | ||||
| 	/* Big Endian is default so nothing to do but fall through */ | ||||
|  | ||||
| big_endian: | ||||
|  | ||||
| 	/* | ||||
| 	 * Step 2) Establish Status Register | ||||
| 	 * (set BEV, clear ERL, clear EXL, clear IE) | ||||
| 	 */ | ||||
| 	li	t1, 0x00400000 | ||||
| 	mtc0	t1, CP0_STATUS | ||||
|  | ||||
| 	/* | ||||
| 	 * Step 3) Establish CP0 Config0 | ||||
| 	 * (set OD, set K0=3) | ||||
| 	 */ | ||||
| 	li	t1, 0x00080003 | ||||
| 	mtc0	t1, CP0_CONFIG | ||||
|  | ||||
| 	/* | ||||
| 	 * Step 4) Disable Watchpoint facilities | ||||
| 	 */ | ||||
| 	li t1, 0x00000000 | ||||
| 	mtc0	t1, CP0_WATCHLO | ||||
| 	mtc0	t1, CP0_IWATCHLO | ||||
| 	/* | ||||
| 	 * Step 5) Disable the performance counters | ||||
| 	 */ | ||||
| 	mtc0	zero, CP0_PERFORMANCE | ||||
| 	nop | ||||
|  | ||||
| 	/* | ||||
| 	 * Step 6) Establish EJTAG Debug register | ||||
| 	 */ | ||||
| 	mtc0	zero, CP0_DEBUG | ||||
| 	nop | ||||
|  | ||||
| 	/* | ||||
| 	 * Step 7) Establish Cause | ||||
| 	 * (set IV bit) | ||||
| 	 */ | ||||
| 	li	t1, 0x00800000 | ||||
| 	mtc0	t1, CP0_CAUSE | ||||
|  | ||||
| 	/* Establish Wired (and Random) */ | ||||
| 	mtc0	zero, CP0_WIRED | ||||
| 	nop | ||||
|  | ||||
| 	/* First setup pll:s to make serial work ok */ | ||||
| 	/* We have a 12 MHz crystal */ | ||||
| 	li	t0, SYS_CPUPLL | ||||
| 	li	t1, 0x21  /* 396 MHz */ | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
| 	nop | ||||
| 	nop | ||||
|  | ||||
| 	/* wait 1mS for clocks to settle */ | ||||
| 	li	t1, MEM_1MS | ||||
| 1:	add	t1, -1 | ||||
| 	bne	t1, zero, 1b | ||||
| 	nop | ||||
| 	/* Setup AUX PLL */ | ||||
| 	li	t0, SYS_AUXPLL | ||||
| 	li	t1, 8 /* 96 MHz */ | ||||
| 	sw	t1, 0(t0) /* aux pll */ | ||||
| 	sync | ||||
|  | ||||
| 	/*  Static memory controller */ | ||||
|  | ||||
| 	/* RCE0 8MB AMD29D323 Flash */ | ||||
| 	li	t0, MEM_STCFG0 | ||||
| 	li	t1, 0x00001403 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STTIME0 | ||||
| 	li	t1, 0xFFFFFFDD | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STADDR0 | ||||
| 	li	t1, 0x11F83FE0 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	/* RCE1 CPLD Board Logic */ | ||||
| 	li	t0, MEM_STCFG1 | ||||
| 	li	t1, 0x00000083 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STTIME1 | ||||
| 	li	t1, 0x33030A10 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STADDR1 | ||||
| 	li	t1, 0x11803E40 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	/* RCE2 CPLD Board Logic */ | ||||
| 	li	t0, MEM_STCFG2 | ||||
| 	li	t1, 0x00000004 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STTIME2 | ||||
| 	li	t1, 0x08061908 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STADDR2 | ||||
| 	li	t1, 0x12A03FC0 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	/* RCE3 PCMCIA 250ns */ | ||||
| 	li	t0, MEM_STCFG3 | ||||
| 	li	t1, 0x00000002 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STTIME3 | ||||
| 	li	t1, 0x280E3E07 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_STADDR3 | ||||
| 	li	t1, 0x10000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	sync | ||||
|  | ||||
| 	/* Set peripherals to a known state */ | ||||
| 	li	t0, IC0_CFG0CLR | ||||
| 	li	t1, 0xFFFFFFFF | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_CFG0CLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_CFG1CLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_CFG2CLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_SRCSET | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_ASSIGNSET | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_WAKECLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_RISINGCLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_FALLINGCLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC0_TESTBIT | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, IC1_CFG0CLR | ||||
| 	li	t1, 0xFFFFFFFF | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_CFG0CLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_CFG1CLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_CFG2CLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_SRCSET | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_ASSIGNSET | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_WAKECLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_RISINGCLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_FALLINGCLR | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, IC1_TESTBIT | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, SYS_FREQCTRL0 | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, SYS_FREQCTRL1 | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, SYS_CLKSRC | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, SYS_PININPUTEN | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, 0xB1100100 | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, 0xB1400100 | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
|  | ||||
| 	li	t0, SYS_WAKEMSK | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, SYS_WAKESRC | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	/* wait 1mS before setup */ | ||||
| 	li	t1, MEM_1MS | ||||
| 1:	add	t1, -1 | ||||
| 	bne	t1, zero, 1b | ||||
| 	nop | ||||
|  | ||||
| 	/* | ||||
| 	 * Skip memory setup if we are running from memory | ||||
| 	 */ | ||||
| 	li		t0, 0x90000000 | ||||
| 	sub		t0, ra, t0 | ||||
| 	bltz		t0, skip_memsetup | ||||
| 	nop | ||||
|  | ||||
| 	/* | ||||
| 	 * SDCS0 - Not used, for SMROM | ||||
| 	 * SDCS1 - 32MB Micron 48LCBM16A2 | ||||
| 	 * SDCS2 - 32MB Micron 48LCBM16A2 | ||||
| 	 */ | ||||
| 	li	t0, MEM_SDMODE0 | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_SDMODE1 | ||||
| 	li	t1, 0x00552229 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_SDMODE2 | ||||
| 	li	t1, 0x00552229 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_SDADDR0 | ||||
| 	li	t1, 0x00000000 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_SDADDR1 | ||||
| 	li	t1, 0x001003F8 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, MEM_SDADDR2 | ||||
| 	li	t1, 0x001023F8 | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDREFCFG | ||||
| 	li	t1, 0x74000c30 /* Disable */ | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDPRECMD | ||||
| 	sw	zero, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDAUTOREF | ||||
| 	sw	zero, 0(t0) | ||||
| 	sync | ||||
| 	sw	zero, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDREFCFG | ||||
| 	li	t1, 0x76000c30 /* Enable */ | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDWRMD0 | ||||
| 	li	t1, 0x00000023 | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDWRMD1 | ||||
| 	li	t1, 0x00000023 | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	li	t0, MEM_SDWRMD2 | ||||
| 	li	t1, 0x00000023 | ||||
| 	sw	t1, 0(t0) | ||||
| 	sync | ||||
|  | ||||
| 	/* wait 1mS after setup */ | ||||
| 	li	t1, MEM_1MS | ||||
| 1:	add	t1, -1 | ||||
| 	bne	t1, zero, 1b | ||||
| 	nop | ||||
|  | ||||
| skip_memsetup: | ||||
|  | ||||
| 	li	t0, SYS_PINFUNC | ||||
| 	li	t1, 0/*0x00008080*/ | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	/* | ||||
| 	li	t0, SYS_TRIOUTCLR | ||||
| 	li	t1, 0x00001FFF | ||||
| 	sw	t1, 0(t0) | ||||
|  | ||||
| 	li	t0, SYS_OUTPUTCLR | ||||
| 	li	t1, 0x00008000 | ||||
| 	sw	t1, 0(t0) | ||||
| 	*/ | ||||
| 	sync | ||||
|  | ||||
| 	jr	ra | ||||
| 	nop | ||||
| @@ -1,108 +0,0 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0+ | ||||
| /* | ||||
|  * (C) Copyright 2003 | ||||
|  * Thomas.Lange@corelatus.se | ||||
|  */ | ||||
|  | ||||
| #include <common.h> | ||||
| #include <command.h> | ||||
| #include <mach/au1x00.h> | ||||
| #include <asm/mipsregs.h> | ||||
| #include <asm/io.h> | ||||
|  | ||||
| DECLARE_GLOBAL_DATA_PTR; | ||||
|  | ||||
| int dram_init(void) | ||||
| { | ||||
| 	/* Sdram is setup by assembler code */ | ||||
| 	/* If memory could be changed, we should return the true value here */ | ||||
| 	gd->ram_size = 64 * 1024 * 1024; | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| #define BCSR_PCMCIA_PC0DRVEN		0x0010 | ||||
| #define BCSR_PCMCIA_PC0RST		0x0080 | ||||
|  | ||||
| /* In arch/mips/cpu/cpu.c */ | ||||
| void write_one_tlb( int index, u32 pagemask, u32 hi, u32 low0, u32 low1 ); | ||||
|  | ||||
| int checkboard (void) | ||||
| { | ||||
| #if defined(CONFIG_IDE_PCMCIA) && 0 | ||||
| 	u16 status; | ||||
| #endif | ||||
| 	/* volatile u32 *pcmcia_bcsr = (u32*)(DB1000_BCSR_ADDR+0x10); */ | ||||
| 	volatile u32 *sys_counter = (volatile u32*)SYS_COUNTER_CNTRL; | ||||
| 	u32 proc_id; | ||||
|  | ||||
| 	*sys_counter = 0x100; /* Enable 32 kHz oscillator for RTC/TOY */ | ||||
|  | ||||
| 	proc_id = read_c0_prid(); | ||||
|  | ||||
| 	switch (proc_id >> 24) { | ||||
| 	case 0: | ||||
| 		puts ("Board: Pb1000\n"); | ||||
| 		printf ("CPU: Au1000 396 MHz, id: 0x%02x, rev: 0x%02x\n", | ||||
| 			(proc_id >> 8) & 0xFF, proc_id & 0xFF); | ||||
| 		break; | ||||
| 	case 1: | ||||
| 		puts ("Board: Pb1500\n"); | ||||
| 		printf ("CPU: Au1500, id: 0x%02x, rev: 0x%02x\n", | ||||
| 			(proc_id >> 8) & 0xFF, proc_id & 0xFF); | ||||
| 		break; | ||||
| 	case 2: | ||||
| 		puts ("Board: Pb1100\n"); | ||||
| 		printf ("CPU: Au1100, id: 0x%02x, rev: 0x%02x\n", | ||||
| 			(proc_id >> 8) & 0xFF, proc_id & 0xFF); | ||||
| 		break; | ||||
| 	default: | ||||
| 		printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id); | ||||
| 	} | ||||
|  | ||||
| 	set_io_port_base(0); | ||||
|  | ||||
| #if defined(CONFIG_IDE_PCMCIA) && 0 | ||||
| 	/* Enable 3.3 V on slot 0 ( VCC ) | ||||
| 	   No 5V */ | ||||
| 	status = 4; | ||||
| 	*pcmcia_bcsr = status; | ||||
|  | ||||
| 	status |= BCSR_PCMCIA_PC0DRVEN; | ||||
| 	*pcmcia_bcsr = status; | ||||
| 	au_sync(); | ||||
|  | ||||
| 	udelay(300*1000); | ||||
|  | ||||
| 	status |= BCSR_PCMCIA_PC0RST; | ||||
| 	*pcmcia_bcsr = status; | ||||
| 	au_sync(); | ||||
|  | ||||
| 	udelay(100*1000); | ||||
|  | ||||
| 	/* PCMCIA is on a 36 bit physical address. | ||||
| 	   We need to map it into a 32 bit addresses */ | ||||
|  | ||||
| #if 0 | ||||
| 	/* We dont need theese unless we run whole pcmcia package */ | ||||
| 	write_one_tlb(20,                 /* index */ | ||||
| 		      0x01ffe000,         /* Pagemask, 16 MB pages */ | ||||
| 		      CONFIG_SYS_PCMCIA_IO_BASE, /* Hi */ | ||||
| 		      0x3C000017,         /* Lo0 */ | ||||
| 		      0x3C200017);        /* Lo1 */ | ||||
|  | ||||
| 	write_one_tlb(21,                   /* index */ | ||||
| 		      0x01ffe000,           /* Pagemask, 16 MB pages */ | ||||
| 		      CONFIG_SYS_PCMCIA_ATTR_BASE, /* Hi */ | ||||
| 		      0x3D000017,           /* Lo0 */ | ||||
| 		      0x3D200017);          /* Lo1 */ | ||||
| #endif	/* 0 */ | ||||
| 	write_one_tlb(22,                   /* index */ | ||||
| 		      0x01ffe000,           /* Pagemask, 16 MB pages */ | ||||
| 		      CONFIG_SYS_PCMCIA_MEM_ADDR,  /* Hi */ | ||||
| 		      0x3E000017,           /* Lo0 */ | ||||
| 		      0x3E200017);          /* Lo1 */ | ||||
| #endif	/* CONFIG_IDE_PCMCIA */ | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
| @@ -1,20 +0,0 @@ | ||||
| CONFIG_MIPS=y | ||||
| CONFIG_TARGET_PB1X00=y | ||||
| CONFIG_SYS_EXTRA_OPTIONS="PB1000" | ||||
| # CONFIG_CMDLINE_EDITING is not set | ||||
| # CONFIG_AUTO_COMPLETE is not set | ||||
| CONFIG_SYS_PROMPT="Pb1x00 # " | ||||
| # CONFIG_CMD_BDI is not set | ||||
| # CONFIG_CMD_ELF is not set | ||||
| # CONFIG_CMD_RUN is not set | ||||
| CONFIG_CMD_IMLS=y | ||||
| # CONFIG_CMD_SAVEENV is not set | ||||
| # CONFIG_CMD_FLASH is not set | ||||
| # CONFIG_CMD_LOADB is not set | ||||
| # CONFIG_CMD_LOADS is not set | ||||
| # CONFIG_CMD_SETEXPR is not set | ||||
| CONFIG_CMD_DHCP=y | ||||
| CONFIG_CMD_MII=y | ||||
| CONFIG_CMD_PING=y | ||||
| # CONFIG_ISO_PARTITION is not set | ||||
| CONFIG_MTD_NOR_FLASH=y | ||||
| @@ -109,7 +109,6 @@ U_BOOT_ENV_CALLBACK(baudrate, on_baudrate); | ||||
| 		__attribute__((weak, alias("serial_null"))); | ||||
|  | ||||
| serial_initfunc(atmel_serial_initialize); | ||||
| serial_initfunc(au1x00_serial_initialize); | ||||
| serial_initfunc(mcf_serial_initialize); | ||||
| serial_initfunc(mpc85xx_serial_initialize); | ||||
| serial_initfunc(mpc8xx_serial_initialize); | ||||
| @@ -164,7 +163,6 @@ void serial_register(struct serial_device *dev) | ||||
| void serial_initialize(void) | ||||
| { | ||||
| 	atmel_serial_initialize(); | ||||
| 	au1x00_serial_initialize(); | ||||
| 	mcf_serial_initialize(); | ||||
| 	mpc85xx_serial_initialize(); | ||||
| 	mpc8xx_serial_initialize(); | ||||
|   | ||||
| @@ -149,14 +149,6 @@ | ||||
| #define gadget_is_dwc3(g)        0 | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * CONFIG_USB_GADGET_SX2 | ||||
|  * CONFIG_USB_GADGET_AU1X00 | ||||
|  * ... | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * usb_gadget_controller_number - support bcdDevice id convention | ||||
|  * @gadget: the controller being driven | ||||
|   | ||||
| @@ -1,138 +0,0 @@ | ||||
| /* SPDX-License-Identifier: GPL-2.0+ */ | ||||
| /* | ||||
|  * (C) Copyright 2003 | ||||
|  * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * This file contains the configuration parameters for the dbau1x00 board. | ||||
|  */ | ||||
|  | ||||
| #ifndef __CONFIG_H | ||||
| #define __CONFIG_H | ||||
|  | ||||
| #define CONFIG_SOC_AU1X00	1  /* alchemy series cpu */ | ||||
|  | ||||
| #ifdef CONFIG_PB1000 | ||||
| #define CONFIG_SOC_AU1000	1 | ||||
| #else | ||||
| #ifdef CONFIG_PB1100 | ||||
| #define CONFIG_SOC_AU1100	1 | ||||
| #else | ||||
| #ifdef CONFIG_PB1500 | ||||
| #define CONFIG_SOC_AU1500	1 | ||||
| #else | ||||
| #error "No valid board set" | ||||
| #endif | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #define	CONFIG_TIMESTAMP		/* Print image info with timestamp */ | ||||
|  | ||||
| #define	CONFIG_EXTRA_ENV_SETTINGS					\ | ||||
| 	"addmisc=setenv bootargs ${bootargs} "				\ | ||||
| 		"console=ttyS0,${baudrate} "				\ | ||||
| 		"panic=1\0"						\ | ||||
| 	"bootfile=/vmlinux.img\0"				\ | ||||
| 	"load=tftp 80500000 ${u-boot}\0"				\ | ||||
| 	"" | ||||
| /* Boot from NFS root */ | ||||
| #define CONFIG_BOOTCOMMAND	"bootp; setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm" | ||||
|  | ||||
| /* | ||||
|  * Miscellaneous configurable options | ||||
|  */ | ||||
|  | ||||
| #define CONFIG_SYS_MALLOC_LEN		128*1024 | ||||
|  | ||||
| #define CONFIG_SYS_BOOTPARAMS_LEN	128*1024 | ||||
|  | ||||
| #define CONFIG_SYS_MIPS_TIMER_FREQ	396000000 | ||||
|  | ||||
| #define CONFIG_SYS_SDRAM_BASE		0x80000000     /* Cached addr */ | ||||
|  | ||||
| #define	CONFIG_SYS_LOAD_ADDR		0x81000000     /* default load address	*/ | ||||
|  | ||||
| #define CONFIG_SYS_MEMTEST_START	0x80100000 | ||||
| #undef CONFIG_SYS_MEMTEST_START | ||||
| #define CONFIG_SYS_MEMTEST_START       0x80200000 | ||||
| #define CONFIG_SYS_MEMTEST_END		0x83800000 | ||||
|  | ||||
| /*----------------------------------------------------------------------- | ||||
|  * FLASH and environment organization | ||||
|  */ | ||||
| #define CONFIG_SYS_MAX_FLASH_BANKS	2	/* max number of memory banks */ | ||||
| #define CONFIG_SYS_MAX_FLASH_SECT	(128)	/* max number of sectors on one chip */ | ||||
|  | ||||
| #define PHYS_FLASH_1		0xbec00000 /* Flash Bank #1 */ | ||||
| #define PHYS_FLASH_2		0xbfc00000 /* Flash Bank #2 */ | ||||
|  | ||||
| #define	CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_TEXT_BASE | ||||
| #define	CONFIG_SYS_MONITOR_LEN		(192 << 10) | ||||
|  | ||||
| #define CONFIG_SYS_INIT_SP_OFFSET	0x4000000 | ||||
|  | ||||
| /* We boot from this flash, selected with dip switch */ | ||||
| #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_2 | ||||
|  | ||||
| /* timeout values are in ticks */ | ||||
| #define CONFIG_SYS_FLASH_ERASE_TOUT	(2 * CONFIG_SYS_HZ) /* Timeout for Flash Erase */ | ||||
| #define CONFIG_SYS_FLASH_WRITE_TOUT	(2 * CONFIG_SYS_HZ) /* Timeout for Flash Write */ | ||||
|  | ||||
| /* Address and size of Primary Environment Sector	*/ | ||||
| #define CONFIG_ENV_ADDR		0xB0030000 | ||||
| #define CONFIG_ENV_SIZE		0x10000 | ||||
|  | ||||
| #define CONFIG_FLASH_16BIT | ||||
|  | ||||
| #define CONFIG_NR_DRAM_BANKS	2 | ||||
|  | ||||
| #define CONFIG_MEMSIZE_IN_BYTES | ||||
|  | ||||
| /*---USB -------------------------------------------*/ | ||||
| #if 0 | ||||
| #define CONFIG_USB_OHCI | ||||
| #endif | ||||
|  | ||||
| /*---ATA PCMCIA ------------------------------------*/ | ||||
| #if 0 | ||||
| #define CONFIG_SYS_PCMCIA_MEM_SIZE 0x4000000 /* Offset to slot 1 FIXME!!! */ | ||||
| #define CONFIG_SYS_PCMCIA_MEM_ADDR 0x20000000 | ||||
| #define CONFIG_PCMCIA_SLOT_A | ||||
|  | ||||
| #define CONFIG_ATAPI 1 | ||||
|  | ||||
| /* We run CF in "true ide" mode or a harddrive via pcmcia */ | ||||
| #define CONFIG_IDE_PCMCIA 1 | ||||
|  | ||||
| /* We only support one slot for now */ | ||||
| #define CONFIG_SYS_IDE_MAXBUS		1	/* max. 1 IDE bus		*/ | ||||
| #define CONFIG_SYS_IDE_MAXDEVICE	1	/* max. 1 drive per IDE bus	*/ | ||||
|  | ||||
| #undef	CONFIG_IDE_RESET		/* reset for ide not supported	*/ | ||||
|  | ||||
| #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     8 | ||||
|  | ||||
| /* Offset for normal register accesses  */ | ||||
| #define CONFIG_SYS_ATA_REG_OFFSET      0 | ||||
|  | ||||
| /* Offset for alternate registers       */ | ||||
| #define CONFIG_SYS_ATA_ALT_OFFSET      0x0100 | ||||
|  | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * BOOTP options | ||||
|  */ | ||||
| #define CONFIG_BOOTP_BOOTFILESIZE | ||||
|  | ||||
| /* | ||||
|  * Command line configuration. | ||||
|  */ | ||||
|  | ||||
| #endif	/* __CONFIG_H */ | ||||
| @@ -25,7 +25,6 @@ int cpu_eth_init(bd_t *bis); | ||||
|  | ||||
| /* Driver initialization prototypes */ | ||||
| int at91emac_register(bd_t *bis, unsigned long iobase); | ||||
| int au1x00_enet_initialize(bd_t*); | ||||
| int ax88180_initialize(bd_t *bis); | ||||
| int bcm_sf2_eth_register(bd_t *bis, u8 dev_num); | ||||
| int bfin_EMAC_initialize(bd_t *bis); | ||||
|   | ||||
| @@ -182,7 +182,6 @@ struct serial_dev_priv { | ||||
| #define serial_get_ops(dev)	((struct dm_serial_ops *)(dev)->driver->ops) | ||||
|  | ||||
| void atmel_serial_initialize(void); | ||||
| void au1x00_serial_initialize(void); | ||||
| void mcf_serial_initialize(void); | ||||
| void mpc85xx_serial_initialize(void); | ||||
| void mpc8xx_serial_initialize(void); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user