[U-Boot] [PATCH v2 07/10] ARM: remove cm4008 and cm41xx board support
Greg Ungerer
greg.ungerer at opengear.com
Tue Feb 10 09:12:25 CET 2015
Hi Masahiro,
On 10/02/15 17:00, Masahiro Yamada wrote:
> These are still non-generic boards.
>
> Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
> Cc: Greg Ungerer <greg.ungerer at opengear.com>
I have only seen this one patch, and the message above doesn't
really give me much of a clue what the intention is here.
Quite a few of the files you are removing below are not board
specific. Many relate to the KS8695 SoC and its peripherals.
Are you removing all KS8695 support as well?
Regards
Greg
> ---
>
> Changes in v2: None
>
> arch/arm/Kconfig | 10 -
> arch/arm/cpu/arm920t/Makefile | 1 -
> arch/arm/cpu/arm920t/ks8695/Makefile | 9 -
> arch/arm/cpu/arm920t/ks8695/lowlevel_init.S | 189 -------------
> arch/arm/cpu/arm920t/ks8695/timer.c | 77 ------
> arch/arm/include/asm/arch-ks8695/platform.h | 294 ---------------------
> board/cm4008/Kconfig | 12 -
> board/cm4008/MAINTAINERS | 6 -
> board/cm4008/Makefile | 8 -
> board/cm4008/cm4008.c | 88 -------
> board/cm4008/config.mk | 1 -
> board/cm4008/flash.c | 395 ----------------------------
> board/cm41xx/Kconfig | 12 -
> board/cm41xx/MAINTAINERS | 6 -
> board/cm41xx/Makefile | 8 -
> board/cm41xx/cm41xx.c | 88 -------
> board/cm41xx/config.mk | 1 -
> board/cm41xx/flash.c | 395 ----------------------------
> configs/cm4008_defconfig | 2 -
> configs/cm41xx_defconfig | 2 -
> doc/README.scrapyard | 2 +
> drivers/net/Makefile | 1 -
> drivers/net/ks8695eth.c | 229 ----------------
> drivers/serial/Makefile | 1 -
> drivers/serial/serial.c | 2 -
> drivers/serial/serial_ks8695.c | 121 ---------
> include/configs/cm4008.h | 104 --------
> include/configs/cm41xx.h | 104 --------
> include/netdev.h | 1 -
> include/serial.h | 1 -
> 30 files changed, 2 insertions(+), 2168 deletions(-)
> delete mode 100644 arch/arm/cpu/arm920t/ks8695/Makefile
> delete mode 100644 arch/arm/cpu/arm920t/ks8695/lowlevel_init.S
> delete mode 100644 arch/arm/cpu/arm920t/ks8695/timer.c
> delete mode 100644 arch/arm/include/asm/arch-ks8695/platform.h
> delete mode 100644 board/cm4008/Kconfig
> delete mode 100644 board/cm4008/MAINTAINERS
> delete mode 100644 board/cm4008/Makefile
> delete mode 100644 board/cm4008/cm4008.c
> delete mode 100644 board/cm4008/config.mk
> delete mode 100644 board/cm4008/flash.c
> delete mode 100644 board/cm41xx/Kconfig
> delete mode 100644 board/cm41xx/MAINTAINERS
> delete mode 100644 board/cm41xx/Makefile
> delete mode 100644 board/cm41xx/cm41xx.c
> delete mode 100644 board/cm41xx/config.mk
> delete mode 100644 board/cm41xx/flash.c
> delete mode 100644 configs/cm4008_defconfig
> delete mode 100644 configs/cm41xx_defconfig
> delete mode 100644 drivers/net/ks8695eth.c
> delete mode 100644 drivers/serial/serial_ks8695.c
> delete mode 100644 include/configs/cm4008.h
> delete mode 100644 include/configs/cm41xx.h
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 74dd164..d6bb5c3 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -97,14 +97,6 @@ config TARGET_SCB9328
> bool "Support scb9328"
> select CPU_ARM920T
>
> -config TARGET_CM4008
> - bool "Support cm4008"
> - select CPU_ARM920T
> -
> -config TARGET_CM41XX
> - bool "Support cm41xx"
> - select CPU_ARM920T
> -
> config TARGET_VCMA9
> bool "Support VCMA9"
> select CPU_ARM920T
> @@ -871,8 +863,6 @@ source "board/calao/sbc35_a9g20/Kconfig"
> source "board/calao/tny_a9260/Kconfig"
> source "board/calao/usb_a9263/Kconfig"
> source "board/cirrus/edb93xx/Kconfig"
> -source "board/cm4008/Kconfig"
> -source "board/cm41xx/Kconfig"
> source "board/compulab/cm_t335/Kconfig"
> source "board/compulab/cm_fx6/Kconfig"
> source "board/congatec/cgtqmx6eval/Kconfig"
> diff --git a/arch/arm/cpu/arm920t/Makefile b/arch/arm/cpu/arm920t/Makefile
> index a72e5de..a30a572 100644
> --- a/arch/arm/cpu/arm920t/Makefile
> +++ b/arch/arm/cpu/arm920t/Makefile
> @@ -14,5 +14,4 @@ obj-$(if $(filter a320,$(SOC)),y) += a320/
> obj-$(CONFIG_AT91FAMILY) += at91/
> obj-$(CONFIG_EP93XX) += ep93xx/
> obj-$(CONFIG_IMX) += imx/
> -obj-$(CONFIG_KS8695) += ks8695/
> obj-$(CONFIG_S3C24X0) += s3c24x0/
> diff --git a/arch/arm/cpu/arm920t/ks8695/Makefile b/arch/arm/cpu/arm920t/ks8695/Makefile
> deleted file mode 100644
> index 400aa89..0000000
> --- a/arch/arm/cpu/arm920t/ks8695/Makefile
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#
> -# (C) Copyright 2000-2006
> -# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> -#
> -# SPDX-License-Identifier: GPL-2.0+
> -#
> -
> -obj-y = lowlevel_init.o
> -obj-y += timer.o
> diff --git a/arch/arm/cpu/arm920t/ks8695/lowlevel_init.S b/arch/arm/cpu/arm920t/ks8695/lowlevel_init.S
> deleted file mode 100644
> index a2a07f2..0000000
> --- a/arch/arm/cpu/arm920t/ks8695/lowlevel_init.S
> +++ /dev/null
> @@ -1,189 +0,0 @@
> -/*
> - * lowlevel_init.S - basic hardware initialization for the KS8695 CPU
> - *
> - * Copyright (c) 2004-2005, Greg Ungerer <greg.ungerer at opengear.com>
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <config.h>
> -#include <version.h>
> -#include <asm/arch/platform.h>
> -
> -#ifndef CONFIG_SKIP_LOWLEVEL_INIT
> -
> -/*
> - *************************************************************************
> - *
> - * Handy dandy macros
> - *
> - *************************************************************************
> - */
> -
> -/* Delay a bit */
> -.macro DELAY_FOR cycles, reg0
> - ldr \reg0, =\cycles
> - subs \reg0, \reg0, #1
> - subne pc, pc, #0xc
> -.endm
> -
> -/*
> - *************************************************************************
> - *
> - * Some local storage.
> - *
> - *************************************************************************
> - */
> -
> -/* Should we boot with an interactive console or not */
> -.globl serial_console
> -
> -/*
> - *************************************************************************
> - *
> - * Raw hardware initialization code. The important thing is to get
> - * SDRAM setup and running. We do some other basic things here too,
> - * like getting the PLL set for high speed, and init the LEDs.
> - *
> - *************************************************************************
> - */
> -
> -.globl lowlevel_init
> -lowlevel_init:
> -
> -#if DEBUG
> - /*
> - * enable UART for early debug trace
> - */
> - ldr r1, =(KS8695_IO_BASE+KS8695_UART_DIVISOR)
> - mov r2, #((25000000+CONFIG_BAUDRATE/2) / CONFIG_BAUDRATE)
> - str r2, [r1]
> - ldr r1, =(KS8695_IO_BASE+KS8695_UART_LINE_CTRL)
> - mov r2, #KS8695_UART_LINEC_WLEN8
> - str r2, [r1] /* 8 data bits, no parity, 1 stop */
> - ldr r1, =(KS8695_IO_BASE+KS8695_UART_TX_HOLDING)
> - mov r2, #0x41
> - str r2, [r1] /* write 'A' */
> -#endif
> -#if DEBUG
> - ldr r1, =(KS8695_IO_BASE+KS8695_UART_TX_HOLDING)
> - mov r2, #0x42
> - str r2, [r1]
> -#endif
> -
> - /*
> - * remap the memory and flash regions. we want to end up with
> - * ram from address 0, and flash at 32MB.
> - */
> - ldr r1, =(KS8695_IO_BASE+KS8695_MEM_CTRL0)
> - ldr r2, =0xbfc00040
> - str r2, [r1] /* large flash map */
> - ldr pc, =(highflash+0x02000000-0x00f00000) /* jump to high flash address */
> -highflash:
> - ldr r2, =0x8fe00040
> - str r2, [r1] /* remap flash range */
> -
> - /*
> - * remap the second select region to the 4MB immediately after
> - * the first region. This way if you have a larger flash (say 8Mb)
> - * then you can have it all mapped nicely. Has no effect if you
> - * only have a 4Mb or smaller flash.
> - */
> - ldr r1, =(KS8695_IO_BASE+KS8695_MEM_CTRL1)
> - ldr r2, =0x9fe40040
> - str r2, [r1] /* remap flash2 region, contiguous */
> - ldr r1, =(KS8695_IO_BASE+KS8695_MEM_GENERAL)
> - ldr r2, =0x30000005
> - str r2, [r1] /* enable both flash selects */
> -
> -#ifdef CONFIG_CM41xx
> - /*
> - * map the second flash chip, using the external IO lines.
> - */
> - ldr r1, =(KS8695_IO_BASE+KS8695_IO_CTRL0)
> - ldr r2, =0xafe80b6d
> - str r2, [r1] /* remap io0 region, contiguous */
> - ldr r1, =(KS8695_IO_BASE+KS8695_IO_CTRL1)
> - ldr r2, =0xbfec0b6d
> - str r2, [r1] /* remap io1 region, contiguous */
> - ldr r1, =(KS8695_IO_BASE+KS8695_MEM_GENERAL)
> - ldr r2, =0x30050005
> - str r2, [r1] /* enable second flash */
> -#endif
> -
> - /*
> - * before relocating, we have to setup RAM timing
> - */
> - ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_CTRL0)
> -#if (PHYS_SDRAM_1_SIZE == 0x02000000)
> - ldr r2, =0x7fc0000e /* 32MB */
> -#else
> - ldr r2, =0x3fc0000e /* 16MB */
> -#endif
> - str r2, [r1] /* configure sdram bank0 setup */
> - ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_CTRL1)
> - mov r2, #0
> - str r2, [r1] /* configure sdram bank1 setup */
> -
> - ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_GENERAL)
> - ldr r2, =0x0000000a
> - str r2, [r1] /* set RAS/CAS timing */
> -
> - ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_BUFFER)
> - ldr r2, =0x00030000
> - str r2, [r1] /* send NOP command */
> - DELAY_FOR 0x100, r0
> - ldr r2, =0x00010000
> - str r2, [r1] /* send PRECHARGE-ALL */
> - DELAY_FOR 0x100, r0
> -
> - ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_REFRESH)
> - ldr r2, =0x00000020
> - str r2, [r1] /* set for fast refresh */
> - DELAY_FOR 0x100, r0
> - ldr r2, =0x00000190
> - str r2, [r1] /* set normal refresh timing */
> -
> - ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_BUFFER)
> - ldr r2, =0x00020033
> - str r2, [r1] /* send mode command */
> - DELAY_FOR 0x100, r0
> - ldr r2, =0x01f00000
> - str r2, [r1] /* enable sdram fifos */
> -
> - /*
> - * set pll to top speed
> - */
> - ldr r1, =(KS8695_IO_BASE+KS8695_SYSTEN_BUS_CLOCK)
> - mov r2, #0
> - str r2, [r1] /* set pll clock to 166MHz */
> -
> - ldr r1, =(KS8695_IO_BASE+KS8695_SWITCH_CTRL0)
> - ldr r2, [r1] /* Get switch ctrl0 register */
> - and r2, r2, #0x0fc00000 /* Mask out LED control bits */
> - orr r2, r2, #0x01800000 /* Set Link/activity/speed actions */
> - str r2, [r1]
> -
> -#ifdef CONFIG_CM4008
> - ldr r1, =(KS8695_IO_BASE+KS8695_GPIO_MODE)
> - ldr r2, =0x0000fe30
> - str r2, [r1] /* enable LED's as outputs */
> - ldr r1, =(KS8695_IO_BASE+KS8695_GPIO_DATA)
> - ldr r2, =0x0000fe20
> - str r2, [r1] /* turn on power LED */
> -#endif
> -#if defined(CONFIG_CM4008) || defined(CONFIG_CM41xx)
> - ldr r2, [r1] /* get current GPIO input data */
> - tst r2, #0x8 /* check if "erase" depressed */
> - beq nobutton
> - mov r2, #0 /* be quiet on boot, no console */
> - ldr r1, =serial_console
> - str r2, [r1]
> -nobutton:
> -#endif
> -
> - add lr, lr, #0x02000000 /* flash is now mapped high */
> - add ip, ip, #0x02000000 /* this is a hack */
> - mov pc, lr /* all done, return */
> -
> -#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
> diff --git a/arch/arm/cpu/arm920t/ks8695/timer.c b/arch/arm/cpu/arm920t/ks8695/timer.c
> deleted file mode 100644
> index 23db557..0000000
> --- a/arch/arm/cpu/arm920t/ks8695/timer.c
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -/*
> - * (C) Copyright 2004-2005, Greg Ungerer <greg.ungerer at opengear.com>
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <asm/arch/platform.h>
> -
> -/*
> - * Initial timer set constants. Nothing complicated, just set for a 1ms
> - * tick.
> - */
> -#define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_1)
> -#define TIMER_COUNT (TIMER_INTERVAL / 2)
> -#define TIMER_PULSE TIMER_COUNT
> -
> -/*
> - * Handy KS8695 register access functions.
> - */
> -#define ks8695_read(a) *((volatile ulong *) (KS8695_IO_BASE + (a)))
> -#define ks8695_write(a,v) *((volatile ulong *) (KS8695_IO_BASE + (a))) = (v)
> -
> -ulong timer_ticks;
> -
> -int timer_init (void)
> -{
> - /* Set the hadware timer for 1ms */
> - ks8695_write(KS8695_TIMER1, TIMER_COUNT);
> - ks8695_write(KS8695_TIMER1_PCOUNT, TIMER_PULSE);
> - ks8695_write(KS8695_TIMER_CTRL, 0x2);
> - timer_ticks = 0;
> -
> - return 0;
> -}
> -
> -ulong get_timer_masked(void)
> -{
> - /* Check for timer wrap */
> - if (ks8695_read(KS8695_INT_STATUS) & KS8695_INTMASK_TIMERINT1) {
> - /* Clear interrupt condition */
> - ks8695_write(KS8695_INT_STATUS, KS8695_INTMASK_TIMERINT1);
> - timer_ticks++;
> - }
> - return timer_ticks;
> -}
> -
> -ulong get_timer(ulong base)
> -{
> - return (get_timer_masked() - base);
> -}
> -
> -void __udelay(ulong usec)
> -{
> - ulong start = get_timer_masked();
> - ulong end;
> -
> - /* Only 1ms resolution :-( */
> - end = usec / 1000;
> - while (get_timer(start) < end)
> - ;
> -}
> -
> -void reset_cpu (ulong ignored)
> -{
> - ulong tc;
> -
> - /* Set timer0 to watchdog, and let it timeout */
> - tc = ks8695_read(KS8695_TIMER_CTRL) & 0x2;
> - ks8695_write(KS8695_TIMER_CTRL, tc);
> - ks8695_write(KS8695_TIMER0, ((10 << 8) | 0xff));
> - ks8695_write(KS8695_TIMER_CTRL, (tc | 0x1));
> -
> - /* Should only wait here till watchdog resets */
> - for (;;)
> - ;
> -}
> diff --git a/arch/arm/include/asm/arch-ks8695/platform.h b/arch/arm/include/asm/arch-ks8695/platform.h
> deleted file mode 100644
> index 02f6049..0000000
> --- a/arch/arm/include/asm/arch-ks8695/platform.h
> +++ /dev/null
> @@ -1,294 +0,0 @@
> -/*
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -#ifndef __address_h
> -#define __address_h 1
> -
> -#define KS8695_SDRAM_START 0x00000000
> -#define KS8695_SDRAM_SIZE 0x01000000
> -#define KS8695_MEM_SIZE KS8695_SDRAM_SIZE
> -#define KS8695_MEM_START KS8695_SDRAM_START
> -
> -#define KS8695_PCMCIA_IO_BASE 0x03800000
> -#define KS8695_PCMCIA_IO_SIZE 0x00040000
> -
> -#define KS8695_IO_BASE 0x03FF0000
> -#define KS8695_IO_SIZE 0x00010000
> -
> -#define KS8695_SYSTEN_CONFIG 0x00
> -#define KS8695_SYSTEN_BUS_CLOCK 0x04
> -
> -#define KS8695_FLASH_START 0x02800000
> -#define KS8695_FLASH_SIZE 0x00400000
> -
> -/*i/o control registers offset difinitions*/
> -#define KS8695_IO_CTRL0 0x4000
> -#define KS8695_IO_CTRL1 0x4004
> -#define KS8695_IO_CTRL2 0x4008
> -#define KS8695_IO_CTRL3 0x400C
> -
> -/*memory control registers offset difinitions*/
> -#define KS8695_MEM_CTRL0 0x4010
> -#define KS8695_MEM_CTRL1 0x4014
> -#define KS8695_MEM_CTRL2 0x4018
> -#define KS8695_MEM_CTRL3 0x401C
> -#define KS8695_MEM_GENERAL 0x4020
> -#define KS8695_SDRAM_CTRL0 0x4030
> -#define KS8695_SDRAM_CTRL1 0x4034
> -#define KS8695_SDRAM_GENERAL 0x4038
> -#define KS8695_SDRAM_BUFFER 0x403C
> -#define KS8695_SDRAM_REFRESH 0x4040
> -
> -/*WAN control registers offset difinitions*/
> -#define KS8695_WAN_DMA_TX 0x6000
> -#define KS8695_WAN_DMA_RX 0x6004
> -#define KS8695_WAN_DMA_TX_START 0x6008
> -#define KS8695_WAN_DMA_RX_START 0x600C
> -#define KS8695_WAN_TX_LIST 0x6010
> -#define KS8695_WAN_RX_LIST 0x6014
> -#define KS8695_WAN_MAC_LOW 0x6018
> -#define KS8695_WAN_MAC_HIGH 0x601C
> -#define KS8695_WAN_MAC_ELOW 0x6080
> -#define KS8695_WAN_MAC_EHIGH 0x6084
> -
> -/*LAN control registers offset difinitions*/
> -#define KS8695_LAN_DMA_TX 0x8000
> -#define KS8695_LAN_DMA_RX 0x8004
> -#define KS8695_LAN_DMA_TX_START 0x8008
> -#define KS8695_LAN_DMA_RX_START 0x800C
> -#define KS8695_LAN_TX_LIST 0x8010
> -#define KS8695_LAN_RX_LIST 0x8014
> -#define KS8695_LAN_MAC_LOW 0x8018
> -#define KS8695_LAN_MAC_HIGH 0x801C
> -#define KS8695_LAN_MAC_ELOW 0X8080
> -#define KS8695_LAN_MAC_EHIGH 0X8084
> -
> -/*HPNA control registers offset difinitions*/
> -#define KS8695_HPNA_DMA_TX 0xA000
> -#define KS8695_HPNA_DMA_RX 0xA004
> -#define KS8695_HPNA_DMA_TX_START 0xA008
> -#define KS8695_HPNA_DMA_RX_START 0xA00C
> -#define KS8695_HPNA_TX_LIST 0xA010
> -#define KS8695_HPNA_RX_LIST 0xA014
> -#define KS8695_HPNA_MAC_LOW 0xA018
> -#define KS8695_HPNA_MAC_HIGH 0xA01C
> -#define KS8695_HPNA_MAC_ELOW 0xA080
> -#define KS8695_HPNA_MAC_EHIGH 0xA084
> -
> -/*UART control registers offset difinitions*/
> -#define KS8695_UART_RX_BUFFER 0xE000
> -#define KS8695_UART_TX_HOLDING 0xE004
> -
> -#define KS8695_UART_FIFO_CTRL 0xE008
> -#define KS8695_UART_FIFO_TRIG01 0x00
> -#define KS8695_UART_FIFO_TRIG04 0x80
> -#define KS8695_UART_FIFO_TXRST 0x03
> -#define KS8695_UART_FIFO_RXRST 0x02
> -#define KS8695_UART_FIFO_FEN 0x01
> -
> -#define KS8695_UART_LINE_CTRL 0xE00C
> -#define KS8695_UART_LINEC_BRK 0x40
> -#define KS8695_UART_LINEC_EPS 0x10
> -#define KS8695_UART_LINEC_PEN 0x08
> -#define KS8695_UART_LINEC_STP2 0x04
> -#define KS8695_UART_LINEC_WLEN8 0x03
> -#define KS8695_UART_LINEC_WLEN7 0x02
> -#define KS8695_UART_LINEC_WLEN6 0x01
> -#define KS8695_UART_LINEC_WLEN5 0x00
> -
> -#define KS8695_UART_MODEM_CTRL 0xE010
> -#define KS8695_UART_MODEMC_RTS 0x02
> -#define KS8695_UART_MODEMC_DTR 0x01
> -
> -#define KS8695_UART_LINE_STATUS 0xE014
> -#define KS8695_UART_LINES_TXFE 0x20
> -#define KS8695_UART_LINES_BE 0x10
> -#define KS8695_UART_LINES_FE 0x08
> -#define KS8695_UART_LINES_PE 0x04
> -#define KS8695_UART_LINES_OE 0x02
> -#define KS8695_UART_LINES_RXFE 0x01
> -#define KS8695_UART_LINES_ANY (KS8695_UART_LINES_OE|KS8695_UART_LINES_BE|KS8695_UART_LINES_PE|KS8695_UART_LINES_FE)
> -
> -#define KS8695_UART_MODEM_STATUS 0xE018
> -#define KS8695_UART_MODEM_DCD 0x80
> -#define KS8695_UART_MODEM_DSR 0x20
> -#define KS8695_UART_MODEM_CTS 0x10
> -#define KS8695_UART_MODEM_DDCD 0x08
> -#define KS8695_UART_MODEM_DDSR 0x02
> -#define KS8695_UART_MODEM_DCTS 0x01
> -#define UART8695_MODEM_ANY 0xFF
> -
> -#define KS8695_UART_DIVISOR 0xE01C
> -#define KS8695_UART_STATUS 0xE020
> -
> -/*Interrupt controlller registers offset difinitions*/
> -#define KS8695_INT_CONTL 0xE200
> -#define KS8695_INT_ENABLE 0xE204
> -#define KS8695_INT_ENABLE_MODEM 0x0800
> -#define KS8695_INT_ENABLE_ERR 0x0400
> -#define KS8695_INT_ENABLE_RX 0x0200
> -#define KS8695_INT_ENABLE_TX 0x0100
> -
> -#define KS8695_INT_STATUS 0xE208
> -#define KS8695_INT_WAN_PRIORITY 0xE20C
> -#define KS8695_INT_HPNA_PRIORITY 0xE210
> -#define KS8695_INT_LAN_PRIORITY 0xE214
> -#define KS8695_INT_TIMER_PRIORITY 0xE218
> -#define KS8695_INT_UART_PRIORITY 0xE21C
> -#define KS8695_INT_EXT_PRIORITY 0xE220
> -#define KS8695_INT_CHAN_PRIORITY 0xE224
> -#define KS8695_INT_BUSERROR_PRO 0xE228
> -#define KS8695_INT_MASK_STATUS 0xE22C
> -#define KS8695_FIQ_PEND_PRIORITY 0xE230
> -#define KS8695_IRQ_PEND_PRIORITY 0xE234
> -
> -/*timer registers offset difinitions*/
> -#define KS8695_TIMER_CTRL 0xE400
> -#define KS8695_TIMER1 0xE404
> -#define KS8695_TIMER0 0xE408
> -#define KS8695_TIMER1_PCOUNT 0xE40C
> -#define KS8695_TIMER0_PCOUNT 0xE410
> -
> -/*GPIO registers offset difinitions*/
> -#define KS8695_GPIO_MODE 0xE600
> -#define KS8695_GPIO_CTRL 0xE604
> -#define KS8695_GPIO_DATA 0xE608
> -
> -/*SWITCH registers offset difinitions*/
> -#define KS8695_SWITCH_CTRL0 0xE800
> -#define KS8695_SWITCH_CTRL1 0xE804
> -#define KS8695_SWITCH_PORT1 0xE808
> -#define KS8695_SWITCH_PORT2 0xE80C
> -#define KS8695_SWITCH_PORT3 0xE810
> -#define KS8695_SWITCH_PORT4 0xE814
> -#define KS8695_SWITCH_PORT5 0xE818
> -#define KS8695_SWITCH_AUTO0 0xE81C
> -#define KS8695_SWITCH_AUTO1 0xE820
> -#define KS8695_SWITCH_LUE_CTRL 0xE824
> -#define KS8695_SWITCH_LUE_HIGH 0xE828
> -#define KS8695_SWITCH_LUE_LOW 0xE82C
> -#define KS8695_SWITCH_ADVANCED 0xE830
> -
> -#define KS8695_SWITCH_LPPM12 0xE874
> -#define KS8695_SWITCH_LPPM34 0xE878
> -
> -/*host communication registers difinitions*/
> -#define KS8695_DSCP_HIGH 0xE834
> -#define KS8695_DSCP_LOW 0xE838
> -#define KS8695_SWITCH_MAC_HIGH 0xE83C
> -#define KS8695_SWITCH_MAC_LOW 0xE840
> -
> -/*miscellaneours registers difinitions*/
> -#define KS8695_MANAGE_COUNTER 0xE844
> -#define KS8695_MANAGE_DATA 0xE848
> -#define KS8695_LAN12_POWERMAGR 0xE84C
> -#define KS8695_LAN34_POWERMAGR 0xE850
> -
> -#define KS8695_DEVICE_ID 0xEA00
> -#define KS8695_REVISION_ID 0xEA04
> -
> -#define KS8695_MISC_CONTROL 0xEA08
> -#define KS8695_WAN_CONTROL 0xEA0C
> -#define KS8695_WAN_POWERMAGR 0xEA10
> -#define KS8695_WAN_PHY_CONTROL 0xEA14
> -#define KS8695_WAN_PHY_STATUS 0xEA18
> -
> -/* bus clock definitions*/
> -#define KS8695_BUS_CLOCK_125MHZ 0x0
> -#define KS8695_BUS_CLOCK_100MHZ 0x1
> -#define KS8695_BUS_CLOCK_62MHZ 0x2
> -#define KS8695_BUS_CLOCK_50MHZ 0x3
> -#define KS8695_BUS_CLOCK_41MHZ 0x4
> -#define KS8695_BUS_CLOCK_33MHZ 0x5
> -#define KS8695_BUS_CLOCK_31MHZ 0x6
> -#define KS8695_BUS_CLOCK_25MHZ 0x7
> -
> -/* -------------------------------------------------------------------------------
> - * definations for IRQ
> - * -------------------------------------------------------------------------------*/
> -
> -#define KS8695_INT_EXT_INT0 2
> -#define KS8695_INT_EXT_INT1 3
> -#define KS8695_INT_EXT_INT2 4
> -#define KS8695_INT_EXT_INT3 5
> -#define KS8695_INT_TIMERINT0 6
> -#define KS8695_INT_TIMERINT1 7
> -#define KS8695_INT_UART_TX 8
> -#define KS8695_INT_UART_RX 9
> -#define KS8695_INT_UART_LINE_ERR 10
> -#define KS8695_INT_UART_MODEMS 11
> -#define KS8695_INT_LAN_STOP_RX 12
> -#define KS8695_INT_LAN_STOP_TX 13
> -#define KS8695_INT_LAN_BUF_RX_STATUS 14
> -#define KS8695_INT_LAN_BUF_TX_STATUS 15
> -#define KS8695_INT_LAN_RX_STATUS 16
> -#define KS8695_INT_LAN_TX_STATUS 17
> -#define KS8695_INT_HPAN_STOP_RX 18
> -#define KS8695_INT_HPNA_STOP_TX 19
> -#define KS8695_INT_HPNA_BUF_RX_STATUS 20
> -#define KS8695_INT_HPNA_BUF_TX_STATUS 21
> -#define KS8695_INT_HPNA_RX_STATUS 22
> -#define KS8695_INT_HPNA_TX_STATUS 23
> -#define KS8695_INT_BUS_ERROR 24
> -#define KS8695_INT_WAN_STOP_RX 25
> -#define KS8695_INT_WAN_STOP_TX 26
> -#define KS8695_INT_WAN_BUF_RX_STATUS 27
> -#define KS8695_INT_WAN_BUF_TX_STATUS 28
> -#define KS8695_INT_WAN_RX_STATUS 29
> -#define KS8695_INT_WAN_TX_STATUS 30
> -
> -#define KS8695_INT_UART KS8695_INT_UART_TX
> -
> -/* -------------------------------------------------------------------------------
> - * Interrupt bit positions
> - *
> - * -------------------------------------------------------------------------------
> - */
> -
> -#define KS8695_INTMASK_EXT_INT0 ( 1 << KS8695_INT_EXT_INT0 )
> -#define KS8695_INTMASK_EXT_INT1 ( 1 << KS8695_INT_EXT_INT1 )
> -#define KS8695_INTMASK_EXT_INT2 ( 1 << KS8695_INT_EXT_INT2 )
> -#define KS8695_INTMASK_EXT_INT3 ( 1 << KS8695_INT_EXT_INT3 )
> -#define KS8695_INTMASK_TIMERINT0 ( 1 << KS8695_INT_TIMERINT0 )
> -#define KS8695_INTMASK_TIMERINT1 ( 1 << KS8695_INT_TIMERINT1 )
> -#define KS8695_INTMASK_UART_TX ( 1 << KS8695_INT_UART_TX )
> -#define KS8695_INTMASK_UART_RX ( 1 << KS8695_INT_UART_RX )
> -#define KS8695_INTMASK_UART_LINE_ERR ( 1 << KS8695_INT_UART_LINE_ERR )
> -#define KS8695_INTMASK_UART_MODEMS ( 1 << KS8695_INT_UART_MODEMS )
> -#define KS8695_INTMASK_LAN_STOP_RX ( 1 << KS8695_INT_LAN_STOP_RX )
> -#define KS8695_INTMASK_LAN_STOP_TX ( 1 << KS8695_INT_LAN_STOP_TX )
> -#define KS8695_INTMASK_LAN_BUF_RX_STATUS ( 1 << KS8695_INT_LAN_BUF_RX_STATUS )
> -#define KS8695_INTMASK_LAN_BUF_TX_STATUS ( 1 << KS8695_INT_LAN_BUF_TX_STATUS )
> -#define KS8695_INTMASK_LAN_RX_STATUS ( 1 << KS8695_INT_LAN_RX_STATUS )
> -#define KS8695_INTMASK_LAN_TX_STATUS ( 1 << KS8695_INT_LAN_RX_STATUS )
> -#define KS8695_INTMASK_HPAN_STOP_RX ( 1 << KS8695_INT_HPAN_STOP_RX )
> -#define KS8695_INTMASK_HPNA_STOP_TX ( 1 << KS8695_INT_HPNA_STOP_TX )
> -#define KS8695_INTMASK_HPNA_BUF_RX_STATUS ( 1 << KS8695_INT_HPNA_BUF_RX_STATUS )
> -#define KS8695_INTMAKS_HPNA_BUF_TX_STATUS ( 1 << KS8695_INT_HPNA_BUF_TX_STATUS
> -#define KS8695_INTMASK_HPNA_RX_STATUS ( 1 << KS8695_INT_HPNA_RX_STATUS )
> -#define KS8695_INTMASK_HPNA_TX_STATUS ( 1 << KS8695_INT_HPNA_TX_STATUS )
> -#define KS8695_INTMASK_BUS_ERROR ( 1 << KS8695_INT_BUS_ERROR )
> -#define KS8695_INTMASK_WAN_STOP_RX ( 1 << KS8695_INT_WAN_STOP_RX )
> -#define KS8695_INTMASK_WAN_STOP_TX ( 1 << KS8695_INT_WAN_STOP_TX )
> -#define KS8695_INTMASK_WAN_BUF_RX_STATUS ( 1 << KS8695_INT_WAN_BUF_RX_STATUS )
> -#define KS8695_INTMASK_WAN_BUF_TX_STATUS ( 1 << KS8695_INT_WAN_BUF_TX_STATUS )
> -#define KS8695_INTMASK_WAN_RX_STATUS ( 1 << KS8695_INT_WAN_RX_STATUS )
> -#define KS8695_INTMASK_WAN_TX_STATUS ( 1 << KS8695_INT_WAN_TX_STATUS )
> -
> -#define KS8695_SC_VALID_INT 0xFFFFFFFF
> -#define MAXIRQNUM 31
> -
> -/*
> - * Timer definitions
> - *
> - * Use timer 1 & 2
> - * (both run at 25MHz).
> - *
> - */
> -#define TICKS_PER_uSEC 25
> -#define mSEC_1 1000
> -#define mSEC_10 (mSEC_1 * 10)
> -
> -#endif
> -
> -/* END */
> diff --git a/board/cm4008/Kconfig b/board/cm4008/Kconfig
> deleted file mode 100644
> index de87d5b..0000000
> --- a/board/cm4008/Kconfig
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -if TARGET_CM4008
> -
> -config SYS_BOARD
> - default "cm4008"
> -
> -config SYS_SOC
> - default "ks8695"
> -
> -config SYS_CONFIG_NAME
> - default "cm4008"
> -
> -endif
> diff --git a/board/cm4008/MAINTAINERS b/board/cm4008/MAINTAINERS
> deleted file mode 100644
> index 5f08bc3..0000000
> --- a/board/cm4008/MAINTAINERS
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -CM4008 BOARD
> -M: Greg Ungerer <greg.ungerer at opengear.com>
> -S: Maintained
> -F: board/cm4008/
> -F: include/configs/cm4008.h
> -F: configs/cm4008_defconfig
> diff --git a/board/cm4008/Makefile b/board/cm4008/Makefile
> deleted file mode 100644
> index 04b1529..0000000
> --- a/board/cm4008/Makefile
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#
> -# (C) Copyright 2000-2006
> -# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> -#
> -# SPDX-License-Identifier: GPL-2.0+
> -#
> -
> -obj-y := cm4008.o flash.o
> diff --git a/board/cm4008/cm4008.c b/board/cm4008/cm4008.c
> deleted file mode 100644
> index 740e164..0000000
> --- a/board/cm4008/cm4008.c
> +++ /dev/null
> @@ -1,88 +0,0 @@
> -/*
> - * (C) Copyright 2005
> - * Greg Ungerer, OpenGear Inc, <greg.ungerer at opengear.com>
> - *
> - * (C) Copyright 2002
> - * Kyle Harris, Nexus Technologies, Inc. kharris at nexus-tech.net
> - *
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Marius Groeger <mgroeger at sysgo.de>
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <asm/arch/platform.h>
> -#include <netdev.h>
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -/* ------------------------------------------------------------------------- */
> -
> -#define ks8695_read(a) *((volatile unsigned int *) (KS8695_IO_BASE+(a)))
> -#define ks8695_write(a,b) *((volatile unsigned int *) (KS8695_IO_BASE+(a))) = (b)
> -
> -/* ------------------------------------------------------------------------- */
> -
> -
> -/*
> - * Miscelaneous platform dependent initialisations
> - */
> -int env_flash_cmdline (void)
> -{
> - char *sp = (char *) 0x0201c020;
> - char *ep;
> - int len;
> -
> - /* Check if "erase" push button is depressed */
> - if ((ks8695_read(KS8695_GPIO_DATA) & 0x8) == 0) {
> - printf("### Entering network recovery mode...\n");
> - setenv("bootargs", "console=ttyAM0,115200 mem=16M initrd=0x400000,6M root=/dev/ram0");
> - setenv("bootcmd", "bootp 0x400000; gofsk 0x400000");
> - setenv("bootdelay", "2");
> - return 0;
> - }
> -
> - /* Check for flash based kernel boot args to use as default */
> - for (ep = sp, len = 0; ((len < 1024) && (*ep != 0)); ep++, len++)
> - ;
> -
> - if ((len > 0) && (len <1024))
> - setenv("bootargs", sp);
> -
> - return 0;
> -}
> -
> -int board_late_init (void)
> -{
> - return 0;
> -}
> -
> -int board_eth_init(bd_t *bis)
> -{
> - return ks8695_eth_initialize();
> -}
> -
> -int board_init (void)
> -{
> - /* arch number of CM4008 */
> - gd->bd->bi_arch_number = 624;
> -
> - /* adress of boot parameters */
> - gd->bd->bi_boot_params = 0x00000100;
> -
> - /* power down all but port 0 on the switch */
> - ks8695_write(KS8695_SWITCH_LPPM12, 0x00000005);
> - ks8695_write(KS8695_SWITCH_LPPM34, 0x00050005);
> -
> - return 0;
> -}
> -
> -int dram_init (void)
> -{
> - gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
> - gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
> -
> - return (0);
> -}
> diff --git a/board/cm4008/config.mk b/board/cm4008/config.mk
> deleted file mode 100644
> index 0d5923b..0000000
> --- a/board/cm4008/config.mk
> +++ /dev/null
> @@ -1 +0,0 @@
> -CONFIG_SYS_TEXT_BASE = 0x00f00000
> diff --git a/board/cm4008/flash.c b/board/cm4008/flash.c
> deleted file mode 100644
> index 8315a57..0000000
> --- a/board/cm4008/flash.c
> +++ /dev/null
> @@ -1,395 +0,0 @@
> -/*
> - * (C) Copyright 2005
> - * Greg Ungerer, OpenGear Inc, greg.ungerer at opengear.com
> - *
> - * (C) Copyright 2001
> - * Kyle Harris, Nexus Technologies, Inc. kharris at nexus-tech.net
> - *
> - * (C) Copyright 2001
> - * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <linux/byteorder/swab.h>
> -#include <asm/sections.h>
> -
> -
> -flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */
> -
> -#define mb() __asm__ __volatile__ ("" : : : "memory")
> -
> -/*-----------------------------------------------------------------------
> - * Functions
> - */
> -static ulong flash_get_size (unsigned char * addr, flash_info_t * info);
> -static int write_data (flash_info_t * info, ulong dest, unsigned char data);
> -static void flash_get_offsets (ulong base, flash_info_t * info);
> -void inline spin_wheel (void);
> -
> -/*-----------------------------------------------------------------------
> - */
> -
> -unsigned long flash_init (void)
> -{
> - int i;
> - ulong size = 0;
> -
> - for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
> - switch (i) {
> - case 0:
> - flash_get_size ((unsigned char *) PHYS_FLASH_1, &flash_info[i]);
> - flash_get_offsets (PHYS_FLASH_1, &flash_info[i]);
> - break;
> - case 1:
> - /* ignore for now */
> - flash_info[i].flash_id = FLASH_UNKNOWN;
> - break;
> - default:
> - panic ("configured too many flash banks!\n");
> - break;
> - }
> - size += flash_info[i].size;
> - }
> -
> - /* Protect monitor and environment sectors
> - */
> - flash_protect (FLAG_PROTECT_SET,
> - CONFIG_SYS_FLASH_BASE,
> - CONFIG_SYS_FLASH_BASE + (__bss_end - __bss_start),
> - &flash_info[0]);
> -
> - return size;
> -}
> -
> -/*-----------------------------------------------------------------------
> - */
> -static void flash_get_offsets (ulong base, flash_info_t * info)
> -{
> - int i;
> -
> - if (info->flash_id == FLASH_UNKNOWN)
> - return;
> -
> - if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) {
> - for (i = 0; i < info->sector_count; i++) {
> - info->start[i] = base + (i * PHYS_FLASH_SECT_SIZE);
> - info->protect[i] = 0;
> - }
> - }
> -}
> -
> -/*-----------------------------------------------------------------------
> - */
> -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_INTEL:
> - printf ("INTEL ");
> - break;
> - default:
> - printf ("Unknown Vendor ");
> - break;
> - }
> -
> - switch (info->flash_id & FLASH_TYPEMASK) {
> - case FLASH_28F128J3A:
> - printf ("28F128J3A\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 (unsigned char * addr, flash_info_t * info)
> -{
> - volatile unsigned char value;
> -
> - /* Write auto select command: read Manufacturer ID */
> - addr[0x5555] = 0xAA;
> - addr[0x2AAA] = 0x55;
> - addr[0x5555] = 0x90;
> -
> - mb ();
> - value = addr[0];
> -
> - switch (value) {
> -
> - case (unsigned char)INTEL_MANUFACT:
> - info->flash_id = FLASH_MAN_INTEL;
> - break;
> -
> - default:
> - info->flash_id = FLASH_UNKNOWN;
> - info->sector_count = 0;
> - info->size = 0;
> - addr[0] = 0xFF; /* restore read mode */
> - return (0); /* no or unknown flash */
> - }
> -
> - mb ();
> - value = addr[2]; /* device ID */
> -
> - switch (value) {
> -
> - case (unsigned char)INTEL_ID_28F640J3A:
> - info->flash_id += FLASH_28F640J3A;
> - info->sector_count = 64;
> - info->size = 0x00800000;
> - break; /* => 8 MB */
> -
> - case (unsigned char)INTEL_ID_28F128J3A:
> - info->flash_id += FLASH_28F128J3A;
> - info->sector_count = 128;
> - info->size = 0x01000000;
> - break; /* => 16 MB */
> -
> - default:
> - info->flash_id = FLASH_UNKNOWN;
> - break;
> - }
> -
> - if (info->sector_count > CONFIG_SYS_MAX_FLASH_SECT) {
> - printf ("** ERROR: sector count %d > max (%d) **\n",
> - info->sector_count, CONFIG_SYS_MAX_FLASH_SECT);
> - info->sector_count = CONFIG_SYS_MAX_FLASH_SECT;
> - }
> -
> - addr[0] = 0xFF; /* restore read mode */
> -
> - return (info->size);
> -}
> -
> -
> -/*-----------------------------------------------------------------------
> - */
> -
> -int flash_erase (flash_info_t * info, int s_first, int s_last)
> -{
> - int prot, sect;
> - ulong type;
> - int rcode = 0;
> - ulong start;
> -
> - 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;
> - }
> -
> - type = (info->flash_id & FLASH_VENDMASK);
> - if ((type != FLASH_MAN_INTEL)) {
> - 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");
> -
> - /* Disable interrupts which might cause a timeout here */
> - disable_interrupts();
> -
> - /* Start erase on unprotected sectors */
> - for (sect = s_first; sect <= s_last; sect++) {
> - if (info->protect[sect] == 0) { /* not protected */
> - volatile unsigned char *addr;
> - unsigned char status;
> -
> - printf ("Erasing sector %2d ... ", sect);
> -
> - /* arm simple, non interrupt dependent timer */
> - start = get_timer(0);
> -
> - addr = (volatile unsigned char *) (info->start[sect]);
> - *addr = 0x50; /* clear status register */
> - *addr = 0x20; /* erase setup */
> - *addr = 0xD0; /* erase confirm */
> -
> - while (((status = *addr) & 0x80) != 0x80) {
> - if (get_timer(start) >
> - CONFIG_SYS_FLASH_ERASE_TOUT) {
> - printf ("Timeout\n");
> - *addr = 0xB0; /* suspend erase */
> - *addr = 0xFF; /* reset to read mode */
> - rcode = 1;
> - break;
> - }
> - }
> -
> - *addr = 0x50; /* clear status register cmd */
> - *addr = 0xFF; /* resest to read mode */
> -
> - printf (" done\n");
> - }
> - }
> - return rcode;
> -}
> -
> -/*-----------------------------------------------------------------------
> - * Copy memory to flash, returns:
> - * 0 - OK
> - * 1 - write timeout
> - * 2 - Flash not erased
> - * 4 - Flash not identified
> - */
> -
> -int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
> -{
> - ulong cp, wp;
> - unsigned char data;
> - int count, i, l, rc, port_width;
> -
> - if (info->flash_id == FLASH_UNKNOWN)
> - return 4;
> -
> - wp = addr;
> - port_width = 1;
> -
> - /*
> - * 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 < port_width && cnt > 0; ++i) {
> - data = (data << 8) | *src++;
> - --cnt;
> - ++cp;
> - }
> - for (; cnt == 0 && i < port_width; ++i, ++cp) {
> - data = (data << 8) | (*(uchar *) cp);
> - }
> -
> - if ((rc = write_data (info, wp, data)) != 0) {
> - return (rc);
> - }
> - wp += port_width;
> - }
> -
> - /*
> - * handle word aligned part
> - */
> - count = 0;
> - while (cnt >= port_width) {
> - data = 0;
> - for (i = 0; i < port_width; ++i) {
> - data = (data << 8) | *src++;
> - }
> - if ((rc = write_data (info, wp, data)) != 0) {
> - return (rc);
> - }
> - wp += port_width;
> - cnt -= port_width;
> - if (count++ > 0x800) {
> - spin_wheel ();
> - count = 0;
> - }
> - }
> -
> - if (cnt == 0) {
> - return (0);
> - }
> -
> - /*
> - * handle unaligned tail bytes
> - */
> - data = 0;
> - for (i = 0, cp = wp; i < port_width && cnt > 0; ++i, ++cp) {
> - data = (data << 8) | *src++;
> - --cnt;
> - }
> - for (; i < port_width; ++i, ++cp) {
> - data = (data << 8) | (*(uchar *) cp);
> - }
> -
> - return (write_data (info, wp, data));
> -}
> -
> -/*-----------------------------------------------------------------------
> - * Write a word or halfword to Flash, returns:
> - * 0 - OK
> - * 1 - write timeout
> - * 2 - Flash not erased
> - */
> -static int write_data (flash_info_t * info, ulong dest, unsigned char data)
> -{
> - volatile unsigned char *addr = (volatile unsigned char *) dest;
> - ulong status;
> - ulong start;
> -
> - /* Check if Flash is (sufficiently) erased */
> - if ((*addr & data) != data) {
> - printf ("not erased at %08lx (%lx)\n", (ulong) addr,
> - (ulong) * addr);
> - return (2);
> - }
> - /* Disable interrupts which might cause a timeout here */
> - disable_interrupts();
> -
> - *addr = 0x40; /* write setup */
> - *addr = data;
> -
> - /* arm simple, non interrupt dependent timer */
> - start = get_timer(0);
> -
> - /* wait while polling the status register */
> - while (((status = *addr) & 0x80) != 0x80) {
> - if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
> - *addr = 0xFF; /* restore read mode */
> - return (1);
> - }
> - }
> -
> - *addr = 0xFF; /* restore read mode */
> -
> - return (0);
> -}
> -
> -void inline spin_wheel (void)
> -{
> - static int p = 0;
> - static char w[] = "\\/-";
> -
> - printf ("\010%c", w[p]);
> - (++p == 3) ? (p = 0) : 0;
> -}
> diff --git a/board/cm41xx/Kconfig b/board/cm41xx/Kconfig
> deleted file mode 100644
> index 99e675b..0000000
> --- a/board/cm41xx/Kconfig
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -if TARGET_CM41XX
> -
> -config SYS_BOARD
> - default "cm41xx"
> -
> -config SYS_SOC
> - default "ks8695"
> -
> -config SYS_CONFIG_NAME
> - default "cm41xx"
> -
> -endif
> diff --git a/board/cm41xx/MAINTAINERS b/board/cm41xx/MAINTAINERS
> deleted file mode 100644
> index f10eeb5..0000000
> --- a/board/cm41xx/MAINTAINERS
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -CM41XX BOARD
> -#M: -
> -S: Maintained
> -F: board/cm41xx/
> -F: include/configs/cm41xx.h
> -F: configs/cm41xx_defconfig
> diff --git a/board/cm41xx/Makefile b/board/cm41xx/Makefile
> deleted file mode 100644
> index b71ea05..0000000
> --- a/board/cm41xx/Makefile
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#
> -# (C) Copyright 2000-2006
> -# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> -#
> -# SPDX-License-Identifier: GPL-2.0+
> -#
> -
> -obj-y := cm41xx.o flash.o
> diff --git a/board/cm41xx/cm41xx.c b/board/cm41xx/cm41xx.c
> deleted file mode 100644
> index eabad48..0000000
> --- a/board/cm41xx/cm41xx.c
> +++ /dev/null
> @@ -1,88 +0,0 @@
> -/*
> - * (C) Copyright 2005
> - * Greg Ungerer, OpenGear Inc, <greg.ungerer at opengear.com>
> - *
> - * (C) Copyright 2002
> - * Kyle Harris, Nexus Technologies, Inc. kharris at nexus-tech.net
> - *
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Marius Groeger <mgroeger at sysgo.de>
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <asm/arch/platform.h>
> -#include <netdev.h>
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -/* ------------------------------------------------------------------------- */
> -
> -#define ks8695_read(a) *((volatile unsigned int *) (KS8695_IO_BASE+(a)))
> -#define ks8695_write(a,b) *((volatile unsigned int *) (KS8695_IO_BASE+(a))) = (b)
> -
> -/* ------------------------------------------------------------------------- */
> -
> -
> -/*
> - * Miscelaneous platform dependent initialisations
> - */
> -int env_flash_cmdline (void)
> -{
> - char *sp = (char *) 0x0201c020;
> - char *ep;
> - int len;
> -
> - /* Check if "erase" push button is depressed */
> - if ((ks8695_read(KS8695_GPIO_DATA) & 0x8) == 0) {
> - printf("### Entering network recovery mode...\n");
> - setenv("bootargs", "console=ttyAM0,115200 mem=32M initrd=0x400000,8M root=/dev/ram0");
> - setenv("bootcmd", "bootp 0x400000; gofsk 0x400000");
> - setenv("bootdelay", "2");
> - return 0;
> - }
> -
> - /* Check for flash based kernel boot args to use as default */
> - for (ep = sp, len = 0; ((len < 1024) && (*ep != 0)); ep++, len++)
> - ;
> -
> - if ((len > 0) && (len <1024))
> - setenv("bootargs", sp);
> -
> - return 0;
> -}
> -
> -int board_late_init (void)
> -{
> - return 0;
> -}
> -
> -int board_eth_init(bd_t *bis)
> -{
> - return ks8695_eth_initialize();
> -}
> -
> -int board_init (void)
> -{
> - /* arch number of CM41xx */
> - gd->bd->bi_arch_number = 672;
> -
> - /* adress of boot parameters */
> - gd->bd->bi_boot_params = 0x00000100;
> -
> - /* power down all but port 0 on the switch */
> - ks8695_write(KS8695_SWITCH_LPPM12, 0x00000005);
> - ks8695_write(KS8695_SWITCH_LPPM34, 0x00050005);
> -
> - return 0;
> -}
> -
> -int dram_init (void)
> -{
> - gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
> - gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
> -
> - return (0);
> -}
> diff --git a/board/cm41xx/config.mk b/board/cm41xx/config.mk
> deleted file mode 100644
> index 0d5923b..0000000
> --- a/board/cm41xx/config.mk
> +++ /dev/null
> @@ -1 +0,0 @@
> -CONFIG_SYS_TEXT_BASE = 0x00f00000
> diff --git a/board/cm41xx/flash.c b/board/cm41xx/flash.c
> deleted file mode 100644
> index 8315a57..0000000
> --- a/board/cm41xx/flash.c
> +++ /dev/null
> @@ -1,395 +0,0 @@
> -/*
> - * (C) Copyright 2005
> - * Greg Ungerer, OpenGear Inc, greg.ungerer at opengear.com
> - *
> - * (C) Copyright 2001
> - * Kyle Harris, Nexus Technologies, Inc. kharris at nexus-tech.net
> - *
> - * (C) Copyright 2001
> - * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <linux/byteorder/swab.h>
> -#include <asm/sections.h>
> -
> -
> -flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */
> -
> -#define mb() __asm__ __volatile__ ("" : : : "memory")
> -
> -/*-----------------------------------------------------------------------
> - * Functions
> - */
> -static ulong flash_get_size (unsigned char * addr, flash_info_t * info);
> -static int write_data (flash_info_t * info, ulong dest, unsigned char data);
> -static void flash_get_offsets (ulong base, flash_info_t * info);
> -void inline spin_wheel (void);
> -
> -/*-----------------------------------------------------------------------
> - */
> -
> -unsigned long flash_init (void)
> -{
> - int i;
> - ulong size = 0;
> -
> - for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
> - switch (i) {
> - case 0:
> - flash_get_size ((unsigned char *) PHYS_FLASH_1, &flash_info[i]);
> - flash_get_offsets (PHYS_FLASH_1, &flash_info[i]);
> - break;
> - case 1:
> - /* ignore for now */
> - flash_info[i].flash_id = FLASH_UNKNOWN;
> - break;
> - default:
> - panic ("configured too many flash banks!\n");
> - break;
> - }
> - size += flash_info[i].size;
> - }
> -
> - /* Protect monitor and environment sectors
> - */
> - flash_protect (FLAG_PROTECT_SET,
> - CONFIG_SYS_FLASH_BASE,
> - CONFIG_SYS_FLASH_BASE + (__bss_end - __bss_start),
> - &flash_info[0]);
> -
> - return size;
> -}
> -
> -/*-----------------------------------------------------------------------
> - */
> -static void flash_get_offsets (ulong base, flash_info_t * info)
> -{
> - int i;
> -
> - if (info->flash_id == FLASH_UNKNOWN)
> - return;
> -
> - if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) {
> - for (i = 0; i < info->sector_count; i++) {
> - info->start[i] = base + (i * PHYS_FLASH_SECT_SIZE);
> - info->protect[i] = 0;
> - }
> - }
> -}
> -
> -/*-----------------------------------------------------------------------
> - */
> -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_INTEL:
> - printf ("INTEL ");
> - break;
> - default:
> - printf ("Unknown Vendor ");
> - break;
> - }
> -
> - switch (info->flash_id & FLASH_TYPEMASK) {
> - case FLASH_28F128J3A:
> - printf ("28F128J3A\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 (unsigned char * addr, flash_info_t * info)
> -{
> - volatile unsigned char value;
> -
> - /* Write auto select command: read Manufacturer ID */
> - addr[0x5555] = 0xAA;
> - addr[0x2AAA] = 0x55;
> - addr[0x5555] = 0x90;
> -
> - mb ();
> - value = addr[0];
> -
> - switch (value) {
> -
> - case (unsigned char)INTEL_MANUFACT:
> - info->flash_id = FLASH_MAN_INTEL;
> - break;
> -
> - default:
> - info->flash_id = FLASH_UNKNOWN;
> - info->sector_count = 0;
> - info->size = 0;
> - addr[0] = 0xFF; /* restore read mode */
> - return (0); /* no or unknown flash */
> - }
> -
> - mb ();
> - value = addr[2]; /* device ID */
> -
> - switch (value) {
> -
> - case (unsigned char)INTEL_ID_28F640J3A:
> - info->flash_id += FLASH_28F640J3A;
> - info->sector_count = 64;
> - info->size = 0x00800000;
> - break; /* => 8 MB */
> -
> - case (unsigned char)INTEL_ID_28F128J3A:
> - info->flash_id += FLASH_28F128J3A;
> - info->sector_count = 128;
> - info->size = 0x01000000;
> - break; /* => 16 MB */
> -
> - default:
> - info->flash_id = FLASH_UNKNOWN;
> - break;
> - }
> -
> - if (info->sector_count > CONFIG_SYS_MAX_FLASH_SECT) {
> - printf ("** ERROR: sector count %d > max (%d) **\n",
> - info->sector_count, CONFIG_SYS_MAX_FLASH_SECT);
> - info->sector_count = CONFIG_SYS_MAX_FLASH_SECT;
> - }
> -
> - addr[0] = 0xFF; /* restore read mode */
> -
> - return (info->size);
> -}
> -
> -
> -/*-----------------------------------------------------------------------
> - */
> -
> -int flash_erase (flash_info_t * info, int s_first, int s_last)
> -{
> - int prot, sect;
> - ulong type;
> - int rcode = 0;
> - ulong start;
> -
> - 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;
> - }
> -
> - type = (info->flash_id & FLASH_VENDMASK);
> - if ((type != FLASH_MAN_INTEL)) {
> - 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");
> -
> - /* Disable interrupts which might cause a timeout here */
> - disable_interrupts();
> -
> - /* Start erase on unprotected sectors */
> - for (sect = s_first; sect <= s_last; sect++) {
> - if (info->protect[sect] == 0) { /* not protected */
> - volatile unsigned char *addr;
> - unsigned char status;
> -
> - printf ("Erasing sector %2d ... ", sect);
> -
> - /* arm simple, non interrupt dependent timer */
> - start = get_timer(0);
> -
> - addr = (volatile unsigned char *) (info->start[sect]);
> - *addr = 0x50; /* clear status register */
> - *addr = 0x20; /* erase setup */
> - *addr = 0xD0; /* erase confirm */
> -
> - while (((status = *addr) & 0x80) != 0x80) {
> - if (get_timer(start) >
> - CONFIG_SYS_FLASH_ERASE_TOUT) {
> - printf ("Timeout\n");
> - *addr = 0xB0; /* suspend erase */
> - *addr = 0xFF; /* reset to read mode */
> - rcode = 1;
> - break;
> - }
> - }
> -
> - *addr = 0x50; /* clear status register cmd */
> - *addr = 0xFF; /* resest to read mode */
> -
> - printf (" done\n");
> - }
> - }
> - return rcode;
> -}
> -
> -/*-----------------------------------------------------------------------
> - * Copy memory to flash, returns:
> - * 0 - OK
> - * 1 - write timeout
> - * 2 - Flash not erased
> - * 4 - Flash not identified
> - */
> -
> -int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
> -{
> - ulong cp, wp;
> - unsigned char data;
> - int count, i, l, rc, port_width;
> -
> - if (info->flash_id == FLASH_UNKNOWN)
> - return 4;
> -
> - wp = addr;
> - port_width = 1;
> -
> - /*
> - * 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 < port_width && cnt > 0; ++i) {
> - data = (data << 8) | *src++;
> - --cnt;
> - ++cp;
> - }
> - for (; cnt == 0 && i < port_width; ++i, ++cp) {
> - data = (data << 8) | (*(uchar *) cp);
> - }
> -
> - if ((rc = write_data (info, wp, data)) != 0) {
> - return (rc);
> - }
> - wp += port_width;
> - }
> -
> - /*
> - * handle word aligned part
> - */
> - count = 0;
> - while (cnt >= port_width) {
> - data = 0;
> - for (i = 0; i < port_width; ++i) {
> - data = (data << 8) | *src++;
> - }
> - if ((rc = write_data (info, wp, data)) != 0) {
> - return (rc);
> - }
> - wp += port_width;
> - cnt -= port_width;
> - if (count++ > 0x800) {
> - spin_wheel ();
> - count = 0;
> - }
> - }
> -
> - if (cnt == 0) {
> - return (0);
> - }
> -
> - /*
> - * handle unaligned tail bytes
> - */
> - data = 0;
> - for (i = 0, cp = wp; i < port_width && cnt > 0; ++i, ++cp) {
> - data = (data << 8) | *src++;
> - --cnt;
> - }
> - for (; i < port_width; ++i, ++cp) {
> - data = (data << 8) | (*(uchar *) cp);
> - }
> -
> - return (write_data (info, wp, data));
> -}
> -
> -/*-----------------------------------------------------------------------
> - * Write a word or halfword to Flash, returns:
> - * 0 - OK
> - * 1 - write timeout
> - * 2 - Flash not erased
> - */
> -static int write_data (flash_info_t * info, ulong dest, unsigned char data)
> -{
> - volatile unsigned char *addr = (volatile unsigned char *) dest;
> - ulong status;
> - ulong start;
> -
> - /* Check if Flash is (sufficiently) erased */
> - if ((*addr & data) != data) {
> - printf ("not erased at %08lx (%lx)\n", (ulong) addr,
> - (ulong) * addr);
> - return (2);
> - }
> - /* Disable interrupts which might cause a timeout here */
> - disable_interrupts();
> -
> - *addr = 0x40; /* write setup */
> - *addr = data;
> -
> - /* arm simple, non interrupt dependent timer */
> - start = get_timer(0);
> -
> - /* wait while polling the status register */
> - while (((status = *addr) & 0x80) != 0x80) {
> - if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
> - *addr = 0xFF; /* restore read mode */
> - return (1);
> - }
> - }
> -
> - *addr = 0xFF; /* restore read mode */
> -
> - return (0);
> -}
> -
> -void inline spin_wheel (void)
> -{
> - static int p = 0;
> - static char w[] = "\\/-";
> -
> - printf ("\010%c", w[p]);
> - (++p == 3) ? (p = 0) : 0;
> -}
> diff --git a/configs/cm4008_defconfig b/configs/cm4008_defconfig
> deleted file mode 100644
> index 487589d..0000000
> --- a/configs/cm4008_defconfig
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -CONFIG_ARM=y
> -CONFIG_TARGET_CM4008=y
> diff --git a/configs/cm41xx_defconfig b/configs/cm41xx_defconfig
> deleted file mode 100644
> index 15e9362..0000000
> --- a/configs/cm41xx_defconfig
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -CONFIG_ARM=y
> -CONFIG_TARGET_CM41XX=y
> diff --git a/doc/README.scrapyard b/doc/README.scrapyard
> index 809556e..a42b0e1 100644
> --- a/doc/README.scrapyard
> +++ b/doc/README.scrapyard
> @@ -12,6 +12,8 @@ The list should be sorted in reverse chronological order.
>
> Board Arch CPU Commit Removed Last known maintainer/contact
> =================================================================================================
> +cm4008 arm arm920t - - Greg Ungerer <greg.ungerer at opengear.com>
> +cm41xx arm arm920t - -
> dkb arm arm926ejs - - Lei Wen <leiwen at marvell.com>
> devkit3250 arm arm926ejs - - Vladimir Zapolskiy <vz at mleia.com>
> zmx25 arm arm926ejs - - Matthias Weisser <weisserm at arcor.de>
> diff --git a/drivers/net/Makefile b/drivers/net/Makefile
> index 46c4ac6..da5e2bc 100644
> --- a/drivers/net/Makefile
> +++ b/drivers/net/Makefile
> @@ -33,7 +33,6 @@ obj-$(CONFIG_FTMAC110) += ftmac110.o
> obj-$(CONFIG_FTMAC100) += ftmac100.o
> obj-$(CONFIG_GRETH) += greth.o
> obj-$(CONFIG_DRIVER_TI_KEYSTONE_NET) += keystone_net.o
> -obj-$(CONFIG_DRIVER_KS8695ETH) += ks8695eth.o
> obj-$(CONFIG_KS8851_MLL) += ks8851_mll.o
> obj-$(CONFIG_LAN91C96) += lan91c96.o
> obj-$(CONFIG_MACB) += macb.o
> diff --git a/drivers/net/ks8695eth.c b/drivers/net/ks8695eth.c
> deleted file mode 100644
> index b4822e9..0000000
> --- a/drivers/net/ks8695eth.c
> +++ /dev/null
> @@ -1,229 +0,0 @@
> -/*
> - * ks8695eth.c -- KS8695 ethernet driver
> - *
> - * (C) Copyright 2004-2005, Greg Ungerer <greg.ungerer at opengear.com>
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -/****************************************************************************/
> -
> -#include <common.h>
> -#include <malloc.h>
> -#include <net.h>
> -#include <asm/io.h>
> -#include <asm/arch/platform.h>
> -
> -/****************************************************************************/
> -
> -/*
> - * Hardware register access to the KS8695 LAN ethernet port
> - * (well, it is the 4 port switch really).
> - */
> -#define ks8695_read(a) *((volatile unsigned long *) (KS8695_IO_BASE + (a)))
> -#define ks8695_write(a,v) *((volatile unsigned long *) (KS8695_IO_BASE + (a))) = (v)
> -
> -/****************************************************************************/
> -
> -/*
> - * Define the descriptor in-memory data structures.
> - */
> -struct ks8695_txdesc {
> - uint32_t owner;
> - uint32_t ctrl;
> - uint32_t addr;
> - uint32_t next;
> -};
> -
> -struct ks8695_rxdesc {
> - uint32_t status;
> - uint32_t ctrl;
> - uint32_t addr;
> - uint32_t next;
> -};
> -
> -/****************************************************************************/
> -
> -/*
> - * Allocate local data structures to use for receiving and sending
> - * packets. Just to keep it all nice and simple.
> - */
> -
> -#define TXDESCS 4
> -#define RXDESCS 4
> -#define BUFSIZE 2048
> -
> -volatile struct ks8695_txdesc ks8695_tx[TXDESCS] __attribute__((aligned(256)));
> -volatile struct ks8695_rxdesc ks8695_rx[RXDESCS] __attribute__((aligned(256)));
> -volatile uint8_t ks8695_bufs[BUFSIZE*(TXDESCS+RXDESCS)] __attribute__((aligned(2048)));;
> -
> -/****************************************************************************/
> -
> -/*
> - * Ideally we want to use the MAC address stored in flash.
> - * But we do some sanity checks in case they are not present
> - * first.
> - */
> -unsigned char eth_mac[] = {
> - 0x00, 0x13, 0xc6, 0x00, 0x00, 0x00
> -};
> -
> -void ks8695_getmac(void)
> -{
> - unsigned char *fp;
> - int i;
> -
> - /* Check if flash MAC is valid */
> - fp = (unsigned char *) 0x0201c000;
> - for (i = 0; (i < 6); i++) {
> - if ((fp[i] != 0) && (fp[i] != 0xff))
> - break;
> - }
> -
> - /* If we found a valid looking MAC address then use it */
> - if (i < 6)
> - memcpy(ð_mac[0], fp, 6);
> -}
> -
> -/****************************************************************************/
> -
> -static int ks8695_eth_init(struct eth_device *dev, bd_t *bd)
> -{
> - int i;
> -
> - debug ("%s(%d): eth_reset()\n", __FILE__, __LINE__);
> -
> - /* Reset the ethernet engines first */
> - ks8695_write(KS8695_LAN_DMA_TX, 0x80000000);
> - ks8695_write(KS8695_LAN_DMA_RX, 0x80000000);
> -
> - ks8695_getmac();
> -
> - /* Set MAC address */
> - ks8695_write(KS8695_LAN_MAC_LOW, (eth_mac[5] | (eth_mac[4] << 8) |
> - (eth_mac[3] << 16) | (eth_mac[2] << 24)));
> - ks8695_write(KS8695_LAN_MAC_HIGH, (eth_mac[1] | (eth_mac[0] << 8)));
> -
> - /* Turn the 4 port switch on */
> - i = ks8695_read(KS8695_SWITCH_CTRL0);
> - ks8695_write(KS8695_SWITCH_CTRL0, (i | 0x1));
> - /* ks8695_write(KS8695_WAN_CONTROL, 0x3f000066); */
> -
> - /* Initialize descriptor rings */
> - for (i = 0; (i < TXDESCS); i++) {
> - ks8695_tx[i].owner = 0;
> - ks8695_tx[i].ctrl = 0;
> - ks8695_tx[i].addr = (uint32_t) &ks8695_bufs[i*BUFSIZE];
> - ks8695_tx[i].next = (uint32_t) &ks8695_tx[i+1];
> - }
> - ks8695_tx[TXDESCS-1].ctrl = 0x02000000;
> - ks8695_tx[TXDESCS-1].next = (uint32_t) &ks8695_tx[0];
> -
> - for (i = 0; (i < RXDESCS); i++) {
> - ks8695_rx[i].status = 0x80000000;
> - ks8695_rx[i].ctrl = BUFSIZE - 4;
> - ks8695_rx[i].addr = (uint32_t) &ks8695_bufs[(i+TXDESCS)*BUFSIZE];
> - ks8695_rx[i].next = (uint32_t) &ks8695_rx[i+1];
> - }
> - ks8695_rx[RXDESCS-1].ctrl |= 0x00080000;
> - ks8695_rx[RXDESCS-1].next = (uint32_t) &ks8695_rx[0];
> -
> - /* The KS8695 is pretty slow reseting the ethernets... */
> - udelay(2000000);
> -
> - /* Enable the ethernet engine */
> - ks8695_write(KS8695_LAN_TX_LIST, (uint32_t) &ks8695_tx[0]);
> - ks8695_write(KS8695_LAN_RX_LIST, (uint32_t) &ks8695_rx[0]);
> - ks8695_write(KS8695_LAN_DMA_TX, 0x3);
> - ks8695_write(KS8695_LAN_DMA_RX, 0x71);
> - ks8695_write(KS8695_LAN_DMA_RX_START, 0x1);
> -
> - printf("KS8695 ETHERNET: %pM\n", eth_mac);
> - return 0;
> -}
> -
> -/****************************************************************************/
> -
> -static void ks8695_eth_halt(struct eth_device *dev)
> -{
> - debug ("%s(%d): eth_halt()\n", __FILE__, __LINE__);
> -
> - /* Reset the ethernet engines */
> - ks8695_write(KS8695_LAN_DMA_TX, 0x80000000);
> - ks8695_write(KS8695_LAN_DMA_RX, 0x80000000);
> -}
> -
> -/****************************************************************************/
> -
> -static int ks8695_eth_recv(struct eth_device *dev)
> -{
> - volatile struct ks8695_rxdesc *dp;
> - int i, len = 0;
> -
> - debug ("%s(%d): eth_rx()\n", __FILE__, __LINE__);
> -
> - for (i = 0; (i < RXDESCS); i++) {
> - dp= &ks8695_rx[i];
> - if ((dp->status & 0x80000000) == 0) {
> - len = (dp->status & 0x7ff) - 4;
> - NetReceive((void *) dp->addr, len);
> - dp->status = 0x80000000;
> - ks8695_write(KS8695_LAN_DMA_RX_START, 0x1);
> - break;
> - }
> - }
> -
> - return len;
> -}
> -
> -/****************************************************************************/
> -
> -static int ks8695_eth_send(struct eth_device *dev, void *packet, int len)
> -{
> - volatile struct ks8695_txdesc *dp;
> - static int next = 0;
> -
> - debug ("%s(%d): eth_send(packet=%p,len=%d)\n", __FILE__, __LINE__,
> - packet, len);
> -
> - dp = &ks8695_tx[next];
> - memcpy((void *) dp->addr, (void *) packet, len);
> -
> - if (len < 64) {
> - memset((void *) (dp->addr + len), 0, 64-len);
> - len = 64;
> - }
> -
> - dp->ctrl = len | 0xe0000000;
> - dp->owner = 0x80000000;
> -
> - ks8695_write(KS8695_LAN_DMA_TX, 0x3);
> - ks8695_write(KS8695_LAN_DMA_TX_START, 0x1);
> -
> - if (++next >= TXDESCS)
> - next = 0;
> -
> - return 0;
> -}
> -
> -/****************************************************************************/
> -
> -int ks8695_eth_initialize(void)
> -{
> - struct eth_device *dev;
> -
> - dev = malloc(sizeof(*dev));
> - if (dev == NULL)
> - return -1;
> - memset(dev, 0, sizeof(*dev));
> -
> - dev->iobase = KS8695_IO_BASE + KS8695_LAN_DMA_TX;
> - dev->init = ks8695_eth_init;
> - dev->halt = ks8695_eth_halt;
> - dev->send = ks8695_eth_send;
> - dev->recv = ks8695_eth_recv;
> - strcpy(dev->name, "ks8695eth");
> -
> - eth_register(dev);
> - return 0;
> -}
> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
> index cedf246..78d4f51 100644
> --- a/drivers/serial/Makefile
> +++ b/drivers/serial/Makefile
> @@ -25,7 +25,6 @@ obj-$(CONFIG_OPENCORES_YANU) += opencores_yanu.o
> obj-$(CONFIG_SYS_NS16550) += ns16550.o
> obj-$(CONFIG_S5P) += serial_s5p.o
> obj-$(CONFIG_IMX_SERIAL) += serial_imx.o
> -obj-$(CONFIG_KS8695_SERIAL) += serial_ks8695.o
> obj-$(CONFIG_MAX3100_SERIAL) += serial_max3100.o
> obj-$(CONFIG_MXC_UART) += serial_mxc.o
> obj-$(CONFIG_PXA_SERIAL) += serial_pxa.o
> diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c
> index 3210a26..d2f34ad 100644
> --- a/drivers/serial/serial.c
> +++ b/drivers/serial/serial.c
> @@ -127,7 +127,6 @@ serial_initfunc(evb64260_serial_initialize);
> serial_initfunc(imx_serial_initialize);
> serial_initfunc(iop480_serial_initialize);
> serial_initfunc(jz_serial_initialize);
> -serial_initfunc(ks8695_serial_initialize);
> serial_initfunc(leon2_serial_initialize);
> serial_initfunc(leon3_serial_initialize);
> serial_initfunc(lh7a40x_serial_initialize);
> @@ -219,7 +218,6 @@ void serial_initialize(void)
> imx_serial_initialize();
> iop480_serial_initialize();
> jz_serial_initialize();
> - ks8695_serial_initialize();
> leon2_serial_initialize();
> leon3_serial_initialize();
> lh7a40x_serial_initialize();
> diff --git a/drivers/serial/serial_ks8695.c b/drivers/serial/serial_ks8695.c
> deleted file mode 100644
> index 13adabd..0000000
> --- a/drivers/serial/serial_ks8695.c
> +++ /dev/null
> @@ -1,121 +0,0 @@
> -/*
> - * serial.c -- KS8695 serial driver
> - *
> - * (C) Copyright 2004, Greg Ungerer <greg.ungerer at opengear.com>
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <common.h>
> -#include <asm/arch/platform.h>
> -#include <serial.h>
> -#include <linux/compiler.h>
> -
> -#ifndef CONFIG_SERIAL1
> -#error "Bad: you didn't configure serial ..."
> -#endif
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -/*
> - * Define the UART hardware register access structure.
> - */
> -struct ks8695uart {
> - unsigned int RX; /* 0x00 - Receive data (r) */
> - unsigned int TX; /* 0x04 - Transmit data (w) */
> - unsigned int FCR; /* 0x08 - Fifo Control (r/w) */
> - unsigned int LCR; /* 0x0c - Line Control (r/w) */
> - unsigned int MCR; /* 0x10 - Modem Control (r/w) */
> - unsigned int LSR; /* 0x14 - Line Status (r/w) */
> - unsigned int MSR; /* 0x18 - Modem Status (r/w) */
> - unsigned int BD; /* 0x1c - Baud Rate (r/w) */
> - unsigned int SR; /* 0x20 - Status (r/w) */
> -};
> -
> -#define KS8695_UART_ADDR ((void *) (KS8695_IO_BASE + KS8695_UART_RX_BUFFER))
> -#define KS8695_UART_CLK 25000000
> -
> -
> -/*
> - * Under some circumstances we want to be "quiet" and not issue any
> - * serial output - though we want u-boot to otherwise work and behave
> - * the same. By default be noisy.
> - */
> -int serial_console = 1;
> -
> -
> -static void ks8695_serial_setbrg(void)
> -{
> - volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
> -
> - /* Set to global baud rate and 8 data bits, no parity, 1 stop bit*/
> - uartp->BD = KS8695_UART_CLK / gd->baudrate;
> - uartp->LCR = KS8695_UART_LINEC_WLEN8;
> -}
> -
> -static int ks8695_serial_init(void)
> -{
> - serial_console = 1;
> - serial_setbrg();
> - return 0;
> -}
> -
> -static void ks8695_serial_raw_putc(const char c)
> -{
> - volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
> - int i;
> -
> - for (i = 0; (i < 0x100000); i++) {
> - if (uartp->LSR & KS8695_UART_LINES_TXFE)
> - break;
> - }
> -
> - uartp->TX = c;
> -}
> -
> -static void ks8695_serial_putc(const char c)
> -{
> - if (serial_console) {
> - ks8695_serial_raw_putc(c);
> - if (c == '\n')
> - ks8695_serial_raw_putc('\r');
> - }
> -}
> -
> -static int ks8695_serial_tstc(void)
> -{
> - volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
> - if (serial_console)
> - return ((uartp->LSR & KS8695_UART_LINES_RXFE) ? 1 : 0);
> - return 0;
> -}
> -
> -static int ks8695_serial_getc(void)
> -{
> - volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
> -
> - while ((uartp->LSR & KS8695_UART_LINES_RXFE) == 0)
> - ;
> - return (uartp->RX);
> -}
> -
> -static struct serial_device ks8695_serial_drv = {
> - .name = "ks8695_serial",
> - .start = ks8695_serial_init,
> - .stop = NULL,
> - .setbrg = ks8695_serial_setbrg,
> - .putc = ks8695_serial_putc,
> - .puts = default_serial_puts,
> - .getc = ks8695_serial_getc,
> - .tstc = ks8695_serial_tstc,
> -};
> -
> -void ks8695_serial_initialize(void)
> -{
> - serial_register(&ks8695_serial_drv);
> -}
> -
> -__weak struct serial_device *default_serial_console(void)
> -{
> - return &ks8695_serial_drv;
> -}
> diff --git a/include/configs/cm4008.h b/include/configs/cm4008.h
> deleted file mode 100644
> index 1cb54b3..0000000
> --- a/include/configs/cm4008.h
> +++ /dev/null
> @@ -1,104 +0,0 @@
> -/*
> - * (C) Copyright 2004
> - * Greg Ungerer <greg.ungerer at opengear.com>.
> - * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -#ifndef __CONFIG_H
> -#define __CONFIG_H
> -
> -/*
> - * High Level Configuration Options
> - * (easy to change)
> - */
> -#define CONFIG_KS8695 1 /* it is a KS8695 CPU */
> -#define CONFIG_CM4008 1 /* it is an OpenGear CM4008 boad */
> -
> -#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
> -#define CONFIG_SETUP_MEMORY_TAGS 1
> -#define CONFIG_INITRD_TAG 1
> -
> -#define CONFIG_DRIVER_KS8695ETH /* use KS8695 ethernet driver */
> -
> -/*
> - * Size of malloc() pool
> - */
> -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)
> -
> -/*
> - * Hardware drivers
> - */
> -
> -/*
> - * select serial console configuration
> - */
> -#define CONFIG_ENV_IS_NOWHERE
> -#define CONFIG_KS8695_SERIAL
> -#define CONFIG_SERIAL1
> -#define CONFIG_CONS_INDEX 1
> -#define CONFIG_BAUDRATE 115200
> -
> -/*
> - * BOOTP options
> - */
> -#define CONFIG_BOOTP_BOOTFILESIZE
> -#define CONFIG_BOOTP_BOOTPATH
> -#define CONFIG_BOOTP_GATEWAY
> -#define CONFIG_BOOTP_HOSTNAME
> -
> -
> -/*
> - * Command line configuration.
> - */
> -#include <config_cmd_default.h>
> -
> -#undef CONFIG_CMD_SAVEENV
> -
> -
> -#define CONFIG_BOOTDELAY 0
> -#define CONFIG_BOOTARGS "mem=16M console=ttyAM0,115200"
> -#define CONFIG_BOOTCOMMAND "gofsk 0x02200000"
> -
> -/*
> - * Miscellaneous configurable options
> - */
> -#define CONFIG_SYS_LONGHELP /* undef to save memory */
> -#define CONFIG_SYS_PROMPT "boot > " /* Monitor Command Prompt */
> -#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
> -#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 0x00800000 /* memtest works on */
> -#define CONFIG_SYS_MEMTEST_END 0x01000000 /* 16 MB in DRAM */
> -
> -#define CONFIG_SYS_LOAD_ADDR 0x00008000 /* default load address */
> -
> -/*-----------------------------------------------------------------------
> - * Physical Memory Map
> - */
> -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */
> -#define PHYS_SDRAM_1 0x00000000 /* SDRAM Bank #1 */
> -#define PHYS_SDRAM_1_SIZE 0x01000000 /* 16 MB */
> -#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
> -
> -#define CONFIG_SYS_INIT_SP_ADDR 0x00020000 /* lowest 128k of RAM */
> -
> -#define PHYS_FLASH_1 0x02000000 /* Flash Bank #1 */
> -#define PHYS_FLASH_SECT_SIZE 0x00020000 /* 128 KB sectors (x1) */
> -#define CONFIG_SYS_FLASH_BASE PHYS_FLASH_1
> -
> -/*-----------------------------------------------------------------------
> - * FLASH and environment organization
> - */
> -#define CONFIG_SYS_MAX_FLASH_BANKS 2 /* max number of flash banks */
> -#define CONFIG_SYS_MAX_FLASH_SECT (128) /* max number of sectors on one chip */
> -
> -/* timeout values are in ticks */
> -#define CONFIG_SYS_FLASH_ERASE_TOUT (20*CONFIG_SYS_HZ) /* Timeout for Flash Erase */
> -#define CONFIG_SYS_FLASH_WRITE_TOUT (20*CONFIG_SYS_HZ) /* Timeout for Flash Write */
> -
> -#define CONFIG_ENV_SIZE 0x20000 /* Total Size of Environment */
> -
> -#endif /* __CONFIG_H */
> diff --git a/include/configs/cm41xx.h b/include/configs/cm41xx.h
> deleted file mode 100644
> index adebd4b..0000000
> --- a/include/configs/cm41xx.h
> +++ /dev/null
> @@ -1,104 +0,0 @@
> -/*
> - * (C) Copyright 2005
> - * Greg Ungerer <greg.ungerer at opengear.com>.
> - * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -#ifndef __CONFIG_H
> -#define __CONFIG_H
> -
> -/*
> - * High Level Configuration Options
> - * (easy to change)
> - */
> -#define CONFIG_KS8695 1 /* it is a KS8695 CPU */
> -#define CONFIG_CM41xx 1 /* it is an OpenGear CM41xx boad */
> -
> -#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
> -#define CONFIG_SETUP_MEMORY_TAGS 1
> -#define CONFIG_INITRD_TAG 1
> -
> -#define CONFIG_DRIVER_KS8695ETH /* use KS8695 ethernet driver */
> -
> -/*
> - * Size of malloc() pool
> - */
> -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)
> -
> -/*
> - * Hardware drivers
> - */
> -
> -/*
> - * select serial console configuration
> - */
> -#define CONFIG_ENV_IS_NOWHERE
> -#define CONFIG_KS8695_SERIAL
> -#define CONFIG_SERIAL1
> -#define CONFIG_CONS_INDEX 1
> -#define CONFIG_BAUDRATE 115200
> -
> -/*
> - * BOOTP options
> - */
> -#define CONFIG_BOOTP_BOOTFILESIZE
> -#define CONFIG_BOOTP_BOOTPATH
> -#define CONFIG_BOOTP_GATEWAY
> -#define CONFIG_BOOTP_HOSTNAME
> -
> -
> -/*
> - * Command line configuration.
> - */
> -#include <config_cmd_default.h>
> -
> -#undef CONFIG_CMD_SAVEENV
> -
> -
> -#define CONFIG_BOOTDELAY 0
> -#define CONFIG_BOOTARGS "mem=32M console=ttyAM0,115200"
> -#define CONFIG_BOOTCOMMAND "gofsk 0x02200000"
> -
> -/*
> - * Miscellaneous configurable options
> - */
> -#define CONFIG_SYS_LONGHELP /* undef to save memory */
> -#define CONFIG_SYS_PROMPT "boot > " /* Monitor Command Prompt */
> -#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
> -#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 0x00800000 /* memtest works on */
> -#define CONFIG_SYS_MEMTEST_END 0x01000000 /* 16 MB in DRAM */
> -
> -#define CONFIG_SYS_LOAD_ADDR 0x00008000 /* default load address */
> -
> -/*-----------------------------------------------------------------------
> - * Physical Memory Map
> - */
> -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */
> -#define PHYS_SDRAM_1 0x00000000 /* SDRAM Bank #1 */
> -#define PHYS_SDRAM_1_SIZE 0x02000000 /* 32 MB */
> -#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
> -
> -#define CONFIG_SYS_INIT_SP_ADDR 0x00020000 /* lowest 128k of RAM */
> -
> -#define PHYS_FLASH_1 0x02000000 /* Flash Bank #1 */
> -#define PHYS_FLASH_SECT_SIZE 0x00020000 /* 128 KB sectors (x1) */
> -#define CONFIG_SYS_FLASH_BASE PHYS_FLASH_1
> -
> -/*-----------------------------------------------------------------------
> - * FLASH and environment organization
> - */
> -#define CONFIG_SYS_MAX_FLASH_BANKS 2 /* max number of flash banks */
> -#define CONFIG_SYS_MAX_FLASH_SECT (128) /* max number of sectors on one chip */
> -
> -/* timeout values are in ticks */
> -#define CONFIG_SYS_FLASH_ERASE_TOUT (20*CONFIG_SYS_HZ) /* Timeout for Flash Erase */
> -#define CONFIG_SYS_FLASH_WRITE_TOUT (20*CONFIG_SYS_HZ) /* Timeout for Flash Write */
> -
> -#define CONFIG_ENV_SIZE 0x20000 /* Total Size of Environment */
> -
> -#endif /* __CONFIG_H */
> diff --git a/include/netdev.h b/include/netdev.h
> index daffc12..90140bd 100644
> --- a/include/netdev.h
> +++ b/include/netdev.h
> @@ -55,7 +55,6 @@ int ftmac100_initialize(bd_t *bits);
> int ftmac110_initialize(bd_t *bits);
> int greth_initialize(bd_t *bis);
> void gt6426x_eth_initialize(bd_t *bis);
> -int ks8695_eth_initialize(void);
> int ks8851_mll_initialize(u8 dev_num, int base_addr);
> int lan91c96_initialize(u8 dev_num, int base_addr);
> int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
> diff --git a/include/serial.h b/include/serial.h
> index 42e2cc1..cd48e6f 100644
> --- a/include/serial.h
> +++ b/include/serial.h
> @@ -182,7 +182,6 @@ void evb64260_serial_initialize(void);
> void imx_serial_initialize(void);
> void iop480_serial_initialize(void);
> void jz_serial_initialize(void);
> -void ks8695_serial_initialize(void);
> void leon2_serial_initialize(void);
> void leon3_serial_initialize(void);
> void lh7a40x_serial_initialize(void);
>
More information about the U-Boot
mailing list