Merge branch 'fixes' of git://git.denx.de/u-boot-mips
authorTom Rini <trini@ti.com>
Fri, 15 Feb 2013 17:23:42 +0000 (12:23 -0500)
committerTom Rini <trini@ti.com>
Fri, 15 Feb 2013 17:23:42 +0000 (12:23 -0500)
36 files changed:
Makefile
README
arch/x86/cpu/Makefile
arch/x86/cpu/sc520/Makefile [deleted file]
arch/x86/cpu/sc520/asm-offsets.c [deleted file]
arch/x86/cpu/sc520/sc520.c [deleted file]
arch/x86/cpu/sc520/sc520_car.S [deleted file]
arch/x86/cpu/sc520/sc520_pci.c [deleted file]
arch/x86/cpu/sc520/sc520_reset.c [deleted file]
arch/x86/cpu/sc520/sc520_sdram.c [deleted file]
arch/x86/cpu/sc520/sc520_ssi.c [deleted file]
arch/x86/cpu/sc520/sc520_timer.c [deleted file]
arch/x86/cpu/u-boot.lds
arch/x86/include/asm/arch-sc520/pci.h [deleted file]
arch/x86/include/asm/arch-sc520/sc520.h [deleted file]
arch/x86/include/asm/arch-sc520/ssi.h [deleted file]
arch/x86/include/asm/realmode.h [deleted file]
arch/x86/lib/Makefile
arch/x86/lib/bios.S [deleted file]
arch/x86/lib/bios.h
arch/x86/lib/bios_pci.S [deleted file]
arch/x86/lib/bios_setup.c [deleted file]
arch/x86/lib/realmode.c [deleted file]
arch/x86/lib/realmode_switch.S [deleted file]
arch/x86/lib/video.c
arch/x86/lib/video_bios.c [deleted file]
arch/x86/lib/zimage.c
board/eNET/Makefile [deleted file]
board/eNET/eNET.c [deleted file]
board/eNET/eNET_pci.c [deleted file]
board/eNET/eNET_start.S [deleted file]
board/eNET/eNET_start16.S [deleted file]
board/eNET/hardware.h [deleted file]
boards.cfg
include/configs/coreboot.h
include/configs/eNET.h [deleted file]

index 35eee704dd18aed084a06e1b6cc464499ab3a29e..fc18dd4cc02323739757326c9d5b890b79100016 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -230,10 +230,6 @@ endif
 # U-Boot objects....order is important (i.e. start must be first)
 
 OBJS  = $(CPUDIR)/start.o
-ifeq ($(CPU),x86)
-RESET_OBJS-$(CONFIG_X86_NO_RESET_VECTOR) += $(CPUDIR)/start16.o
-RESET_OBJS-$(CONFIG_X86_NO_RESET_VECTOR) += $(CPUDIR)/resetvec.o
-endif
 ifeq ($(CPU),ppc4xx)
 OBJS += $(CPUDIR)/resetvec.o
 endif
@@ -241,7 +237,7 @@ ifeq ($(CPU),mpc85xx)
 OBJS += $(CPUDIR)/resetvec.o
 endif
 
-OBJS := $(addprefix $(obj),$(OBJS) $(RESET_OBJS-))
+OBJS := $(addprefix $(obj),$(OBJS))
 
 HAVE_VENDOR_COMMON_LIB = $(if $(wildcard board/$(VENDOR)/common/Makefile),y,n)
 
diff --git a/README b/README
index 2352e3862bfa81f4ad2bca262cc26529ac008fd7..d8cb3940d4f04810dcc6fe88a5f03f0b0cd5d8a8 100644 (file)
--- a/README
+++ b/README
@@ -3816,14 +3816,9 @@ Low Level (hardware related) configuration options:
                be used if available. These functions may be faster under some
                conditions but may increase the binary size.
 
-- CONFIG_X86_NO_RESET_VECTOR
-               If defined, the x86 reset vector code is excluded. You will need
-               to do this when U-Boot is running from Coreboot.
-
-- CONFIG_X86_NO_REAL_MODE
-               If defined, x86 real mode code is omitted. This assumes a
-               32-bit environment where such code is not needed. You will
-               need to do this when U-Boot is running from Coreboot.
+- CONFIG_X86_RESET_VECTOR
+               If defined, the x86 reset vector code is included. This is not
+               needed when U-Boot is running from Coreboot.
 
 
 Freescale QE/FMAN Firmware Support:
index 57324b61749edbeb3fadfe045252d3fd7a8560a5..7b520f8dca165a8c7dcaea387cf6da5f97e6f535 100644 (file)
@@ -29,12 +29,12 @@ include $(TOPDIR)/config.mk
 LIB    = $(obj)lib$(CPU).o
 
 START-y        = start.o
-RESET_OBJS-$(CONFIG_X86_NO_RESET_VECTOR) += resetvec.o start16.o
+START-$(CONFIG_X86_RESET_VECTOR) += resetvec.o start16.o
 COBJS  = interrupts.o cpu.o timer.o
 
 SRCS   := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
-START  := $(addprefix $(obj),$(START-y) $(RESET_OBJS-))
+START  := $(addprefix $(obj),$(START-y))
 
 all:   $(obj).depend $(START) $(LIB)
 
diff --git a/arch/x86/cpu/sc520/Makefile b/arch/x86/cpu/sc520/Makefile
deleted file mode 100644 (file)
index f462264..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# (C) Copyright 2008
-# Graeme Russ, graeme.russ@gmail.com.
-#
-# (C) Copyright 2006
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# (C) Copyright 2002
-# Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-include $(TOPDIR)/config.mk
-
-LIB    := $(obj)lib$(SOC).o
-
-COBJS-$(CONFIG_SYS_SC520) += sc520.o
-COBJS-$(CONFIG_PCI) += sc520_pci.o
-COBJS-$(CONFIG_SYS_SC520_RESET) += sc520_reset.o
-COBJS-$(CONFIG_SYS_SC520) += sc520_sdram.o
-COBJS-$(CONFIG_SYS_SC520_SSI) += sc520_ssi.o
-COBJS-$(CONFIG_SYS_SC520_TIMER) += sc520_timer.o
-
-SOBJS-$(CONFIG_SYS_SC520) += sc520_car.o
-
-SRCS   := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
-OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
-
-all: $(obj).depend $(LIB)
-
-$(LIB):        $(OBJS)
-       $(call cmd_link_o_target, $(OBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
\ No newline at end of file
diff --git a/arch/x86/cpu/sc520/asm-offsets.c b/arch/x86/cpu/sc520/asm-offsets.c
deleted file mode 100644 (file)
index 794f00c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Adapted from Linux v2.6.36 kernel: arch/powerpc/kernel/asm-offsets.c
- *
- * This program is used to generate definitions needed by
- * assembly language modules.
- *
- * We use the technique used in the OSF Mach kernel code:
- * generate asm statements containing #defines,
- * compile this file to assembler, and then extract the
- * #defines from the assembly-language output.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-#include <common.h>
-#include <asm/arch/sc520.h>
-
-#include <linux/kbuild.h>
-
-int main(void)
-{
-       DEFINE(GENERATED_GD_RELOC_OFF, offsetof(gd_t, reloc_off));
-
-       DEFINE(GENERATED_SC520_PAR0, offsetof(struct sc520_mmcr, par[0]));
-       DEFINE(GENERATED_SC520_PAR1, offsetof(struct sc520_mmcr, par[1]));
-       DEFINE(GENERATED_SC520_PAR2, offsetof(struct sc520_mmcr, par[2]));
-       DEFINE(GENERATED_SC520_PAR3, offsetof(struct sc520_mmcr, par[3]));
-       DEFINE(GENERATED_SC520_PAR4, offsetof(struct sc520_mmcr, par[4]));
-       DEFINE(GENERATED_SC520_PAR5, offsetof(struct sc520_mmcr, par[5]));
-       DEFINE(GENERATED_SC520_PAR6, offsetof(struct sc520_mmcr, par[6]));
-       DEFINE(GENERATED_SC520_PAR7, offsetof(struct sc520_mmcr, par[7]));
-       DEFINE(GENERATED_SC520_PAR8, offsetof(struct sc520_mmcr, par[8]));
-       DEFINE(GENERATED_SC520_PAR9, offsetof(struct sc520_mmcr, par[9]));
-       DEFINE(GENERATED_SC520_PAR10, offsetof(struct sc520_mmcr, par[10]));
-       DEFINE(GENERATED_SC520_PAR11, offsetof(struct sc520_mmcr, par[11]));
-       DEFINE(GENERATED_SC520_PAR12, offsetof(struct sc520_mmcr, par[12]));
-       DEFINE(GENERATED_SC520_PAR13, offsetof(struct sc520_mmcr, par[13]));
-       DEFINE(GENERATED_SC520_PAR14, offsetof(struct sc520_mmcr, par[14]));
-       DEFINE(GENERATED_SC520_PAR15, offsetof(struct sc520_mmcr, par[15]));
-
-       return 0;
-}
diff --git a/arch/x86/cpu/sc520/sc520.c b/arch/x86/cpu/sc520/sc520.c
deleted file mode 100644 (file)
index 3fe85e7..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * (C) Copyright 2008-2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/processor-flags.h>
-#include <asm/arch/sc520.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-sc520_mmcr_t *sc520_mmcr = (sc520_mmcr_t *)SC520_MMCR_BASE;
-
-int cpu_init_f(void)
-{
-       if (CONFIG_SYS_SC520_HIGH_SPEED) {
-               /* set it to 133 MHz and write back */
-               writeb(0x02, &sc520_mmcr->cpuctl);
-               gd->cpu_clk = 133000000;
-       } else {
-               /* set it to 100 MHz and write back */
-               writeb(0x01, &sc520_mmcr->cpuctl);
-               gd->cpu_clk = 100000000;
-       }
-
-       /* wait at least one millisecond */
-       asm("movl       $0x2000, %%ecx\n"
-           "0:         pushl %%ecx\n"
-           "popl       %%ecx\n"
-           "loop 0b\n" : : : "ecx");
-
-       return x86_cpu_init_f();
-}
-
-int cpu_init_r(void)
-{
-       /* Disable the PAR used for CAR */
-       writel(0x0000000, &sc520_mmcr->par[2]);
-
-       /* turn on the SDRAM write buffer */
-       writeb(0x11, &sc520_mmcr->dbctl);
-
-       return x86_cpu_init_r();
-}
diff --git a/arch/x86/cpu/sc520/sc520_car.S b/arch/x86/cpu/sc520/sc520_car.S
deleted file mode 100644 (file)
index c04cc1f..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * (C) Copyright 2010-2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <config.h>
-#include <asm/processor-flags.h>
-#include <asm/arch/sc520.h>
-#include <generated/asm-offsets.h>
-
-.section .text
-
-.globl car_init
-car_init:
-       /*
-        * How to enable Cache-As-RAM for the AMD Elan SC520:
-        *  1. Turn off the CPU Cache (may not be strictly required)
-        *  2. Set code execution PAR (usually the BOOTCS region) to be
-        *     non-cachable
-        *  3. Create a Cachable PAR Region for an area of memory which is
-        *       a) NOT where the code is being executed
-        *       b) NOT SDRAM (Controller not initialised yet)
-        *       c) WILL response to read requests
-        *     The easiest way to do this is to create a second BOOTCS
-        *     PAR mappnig with an address != the PAR in step 2
-        *  4. Issue a wbinvd to invalidate the CPU cache
-        *  5. Turn on the CPU Cache
-        *  6. Read 16kB from the cached PAR region setup in step 3
-        *  7. Turn off the CPU Cache (but DO NOT issue a wbinvd)
-        *
-        * The following code uses PAR2 as the cached PAR (PAR0 and PAR1
-        * are avoided as these are the only two PARs which can be used
-        * as PCI BUS Memory regions which the board might require)
-        *
-        * The configuration of PAR2 must be set in the board configuration
-        * file as CONFIG_SYS_SC520_CAR_PAR
-        */
-
-       /* Configure Cache-As-RAM PAR */
-       movl    $CONFIG_SYS_SC520_CAR_PAR, %eax
-       movl    $(SC520_MMCR_BASE + GENERATED_SC520_PAR2), %edi
-       movl    %eax, (%edi)
-
-       /* Trash the cache then turn it on */
-       wbinvd
-       movl    %cr0, %eax
-       andl    $~(X86_CR0_NW | X86_CR0_CD), %eax
-       movl    %eax, %cr0
-
-       /*
-        * The cache is now enabled and empty. Map a region of memory to
-        * it by reading that region.
-        */
-       movl    $CONFIG_SYS_CAR_ADDR, %esi
-       movl    $CONFIG_SYS_CAR_SIZE, %ecx
-       shrl    $2, %ecx                        /* we are reading longs */
-       cld
-       rep     lodsl
-
-       /* Turn off the cache, but don't trash it */
-       movl    %cr0, %eax
-       orl     $(X86_CR0_NW | X86_CR0_CD), %eax
-       movl    %eax, %cr0
-
-       /* Clear the CAR region */
-       xorl    %eax, %eax
-       movl    $CONFIG_SYS_CAR_ADDR, %edi
-       movl    $CONFIG_SYS_CAR_SIZE, %ecx
-       shrl    $2, %ecx                        /* we are writing longs */
-       rep     stosl
-
-       /*
-        * Done - We should now have CONFIG_SYS_CAR_SIZE bytes of
-        * Cache-As-RAM
-        */
-       jmp     car_init_ret
diff --git a/arch/x86/cpu/sc520/sc520_pci.c b/arch/x86/cpu/sc520/sc520_pci.c
deleted file mode 100644 (file)
index 52d07c1..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * (C) Copyright 2008-2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <pci.h>
-#include <asm/io.h>
-#include <asm/pci.h>
-#include <asm/arch/pci.h>
-#include <asm/arch/sc520.h>
-
-static struct {
-       u8 priority;
-       u16 level_reg;
-       u8 level_bit;
-} sc520_irq[] = {
-       { SC520_IRQ0,  0, 0x01 },
-       { SC520_IRQ1,  0, 0x02 },
-       { SC520_IRQ2,  1, 0x02 },
-       { SC520_IRQ3,  0, 0x08 },
-       { SC520_IRQ4,  0, 0x10 },
-       { SC520_IRQ5,  0, 0x20 },
-       { SC520_IRQ6,  0, 0x40 },
-       { SC520_IRQ7,  0, 0x80 },
-
-       { SC520_IRQ8,  1, 0x01 },
-       { SC520_IRQ9,  1, 0x02 },
-       { SC520_IRQ10, 1, 0x04 },
-       { SC520_IRQ11, 1, 0x08 },
-       { SC520_IRQ12, 1, 0x10 },
-       { SC520_IRQ13, 1, 0x20 },
-       { SC520_IRQ14, 1, 0x40 },
-       { SC520_IRQ15, 1, 0x80 }
-};
-
-/* The interrupt used for PCI INTA-INTD  */
-int sc520_pci_ints[15] = {
-       -1, -1, -1, -1, -1, -1, -1, -1,
-               -1, -1, -1, -1, -1, -1, -1
-};
-
-/* utility function to configure a pci interrupt */
-int pci_sc520_set_irq(int pci_pin, int irq)
-{
-       int i;
-       u8 tmpb;
-       u16 tmpw;
-
-       debug("set_irq(): map INT%c to IRQ%d\n", pci_pin + 'A', irq);
-
-       if (irq < 0 || irq > 15)
-               return -1; /* illegal irq */
-
-       if (pci_pin < 0 || pci_pin > 15)
-               return -1; /* illegal pci int pin */
-
-       /* first disable any non-pci interrupt source that use
-        * this level */
-
-       /* PCI interrupt mapping (A through D)*/
-       for (i = 0; i <= 3 ; i++) {
-               tmpb = readb(&sc520_mmcr->pci_int_map[i]);
-
-               if (tmpb == sc520_irq[irq].priority)
-                       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->pci_int_map[i]);
-       }
-
-       /* GP IRQ interrupt mapping */
-       for (i = 0; i <= 10 ; i++) {
-               tmpb = readb(&sc520_mmcr->gp_int_map[i]);
-
-               if (tmpb == sc520_irq[irq].priority)
-                       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->gp_int_map[i]);
-       }
-
-       /* Set the trigger to level */
-       tmpb = readb(&sc520_mmcr->pic_mode[sc520_irq[irq].level_reg]);
-       tmpb |= sc520_irq[irq].level_bit;
-       writeb(tmpb, &sc520_mmcr->pic_mode[sc520_irq[irq].level_reg]);
-
-
-       if (pci_pin < 4) {
-               /* PCI INTA-INTD */
-               /* route the interrupt */
-               writeb(sc520_irq[irq].priority,
-                               &sc520_mmcr->pci_int_map[pci_pin]);
-       } else {
-               /* GPIRQ0-GPIRQ10 used for additional PCI INTS */
-               writeb(sc520_irq[irq].priority,
-                               &sc520_mmcr->gp_int_map[pci_pin - 4]);
-
-               /* also set the polarity in this case */
-               tmpw = readw(&sc520_mmcr->intpinpol);
-               tmpw |= (1 << (pci_pin-4));
-               writew(tmpw, &sc520_mmcr->intpinpol);
-       }
-
-       /* register the pin */
-       sc520_pci_ints[pci_pin] = irq;
-
-
-       return 0; /* OK */
-}
-
-void pci_sc520_init(struct pci_controller *hose)
-{
-       hose->first_busno = 0;
-       hose->last_busno = 0xff;
-       hose->region_count = pci_set_regions(hose);
-
-       pci_setup_type1(hose);
-
-       pci_register_hose(hose);
-
-       hose->last_busno = pci_hose_scan(hose);
-
-       /* enable target memory acceses on host brige */
-       pci_write_config_word(0, PCI_COMMAND,
-                             PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
-}
diff --git a/arch/x86/cpu/sc520/sc520_reset.c b/arch/x86/cpu/sc520/sc520_reset.c
deleted file mode 100644 (file)
index 137af97..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * (C) Copyright 2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/arch/sc520.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-void reset_cpu(ulong addr)
-{
-       printf("Resetting using SC520 MMCR\n");
-       /* Write a '1' to the SYS_RST of the RESCFG MMCR */
-       writeb(0x01, &sc520_mmcr->rescfg);
-
-       /* NOTREACHED */
-}
diff --git a/arch/x86/cpu/sc520/sc520_sdram.c b/arch/x86/cpu/sc520/sc520_sdram.c
deleted file mode 100644 (file)
index 9dc1334..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * (C) Copyright 2010,2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/processor-flags.h>
-#include <asm/arch/sc520.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-struct sc520_sdram_info {
-       u8 banks;
-       u8 columns;
-       u8 rows;
-       u8 size;
-};
-
-static void sc520_sizemem(void);
-static void sc520_set_dram_timing(void);
-static void sc520_set_dram_refresh_rate(void);
-static void sc520_enable_dram_refresh(void);
-static void sc520_enable_sdram(void);
-
-int dram_init_f(void)
-{
-       sc520_sizemem();
-       sc520_set_dram_timing();
-       sc520_set_dram_refresh_rate();
-       sc520_enable_dram_refresh();
-       sc520_enable_sdram();
-
-       return 0;
-}
-
-static inline void sc520_dummy_write(void)
-{
-       writew(0x0000, CACHELINESZ);
-}
-static inline void sc520_issue_sdram_op_mode_select(u8 command)
-{
-       writeb(command, &sc520_mmcr->drcctl);
-       sc520_dummy_write();
-}
-
-static inline int check_long(u32 test_long)
-{
-       u8 i;
-       u8 tmp_byte = (u8)(test_long & 0x000000ff);
-
-       for (i = 1; i < 4; i++) {
-               if ((u8)((test_long >> (i * 8)) & 0x000000ff) != tmp_byte)
-                               return -1;
-       }
-
-       return 0;
-}
-
-static inline int write_and_test(u32 data, u32 address)
-{
-       writel(data, address);
-       if (readl(address) == data)
-               return 0; /* Good */
-       else
-               return -1; /* Bad */
-}
-
-static void sc520_enable_sdram(void)
-{
-       u32 par_config;
-
-       /* Enable Writes, Caching and Code Execution to SDRAM */
-       par_config = readl(&sc520_mmcr->par[3]);
-       par_config &= ~(SC520_PAR_EXEC_DIS |
-                       SC520_PAR_CACHE_DIS |
-                       SC520_PAR_WRITE_DIS);
-       writel(par_config, &sc520_mmcr->par[3]);
-
-       par_config = readl(&sc520_mmcr->par[4]);
-       par_config &= ~(SC520_PAR_EXEC_DIS |
-                       SC520_PAR_CACHE_DIS |
-                       SC520_PAR_WRITE_DIS);
-       writel(par_config, &sc520_mmcr->par[4]);
-}
-
-static void sc520_set_dram_timing(void)
-{
-       u8 drctmctl = 0x00;
-
-#if defined CONFIG_SYS_SDRAM_DRCTMCTL
-       /* just have your hardware designer _GIVE_ you what you need here! */
-       drctmctl = CONFIG_SYS_SDRAM_DRCTMCTL;
-#else
-       switch (CONFIG_SYS_SDRAM_RAS_CAS_DELAY) {
-       case 2:
-               break;
-       case 3:
-               drctmctl |= 0x01;
-               break;
-       case 4:
-       default:
-               drctmctl |= 0x02;
-               break;
-       }
-
-       switch (CONFIG_SYS_SDRAM_PRECHARGE_DELAY) {
-       case 2:
-               break;
-       case 3:
-               drctmctl |= 0x04;
-               break;
-       case 4:
-       default:
-               drctmctl |= 0x08;
-               break;
-
-       case 6:
-               drctmctl |= 0x0c;
-               break;
-       }
-
-       switch (CONFIG_SYS_SDRAM_CAS_LATENCY) {
-       case 2:
-               break;
-       case 3:
-       default:
-               drctmctl |= 0x10;
-               break;
-       }
-#endif
-       writeb(drctmctl, &sc520_mmcr->drctmctl);
-
-       /* Issue load mode register command */
-       sc520_issue_sdram_op_mode_select(0x03);
-}
-
-static void sc520_set_dram_refresh_rate(void)
-{
-       u8 drctl;
-
-       drctl = readb(&sc520_mmcr->drcctl);
-       drctl &= 0xcf;
-
-       switch (CONFIG_SYS_SDRAM_REFRESH_RATE) {
-       case 78:
-               break;
-       case 156:
-       default:
-               drctl |= 0x10;
-               break;
-       case 312:
-               drctl |= 0x20;
-               break;
-       case 624:
-               drctl |= 0x30;
-               break;
-       }
-
-       writeb(drctl, &sc520_mmcr->drcctl);
-}
-
-static void sc520_enable_dram_refresh(void)
-{
-       u8 drctl;
-
-       drctl = readb(&sc520_mmcr->drcctl);
-       drctl &= 0x30; /* keep refresh rate */
-       drctl |= 0x08; /* enable refresh, normal mode */
-
-       writeb(drctl, &sc520_mmcr->drcctl);
-}
-
-static void sc520_get_bank_info(int bank, struct sc520_sdram_info *bank_info)
-{
-       u32 col_data;
-       u32 row_data;
-
-       u32 drcbendadr;
-       u16 drccfg;
-
-       u8 banks = 0x00;
-       u8 columns = 0x00;
-       u8 rows = 0x00;
-
-       bank_info->banks = 0x00;
-       bank_info->columns = 0x00;
-       bank_info->rows = 0x00;
-       bank_info->size = 0x00;
-
-       if ((bank < 0) || (bank > 3)) {
-               printf("Bad Bank ID\n");
-               return;
-       }
-
-       /* Save configuration */
-       drcbendadr = readl(&sc520_mmcr->drcbendadr);
-       drccfg = readw(&sc520_mmcr->drccfg);
-
-       /* Setup SDRAM Bank to largest possible size */
-       writew(0x000b << (bank * 4), &sc520_mmcr->drccfg);
-
-       /* Set ending address for this bank */
-       writel(0x000000ff << (bank * 8), &sc520_mmcr->drcbendadr);
-
-       /* write col 11 wrap adr */
-       if (write_and_test(COL11_DATA, COL11_ADR) != 0)
-               goto restore_and_exit;
-
-       /* write col 10 wrap adr */
-       if (write_and_test(COL10_DATA, COL10_ADR) != 0)
-               goto restore_and_exit;
-
-       /* write col 9 wrap adr */
-       if (write_and_test(COL09_DATA, COL09_ADR) != 0)
-               goto restore_and_exit;
-
-       /* write col 8 wrap adr */
-       if (write_and_test(COL08_DATA, COL08_ADR) != 0)
-               goto restore_and_exit;
-
-       col_data = readl(COL11_ADR);
-
-       /* All four bytes in the read long must be the same */
-       if (check_long(col_data) < 0)
-               goto restore_and_exit;
-
-       if ((col_data >= COL08_DATA) && (col_data <= COL11_DATA))
-               columns = (u8)(col_data & 0x000000ff);
-       else
-               goto restore_and_exit;
-
-       /* write row 14 wrap adr */
-       if (write_and_test(ROW14_DATA, ROW14_ADR) != 0)
-               goto restore_and_exit;
-
-       /* write row 13 wrap adr */
-       if (write_and_test(ROW13_DATA, ROW13_ADR) != 0)
-               goto restore_and_exit;
-
-       /* write row 12 wrap adr */
-       if (write_and_test(ROW12_DATA, ROW12_ADR) != 0)
-               goto restore_and_exit;
-
-       /* write row 11 wrap adr */
-       if (write_and_test(ROW11_DATA, ROW11_ADR) != 0)
-               goto restore_and_exit;
-
-       if (write_and_test(ROW10_DATA, ROW10_ADR) != 0)
-               goto restore_and_exit;
-
-       /*
-        * read data @ row 12 wrap adr to determine number of banks,
-        * and read data @ row 14 wrap adr to determine number of rows.
-        * if data @ row 12 wrap adr is not AA, 11 or 12 we have bad RAM.
-        * if data @ row 12 wrap == AA, we only have 2 banks, NOT 4
-        * if data @ row 12 wrap == 11 or 12, we have 4 banks,
-        */
-       row_data = readl(ROW12_ADR);
-
-       /* All four bytes in the read long must be the same */
-       if (check_long(row_data) != 0)
-               goto restore_and_exit;
-
-       switch (row_data) {
-       case ROW10_DATA:
-               banks = 2;
-               break;
-
-       case ROW11_DATA:
-       case ROW12_DATA:
-               banks = 4;
-               break;
-
-       default:
-               goto restore_and_exit;
-       }
-
-       row_data = readl(ROW14_ADR);
-
-       /* All four bytes in the read long must be the same */
-       if (check_long(row_data) != 0)
-               goto restore_and_exit;
-
-       switch (row_data) {
-       case ROW11_DATA:
-       case ROW12_DATA:
-       case ROW13_DATA:
-       case ROW14_DATA:
-               rows = (u8)(row_data & 0x000000ff);
-               break;
-
-       default:
-               goto restore_and_exit;
-       }
-
-       bank_info->banks = banks;
-       bank_info->columns = columns;
-       bank_info->rows = rows;
-
-       if ((bank_info->banks != 0) &&
-           (bank_info->columns != 0) &&
-           (bank_info->rows != 0)) {
-               bank_info->size = bank_info->rows;
-               bank_info->size >>= (11 - bank_info->columns);
-               bank_info->size++;
-       }
-
-restore_and_exit:
-       /* Restore configuration */
-       writel(drcbendadr, &sc520_mmcr->drcbendadr);
-       writew(drccfg, &sc520_mmcr->drccfg);
-}
-
-static void sc520_setup_sizemem(void)
-{
-       u8 i;
-
-       /* Disable write buffer */
-       writeb(0x00, &sc520_mmcr->dbctl);
-
-       /* Disable ECC */
-       writeb(0x00, &sc520_mmcr->eccctl);
-
-       /* Set slowest SDRAM timing */
-       writeb(0x1e, &sc520_mmcr->drctmctl);
-
-       /* Issue a NOP to all SDRAM banks */
-       sc520_issue_sdram_op_mode_select(0x01);
-
-       /* Delay for 100 microseconds */
-       udelay(100);
-
-       /* Issue 'All Banks Precharge' command */
-       sc520_issue_sdram_op_mode_select(0x02);
-
-       /* Issue 2 'Auto Refresh Enable' command */
-       sc520_issue_sdram_op_mode_select(0x04);
-       sc520_dummy_write();
-
-       /* Issue 'Load Mode Register' command */
-       sc520_issue_sdram_op_mode_select(0x03);
-
-       /* Issue 8 more 'Auto Refresh Enable' commands */
-       sc520_issue_sdram_op_mode_select(0x04);
-       for (i = 0; i < 7; i++)
-               sc520_dummy_write();
-
-       /* Set control register to 'Normal Mode' */
-       writeb(0x00, &sc520_mmcr->drcctl);
-}
-
-static void sc520_sizemem(void)
-{
-       struct sc520_sdram_info sdram_info[4];
-       u8 bank_config = 0x00;
-       u8 end_addr = 0x00;
-       u16 drccfg = 0x0000;
-       u32 drcbendadr = 0x00000000;
-       u8 i;
-
-       /* Use PARs to disable caching of maximum allowable 256MB SDRAM */
-       writel(SC520_SDRAM1_PAR | SC520_PAR_CACHE_DIS, &sc520_mmcr->par[3]);
-       writel(SC520_SDRAM2_PAR | SC520_PAR_CACHE_DIS, &sc520_mmcr->par[4]);
-
-       sc520_setup_sizemem();
-
-       gd->ram_size = 0;
-
-       /* Size each SDRAM bank */
-       for (i = 0; i <= 3; i++) {
-               sc520_get_bank_info(i, &sdram_info[i]);
-
-               if (sdram_info[i].banks != 0) {
-                       /* Update Configuration register */
-                       bank_config = sdram_info[i].columns - 8;
-
-                       if (sdram_info[i].banks == 4)
-                               bank_config |= 0x08;
-
-                       drccfg |= bank_config << (i * 4);
-
-                       /* Update End Address register */
-                       end_addr += sdram_info[i].size;
-                       drcbendadr |= (end_addr | 0x80) << (i * 8);
-
-                       gd->ram_size += sdram_info[i].size << 22;
-               }
-
-               /* Issue 'All Banks Precharge' command */
-               sc520_issue_sdram_op_mode_select(0x02);
-
-               /* Set control register to 'Normal Mode' */
-               writeb(0x00, &sc520_mmcr->drcctl);
-       }
-
-       writel(drcbendadr, &sc520_mmcr->drcbendadr);
-       writew(drccfg, &sc520_mmcr->drccfg);
-
-       /* Clear PARs preventing caching of SDRAM */
-       writel(0x00000000, &sc520_mmcr->par[3]);
-       writel(0x00000000, &sc520_mmcr->par[4]);
-}
-
-int dram_init(void)
-{
-       ulong dram_ctrl;
-       ulong dram_present = 0x00000000;
-
-       /*
-        * We read-back the configuration of the dram
-        * controller that the assembly code wrote
-        */
-       dram_ctrl = readl(&sc520_mmcr->drcbendadr);
-
-       gd->bd->bi_dram[0].start = 0;
-       if (dram_ctrl & 0x80) {
-               /* bank 0 enabled */
-               gd->bd->bi_dram[1].start = (dram_ctrl & 0x7f) << 22;
-               dram_present = gd->bd->bi_dram[1].start;
-               gd->bd->bi_dram[0].size = gd->bd->bi_dram[1].start;
-       } else {
-               gd->bd->bi_dram[0].size = 0;
-               gd->bd->bi_dram[1].start = gd->bd->bi_dram[0].start;
-       }
-
-       if (dram_ctrl & 0x8000) {
-               /* bank 1 enabled */
-               gd->bd->bi_dram[2].start = (dram_ctrl & 0x7f00) << 14;
-               dram_present = gd->bd->bi_dram[2].start;
-               gd->bd->bi_dram[1].size = gd->bd->bi_dram[2].start -
-                               gd->bd->bi_dram[1].start;
-       } else {
-               gd->bd->bi_dram[1].size = 0;
-               gd->bd->bi_dram[2].start = gd->bd->bi_dram[1].start;
-       }
-
-       if (dram_ctrl & 0x800000) {
-               /* bank 2 enabled */
-               gd->bd->bi_dram[3].start = (dram_ctrl & 0x7f0000) << 6;
-               dram_present = gd->bd->bi_dram[3].start;
-               gd->bd->bi_dram[2].size = gd->bd->bi_dram[3].start -
-                               gd->bd->bi_dram[2].start;
-       } else {
-               gd->bd->bi_dram[2].size = 0;
-               gd->bd->bi_dram[3].start = gd->bd->bi_dram[2].start;
-       }
-
-       if (dram_ctrl & 0x80000000) {
-               /* bank 3 enabled */
-               dram_present  = (dram_ctrl & 0x7f000000) >> 2;
-               gd->bd->bi_dram[3].size = dram_present -
-                               gd->bd->bi_dram[3].start;
-       } else {
-               gd->bd->bi_dram[3].size = 0;
-       }
-
-       gd->ram_size = dram_present;
-
-       return 0;
-}
diff --git a/arch/x86/cpu/sc520/sc520_ssi.c b/arch/x86/cpu/sc520/sc520_ssi.c
deleted file mode 100644 (file)
index cc601e5..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/arch/ssi.h>
-#include <asm/arch/sc520.h>
-
-int ssi_set_interface(int freq, int lsb_first, int inv_clock, int inv_phase)
-{
-       u8 temp = 0;
-
-       if (freq >= 8192)
-               temp |= CTL_CLK_SEL_4;
-       else if (freq >= 4096)
-               temp |= CTL_CLK_SEL_8;
-       else if (freq >= 2048)
-               temp |= CTL_CLK_SEL_16;
-       else if (freq >= 1024)
-               temp |= CTL_CLK_SEL_32;
-       else if (freq >= 512)
-               temp |= CTL_CLK_SEL_64;
-       else if (freq >= 256)
-               temp |= CTL_CLK_SEL_128;
-       else if (freq >= 128)
-               temp |= CTL_CLK_SEL_256;
-       else
-               temp |= CTL_CLK_SEL_512;
-
-       if (!lsb_first)
-               temp |= MSBF_ENB;
-
-       if (inv_clock)
-               temp |= CLK_INV_ENB;
-
-       if (inv_phase)
-               temp |= PHS_INV_ENB;
-
-       writeb(temp, &sc520_mmcr->ssictl);
-
-       return 0;
-}
-
-u8 ssi_txrx_byte(u8 data)
-{
-       writeb(data, &sc520_mmcr->ssixmit);
-       while (readb(&sc520_mmcr->ssista) & SSISTA_BSY)
-               ;
-       writeb(SSICMD_CMD_SEL_XMITRCV, &sc520_mmcr->ssicmd);
-       while (readb(&sc520_mmcr->ssista) & SSISTA_BSY)
-               ;
-
-       return readb(&sc520_mmcr->ssircv);
-}
-
-void ssi_tx_byte(u8 data)
-{
-       writeb(data, &sc520_mmcr->ssixmit);
-       while (readb(&sc520_mmcr->ssista) & SSISTA_BSY)
-               ;
-       writeb(SSICMD_CMD_SEL_XMIT, &sc520_mmcr->ssicmd);
-}
-
-u8 ssi_rx_byte(void)
-{
-       while (readb(&sc520_mmcr->ssista) & SSISTA_BSY)
-               ;
-       writeb(SSICMD_CMD_SEL_RCV, &sc520_mmcr->ssicmd);
-       while (readb(&sc520_mmcr->ssista) & SSISTA_BSY)
-               ;
-
-       return readb(&sc520_mmcr->ssircv);
-}
diff --git a/arch/x86/cpu/sc520/sc520_timer.c b/arch/x86/cpu/sc520/sc520_timer.c
deleted file mode 100644 (file)
index 41f121f..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * (C) Copyright 2008-2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/interrupt.h>
-#include <asm/arch/sc520.h>
-
-void sc520_timer_isr(void)
-{
-       /* Ack the GP Timer Interrupt */
-       writeb(0x02, &sc520_mmcr->gptmrsta);
-}
-
-int timer_init(void)
-{
-       /* Register the SC520 specific timer interrupt handler */
-       register_timer_isr(sc520_timer_isr);
-
-       /* Install interrupt handler for GP Timer 1 */
-       irq_install_handler (0, timer_isr, NULL);
-
-       /* Map GP Timer 1 to Master PIC IR0  */
-       writeb(0x01, &sc520_mmcr->gp_tmr_int_map[1]);
-
-       /* Disable GP Timers 1 & 2 - Allow configuration writes */
-       writew(0x4000, &sc520_mmcr->gptmr1ctl);
-       writew(0x4000, &sc520_mmcr->gptmr2ctl);
-
-       /* Reset GP Timers 1 & 2 */
-       writew(0x0000, &sc520_mmcr->gptmr1cnt);
-       writew(0x0000, &sc520_mmcr->gptmr2cnt);
-
-       /* Setup GP Timer 2 as a 100kHz (10us) prescaler */
-       writew(83, &sc520_mmcr->gptmr2maxcmpa);
-       writew(0xc001, &sc520_mmcr->gptmr2ctl);
-
-       /* Setup GP Timer 1 as a 1000 Hz (1ms) interrupt generator */
-       writew(100, &sc520_mmcr->gptmr1maxcmpa);
-       writew(0xe009, &sc520_mmcr->gptmr1ctl);
-
-       unmask_irq(0);
-
-       /* Clear the GP Timer 1 status register to get the show rolling*/
-       writeb(0x02, &sc520_mmcr->gptmrsta);
-
-       return 0;
-}
-
-/* Allow boards to override udelay implementation */
-void __udelay(unsigned long usec)
-       __attribute__((weak, alias("sc520_udelay")));
-
-void sc520_udelay(unsigned long usec)
-{
-       int m = 0;
-       long u;
-
-       readw(&sc520_mmcr->swtmrmilli);
-       readw(&sc520_mmcr->swtmrmicro);
-
-       do {
-               m += readw(&sc520_mmcr->swtmrmilli);
-               u = readw(&sc520_mmcr->swtmrmicro) + (m * 1000);
-       } while (u < usec);
-}
index 0c6f0e31d8365309f0c6e19bb5cb04a9a423fdee..2313cd793a281fc2a1ac57b0794e63b70de94665 100644 (file)
@@ -86,7 +86,7 @@ SECTIONS
        __bios_start = LOADADDR(.bios);
        __bios_size = SIZEOF(.bios);
 
-#ifndef CONFIG_X86_NO_RESET_VECTOR
+#ifdef CONFIG_X86_RESET_VECTOR
 
        /*
         * The following expressions place the 16-bit Real-Mode code and
diff --git a/arch/x86/include/asm/arch-sc520/pci.h b/arch/x86/include/asm/arch-sc520/pci.h
deleted file mode 100644 (file)
index 12ba656..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB <daniel@omicron.se>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef _ASM_IC_SC520_PCI_H_
-#define _ASM_IC_SC520_PCI_H_ 1
-
-/* bus mapping constants (used for PCI core initialization) */                                                                                                                                                                                                                                                                                                                                                                                          /* bus mapping constants */
-#define SC520_REG_ADDR         0x00000cf8
-#define SC520_REG_DATA         0x00000cfc
-
-#define SC520_ISA_MEM_PHYS     0x00000000
-#define SC520_ISA_MEM_BUS      0x00000000
-#define SC520_ISA_MEM_SIZE     0x01000000
-
-#define SC520_ISA_IO_PHYS      0x00000000
-#define SC520_ISA_IO_BUS       0x00000000
-#define SC520_ISA_IO_SIZE      0x00001000
-
-/* PCI I/O space from 0x1000 to 0xdfff
- * (make 0xe000-0xfdff available for stuff like PCCard boot) */
-#define SC520_PCI_IO_PHYS      0x00001000
-#define SC520_PCI_IO_BUS       0x00001000
-#define SC520_PCI_IO_SIZE      0x0000d000
-
-/* system memory from 0x00000000 to 0x0fffffff */
-#define        SC520_PCI_MEMORY_PHYS   0x00000000
-#define        SC520_PCI_MEMORY_BUS    0x00000000
-#define SC520_PCI_MEMORY_SIZE  0x10000000
-
-/* PCI bus memory from 0x10000000 to 0x26ffffff
- * (make 0x27000000 - 0x27ffffff available for stuff like PCCard boot) */
-#define SC520_PCI_MEM_PHYS     0x10000000
-#define SC520_PCI_MEM_BUS      0x10000000
-#define SC520_PCI_MEM_SIZE     0x17000000
-
-/* pin number used for PCI interrupt mappings */
-#define SC520_PCI_INTA 0
-#define SC520_PCI_INTB 1
-#define SC520_PCI_INTC 2
-#define SC520_PCI_INTD 3
-#define SC520_PCI_GPIRQ0 4
-#define SC520_PCI_GPIRQ1 5
-#define SC520_PCI_GPIRQ2 6
-#define SC520_PCI_GPIRQ3 7
-#define SC520_PCI_GPIRQ4 8
-#define SC520_PCI_GPIRQ5 9
-#define SC520_PCI_GPIRQ6 10
-#define SC520_PCI_GPIRQ7 11
-#define SC520_PCI_GPIRQ8 12
-#define SC520_PCI_GPIRQ9 13
-#define SC520_PCI_GPIRQ10 14
-
-extern int sc520_pci_ints[];
-
-void pci_sc520_init(struct pci_controller *hose);
-int pci_set_regions(struct pci_controller *hose);
-int pci_sc520_set_irq(int pci_pin, int irq);
-
-#endif
diff --git a/arch/x86/include/asm/arch-sc520/sc520.h b/arch/x86/include/asm/arch-sc520/sc520.h
deleted file mode 100644 (file)
index 9dc29d3..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB <daniel@omicron.se>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef _ASM_IC_SC520_H_
-#define _ASM_IC_SC520_H_ 1
-
-#ifndef __ASSEMBLY__
-
-void init_sc520(void);
-unsigned long init_sc520_dram(void);
-void sc520_udelay(unsigned long usec);
-
-/* Memory mapped configuration registers */
-typedef struct sc520_mmcr {
-       u16 revid;      /* ElanSC520 microcontroller revision id */
-       u8  cpuctl;     /* am5x86 CPU control  */
-
-       u8  pad_0x003[0x0d];
-
-       u8  drcctl;             /* SDRAM control */
-       u8  pad_0x011[0x01];
-       u8  drctmctl;           /* SDRAM timing control */
-       u8  pad_0x013[0x01];
-       u16 drccfg;             /* SDRAM bank configuration*/
-       u8  pad_0x016[0x02];
-       u32 drcbendadr;         /* SDRAM bank 0-3 ending address*/
-       u8  pad_0x01c[0x04];
-       u8  eccctl;             /* ECC control */
-       u8  eccsta;             /* ECC status */
-       u8  eccckbpos;          /* ECC check bit position */
-       u8  ecccktest;          /* ECC Check Code Test */
-       u32 eccsbadd;           /* ECC single-bit error address */
-       u32 eccmbadd;           /* ECC multi-bit error address */
-
-       u8  pad_0x02c[0x14];
-
-       u8  dbctl;              /* SDRAM buffer control */
-
-       u8  pad_0x041[0x0f];
-
-       u16 bootcsctl;          /* /BOOTCS control */
-       u8  pad_0x052[0x02];
-       u16 romcs1ctl;          /* /ROMCS1 control */
-       u16 romcs2ctl;          /* /ROMCS2 control */
-
-       u8  pad_0x058[0x08];
-
-       u16 hbctl;              /* host bridge control */
-       u16 hbtgtirqctl;        /* host bridge target interrupt control */
-       u16 hbtgtirqsta;        /* host bridge target interrupt status */
-       u16 hbmstirqctl;        /* host bridge target interrupt control */
-       u16 hbmstirqsta;        /* host bridge master interrupt status */
-       u8  pad_0x06a[0x02];
-       u32 mstintadd;          /* host bridge master interrupt address */
-
-       u8  sysarbctl;          /* system arbiter control */
-       u8  pciarbsta;          /* PCI bus arbiter status */
-       u16 sysarbmenb;         /* system arbiter master enable */
-       u32 arbprictl;          /* arbiter priority control */
-
-       u8  pad_0x078[0x08];
-
-       u8  adddecctl;          /* address decode control */
-       u8  pad_0x081[0x01];
-       u16 wpvsta;             /* write-protect violation status */
-       u8  pad_0x084[0x04];
-       u32 par[16];            /* programmable address regions */
-
-       u8  pad_0x0c8[0x0b38];
-
-       u8  gpecho;             /* GP echo mode */
-       u8  gpcsdw;             /* GP chip select data width */
-       u16 gpcsqual;           /* GP chip select qualification */
-       u8  pad_0xc04[0x4];
-       u8  gpcsrt;             /* GP chip select recovery time */
-       u8  gpcspw;             /* GP chip select pulse width */
-       u8  gpcsoff;            /* GP chip select offset */
-       u8  gprdw;              /* GP read pulse width */
-       u8  gprdoff;            /* GP read offset */
-       u8  gpwrw;              /* GP write pulse width */
-       u8  gpwroff;            /* GP write offset */
-       u8  gpalew;             /* GP ale pulse width */
-       u8  gpaleoff;           /* GP ale offset */
-
-       u8  pad_0xc11[0x0f];
-
-       u16 piopfs15_0;         /* PIO15-PIO0 pin function select */
-       u16 piopfs31_16;        /* PIO31-PIO16 pin function select */
-       u8  cspfs;              /* chip select pin function select */
-       u8  pad_0xc25[0x01];
-       u8  clksel;             /* clock select */
-       u8  pad_0xc27[0x01];
-       u16 dsctl;              /* drive strength control */
-       u16 piodir15_0;         /* PIO15-PIO0 direction */
-       u16 piodir31_16;        /* PIO31-PIO16 direction */
-       u8  pad_0xc2e[0x02];
-       u16 piodata15_0 ;       /* PIO15-PIO0 data */
-       u16 piodata31_16;       /* PIO31-PIO16 data */
-       u16 pioset15_0;         /* PIO15-PIO0 set */
-       u16 pioset31_16;        /* PIO31-PIO16 set */
-       u16 pioclr15_0;         /* PIO15-PIO0 clear */
-       u16 pioclr31_16;        /* PIO31-PIO16 clear */
-
-       u8  pad_0xc3c[0x24];
-
-       u16 swtmrmilli;         /* software timer millisecond count */
-       u16 swtmrmicro;         /* software timer microsecond count */
-       u8  swtmrcfg;           /* software timer configuration */
-
-       u8  pad_0xc65[0x0b];
-
-       u8  gptmrsta;           /* GP timers status register */
-       u8  pad_0xc71;
-       u16 gptmr0ctl;          /* GP timer 0 mode/control */
-       u16 gptmr0cnt;          /* GP timer 0 count */
-       u16 gptmr0maxcmpa;      /* GP timer 0 maxcount compare A */
-       u16 gptmr0maxcmpb;      /* GP timer 0 maxcount compare B */
-       u16 gptmr1ctl;          /* GP timer 1 mode/control */
-       u16 gptmr1cnt;          /* GP timer 1 count */
-       u16 gptmr1maxcmpa;      /* GP timer 1 maxcount compare A */
-       u16 gptmr1maxcmpb;      /* GP timer 1 maxcount compare B*/
-       u16 gptmr2ctl;          /* GP timer 2 mode/control */
-       u16 gptmr2cnt;          /* GP timer 2 count */
-       u8  pad_0xc86[0x08];
-       u16 gptmr2maxcmpa;      /* GP timer 2 maxcount compare A */
-
-       u8  pad_0xc90[0x20];
-
-       u16 wdtmrctl;           /* watchdog timer control */
-       u16 wdtmrcntl;          /* watchdog timer count low */
-       u16 wdtmrcnth;          /* watchdog timer count high */
-
-       u8  pad_0xcb6[0x0a];
-
-       u8  uart1ctl;           /* UART 1 general control */
-       u8  uart1sta;           /* UART 1 general status */
-       u8  uart1fcrshad;       /* UART 1 FIFO control shadow */
-       u8  pad_0xcc3[0x01];
-       u8  uart2ctl;           /* UART 2 general control */
-       u8  uart2sta;           /* UART 2 general status */
-       u8  uart2fcrshad;       /* UART 2 FIFO control shadow */
-
-       u8  pad_0xcc7[0x09];
-
-       u8  ssictl;             /* SSI control */
-       u8  ssixmit;            /* SSI transmit */
-       u8  ssicmd;             /* SSI command */
-       u8  ssista;             /* SSI status */
-       u8  ssircv;             /* SSI receive */
-
-       u8  pad_0xcd5[0x2b];
-
-       u8  picicr;             /* interrupt control */
-       u8  pad_0xd01[0x01];
-       u8  pic_mode[3];        /* PIC interrupt mode */
-       u8  pad_0xd05[0x03];
-       u16 swint16_1;          /* software interrupt 16-1 control */
-       u8  swint22_17;         /* software interrupt 22-17/NMI control */
-       u8  pad_0xd0b[0x05];
-       u16 intpinpol;          /* interrupt pin polarity */
-       u8  pad_0xd12[0x02];
-       u16 pcihostmap;         /* PCI host bridge interrupt mapping */
-       u8  pad_0xd16[0x02];
-       u16 eccmap;             /* ECC interrupt mapping */
-       u8  gp_tmr_int_map[3];  /* GP timer interrupt mapping */
-       u8  pad_0xd1d[0x03];
-       u8  pit_int_map[3];     /* PIT interrupt mapping */
-       u8  pad_0xd23[0x05];
-       u8  uart_int_map[2];    /* UART interrupt mapping */
-       u8  pad_0xd2a[0x06];
-       u8  pci_int_map[4];     /* PCI interrupt mapping (A through D)*/
-       u8  pad_0xd34[0x0c];
-       u8  dmabcintmap;        /* DMA buffer chaining interrupt mapping */
-       u8  ssimap;             /* SSI interrupt mapping register */
-       u8  wdtmap;             /* watchdog timer interrupt mapping */
-       u8  rtcmap;             /* RTC interrupt mapping register */
-       u8  wpvmap;             /* write-protect interrupt mapping */
-       u8  icemap;             /* AMDebug JTAG Rx/Tx interrupt mapping */
-       u8  ferrmap;            /* floating point error interrupt mapping */
-       u8  pad_0xd47[0x09];
-       u8  gp_int_map[11];     /* GP IRQ interrupt mapping */
-
-       u8  pad_0xd5b[0x15];
-
-       u8  sysinfo;            /* system board information */
-       u8  pad_0xd71[0x01];
-       u8  rescfg;             /* reset configuration */
-       u8  pad_0xd73[0x01];
-       u8  ressta;             /* reset status */
-
-       u8  pad_0xd75[0x0b];
-
-       u8  gpdmactl;           /* GP-DMA Control */
-       u8  gpdmammio;          /* GP-DMA memory-mapped I/O */
-       u16 gpdmaextchmapa;     /* GP-DMA resource channel map a */
-       u16 gpdmaextchmapb;     /* GP-DMA resource channel map b */
-       u8  gp_dma_ext_pg_0;    /* GP-DMA channel extended page 0 */
-       u8  gp_dma_ext_pg_1;    /* GP-DMA channel extended page 0 */
-       u8  gp_dma_ext_pg_2;    /* GP-DMA channel extended page 0 */
-       u8  gp_dma_ext_pg_3;    /* GP-DMA channel extended page 0 */
-       u8  gp_dma_ext_pg_5;    /* GP-DMA channel extended page 0 */
-       u8  gp_dma_ext_pg_6;    /* GP-DMA channel extended page 0 */
-       u8  gp_dma_ext_pg_7;    /* GP-DMA channel extended page 0 */
-       u8  pad_0xd8d[0x03];
-       u8  gpdmaexttc3;        /* GP-DMA channel 3 extender transfer count */
-       u8  gpdmaexttc5;        /* GP-DMA channel 5 extender transfer count */
-       u8  gpdmaexttc6;        /* GP-DMA channel 6 extender transfer count */
-       u8  gpdmaexttc7;        /* GP-DMA channel 7 extender transfer count */
-       u8  pad_0xd94[0x4];
-       u8  gpdmabcctl;         /* buffer chaining control */
-       u8  gpdmabcsta;         /* buffer chaining status */
-       u8  gpdmabsintenb;      /* buffer chaining interrupt enable */
-       u8  gpdmabcval;         /* buffer chaining valid */
-       u8  pad_0xd9c[0x04];
-       u16 gpdmanxtaddl3;      /* GP-DMA channel 3 next address low */
-       u16 gpdmanxtaddh3;      /* GP-DMA channel 3 next address high */
-       u16 gpdmanxtaddl5;      /* GP-DMA channel 5 next address low */
-       u16 gpdmanxtaddh5;      /* GP-DMA channel 5 next address high */
-       u16 gpdmanxtaddl6;      /* GP-DMA channel 6 next address low */
-       u16 gpdmanxtaddh6;      /* GP-DMA channel 6 next address high */
-       u16 gpdmanxtaddl7;      /* GP-DMA channel 7 next address low */
-       u16 gpdmanxtaddh7;      /* GP-DMA channel 7 next address high */
-       u16 gpdmanxttcl3;       /* GP-DMA channel 3 next transfer count low */
-       u16 gpdmanxttch3;       /* GP-DMA channel 3 next transfer count high */
-       u16 gpdmanxttcl5;       /* GP-DMA channel 5 next transfer count low */
-       u16 gpdmanxttch5;       /* GP-DMA channel 5 next transfer count high */
-       u16 gpdmanxttcl6;       /* GP-DMA channel 6 next transfer count low */
-       u16 gpdmanxttch6;       /* GP-DMA channel 6 next transfer count high */
-       u16 gpdmanxttcl7;       /* GP-DMA channel 7 next transfer count low */
-       u16 gpdmanxttch7;       /* GP-DMA channel 7 next transfer count high */
-
-       u8  pad_0xdc0[0x0240];
-} sc520_mmcr_t;
-
-extern sc520_mmcr_t *sc520_mmcr;
-
-#endif
-
-/* Memory Mapped Control Registers (MMCR) Base Address */
-#define SC520_MMCR_BASE                0xfffef000
-
-/*
- * PARs for maximum allowable 256MB of SDRAM @ 0x00000000
- * Two PARs are required due to maximum PAR size of 128MB
- * These are used in the SDRAM sizing code to disable caching
- *
- * 111 0 0 0 1 11111111111 00000000000000 }- 0xe3ffc000
- * 111 0 0 0 1 11111111111 00100000000000 }- 0xe3ffc800
- * \ / | | | | \----+----/ \-----+------/
- *  |  | | | |      |            +---------- Start at 0x00000000
- *  |  | | | |      |                                 0x08000000
- *  |  | | | |      +----------------------- 128MB Region Size
- *  |  | | | |                               ((2047 + 1) * 64kB)
- *  |  | | | +------------------------------ 64kB Page Size
- *  |  | | +-------------------------------- Writes Enabled
- *  |  | +---------------------------------- Caching Enabled
- *  |  +------------------------------------ Execution Enabled
- *  +--------------------------------------- SDRAM
- */
-#define SC520_SDRAM1_PAR       0xe3ffc000
-#define SC520_SDRAM2_PAR       0xe3ffc800
-
-#define SC520_PAR_WRITE_DIS    0x04000000
-#define SC520_PAR_CACHE_DIS    0x08000000
-#define SC520_PAR_EXEC_DIS     0x10000000
-
-/*
- * Programmable Address Regions to cover 256MB SDRAM (Maximum supported)
- * required for DRAM sizing code
- */
-
-/* MMCR Register bits (not all of them :) ) */
-
-/* SSI Stuff */
-#define CTL_CLK_SEL_4          0x00    /* Nominal Bit Rate = 8 MHz    */
-#define CTL_CLK_SEL_8          0x10    /* Nominal Bit Rate = 4 MHz    */
-#define CTL_CLK_SEL_16         0x20    /* Nominal Bit Rate = 2 MHz    */
-#define CTL_CLK_SEL_32         0x30    /* Nominal Bit Rate = 1 MHz    */
-#define CTL_CLK_SEL_64         0x40    /* Nominal Bit Rate = 512 KHz  */
-#define CTL_CLK_SEL_128                0x50    /* Nominal Bit Rate = 256 KHz  */
-#define CTL_CLK_SEL_256                0x60    /* Nominal Bit Rate = 128 KHz  */
-#define CTL_CLK_SEL_512                0x70    /* Nominal Bit Rate = 64 KHz   */
-
-#define TC_INT_ENB             0x08    /* Transaction Complete Interrupt Enable */
-#define PHS_INV_ENB            0x04    /* SSI Inverted Phase Mode Enable */
-#define CLK_INV_ENB            0x02    /* SSI Inverted Clock Mode Enable */
-#define MSBF_ENB               0x01    /* SSI Most Significant Bit First Mode Enable */
-
-#define SSICMD_CMD_SEL_XMITRCV 0x03    /* Simultaneous Transmit / Receive Transaction */
-#define SSICMD_CMD_SEL_RCV     0x02    /* Receive Transaction */
-#define SSICMD_CMD_SEL_XMIT    0x01    /* Transmit Transaction */
-#define SSISTA_BSY             0x02    /* SSI Busy */
-#define SSISTA_TC_INT          0x01    /* SSI Transaction Complete Interrupt */
-
-/* BITS for SC520_ADDDECCTL: */
-#define WPV_INT_ENB            0x80    /* Write-Protect Violation Interrupt Enable */
-#define IO_HOLE_DEST_PCI       0x10    /* I/O Hole Access Destination */
-#define RTC_DIS                        0x04    /* RTC Disable */
-#define UART2_DIS              0x02    /* UART2 Disable */
-#define UART1_DIS              0x01    /* UART1 Disable */
-
-/*
- * Defines used for SDRAM Sizing (number of columns and rows)
- * Refer to section 10.6.4 - SDRAM Sizing Algorithm in the
- * Elan SC520 Microcontroller User's Manual (Order #22004B)
- */
-#define CACHELINESZ            0x00000010
-
-#define COL11_ADR              0x0e001e00
-#define COL10_ADR              0x0e000e00
-#define COL09_ADR              0x0e000600
-#define COL08_ADR              0x0e000200
-#define COL11_DATA             0x0b0b0b0b
-#define COL10_DATA             0x0a0a0a0a
-#define COL09_DATA             0x09090909
-#define COL08_DATA             0x08080808
-
-#define ROW14_ADR              0x0f000000
-#define ROW13_ADR              0x07000000
-#define ROW12_ADR              0x03000000
-#define ROW11_ADR              0x01000000
-#define ROW10_ADR              0x00000000
-#define ROW14_DATA             0x3f3f3f3f
-#define ROW13_DATA             0x1f1f1f1f
-#define ROW12_DATA             0x0f0f0f0f
-#define ROW11_DATA             0x07070707
-#define ROW10_DATA             0xaaaaaaaa
-
-/* 0x28000000 - 0x3fffffff is used by the flash banks */
-
-/* 0x40000000 - 0xffffffff is not adressable by the SC520 */
-
-/* priority numbers used for interrupt channel mappings */
-#define SC520_IRQ_DISABLED 0
-#define SC520_IRQ0  1
-#define SC520_IRQ1  2
-#define SC520_IRQ2  4  /* same as IRQ9 */
-#define SC520_IRQ3  11
-#define SC520_IRQ4  12
-#define SC520_IRQ5  13
-#define SC520_IRQ6  21
-#define SC520_IRQ7  22
-#define SC520_IRQ8  3
-#define SC520_IRQ9  4
-#define SC520_IRQ10 5
-#define SC520_IRQ11 6
-#define SC520_IRQ12 7
-#define SC520_IRQ13 8
-#define SC520_IRQ14 9
-#define SC520_IRQ15 10
-
-#endif
diff --git a/arch/x86/include/asm/arch-sc520/ssi.h b/arch/x86/include/asm/arch-sc520/ssi.h
deleted file mode 100644 (file)
index bd48eab..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * (C) Copyright 2008
- * Graeme Russ <graeme.russ@gmail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef _ASM_IC_SSI_H_
-#define _ASM_IC_SSI_H_ 1
-
-int ssi_set_interface(int, int, int, int);
-void ssi_chip_select(int);
-u8 ssi_txrx_byte(u8);
-void ssi_tx_byte(u8);
-u8 ssi_rx_byte(void);
-
-
-#endif
diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
deleted file mode 100644 (file)
index 0f12a89..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __ASM_REALMODE_H_
-#define __ASM_REALMODE_H_
-#include <asm/ptrace.h>
-
-extern ulong __realmode_start;
-extern ulong __realmode_size;
-extern char realmode_enter;
-
-int bios_setup(void);
-int enter_realmode(u16 seg, u16 off, struct pt_regs *in, struct pt_regs *out);
-int enter_realmode_int(u8 lvl, struct pt_regs *in, struct pt_regs *out);
-
-#endif
index 0a52cc896c6b9c36b920f7d3fc91fdd3a2c17603..9b24dc5fdf025eac7e727c84ee6eb998124c26a4 100644 (file)
@@ -25,16 +25,6 @@ include $(TOPDIR)/config.mk
 
 LIB    = $(obj)lib$(ARCH).o
 
-ifeq ($(CONFIG_X86_NO_REAL_MODE),)
-SOBJS-$(CONFIG_SYS_PC_BIOS)    += bios.o
-SOBJS-$(CONFIG_SYS_PCI_BIOS)   += bios_pci.o
-COBJS-y        += realmode.o
-SOBJS-y        += realmode_switch.o
-
-COBJS-$(CONFIG_SYS_PC_BIOS)    += bios_setup.o
-COBJS-$(CONFIG_VIDEO_VGA)      += video_bios.o
-endif
-
 COBJS-y        += board.o
 COBJS-y        += bootm.o
 COBJS-y        += cmd_boot.o
diff --git a/arch/x86/lib/bios.S b/arch/x86/lib/bios.S
deleted file mode 100644 (file)
index 239aaa9..0000000
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * Based on msbios.c from rolo 1.6:
- *----------------------------------------------------------------------
- * (C) Copyright 2000
- * Sysgo Real-Time Solutions GmbH
- * Klein-Winternheim, Germany
- *----------------------------------------------------------------------
- */
-
-#include "bios.h"
-
-/*
- * During it's initialization phase, before switching to protected
- * mode, the Linux Kernel makes a few BIOS calls. This won't work
- * if the board does not have a BIOS.
- *
- * This is a very minimalisic BIOS that supplies just enough
- * functionality to keep the Linux Kernel happy. It is NOT
- * a general purpose replacement for a real BIOS !!
- */
-
-.section .bios, "ax"
-.code16
-.org 0
-       /* a call to f000:0 should warmboot */
-       jmp     realmode_reset
-
-.globl rm_int00
-.hidden rm_int00
-.type rm_int00, @function
-rm_int00:
-       pushw   $0
-       jmp     any_interrupt16
-.globl rm_int01
-.hidden rm_int01
-.type rm_int01, @function
-rm_int01:
-       pushw   $1
-       jmp     any_interrupt16
-.globl rm_int02
-.hidden rm_int02
-.type rm_int02, @function
-rm_int02:
-       pushw   $2
-       jmp     any_interrupt16
-.globl rm_int03
-.hidden rm_int03
-.type rm_int03, @function
-rm_int03:
-       pushw   $3
-       jmp     any_interrupt16
-.globl rm_int04
-.hidden rm_int04
-.type rm_int04, @function
-rm_int04:
-       pushw   $4
-       jmp     any_interrupt16
-.globl rm_int05
-.hidden rm_int05
-.type rm_int05, @function
-rm_int05:
-       pushw   $5
-       jmp     any_interrupt16
-.globl rm_int06
-.hidden rm_int06
-.type rm_int06, @function
-rm_int06:
-       pushw   $6
-       jmp     any_interrupt16
-.globl rm_int07
-.hidden rm_int07
-.type rm_int07, @function
-rm_int07:
-       pushw   $7
-       jmp     any_interrupt16
-.globl rm_int08
-.hidden rm_int08
-.type rm_int08, @function
-rm_int08:
-       pushw   $8
-       jmp     any_interrupt16
-.globl rm_int09
-.hidden rm_int09
-.type rm_int09, @function
-rm_int09:
-       pushw   $9
-       jmp     any_interrupt16
-.globl rm_int0a
-.hidden rm_int0a
-.type rm_int0a, @function
-rm_int0a:
-       pushw   $10
-       jmp     any_interrupt16
-.globl rm_int0b
-.hidden rm_int0b
-.type rm_int0b, @function
-rm_int0b:
-       pushw   $11
-       jmp     any_interrupt16
-.globl rm_int0c
-.hidden rm_int0c
-.type rm_int0c, @function
-rm_int0c:
-       pushw   $12
-       jmp     any_interrupt16
-.globl rm_int0d
-.hidden rm_int0d
-.type rm_int0d, @function
-rm_int0d:
-       pushw   $13
-       jmp     any_interrupt16
-.globl rm_int0e
-.hidden rm_int0e
-.type rm_int0e, @function
-rm_int0e:
-       pushw   $14
-       jmp     any_interrupt16
-.globl rm_int0f
-.hidden rm_int0f
-.type rm_int0f, @function
-rm_int0f:
-       pushw   $15
-       jmp     any_interrupt16
-.globl rm_int10
-.hidden rm_int10
-.type rm_int10, @function
-rm_int10:
-       pushw   $16
-       jmp     any_interrupt16
-.globl rm_int11
-.hidden rm_int11
-.type rm_int11, @function
-rm_int11:
-       pushw   $17
-       jmp     any_interrupt16
-.globl rm_int12
-.hidden rm_int12
-.type rm_int12, @function
-rm_int12:
-       pushw   $18
-       jmp     any_interrupt16
-.globl rm_int13
-.hidden rm_int13
-.type rm_int13, @function
-rm_int13:
-       pushw   $19
-       jmp     any_interrupt16
-.globl rm_int14
-.hidden rm_int14
-.type rm_int14, @function
-rm_int14:
-       pushw   $20
-       jmp     any_interrupt16
-.globl rm_int15
-.hidden rm_int15
-.type rm_int15, @function
-rm_int15:
-       pushw   $21
-       jmp     any_interrupt16
-.globl rm_int16
-.hidden rm_int16
-.type rm_int16, @function
-rm_int16:
-       pushw   $22
-       jmp     any_interrupt16
-.globl rm_int17
-.hidden rm_int17
-.type rm_int17, @function
-rm_int17:
-       pushw   $23
-       jmp     any_interrupt16
-.globl rm_int18
-.hidden rm_int18
-.type rm_int18, @function
-rm_int18:
-       pushw   $24
-       jmp     any_interrupt16
-.globl rm_int19
-.hidden rm_int19
-.type rm_int19, @function
-rm_int19:
-       pushw   $25
-       jmp     any_interrupt16
-.globl rm_int1a
-.hidden rm_int1a
-.type rm_int1a, @function
-rm_int1a:
-       pushw   $26
-       jmp     any_interrupt16
-.globl rm_int1b
-.hidden rm_int1b
-.type rm_int1b, @function
-rm_int1b:
-       pushw   $27
-       jmp     any_interrupt16
-.globl rm_int1c
-.hidden rm_int1c
-.type rm_int1c, @function
-rm_int1c:
-       pushw   $28
-       jmp     any_interrupt16
-.globl rm_int1d
-.hidden rm_int1d
-.type rm_int1d, @function
-rm_int1d:
-       pushw   $29
-       jmp     any_interrupt16
-.globl rm_int1e
-.hidden rm_int1e
-.type rm_int1e, @function
-rm_int1e:
-       pushw   $30
-       jmp     any_interrupt16
-.globl rm_int1f
-.hidden rm_int1f
-.type rm_int1f, @function
-rm_int1f:
-       pushw   $31
-       jmp     any_interrupt16
-.globl rm_def_int
-.hidden rm_def_int
-.type rm_def_int, @function
-rm_def_int:
-       iret
-
-       /*
-        * All interrupt jumptable entries jump to here after pushing the
-        * interrupt vector number onto the stack.
-        */
-any_interrupt16:
-       MAKE_BIOS_STACK
-
-gs     movw    OFFS_VECTOR(%bp), %ax
-       cmpw    $0x10, %ax
-       je      Lint_10h
-       cmpw    $0x11, %ax
-       je      Lint_11h
-       cmpw    $0x12, %ax
-       je      Lint_12h
-       cmpw    $0x13, %ax
-       je      Lint_13h
-       cmpw    $0x15, %ax
-       je      Lint_15h
-       cmpw    $0x16, %ax
-       je      Lint_16h
-       cmpw    $0x1a, %ax
-       je      Lint_1ah
-       movw    $0xffff, %ax
-       jmp     Lout
-Lint_10h:
-       /* VGA BIOS services */
-       call    bios_10h
-       jmp     Lout
-Lint_11h:
-       call    bios_11h
-       jmp     Lout
-Lint_12h:
-       call    bios_12h
-       jmp     Lout
-Lint_13h:
-       /* BIOS disk services */
-       call    bios_13h
-       jmp     Lout
-Lint_15h:
-       /* Misc. BIOS services */
-       call    bios_15h
-       jmp     Lout
-Lint_16h:
-       /* keyboard services */
-       call    bios_16h
-       jmp     Lout
-Lint_1ah:
-       /* PCI bios */
-       call    bios_1ah
-       jmp     Lout
-Lout:
-       cmpw    $0, %ax
-       je      Lhandeled
-
-       /*
-        * Insert code for unhandeled INTs here.
-        *
-        * ROLO prints a message to the console we could do that but then
-        * we're in 16bit mode so we'll have to get back into 32bit mode
-        * to use the console I/O routines (if we do this we should make
-        * int 0x10 and int 0x16 work as well)
-        */
-Lhandeled:
-       RESTORE_CALLERS_STACK
-
-       /* dump vector number */
-       addw    $2,%sp
-
-       /* return from interrupt */
-       iret
-
-/*
- ************************************************************
- * BIOS        interrupt 10h -- VGA services
- ************************************************************
- */
-bios_10h:
-gs     movw    OFFS_AX(%bp), %ax
-       shrw    $8, %ax
-       cmpw    $0x3, %ax
-       je      Lcur_pos
-       cmpw    $0xf, %ax
-       je      Lvid_state
-       cmpw    $0x12, %ax
-       je      Lvid_cfg
-       movw    $0xffff, %ax
-       ret
-Lcur_pos:
-       /* Read Cursor Position and Size */
-gs     movw    $0, OFFS_CX(%bp)
-gs     movw    $0, OFFS_DX(%bp)
-       xorw    %ax, %ax
-       ret
-Lvid_state:
-       /* Get Video State - 80 columns, 80x25, 16 colors */
-gs     movw    $(80 << 8|0x03), OFFS_AX(%bp)
-gs     movw    $0, OFFS_BX(%bp)
-       xorw    %ax, %ax
-       ret
-Lvid_cfg:
-       /* Video Subsystem Configuration (EGA/VGA) - indicate CGA/MDA/HGA */
-gs     movw    $0x10, OFFS_BX(%bp)
-       xorw    %ax, %ax
-       ret
-
-/*
- ************************************************************
- * BIOS interrupt 11h -- Equipment determination
- ************************************************************
- */
-
-bios_11h:
-cs     movw    bios_equipment, %ax
-gs     movw    %ax, OFFS_AX(%bp)
-       xorw    %ax, %ax
-       ret
-
-/*
- ************************************************************
- * BIOS        interrupt 12h -- Get Memory Size
- ************************************************************
- */
-bios_12h:
-cs     movw    ram_in_64kb_chunks, %ax
-       cmpw    $0xa, %ax
-       ja      b12_more_than_640k
-       shlw    $6, %ax
-       jmp     b12_return
-b12_more_than_640k:
-       movw    $0x280, %ax
-b12_return:
-       /* return number of kilobytes in ax */
-gs     movw    %ax, OFFS_AX(%bp)
-
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* clear carry -- function succeeded */
-       andw    $0xfffe, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-
-       xorw    %ax, %ax
-       ret
-
-/*
- ************************************************************
- * BIOS interrupt 13h -- Disk services
- ************************************************************
- */
-bios_13h:
-gs     movw    OFFS_AX(%bp), %ax
-       shrw    $8, %ax
-       cmpw    $0x15, %ax
-       je      Lfunc_15h
-       movw    $0xffff, %ax
-       ret
-Lfunc_15h:
-gs     movw    OFFS_AX(%bp), %ax
-
-       /* return AH=0->drive not present */
-       andw    $0x00ff, %ax
-gs     movw    %ax, OFFS_AX(%bp)
-       xorw    %ax, %ax
-       ret
-
-/*
- ***********************************************************
- * BIOS interrupt 15h -- Miscellaneous services
- ***********************************************************
- */
-bios_15h:
-gs     movw    OFFS_AX(%bp), %ax
-       shrw    $8, %ax
-       cmpw    $0xc0, %ax
-       je      Lfunc_c0h
-       cmpw    $0xe8, %ax
-       je      Lfunc_e8h
-       cmpw    $0x88, %ax
-       je      Lfunc_88h
-       movw    $0xffff, %ax
-       ret
-
-Lfunc_c0h:
-       /* Return System Configuration Parameters (PS2 only) */
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* return carry -- function not supported */
-       orw     $1, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-       xorw    %ax, %ax
-       ret
-
-Lfunc_e8h:
-gs     movw    OFFS_AX(%bp), %ax
-       andw    $0xff, %ax
-       cmpw    $1, %ax
-       je      Lfunc_e801h
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* return carry -- function not supported */
-       orw     $1, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-       xorw    %ax, %ax
-       ret
-
-Lfunc_e801h:
-       /* Get memory size for >64M Configurations */
-cs     movw    ram_in_64kb_chunks, %ax
-       cmpw    $0x100, %ax
-       ja      e801_more_than_16mb
-
-       /* multiply by 64 */
-       shlw    $6, %ax
-
-       /* 1st meg does not count */
-       subw    $0x400, %ax
-
-       /* return memory size between 1M and 16M in 1kb chunks in AX and CX */
-gs     movw    %ax, OFFS_AX(%bp)
-gs     movw    %ax, OFFS_CX(%bp)
-
-       /* set BX and DX to 0*/
-gs     movw    $0, OFFS_BX(%bp)
-gs     movw    $0, OFFS_DX(%bp)
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* clear carry -- function succeeded */
-       andw    $0xfffe, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-       xorw    %ax, %ax
-       ret
-
-e801_more_than_16mb:
-       /* subtract 16MB */
-       subw    $0x100, %ax
-
-       /* return 0x3c00 (16MB-1MB) in AX and CX */
-gs     movw    $0x3c00, OFFS_AX(%bp)
-gs     movw    $0x3c00, OFFS_CX(%bp)
-
-       /* set BX and DX to number of 64kb chunks above 16MB */
-gs     movw    %ax, OFFS_BX(%bp)
-gs     movw    %ax, OFFS_DX(%bp)
-
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* clear carry -- function succeeded */
-       andw    $0xfffe, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-       xorw    %ax, %ax
-       ret
-
-Lfunc_88h:
-cs     movw    ram_in_64kb_chunks, %ax
-       cmpw    $0x100, %ax
-       jna     b88_not_more_than16
-       movw    $0x100, %ax
-b88_not_more_than16:
-       shlw    $6, %ax
-
-       /* 1st meg does not count */
-       subw    $0x400, %ax
-
-       /* return number of kilobytes between 16MB and 16MB in ax */
-gs     movw    %ax, OFFS_AX(%bp)
-
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* clear carry -- function succeeded */
-       andw    $0xfffe, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-
-       xorw    %ax, %ax
-       ret
-
-/*
- ************************************************************
- * BIOS interrupt 16h -- keyboard services
- ************************************************************
- */
-bios_16h:
-gs     movw    OFFS_AX(%bp), %ax
-       shrw    $8, %ax
-       cmpw    $0x03, %ax
-       je      Lfunc_03h
-       movw    $0xffff, %ax
-       ret
-Lfunc_03h:
-       /* do nothing -- function not supported */
-       xorw    %ax, %ax
-       ret
-
-/*
- ************************************************************
- * BIOS interrupt 1ah -- PCI bios
- ************************************************************
- */
-bios_1ah:
-gs     movw    OFFS_AX(%bp), %ax
-       cmpb    $0xb1, %ah
-       je      Lfunc_b1h
-       movw    $0xffff, %ax
-       ret
-Lfunc_b1h:
-       call    realmode_pci_bios
-
-       /* do nothing -- function not supported */
-       xorw    %ax, %ax
-       ret
-
-
-.globl ram_in_64kb_chunks
-.hidden ram_in_64kb_chunks
-.type ram_in_64kb_chunks, @function
-ram_in_64kb_chunks:
-       .word   0
-
-.globl bios_equipment
-.hidden bios_equipment
-.type bios_equipment, @function
-bios_equipment:
-       .word   0
index a220983df134f6b50090d2701710a0ee942ff30b..96509b066e7f507861d3bbf65596b3a7f929a556 100644 (file)
@@ -145,9 +145,6 @@ extern void *rm_int1e;
 extern void *rm_int1f;
 extern void *rm_def_int;
 
-extern void *realmode_reset;
-extern void *realmode_pci_bios_call_entry;
-
 #define RELOC_16_LONG(seg, off) (*(u32 *)(seg << 4 | (u32)&off))
 #define RELOC_16_WORD(seg, off) (*(u16 *)(seg << 4 | (u32)&off))
 #define RELOC_16_BYTE(seg, off) (*(u8 *)(seg << 4 | (u32)&off))
diff --git a/arch/x86/lib/bios_pci.S b/arch/x86/lib/bios_pci.S
deleted file mode 100644 (file)
index 47c478b..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * x86 realmode assembly implementation of a PCI BIOS
- * for platforms that use one PCI hose and configuration
- * access type 1. (The common case for low-end PC's)
- */
-
-#include "bios.h"
-
-#define PCI_BIOS_DEBUG
-
-.section .bios, "ax"
-.code16
-.globl realmode_pci_bios_call_entry
-.hidden realmode_pci_bios_call_entry
-.type realmode_pci_bios_call_entry, @function
-realmode_pci_bios_call_entry:
-       MAKE_BIOS_STACK
-       call realmode_pci_bios
-       RESTORE_CALLERS_STACK
-       ret
-
-
-.globl realmode_pci_bios
-realmode_pci_bios:
-gs     movw    OFFS_AX(%bp), %ax
-       cmpb    $1, %al
-       je      pci_bios_present
-       cmpb    $2, %al
-       je      pci_bios_find_device
-       cmpb    $3, %al
-       je      pci_bios_find_class
-       cmpb    $6, %al
-       je      pci_bios_generate_special_cycle
-       cmpb    $8, %al
-       je      pci_bios_read_cfg_byte
-       cmpb    $9, %al
-       je      pci_bios_read_cfg_word
-       cmpb    $10, %al
-       je      pci_bios_read_cfg_dword
-       cmpb    $11, %al
-       je      pci_bios_write_cfg_byte
-       cmpb    $12, %al
-       je      pci_bios_write_cfg_word
-       cmpb    $13, %al
-       je      pci_bios_write_cfg_dword
-       cmpb    $14, %al
-       je      pci_bios_get_irq_routing
-       cmpb    $15, %al
-       je      pci_bios_set_irq
-       jmp     unknown_function
-
-/*****************************************************************************/
-
-pci_bios_present:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_present
-#endif
-       movl    $0x20494350, %eax
-gs     movl    %eax, OFFS_EDX(%bp)
-
-       /* We support cfg type 1 version 2.10 */
-       movb    $0x01, %al
-gs     movb    %al, OFFS_AL(%bp)
-       movw    $0x0210, %ax
-gs     movw    %ax, OFFS_BX(%bp)
-
-       /* last bus number */
-cs     movb    pci_last_bus, %al
-gs     movb    %al, OFFS_CL(%bp)
-       jmp     clear_carry
-
-/*****************************************************************************/
-
-/* device 0-31, function 0-7 */
-pci_bios_find_device:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_find_device
-#endif
-gs     movw    OFFS_CX(%bp), %di
-       shll    $16, %edi
-gs     movw    OFFS_DX(%bp), %di
-       /* edi now holds device in upper 16 bits and vendor in lower 16 bits */
-
-gs     movw    OFFS_SI(%bp), %si
-
-       /* start at bus 0 dev 0 function 0 */
-       xorw    %bx, %bx
-pfd_loop:
-       /* dword 0 is vendor/device */
-       xorw    %ax, %ax
-       call    __pci_bios_select_register
-       movw    $0xcfc, %dx
-       inl     %dx, %eax
-
-       /* our device ? */
-       cmpl    %edi, %eax
-       je      pfd_found_one
-pfd_next_dev:
-       /* check for multi function devices */
-       movw    %bx, %ax
-       andw    $3, %ax
-       jnz     pfd_function_not_zero
-       movw    $0x000c, %ax
-       call    __pci_bios_select_register
-       movw    $0xcfe, %dx
-       inb     %dx, %al
-       andb    $0x80, %al
-       jz      pfd_not_multi_function
-pfd_function_not_zero:
-       /* next function, overflows in to device number, then bus number */
-       incw    %bx
-       jmp     pfd_check_bus
-
-pfd_not_multi_function:
-       /* remove function bits */
-       andw    $0xfff8, %bx
-
-       /* next device, overflows in to bus number */
-       addw    $0x0008, %bx
-pfd_check_bus:
-cs     movb    pci_last_bus, %ah
-       cmpb    %ah, %bh
-       ja      pfd_not_found
-       jmp     pfd_loop
-pfd_found_one:
-       decw    %si
-       js      pfd_done
-       jmp     pfd_next_dev
-
-pfd_done:
-gs     movw    %bx, OFFS_BX(%bp)
-       jmp     clear_carry
-
-pfd_not_found:
-       /* device not found */
-       movb    $0x86, %ah
-       jmp     set_carry
-
-/*****************************************************************************/
-
-pci_bios_find_class:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_find_class
-#endif
-gs     movl    OFFS_ECX(%bp), %edi
-
-       /* edi now holds class-code in lower 24 bits */
-       andl    $0x00ffffff, %edi
-gs     movw    OFFS_SI(%bp), %si
-
-       /* start at bus 0 dev 0 function 0 */
-       xorw    %bx, %bx
-pfc_loop:
-       /* dword 8 is class-code high 24bits */
-       movw    $8, %ax
-       call    __pci_bios_select_register
-       movw    $0xcfc, %dx
-       inl     %dx, %eax
-       shrl    $8, %eax
-       andl    $0x00ffffff, %eax
-
-       /* our device ? */
-       cmpl    %edi, %eax
-       je      pfc_found_one
-pfc_next_dev:
-       /* check for multi function devices */
-       andw    $3, %bx
-       jnz     pfc_function_not_zero
-       movw    $0x000c, %ax
-       call    __pci_bios_select_register
-       movw    $0xcfe, %dx
-       inb     %dx, %al
-       andb    $0x80, %al
-       jz      pfc_not_multi_function
-pfc_function_not_zero:
-       /* next function, overflows in to device number, then bus number */
-       incw    %bx
-       jmp     pfc_check_bus
-
-pfc_not_multi_function:
-       /* remove function bits */
-       andw    $0xfff8, %bx
-
-       /* next device, overflows in to bus number */
-       addw    $0x0008, %bx
-pfc_check_bus:
-cs     movb    pci_last_bus, %ah
-       cmpb    %ah, %bh
-       ja      pfc_not_found
-       jmp     pfc_loop
-pfc_found_one:
-       decw    %si
-       js      pfc_done
-       jmp     pfc_next_dev
-
-pfc_done:
-gs     movw    %bx, OFFS_BX(%bp)
-       jmp     clear_carry
-
-pfc_not_found:
-       /* device not found */
-       movb    $0x86, %ah
-       jmp     set_carry
-
-/*****************************************************************************/
-
-pci_bios_generate_special_cycle:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_generate_special_cycle
-#endif
-       /* function not supported */
-       movb    $0x81, %ah
-       jmp     set_carry
-
-/*****************************************************************************/
-
-pci_bios_read_cfg_byte:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_read_cfg_byte
-#endif
-       call    pci_bios_select_register
-gs     movw    OFFS_DI(%bp), %dx
-       andw    $3, %dx
-       addw    $0xcfc, %dx
-       inb     %dx, %al
-gs     movb    %al, OFFS_CL(%bp)
-       jmp     clear_carry
-
-/*****************************************************************************/
-
-pci_bios_read_cfg_word:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_read_cfg_word
-#endif
-       call    pci_bios_select_register
-gs     movw    OFFS_DI(%bp), %dx
-       andw    $2, %dx
-       addw    $0xcfc, %dx
-       inw     %dx, %ax
-gs     movw    %ax, OFFS_CX(%bp)
-       jmp     clear_carry
-
-
-/*****************************************************************************/
-
-pci_bios_read_cfg_dword:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_read_cfg_dword
-#endif
-       call    pci_bios_select_register
-       movw    $0xcfc, %dx
-       inl     %dx, %eax
-gs     movl    %eax, OFFS_ECX(%bp)
-       jmp     clear_carry
-
-/*****************************************************************************/
-
-pci_bios_write_cfg_byte:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_write_cfg_byte
-#endif
-       call    pci_bios_select_register
-gs     movw    OFFS_DI(%bp), %dx
-gs     movb    OFFS_CL(%bp), %al
-       andw    $3, %dx
-       addw    $0xcfc, %dx
-       outb    %al, %dx
-       jmp     clear_carry
-
-/*****************************************************************************/
-
-pci_bios_write_cfg_word:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_write_cfg_word
-#endif
-       call    pci_bios_select_register
-gs     movw    OFFS_DI(%bp), %dx
-gs     movw    OFFS_CX(%bp), %ax
-       andw    $2, %dx
-       addw    $0xcfc, %dx
-       outw    %ax, %dx
-       jmp     clear_carry
-
-/*****************************************************************************/
-
-pci_bios_write_cfg_dword:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_write_cfg_dword
-#endif
-       call    pci_bios_select_register
-gs     movl    OFFS_ECX(%bp), %eax
-       movw    $0xcfc, %dx
-       outl    %eax, %dx
-       jmp     clear_carry
-
-/*****************************************************************************/
-
-pci_bios_get_irq_routing:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_get_irq_routing
-#endif
-       /* function not supported */
-       movb    $0x81, %ah
-       jmp     set_carry
-
-/*****************************************************************************/
-
-pci_bios_set_irq:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_set_irq
-#endif
-       /* function not supported */
-       movb    $0x81, %ah
-       jmp     set_carry
-
-/*****************************************************************************/
-
-unknown_function:
-#ifdef PCI_BIOS_DEBUG
-cs     incl    num_pci_bios_unknown_function
-#endif
-       /* function not supported */
-       movb    $0x81, %ah
-       jmp     set_carry
-
-/*****************************************************************************/
-
-pci_bios_select_register:
-gs     movw    OFFS_BX(%bp), %bx
-gs     movw    OFFS_DI(%bp), %ax
-/* destroys eax, dx */
-__pci_bios_select_register:
-       /* BX holds device id, AX holds register index */
-       pushl   %ebx
-       andl    $0xfc, %eax
-       andl    $0xffff, %ebx
-       shll    $8, %ebx
-       orl     %ebx, %eax
-       orl     $0x80000000, %eax
-       movw    $0xcf8, %dx
-       outl    %eax, %dx
-       popl    %ebx
-       ret
-
-
-clear_carry:
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* clear carry -- function succeeded */
-       andw    $0xfffe, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-       xorw    %ax, %ax
-gs     movb    %ah, OFFS_AH(%bp)
-       ret
-
-set_carry:
-gs     movb    %ah, OFFS_AH(%bp)
-gs     movw    OFFS_FLAGS(%bp), %ax
-
-       /* return carry -- function not supported */
-       orw     $1, %ax
-gs     movw    %ax, OFFS_FLAGS(%bp)
-       movw    $-1, %ax
-       ret
-
-/*****************************************************************************/
-
-.globl pci_last_bus
-pci_last_bus:
-       .byte   0
-
-#ifdef PCI_BIOS_DEBUG
-.globl num_pci_bios_present
-num_pci_bios_present:
-       .long   0
-
-.globl num_pci_bios_find_device
-num_pci_bios_find_device:
-       .long   0
-
-.globl num_pci_bios_find_class
-num_pci_bios_find_class:
-       .long   0
-
-.globl num_pci_bios_generate_special_cycle
-num_pci_bios_generate_special_cycle:
-       .long 0
-
-.globl num_pci_bios_read_cfg_byte
-num_pci_bios_read_cfg_byte:
-       .long   0
-
-.globl num_pci_bios_read_cfg_word
-num_pci_bios_read_cfg_word:
-       .long   0
-
-.globl num_pci_bios_read_cfg_dword
-num_pci_bios_read_cfg_dword:
-       .long   0
-
-.globl num_pci_bios_write_cfg_byte
-num_pci_bios_write_cfg_byte:
-       .long   0
-
-.globl num_pci_bios_write_cfg_word
-num_pci_bios_write_cfg_word:
-       .long   0
-
-.globl num_pci_bios_write_cfg_dword
-num_pci_bios_write_cfg_dword:
-       .long   0
-
-.globl num_pci_bios_get_irq_routing
-num_pci_bios_get_irq_routing:
-       .long   0
-
-.globl num_pci_bios_set_irq
-num_pci_bios_set_irq:
-       .long   0
-
-.globl num_pci_bios_unknown_function
-num_pci_bios_unknown_function:
-       .long   0
-#endif
diff --git a/arch/x86/lib/bios_setup.c b/arch/x86/lib/bios_setup.c
deleted file mode 100644 (file)
index 265f7d6..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * Partly based on msbios.c from rolo 1.6:
- *----------------------------------------------------------------------
- * (C) Copyright 2000
- * Sysgo Real-Time Solutions GmbH
- * Klein-Winternheim, Germany
- *----------------------------------------------------------------------
- */
-
-#include <common.h>
-#include <pci.h>
-#include <asm/realmode.h>
-#include <asm/io.h>
-#include "bios.h"
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#define NUMVECTS       256
-
-static int set_jmp_vector(int entry_point, void *target)
-{
-       if (entry_point & ~0xffff)
-               return -1;
-
-       if (((u32)target - 0xf0000) & ~0xffff)
-               return -1;
-
-       printf("set_jmp_vector: 0xf000:%04x -> %p\n",
-                       entry_point, target);
-
-       /* jmp opcode */
-       writeb(0xea, 0xf0000 + entry_point);
-
-       /* offset */
-       writew(((u32)target-0xf0000), 0xf0000 + entry_point + 1);
-
-       /* segment */
-       writew(0xf000, 0xf0000 + entry_point + 3);
-
-       return 0;
-}
-
-/* Install an interrupt vector */
-static void setvector(int vector, u16 segment, void *handler)
-{
-       u16 *ptr = (u16 *)(vector * 4);
-       ptr[0] = ((u32)handler - (segment << 4)) & 0xffff;
-       ptr[1] = segment;
-
-#if 0
-       printf("setvector: int%02x -> %04x:%04x\n",
-                       vector, ptr[1], ptr[0]);
-#endif
-}
-
-int bios_setup(void)
-{
-       /* The BIOS section is not relocated and still in the ROM. */
-       ulong bios_start = (ulong)&__bios_start;
-       ulong bios_size = (ulong)&__bios_size;
-
-       static int done;
-       int vector;
-#ifdef CONFIG_PCI
-       struct pci_controller *pri_hose;
-#endif
-       if (done)
-               return 0;
-
-       done = 1;
-
-       if (bios_size > 65536) {
-               printf("BIOS too large (%ld bytes, max is 65536)\n",
-                               bios_size);
-               return -1;
-       }
-
-       memcpy(BIOS_BASE, (void *)bios_start, bios_size);
-
-       /* clear bda */
-       memset(BIOS_DATA, 0, BIOS_DATA_SIZE);
-
-       /* enter some values to the bda */
-       writew(0x3f8, BIOS_DATA);   /* com1 addr */
-       writew(0x2f8, BIOS_DATA+2); /* com2 addr */
-       writew(0x3e8, BIOS_DATA+4); /* com3 addr */
-       writew(0x2e8, BIOS_DATA+6); /* com4 addr */
-       writew(0x278, BIOS_DATA+8); /* lpt1 addr */
-       /*
-        * The kernel wants to read the base memory size
-        * from 40:13. Put a zero there to avoid an error message
-        */
-       writew(0, BIOS_DATA+0x13);  /* base memory size */
-
-
-       /* setup realmode interrupt vectors */
-       for (vector = 0; vector < NUMVECTS; vector++)
-               setvector(vector, BIOS_CS, &rm_def_int);
-
-       setvector(0x00, BIOS_CS, &rm_int00);
-       setvector(0x01, BIOS_CS, &rm_int01);
-       setvector(0x02, BIOS_CS, &rm_int02);
-       setvector(0x03, BIOS_CS, &rm_int03);
-       setvector(0x04, BIOS_CS, &rm_int04);
-       setvector(0x05, BIOS_CS, &rm_int05);
-       setvector(0x06, BIOS_CS, &rm_int06);
-       setvector(0x07, BIOS_CS, &rm_int07);
-       setvector(0x08, BIOS_CS, &rm_int08);
-       setvector(0x09, BIOS_CS, &rm_int09);
-       setvector(0x0a, BIOS_CS, &rm_int0a);
-       setvector(0x0b, BIOS_CS, &rm_int0b);
-       setvector(0x0c, BIOS_CS, &rm_int0c);
-       setvector(0x0d, BIOS_CS, &rm_int0d);
-       setvector(0x0e, BIOS_CS, &rm_int0e);
-       setvector(0x0f, BIOS_CS, &rm_int0f);
-       setvector(0x10, BIOS_CS, &rm_int10);
-       setvector(0x11, BIOS_CS, &rm_int11);
-       setvector(0x12, BIOS_CS, &rm_int12);
-       setvector(0x13, BIOS_CS, &rm_int13);
-       setvector(0x14, BIOS_CS, &rm_int14);
-       setvector(0x15, BIOS_CS, &rm_int15);
-       setvector(0x16, BIOS_CS, &rm_int16);
-       setvector(0x17, BIOS_CS, &rm_int17);
-       setvector(0x18, BIOS_CS, &rm_int18);
-       setvector(0x19, BIOS_CS, &rm_int19);
-       setvector(0x1a, BIOS_CS, &rm_int1a);
-       setvector(0x1b, BIOS_CS, &rm_int1b);
-       setvector(0x1c, BIOS_CS, &rm_int1c);
-       setvector(0x1d, BIOS_CS, &rm_int1d);
-       setvector(0x1e, BIOS_CS, &rm_int1e);
-       setvector(0x1f, BIOS_CS, &rm_int1f);
-
-       set_jmp_vector(0xfff0, &realmode_reset);
-       set_jmp_vector(0xfe6e, &realmode_pci_bios_call_entry);
-
-       /* fill in data area */
-       RELOC_16_WORD(0xf000, ram_in_64kb_chunks) = gd->ram_size >> 16;
-       RELOC_16_WORD(0xf000, bios_equipment) = 0; /* FixMe */
-
-       /* If we assume only one PCI hose, this PCI hose
-        * will own PCI bus #0, and the last PCI bus of
-        * that PCI hose will be the last PCI bus in the
-        * system.
-        * (This, ofcause break on multi hose systems,
-        *  but our PCI BIOS only support one hose anyway)
-        */
-#ifdef CONFIG_PCI
-       pri_hose = pci_bus_to_hose(0);
-       if (NULL != pri_hose) {
-               /* fill in last pci bus number for use by the realmode
-                * PCI BIOS */
-               RELOC_16_BYTE(0xf000, pci_last_bus) = pri_hose->last_busno;
-       }
-#endif
-       return 0;
-}
diff --git a/arch/x86/lib/realmode.c b/arch/x86/lib/realmode.c
deleted file mode 100644 (file)
index 75511b2..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/ptrace.h>
-#include <asm/realmode.h>
-
-#define REALMODE_MAILBOX ((char *)0xe00)
-
-int realmode_setup(void)
-{
-       /* The realmode section is not relocated and still in the ROM. */
-       ulong realmode_start = (ulong)&__realmode_start;
-       ulong realmode_size = (ulong)&__realmode_size;
-
-       /* copy the realmode switch code */
-       if (realmode_size > (REALMODE_MAILBOX - (char *)REALMODE_BASE)) {
-               printf("realmode switch too large (%ld bytes, max is %d)\n",
-                      realmode_size,
-                      (int)(REALMODE_MAILBOX - (char *)REALMODE_BASE));
-               return -1;
-       }
-
-       memcpy((char *)REALMODE_BASE, (void *)realmode_start, realmode_size);
-       asm("wbinvd\n");
-
-       return 0;
-}
-
-int enter_realmode(u16 seg, u16 off, struct pt_regs *in, struct pt_regs *out)
-{
-
-       /* setup out thin bios emulation */
-       if (bios_setup())
-               return -1;
-
-       if (realmode_setup())
-               return -1;
-
-       in->eip = off;
-       in->xcs = seg;
-       if ((in->esp & 0xffff) < 4)
-               printf("Warning: entering realmode with sp < 4 will fail\n");
-
-       memcpy(REALMODE_MAILBOX, in, sizeof(struct pt_regs));
-       asm("wbinvd\n");
-
-       __asm__ volatile (
-                "lcall $0x20,%0\n" : : "i" (&realmode_enter));
-
-       asm("wbinvd\n");
-       memcpy(out, REALMODE_MAILBOX, sizeof(struct pt_regs));
-
-       return out->eax;
-}
-
-/*
- * This code is supposed to access a realmode interrupt
- * it does currently not work for me
- */
-int enter_realmode_int(u8 lvl, struct pt_regs *in, struct pt_regs *out)
-{
-       /* place two instructions at 0x700 */
-       writeb(0xcd, 0x700);  /* int $lvl */
-       writeb(lvl, 0x701);
-       writeb(0xcb, 0x702);  /* lret */
-       asm("wbinvd\n");
-
-       enter_realmode(0x00, 0x700, in, out);
-
-       return out->eflags & 0x00000001;
-}
diff --git a/arch/x86/lib/realmode_switch.S b/arch/x86/lib/realmode_switch.S
deleted file mode 100644 (file)
index c4c4c43..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/* 32bit -> 16bit -> 32bit mode switch code */
-
-/*
- * Stack frame at 0xe00
- *     e00 ebx;
- *     e04 ecx;
- *     e08 edx;
- *     e0c esi;
- *     e10 edi;
- *     e14 ebp;
- *     e18 eax;
- *     e1c ds;
- *     e20 es;
- *     e24 fs;
- *     e28 gs;
- *     e2c orig_eax;
- *     e30 eip;
- *     e34 cs;
- *     e38 eflags;
- *     e3c esp;
- *     e40 ss;
- */
-
-#define a32            .byte 0x67;     /* address size prefix 32 */
-#define o32            .byte 0x66;     /* operand size prefix 32 */
-
-.section .realmode, "ax"
-.code16
-
-       /* 16bit protected mode code here */
-.globl realmode_enter
-realmode_enter:
-o32    pusha
-o32    pushf
-       cli
-       sidt    saved_idt
-       sgdt    saved_gdt
-       movl    %esp, %eax
-       movl    %eax, saved_protected_mode_esp
-
-       movl    $0x10, %eax
-       movl    %eax, %esp
-       movw    $0x28, %ax
-       movw    %ax, %ds
-       movw    %ax, %es
-       movw    %ax, %fs
-       movw    %ax, %gs
-
-       lidt    realmode_idt_ptr
-       /* Go back into real mode by clearing PE to 0 */
-       movl    %cr0, %eax
-       andl    $0x7ffffffe, %eax
-       movl    %eax, %cr0
-
-       /* switch to real mode */
-       ljmp    $0x0,$do_realmode
-
-do_realmode:
-       /* realmode code from here */
-       movw    %cs,%ax
-       movw    %ax,%ds
-       movw    %ax,%es
-       movw    %ax,%fs
-       movw    %ax,%gs
-
-       /* create a temporary stack */
-       movw    $0xc0, %ax
-       movw    %ax, %ss
-       movw    $0x200, %ax
-       movw    %ax, %sp
-
-       popl    %ebx
-       popl    %ecx
-       popl    %edx
-       popl    %esi
-       popl    %edi
-       popl    %ebp
-       popl    %eax
-       movl    %eax, temp_eax
-       popl    %eax
-       movw    %ax, %ds
-       popl    %eax
-       movw    %ax, %es
-       popl    %eax
-       movw    %ax, %fs
-       popl    %eax
-       movw    %ax, %gs
-       popl    %eax                            /* orig_eax */
-       popl    %eax
-cs     movw    %ax, temp_ip
-       popl    %eax
-cs     movw    %ax, temp_cs
-o32    popf
-       popl    %eax
-       popw    %ss
-       movl    %eax, %esp
-cs     movl    temp_eax, %eax
-
-       /* self-modifying code, better flush the cache */
-       wbinvd
-
-       .byte   0x9a                            /* lcall */
-temp_ip:
-       .word   0                               /* new ip */
-temp_cs:
-       .word   0                               /* new cs */
-
-realmode_ret:
-       /* save eax, esp and ss */
-cs     movl    %eax, saved_eax
-       movl    %esp, %eax
-cs     movl    %eax, saved_esp
-       movw    %ss, %ax
-cs     movw    %ax, saved_ss
-
-       /*
-        * restore the stack, note that we set sp to 0x244;
-        * pt_regs is 0x44 bytes long and we push the structure
-        * backwards on to the stack, bottom first
-        */
-       movw    $0xc0, %ax
-       movw    %ax, %ss
-       movw    $0x244, %ax
-       movw    %ax, %sp
-
-       xorl    %eax,%eax
-cs     movw    saved_ss, %ax
-       pushl   %eax
-cs     movl    saved_esp, %eax
-       pushl   %eax
-o32    pushf
-       xorl    %eax,%eax
-cs     movw    temp_cs, %ax
-       pushl   %eax
-cs     movw    temp_ip, %ax
-       pushl   %eax
-       pushl   $0
-       movw    %gs, %ax
-       pushl   %eax
-       movw    %fs, %ax
-       pushl   %eax
-       movw    %es, %ax
-       pushl   %eax
-       movw    %ds, %ax
-       pushl   %eax
-       movl    saved_eax, %eax
-       pushl   %eax
-       pushl   %ebp
-       pushl   %edi
-       pushl   %esi
-       pushl   %edx
-       pushl   %ecx
-       pushl   %ebx
-
-o32 cs lidt    saved_idt
-o32 cs lgdt    saved_gdt
-
-       /* Go back into protected mode reset PE to 1 */
-       movl    %cr0, %eax
-       orl     $1,%eax
-       movl    %eax, %cr0
-
-       /* flush prefetch queue */
-       jmp     next_line
-next_line:
-       movw    $return_ptr, %ax
-       movw    %ax,%bp
-o32 cs ljmp    *(%bp)
-
-.code32
-protected_mode:
-       /* Reload segment registers */
-       movl    $0x18, %eax
-       movw    %ax, %fs
-       movw    %ax, %ds
-       movw    %ax, %gs
-       movw    %ax, %es
-       movw    %ax, %ss
-       movl    saved_protected_mode_esp, %eax
-       movl    %eax, %esp
-       popf
-       popa
-       ret
-
-temp_eax:
-       .long   0
-
-saved_ss:
-       .word   0
-saved_esp:
-       .long   0
-saved_eax:
-       .long   0
-
-realmode_idt_ptr:
-       .word   0x400
-       .word   0x0, 0x0
-
-saved_gdt:
-       .word   0, 0, 0, 0
-saved_idt:
-       .word   0, 0, 0, 0
-
-saved_protected_mode_esp:
-       .long   0
-
-return_ptr:
-       .long   protected_mode
-       .word   0x10
index 20e2416ae16f31f3ae8e441b8ec7b640e3dc00c4..81824f314457f859a6f1aebfed6ef6ab61941edc 100644 (file)
@@ -26,7 +26,6 @@
 #include <stdio_dev.h>
 #include <i8042.h>
 #include <asm/ptrace.h>
-#include <asm/realmode.h>
 #include <asm/io.h>
 #include <asm/pci.h>
 
@@ -222,10 +221,5 @@ int video_init(void)
 
 int drv_video_init(void)
 {
-#ifndef CONFIG_X86_NO_REAL_MODE
-       if (video_bios_init())
-               return 1;
-#endif
-
        return video_init();
 }
diff --git a/arch/x86/lib/video_bios.c b/arch/x86/lib/video_bios.c
deleted file mode 100644 (file)
index 1e06759..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <pci.h>
-#include <malloc.h>
-#include <asm/ptrace.h>
-#include <asm/realmode.h>
-#include <asm/io.h>
-#include <asm/pci.h>
-#include "bios.h"
-
-#undef PCI_BIOS_DEBUG
-#undef VGA_BIOS_DEBUG
-
-#ifdef VGA_BIOS_DEBUG
-#define        PRINTF(fmt, args...)    printf(fmt, ##args)
-#else
-#define PRINTF(fmt, args...)
-#endif
-
-#define PCI_CLASS_VIDEO                        3
-#define PCI_CLASS_VIDEO_STD            0
-#define PCI_CLASS_VIDEO_PROG_IF_VGA    0
-
-DEFINE_PCI_DEVICE_TABLE(supported) = {
-       {PCI_VIDEO_VENDOR_ID, PCI_VIDEO_DEVICE_ID},
-       {}
-};
-
-static u32 probe_pci_video(void)
-{
-       struct pci_controller *hose;
-       pci_dev_t devbusfn = pci_find_devices(supported, 0);
-
-       if ((devbusfn != -1)) {
-               u32 old;
-               u32 addr;
-
-               /* PCI video device detected */
-               printf("Found PCI VGA device at %02x.%02x.%x\n",
-                      PCI_BUS(devbusfn),
-                      PCI_DEV(devbusfn),
-                      PCI_FUNC(devbusfn));
-
-               /* Enable I/O decoding as well, PCI viudeo boards
-                * support I/O accesses, but they provide no
-                * bar register for this since the ports are fixed.
-                */
-               pci_write_config_word(devbusfn,
-                                     PCI_COMMAND,
-                                     PCI_COMMAND_MEMORY |
-                                     PCI_COMMAND_IO |
-                                     PCI_COMMAND_MASTER);
-
-               /* Test the ROM decoder, do the device support a rom? */
-               pci_read_config_dword(devbusfn, PCI_ROM_ADDRESS, &old);
-               pci_write_config_dword(devbusfn, PCI_ROM_ADDRESS,
-                                      (u32)PCI_ROM_ADDRESS_MASK);
-               pci_read_config_dword(devbusfn, PCI_ROM_ADDRESS, &addr);
-               pci_write_config_dword(devbusfn, PCI_ROM_ADDRESS, old);
-
-               if (!addr) {
-                       printf("PCI VGA have no ROM?\n");
-                       return 0;
-               }
-
-               /* device have a rom */
-               if (pci_shadow_rom(devbusfn, (void *)0xc0000)) {
-                       printf("Shadowing of PCI VGA BIOS failed\n");
-                       return 0;
-               }
-
-               /* Now enable lagacy VGA port access */
-               hose = pci_bus_to_hose(PCI_BUS(devbusfn));
-               if (pci_enable_legacy_video_ports(hose)) {
-                       printf("PCI VGA enable failed\n");
-                       return 0;
-               }
-
-
-               /* return the pci device info, that we'll need later */
-               return PCI_BUS(devbusfn) << 8 |
-                       PCI_DEV(devbusfn) << 3 | (PCI_FUNC(devbusfn) & 7);
-       }
-
-       return 0;
-}
-
-static int probe_isa_video(void)
-{
-       u32 ptr;
-       char *buf;
-
-       ptr = isa_map_rom(0xc0000, 0x8000);
-
-       if (!ptr)
-               return -1;
-
-       buf = malloc(0x8000);
-       if (!buf) {
-               isa_unmap_rom(ptr);
-               return -1;
-       }
-
-       if (readw(ptr) != 0xaa55) {
-               free(buf);
-               isa_unmap_rom(ptr);
-               return -1;
-       }
-
-       /* shadow the rom */
-       memcpy(buf, (void *)ptr, 0x8000);
-       isa_unmap_rom(ptr);
-       memcpy((void *)0xc0000, buf, 0x8000);
-
-       free(buf);
-
-       return 0;
-}
-
-int video_bios_init(void)
-{
-       struct pt_regs regs;
-       int size;
-       int i;
-       u8 sum;
-
-       /* clear the video bios area in case we warmbooted */
-       memset((void *)0xc0000, 0, 0x8000);
-       memset(&regs, 0, sizeof(struct pt_regs));
-
-       if (probe_isa_video())
-               /* No ISA board found, try the PCI bus */
-               regs.eax = probe_pci_video();
-
-       /* Did we succeed in mapping any video bios */
-       if (readw(0xc0000) == 0xaa55) {
-               PRINTF("Found video bios signature\n");
-               size = readb(0xc0002) * 512;
-               PRINTF("size %d\n", size);
-               sum = 0;
-
-               for (i = 0; i < size; i++)
-                       sum += readb(0xc0000 + i);
-
-               PRINTF("Checksum is %sOK\n", sum ? "NOT " : "");
-
-               if (sum)
-                       return 1;
-
-               /*
-                * Some video bioses (ATI Mach64) seem to think that
-                * the original int 10 handler is always at
-                * 0xf000:0xf065 , place an iret instruction there
-                */
-               writeb(0xcf, 0xff065);
-
-               regs.esp = 0x8000;
-               regs.xss = 0x2000;
-               enter_realmode(0xc000, 3, &regs, &regs);
-
-               PRINTF("INT 0x10 vector after:  %04x:%04x\n",
-                      readw(0x42), readw(0x40));
-               PRINTF("BIOS returned %scarry\n",
-                      regs.eflags & 0x00000001 ? "" : "NOT ");
-#ifdef PCI_BIOS_DEBUG
-               print_bios_bios_stat();
-#endif
-               return regs.eflags & 0x00000001;
-
-       }
-
-       return 1;
-
-}
index 46af391f29f2a82baebd91acf6e55d638dc7524b..4e9e1f77e5ac35bda83ff2fe8b23c0e9970c9859 100644 (file)
@@ -33,7 +33,6 @@
 #include <asm/io.h>
 #include <asm/ptrace.h>
 #include <asm/zimage.h>
-#include <asm/realmode.h>
 #include <asm/byteorder.h>
 #include <asm/bootparam.h>
 #ifdef CONFIG_SYS_COREBOOT
@@ -175,16 +174,9 @@ struct boot_params *load_zimage(char *image, unsigned long kernel_size,
        else
                *load_address = (void *)ZIMAGE_LOAD_ADDR;
 
-#if (defined CONFIG_ZBOOT_32 || defined CONFIG_X86_NO_REAL_MODE)
        printf("Building boot_params at 0x%8.8lx\n", (ulong)setup_base);
        memset(setup_base, 0, sizeof(*setup_base));
        setup_base->hdr = params->hdr;
-#else
-       /* load setup */
-       printf("Moving Real-Mode Code to 0x%8.8lx (%d bytes)\n",
-              (ulong)setup_base, setup_size);
-       memmove(setup_base, image, setup_size);
-#endif
 
        if (bootproto >= 0x0204)
                kernel_size = hdr->syssize * 16;
@@ -241,10 +233,8 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
        struct setup_header *hdr = &setup_base->hdr;
        int bootproto = get_boot_protocol(hdr);
 
-#if (defined CONFIG_ZBOOT_32 || defined CONFIG_X86_NO_REAL_MODE)
        setup_base->e820_entries = install_e820_map(
                ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
-#endif
 
        if (bootproto == 0x0100) {
                setup_base->screen_info.cl_magic = COMMAND_LINE_MAGIC;
@@ -300,7 +290,6 @@ void boot_zimage(void *setup_base, void *load_address)
 #ifdef CONFIG_SYS_COREBOOT
        timestamp_add_now(TS_U_BOOT_START_KERNEL);
 #endif
-#if defined CONFIG_ZBOOT_32
        /*
         * Set %ebx, %ebp, and %edi to 0, %esi to point to the boot_params
         * structure, and then jump to the kernel. We assume that %cs is
@@ -317,18 +306,6 @@ void boot_zimage(void *setup_base, void *load_address)
           "b"(0), "D"(0)
        :  "%ebp"
        );
-#else
-       struct pt_regs regs;
-
-       memset(&regs, 0, sizeof(struct pt_regs));
-       regs.xds = (u32)setup_base >> 4;
-       regs.xes = regs.xds;
-       regs.xss = regs.xds;
-       regs.esp = 0x9000;
-       regs.eflags = 0;
-       enter_realmode(((u32)setup_base + SETUP_START_OFFSET) >> 4, 0,
-                      &regs, &regs);
-#endif
 }
 
 void setup_pcat_compatibility(void)
diff --git a/board/eNET/Makefile b/board/eNET/Makefile
deleted file mode 100644 (file)
index ad1c5b1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# (C) Copyright 2008
-# Graeme Russ, graeme.russ@gmail.com.
-#
-# (C) Copyright 2006
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# (C) Copyright 2002
-# Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS-y        += eNET.o
-COBJS-$(CONFIG_PCI) += eNET_pci.o
-SOBJS-y        += eNET_start16.o
-SOBJS-y        += eNET_start.o
-
-SRCS   := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
-OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
-
-$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
diff --git a/board/eNET/eNET.c b/board/eNET/eNET.c
deleted file mode 100644 (file)
index 2f26470..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * (C) Copyright 2008
- * Graeme Russ, graeme.russ@gmail.com.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/arch/sc520.h>
-#include <net.h>
-#include <netdev.h>
-
-#ifdef CONFIG_HW_WATCHDOG
-#include <watchdog.h>
-#endif
-
-#include "hardware.h"
-
-DECLARE_GLOBAL_DATA_PTR;
-
-unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
-
-static void enet_timer_isr(void);
-static void enet_toggle_run_led(void);
-static void enet_setup_pars(void);
-
-/*
- * Miscellaneous platform dependent initializations
- */
-int board_early_init_f(void)
-{
-       u16 pio_out_cfg = 0x0000;
-
-       /* Configure General Purpose Bus timing */
-       writeb(CONFIG_SYS_SC520_GPCSRT, &sc520_mmcr->gpcsrt);
-       writeb(CONFIG_SYS_SC520_GPCSPW, &sc520_mmcr->gpcspw);
-       writeb(CONFIG_SYS_SC520_GPCSOFF, &sc520_mmcr->gpcsoff);
-       writeb(CONFIG_SYS_SC520_GPRDW, &sc520_mmcr->gprdw);
-       writeb(CONFIG_SYS_SC520_GPRDOFF, &sc520_mmcr->gprdoff);
-       writeb(CONFIG_SYS_SC520_GPWRW, &sc520_mmcr->gpwrw);
-       writeb(CONFIG_SYS_SC520_GPWROFF, &sc520_mmcr->gpwroff);
-
-       /* Configure Programmable Input/Output Pins */
-       writew(CONFIG_SYS_SC520_PIODIR15_0, &sc520_mmcr->piodir15_0);
-       writew(CONFIG_SYS_SC520_PIODIR31_16, &sc520_mmcr->piodir31_16);
-       writew(CONFIG_SYS_SC520_PIOPFS31_16, &sc520_mmcr->piopfs31_16);
-       writew(CONFIG_SYS_SC520_PIOPFS15_0, &sc520_mmcr->piopfs15_0);
-       writeb(CONFIG_SYS_SC520_CSPFS, &sc520_mmcr->cspfs);
-       writeb(CONFIG_SYS_SC520_CLKSEL, &sc520_mmcr->clksel);
-
-       /*
-        * Turn off top board
-        * Set StrataFlash chips to 16-bit width
-        * Set StrataFlash chips to normal (non reset/power down) mode
-        */
-       pio_out_cfg |= CONFIG_SYS_ENET_TOP_BRD_PWR;
-       pio_out_cfg |= CONFIG_SYS_ENET_SF_WIDTH;
-       pio_out_cfg |= CONFIG_SYS_ENET_SF1_MODE;
-       pio_out_cfg |= CONFIG_SYS_ENET_SF2_MODE;
-       writew(pio_out_cfg, &sc520_mmcr->pioset15_0);
-
-       /* Turn off auxiliary power output */
-       writew(CONFIG_SYS_ENET_AUX_PWR, &sc520_mmcr->pioclr15_0);
-
-       /* Clear FPGA program mode */
-       writew(CONFIG_SYS_ENET_FPGA_PROG, &sc520_mmcr->pioset31_16);
-
-       enet_setup_pars();
-
-       /* Disable Watchdog */
-       writew(0x3333, &sc520_mmcr->wdtmrctl);
-       writew(0xcccc, &sc520_mmcr->wdtmrctl);
-       writew(0x0000, &sc520_mmcr->wdtmrctl);
-
-       /* Chip Select Configuration */
-       writew(CONFIG_SYS_SC520_BOOTCS_CTRL, &sc520_mmcr->bootcsctl);
-       writew(CONFIG_SYS_SC520_ROMCS1_CTRL, &sc520_mmcr->romcs1ctl);
-       writew(CONFIG_SYS_SC520_ROMCS2_CTRL, &sc520_mmcr->romcs2ctl);
-
-       writeb(CONFIG_SYS_SC520_ADDDECCTL, &sc520_mmcr->adddecctl);
-       writeb(CONFIG_SYS_SC520_UART1CTL, &sc520_mmcr->uart1ctl);
-       writeb(CONFIG_SYS_SC520_UART2CTL, &sc520_mmcr->uart2ctl);
-
-       writeb(CONFIG_SYS_SC520_SYSARBCTL, &sc520_mmcr->sysarbctl);
-       writew(CONFIG_SYS_SC520_SYSARBMENB, &sc520_mmcr->sysarbmenb);
-
-       /* enable posted-writes */
-       writeb(CONFIG_SYS_SC520_HBCTL, &sc520_mmcr->hbctl);
-
-       return 0;
-}
-
-static void enet_setup_pars(void)
-{
-       /*
-        * PARs 11 and 12 are 2MB SRAM @ 0x19000000
-        *
-        * These are setup now because older version of U-Boot have them
-        * mapped to a different PAR which gets clobbered which prevents
-        * using SRAM for warm-booting a new image
-        */
-       writel(CONFIG_SYS_SC520_SRAM1_PAR, &sc520_mmcr->par[11]);
-       writel(CONFIG_SYS_SC520_SRAM2_PAR, &sc520_mmcr->par[12]);
-
-       /* PARs 0 and 1 are Compact Flash slots (4kB each) */
-       writel(CONFIG_SYS_SC520_CF1_PAR, &sc520_mmcr->par[0]);
-       writel(CONFIG_SYS_SC520_CF2_PAR, &sc520_mmcr->par[1]);
-
-       /* PAR 2 is used for Cache-As-RAM */
-
-       /*
-        * PARs 5 through 8 are additional NS16550 UARTS
-        * 8 bytes each @ 0x013f8, 0x012f8, 0x011f8 and 0x010f8
-        */
-       writel(CONFIG_SYS_SC520_UARTA_PAR, &sc520_mmcr->par[5]);
-       writel(CONFIG_SYS_SC520_UARTB_PAR, &sc520_mmcr->par[6]);
-       writel(CONFIG_SYS_SC520_UARTC_PAR, &sc520_mmcr->par[7]);
-       writel(CONFIG_SYS_SC520_UARTD_PAR, &sc520_mmcr->par[8]);
-
-       /* PARs 9 and 10 are 32MB StrataFlash @ 0x10000000 */
-       writel(CONFIG_SYS_SC520_SF1_PAR, &sc520_mmcr->par[9]);
-       writel(CONFIG_SYS_SC520_SF2_PAR, &sc520_mmcr->par[10]);
-
-       /* PAR 13 is 4kB DPRAM @ 0x18100000 (implemented in FPGA) */
-       writel(CONFIG_SYS_SC520_DPRAM_PAR, &sc520_mmcr->par[13]);
-
-       /*
-        * PAR 14 is Low Level I/O (LEDs, Hex Switches etc)
-        * Already configured in board_init16 (eNET_start16.S)
-        *
-        * PAR 15 is Boot ROM
-        * Already configured in board_init16 (eNET_start16.S)
-        */
-}
-
-
-int board_early_init_r(void)
-{
-       /* CPU Speed to 100MHz */
-       gd->cpu_clk = 100000000;
-
-       /* Crystal is 33.000MHz */
-       gd->bus_clk = 33000000;
-
-       return 0;
-}
-
-void show_boot_progress(int val)
-{
-       uchar led_mask;
-
-       led_mask = 0x00;
-
-       if (val < 0)
-               led_mask |= LED_ERR_BITMASK;
-
-       led_mask |= (uchar)(val & 0x001f);
-       outb(led_mask, LED_LATCH_ADDRESS);
-}
-
-
-int last_stage_init(void)
-{
-       outb(0x00, LED_LATCH_ADDRESS);
-
-       register_timer_isr(enet_timer_isr);
-
-       printf("Serck Controls eNET\n");
-
-       return 0;
-}
-
-ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
-{
-       if (banknum == 0) {     /* non-CFI boot flash */
-               info->portwidth = FLASH_CFI_8BIT;
-               info->chipwidth = FLASH_CFI_BY8;
-               info->interface = FLASH_CFI_X8;
-               return 1;
-       } else {
-               return 0;
-       }
-}
-
-int board_eth_init(bd_t *bis)
-{
-       return pci_eth_init(bis);
-}
-
-void setup_pcat_compatibility()
-{
-       /* disable global interrupt mode */
-       writeb(0x40, &sc520_mmcr->picicr);
-
-       /* set all irqs to edge */
-       writeb(0x00, &sc520_mmcr->pic_mode[0]);
-       writeb(0x00, &sc520_mmcr->pic_mode[1]);
-       writeb(0x00, &sc520_mmcr->pic_mode[2]);
-
-       /*
-        *  active low polarity on PIC interrupt pins,
-        *  active high polarity on all other irq pins
-        */
-       writew(0x0000, &sc520_mmcr->intpinpol);
-
-       /*
-        * PIT 0 -> IRQ0
-        * RTC -> IRQ8
-        * FP error -> IRQ13
-        * UART1 -> IRQ4
-        * UART2 -> IRQ3
-        */
-       writeb(SC520_IRQ0, &sc520_mmcr->pit_int_map[0]);
-       writeb(SC520_IRQ8, &sc520_mmcr->rtcmap);
-       writeb(SC520_IRQ13, &sc520_mmcr->ferrmap);
-       writeb(SC520_IRQ4, &sc520_mmcr->uart_int_map[0]);
-       writeb(SC520_IRQ3, &sc520_mmcr->uart_int_map[1]);
-
-       /* Disable all other interrupt sources */
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->gp_tmr_int_map[0]);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->gp_tmr_int_map[1]);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->gp_tmr_int_map[2]);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->pit_int_map[1]);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->pit_int_map[2]);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->ssimap);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->wdtmap);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->wpvmap);
-       writeb(SC520_IRQ_DISABLED, &sc520_mmcr->icemap);
-}
-
-void enet_timer_isr(void)
-{
-       static long enet_ticks;
-
-       enet_ticks++;
-
-       /* Toggle Watchdog every 100ms */
-       if ((enet_ticks % 100) == 0)
-               hw_watchdog_reset();
-
-       /* Toggle Run LED every 500ms */
-       if ((enet_ticks % 500) == 0)
-               enet_toggle_run_led();
-}
-
-void hw_watchdog_reset(void)
-{
-       /* Watchdog Reset must be atomic */
-       long flag = disable_interrupts();
-
-       if (sc520_mmcr->piodata15_0 & WATCHDOG_PIO_BIT)
-               sc520_mmcr->pioclr15_0 = WATCHDOG_PIO_BIT;
-       else
-               sc520_mmcr->pioset15_0 = WATCHDOG_PIO_BIT;
-
-       if (flag)
-               enable_interrupts();
-}
-
-void enet_toggle_run_led(void)
-{
-       unsigned char leds_state = inb(LED_LATCH_ADDRESS);
-       if (leds_state & LED_RUN_BITMASK)
-               outb(leds_state & ~LED_RUN_BITMASK, LED_LATCH_ADDRESS);
-       else
-               outb(leds_state | LED_RUN_BITMASK, LED_LATCH_ADDRESS);
-}
diff --git a/board/eNET/eNET_pci.c b/board/eNET/eNET_pci.c
deleted file mode 100644 (file)
index 5af4ef7..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * (C) Copyright 2008,2009
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * (C) Copyright 2002
- * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <pci.h>
-#include <asm/pci.h>
-#include <asm/arch/pci.h>
-
-static void pci_enet_fixup_irq(struct pci_controller *hose, pci_dev_t dev)
-{
-       /* a configurable lists of IRQs to steal when we need one */
-       static int irq_list[] = {
-               CONFIG_SYS_FIRST_PCI_IRQ,
-               CONFIG_SYS_SECOND_PCI_IRQ,
-               CONFIG_SYS_THIRD_PCI_IRQ,
-               CONFIG_SYS_FORTH_PCI_IRQ
-       };
-       static int next_irq_index;
-
-       uchar tmp_pin;
-       int pin;
-
-       pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_PIN, &tmp_pin);
-       pin = tmp_pin;
-
-       pin -= 1; /* PCI config space use 1-based numbering */
-       if (pin == -1)
-               return; /* device use no irq */
-
-       /* map device number +  pin to a pin on the sc520 */
-       switch (PCI_DEV(dev)) {
-       case 12:        /* First Ethernet Chip */
-               pin += SC520_PCI_INTA;
-               break;
-
-       case 13:        /* Second Ethernet Chip */
-               pin += SC520_PCI_INTB;
-               break;
-
-       default:
-               return;
-       }
-
-       pin &= 3; /* wrap around */
-
-       if (sc520_pci_ints[pin] == -1) {
-               /* re-route one interrupt for us */
-               if (next_irq_index > 3)
-                       return;
-
-               if (pci_sc520_set_irq(pin, irq_list[next_irq_index]))
-                       return;
-
-               next_irq_index++;
-       }
-
-       if (-1 != sc520_pci_ints[pin])
-               pci_hose_write_config_byte(hose, dev, PCI_INTERRUPT_LINE,
-                                          sc520_pci_ints[pin]);
-
-       printf("fixup_irq: device %d pin %c irq %d\n",
-              PCI_DEV(dev), 'A' + pin, sc520_pci_ints[pin]);
-}
-
-static struct pci_controller enet_hose = {
-       fixup_irq: pci_enet_fixup_irq,
-};
-
-void pci_init_board(void)
-{
-       pci_sc520_init(&enet_hose);
-}
-
-int pci_set_regions(struct pci_controller *hose)
-{
-       /* System memory space */
-       pci_set_region(hose->regions + 0,
-                      SC520_PCI_MEMORY_BUS,
-                      SC520_PCI_MEMORY_PHYS,
-                      SC520_PCI_MEMORY_SIZE,
-                      PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);
-
-       /* ISA/PCI memory space */
-       pci_set_region(hose->regions + 1,
-                      SC520_ISA_MEM_BUS,
-                      SC520_ISA_MEM_PHYS,
-                      SC520_ISA_MEM_SIZE,
-                      PCI_REGION_MEM);
-
-       /* PCI I/O space */
-       pci_set_region(hose->regions + 2,
-                      SC520_PCI_IO_BUS,
-                      SC520_PCI_IO_PHYS,
-                      SC520_PCI_IO_SIZE,
-                      PCI_REGION_IO);
-
-       /* ISA/PCI I/O space */
-       pci_set_region(hose->regions + 3,
-                      SC520_ISA_IO_BUS,
-                      SC520_ISA_IO_PHYS,
-                      SC520_ISA_IO_SIZE,
-                      PCI_REGION_IO);
-
-       return 4;
-}
diff --git a/board/eNET/eNET_start.S b/board/eNET/eNET_start.S
deleted file mode 100644 (file)
index 0dec7ea..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * (C) Copyright 2008
- * Graeme Russ, graeme.russ@gmail.com.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include "hardware.h"
-
-/* board early intialization */
-.globl early_board_init
-early_board_init:
-       /* No 32-bit board specific initialisation */
-       jmp     early_board_init_ret
diff --git a/board/eNET/eNET_start16.S b/board/eNET/eNET_start16.S
deleted file mode 100644 (file)
index 5e3f44c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * (C) Copyright 2008
- * Graeme Russ, graeme.russ@gmail.com.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * 16bit initialization code.
- * This code have to map the area of the boot flash
- * that is used by U-boot to its final destination.
- */
-
-#include "config.h"
-#include "hardware.h"
-#include <asm/arch/sc520.h>
-#include <generated/asm-offsets.h>
-
-.text
-.section .start16, "ax"
-.code16
-.globl board_init16
-board_init16:
-       /* Alias MMCR to 0xdf000 */
-       movw    $0xfffc, %dx
-       movl    $0x800df0cb, %eax
-       outl    %eax, %dx
-
-       /* Set ds to point to MMCR alias */
-       movw    $0xdf00, %ax
-       movw    %ax, %ds
-
-       /* Map PAR for Boot Flash (BOOTCS, 512kB @ 0x380000000) */
-       movl    $GENERATED_SC520_PAR14, %edi
-       movl    $CONFIG_SYS_SC520_BOOTCS_PAR, %eax
-       movl    %eax, (%di)
-
-       /* Map PAR for LED, Hex Switches (GPCS6, 20 Bytes @ 0x1000) */
-       movl    $GENERATED_SC520_PAR15, %edi
-       movl    $CONFIG_SYS_SC520_LLIO_PAR, %eax
-       movl    %eax, (%di)
-
-       /* Disabe MMCR alias */
-       movw    $0xfffc, %dx
-       movl    $0x000000cb, %eax
-       outl    %eax, %dx
-
-       jmp     board_init16_ret
-
-.section .bios, "ax"
-.code16
-.globl realmode_reset
-.hidden realmode_reset
-.type realmode_reset, @function
-realmode_reset:
-       /* Alias MMCR to 0xdf000 */
-       movw    $0xfffc, %dx
-       movl    $0x800df0cb, %eax
-       outl    %eax, %dx
-
-       /* Set ds to point to MMCR alias */
-       movw    $0xdf00, %ax
-       movw    %ax, %ds
-
-       /* issue software reset thorugh MMCR */
-       movl    $0xd72, %edi
-       movb    $0x01, %al
-       movb    %al, (%di)
-
-1:     hlt
-       jmp     1
diff --git a/board/eNET/hardware.h b/board/eNET/hardware.h
deleted file mode 100644 (file)
index dec2cd8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * (C) Copyright 2008
- * Graeme Russ, graeme.russ@gmail.com.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef HARDWARE_H_
-#define HARDWARE_H_
-
-#define LED_LATCH_ADDRESS      0x1002
-#define LED_RUN_BITMASK                0x01
-#define LED_1_BITMASK          0x02
-#define LED_2_BITMASK          0x04
-#define LED_RX_BITMASK         0x08
-#define LED_TX_BITMASK         0x10
-#define LED_ERR_BITMASK                0x20
-#define WATCHDOG_PIO_BIT       0x8000
-
-#endif /* HARDWARE_H_ */
index cd220af6e2ca04742fcef8c4546264205a8c3840..b1319aace0f8987ef3fe50f0e31f18d457c34c37 100644 (file)
@@ -1123,7 +1123,5 @@ gr_ep2s60                    sparc       leon3       -                   gaisler
 grsim                        sparc       leon3       -                   gaisler
 gr_xc3s_1500                 sparc       leon3       -                   gaisler
 coreboot-x86                 x86         x86        coreboot            chromebook-x86 coreboot    coreboot:SYS_TEXT_BASE=0x01110000
-eNET                         x86         x86        eNET                -              sc520       eNET:SYS_TEXT_BASE=0x38040000
-eNET_SRAM                    x86         x86        eNET                -              sc520       eNET:SYS_TEXT_BASE=0x19000000
 # Target                     ARCH        CPU         Board name          Vendor                SoC         Options
 ########################################################################################################################
index d8aabd4cc8890166b931c569ca91fe8c71730b7c..c7f36ff148fe93fa25f3adbde6d5f82fa768cc5f 100644 (file)
@@ -37,7 +37,6 @@
 #define CONFIG_SYS_COREBOOT
 #define CONFIG_SHOW_BOOT_PROGRESS
 #define CONFIG_LAST_STAGE_INIT
-#define CONFIG_X86_NO_RESET_VECTOR
 #define CONFIG_SYS_VSNPRINTF
 #define CONFIG_INTEL_CORE_ARCH /* Sandy bridge and ivy bridge chipsets. */
 #define CONFIG_ZBOOT_32
diff --git a/include/configs/eNET.h b/include/configs/eNET.h
deleted file mode 100644 (file)
index 28cf95b..0000000
+++ /dev/null
@@ -1,619 +0,0 @@
-/*
- * (C) Copyright 2008
- * Graeme Russ, graeme.russ@gmail.com.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <asm/ibmpc.h>
-/*
- * board/config.h - configuration options, board specific
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/*
- * High Level Configuration Options
- * (easy to change)
- */
-#define CONFIG_SYS_SC520
-#define CONFIG_SYS_SC520_SSI
-#define CONFIG_SHOW_BOOT_PROGRESS
-#define CONFIG_LAST_STAGE_INIT
-
-/*-----------------------------------------------------------------------
- * Watchdog Configuration
- * NOTE: If CONFIG_HW_WATCHDOG is NOT defined, the watchdog jumper on the
- * bottom (processor) board MUST be removed!
- */
-#undef CONFIG_WATCHDOG
-#define CONFIG_HW_WATCHDOG
-
-/*-----------------------------------------------------------------------
- * Real Time Clock Configuration
- */
-#define CONFIG_RTC_MC146818
-#define CONFIG_SYS_ISA_IO_BASE_ADDRESS         0
-
-/*-----------------------------------------------------------------------
- * Serial Configuration
- */
-#define CONFIG_CONS_INDEX                      1
-#define CONFIG_SYS_NS16550
-#define CONFIG_SYS_NS16550_SERIAL
-#define CONFIG_SYS_NS16550_REG_SIZE            1
-#define CONFIG_SYS_NS16550_CLK                 1843200
-#define CONFIG_BAUDRATE                                9600
-#define CONFIG_SYS_BAUDRATE_TABLE              {300, 600, 1200, 2400, 4800, \
-                                                9600, 19200, 38400, 115200}
-#define CONFIG_SYS_NS16550_COM1                        UART0_BASE
-#define CONFIG_SYS_NS16550_COM2                        UART1_BASE
-#define CONFIG_SYS_NS16550_COM3                        (0x1000 + UART0_BASE)
-#define CONFIG_SYS_NS16550_COM4                        (0x1000 + UART1_BASE)
-#define CONFIG_SYS_NS16550_PORT_MAPPED
-
-/*-----------------------------------------------------------------------
- * Video Configuration
- */
-#undef CONFIG_VIDEO
-#undef CONFIG_CFB_CONSOLE
-
-/*-----------------------------------------------------------------------
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-
-#define CONFIG_CMD_BDI
-#define CONFIG_CMD_BOOTD
-#define CONFIG_CMD_CONSOLE
-#define CONFIG_CMD_DATE
-#define CONFIG_CMD_ECHO
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_FPGA
-#define CONFIG_CMD_IMI
-#define CONFIG_CMD_IMLS
-#define CONFIG_CMD_IRQ
-#define CONFIG_CMD_ITEST
-#define CONFIG_CMD_LOADB
-#define CONFIG_CMD_LOADS
-#define CONFIG_CMD_MEMORY
-#define CONFIG_CMD_MISC
-#define CONFIG_CMD_NET
-#undef CONFIG_CMD_NFS
-#define CONFIG_CMD_PCI
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_RUN
-#define CONFIG_CMD_SAVEENV
-#define CONFIG_CMD_SETGETDCR
-#define CONFIG_CMD_SOURCE
-#define CONFIG_CMD_XIMG
-#define CONFIG_CMD_ZBOOT
-
-#define CONFIG_BOOTDELAY                       15
-#define CONFIG_BOOTARGS                                "root=/dev/mtdblock0 console=ttyS0,9600"
-
-#if defined(CONFIG_CMD_KGDB)
-#define CONFIG_KGDB_BAUDRATE                   115200
-#define CONFIG_KGDB_SER_INDEX                  2
-#endif
-
-/*
- * Miscellaneous configurable options
- */
-#define        CONFIG_SYS_LONGHELP
-#define        CONFIG_SYS_PROMPT                       "boot > "
-#define        CONFIG_SYS_CBSIZE                       256
-#define        CONFIG_SYS_PBSIZE                       (CONFIG_SYS_CBSIZE + \
-                                                sizeof(CONFIG_SYS_PROMPT) + \
-                                                16)
-#define        CONFIG_SYS_MAXARGS                      16
-#define CONFIG_SYS_BARGSIZE                    CONFIG_SYS_CBSIZE
-
-#define CONFIG_SYS_MEMTEST_START               0x00100000
-#define CONFIG_SYS_MEMTEST_END                 0x01000000
-#define        CONFIG_SYS_LOAD_ADDR                    0x100000
-#define        CONFIG_SYS_HZ                           1000
-
-/*-----------------------------------------------------------------------
- * SDRAM Configuration
- */
-#define CONFIG_SYS_SDRAM_DRCTMCTL              0x18
-#define CONFIG_SYS_SDRAM_REFRESH_RATE          156
-#define CONFIG_NR_DRAM_BANKS                   4
-
-/* CONFIG_SYS_SDRAM_DRCTMCTL Overrides the following*/
-#undef CONFIG_SYS_SDRAM_PRECHARGE_DELAY
-#undef CONFIG_SYS_SDRAM_RAS_CAS_DELAY
-#undef CONFIG_SYS_SDRAM_CAS_LATENCY_2T
-#undef CONFIG_SYS_SDRAM_CAS_LATENCY_3T
-
-/*-----------------------------------------------------------------------
- * CPU Features
- */
-#define CONFIG_SYS_SC520_HIGH_SPEED            0
-#define CONFIG_SYS_SC520_RESET
-#define CONFIG_SYS_SC520_TIMER
-#undef  CONFIG_SYS_GENERIC_TIMER
-#define CONFIG_SYS_PCAT_INTERRUPTS
-#define CONFIG_SYS_NUM_IRQS                    16
-#define CONFIG_SYS_PC_BIOS
-#define CONFIG_SYS_PCI_BIOS
-#define CONFIG_SYS_X86_REALMODE
-#define CONFIG_SYS_X86_ISR_TIMER
-
-/*-----------------------------------------------------------------------
- * Memory organization:
- * 32kB Stack
- * 16kB Cache-As-RAM @ 0x19200000
- * 256kB Monitor
- * (128kB + Environment Sector Size) malloc pool
- */
-#define CONFIG_SYS_STACK_SIZE                  (32 * 1024)
-#define CONFIG_SYS_CAR_ADDR                    0x19200000
-#define CONFIG_SYS_CAR_SIZE                    (16 * 1024)
-#define CONFIG_SYS_MONITOR_BASE                        CONFIG_SYS_TEXT_BASE
-#define CONFIG_SYS_MONITOR_LEN                 (256 * 1024)
-#define CONFIG_SYS_MALLOC_LEN                  (CONFIG_ENV_SECT_SIZE + \
-                                                128*1024)
-/* allow to overwrite serial and ethaddr */
-#define CONFIG_ENV_OVERWRITE
-
-/*-----------------------------------------------------------------------
- * FLASH configuration
- * 512kB Boot Flash @ 0x38000000 (Monitor @ 38040000)
- * 16MB StrataFlash #1 @ 0x10000000
- * 16MB StrataFlash #2 @ 0x11000000
- */
-#define CONFIG_FLASH_CFI_DRIVER
-#define CONFIG_FLASH_CFI_LEGACY
-#define CONFIG_SYS_FLASH_CFI
-#define CONFIG_SYS_MAX_FLASH_BANKS             3
-#define CONFIG_SYS_FLASH_BASE                  0x38000000
-#define CONFIG_SYS_FLASH_BASE_1                        0x10000000
-#define CONFIG_SYS_FLASH_BASE_2                        0x11000000
-#define CONFIG_SYS_FLASH_BANKS_LIST            {CONFIG_SYS_FLASH_BASE,   \
-                                                CONFIG_SYS_FLASH_BASE_1, \
-                                                CONFIG_SYS_FLASH_BASE_2}
-#define CONFIG_SYS_FLASH_EMPTY_INFO
-#undef CONFIG_SYS_FLASH_USE_BUFFER_WRITE
-#define CONFIG_SYS_MAX_FLASH_SECT              128
-#define CONFIG_SYS_FLASH_CFI_WIDTH             FLASH_CFI_8BIT
-#define CONFIG_SYS_FLASH_LEGACY_512Kx8
-#define CONFIG_SYS_FLASH_ERASE_TOUT            2000    /* ms */
-#define CONFIG_SYS_FLASH_WRITE_TOUT            2000    /* ms */
-
-/*-----------------------------------------------------------------------
- * Environment configuration
- * - Boot flash is 512kB with 64kB sectors
- * - StrataFlash is 32MB with 128kB sectors
- * - Redundant embedded environment is 25% of the Boot flash
- * - Redundant StrataFlash environment is <1% of the StrataFlash
- * - Environment is therefore located in StrataFlash
- * - Primary copy is located in first sector of first flash
- * - Redundant copy is located in second sector of first flash
- * - Stack is only 32kB, so environment size is limited to 4kB
- */
-#define CONFIG_ENV_IS_IN_FLASH
-#define CONFIG_ENV_SECT_SIZE                   0x20000
-#define CONFIG_ENV_SIZE                                0x01000
-#define CONFIG_ENV_ADDR                                CONFIG_SYS_FLASH_BASE_1
-#define CONFIG_ENV_ADDR_REDUND                 (CONFIG_SYS_FLASH_BASE_1 + \
-                                                CONFIG_ENV_SECT_SIZE)
-#define CONFIG_ENV_SIZE_REDUND                 CONFIG_ENV_SIZE
-
-/*-----------------------------------------------------------------------
- * PCI configuration
- */
-#define CONFIG_PCI
-#define CONFIG_PCI_PNP
-#define CONFIG_SYS_FIRST_PCI_IRQ               10
-#define CONFIG_SYS_SECOND_PCI_IRQ              9
-#define CONFIG_SYS_THIRD_PCI_IRQ               11
-#define CONFIG_SYS_FORTH_PCI_IRQ               15
-
-/*-----------------------------------------------------------------------
- * Network device (TRL8100B) support
- */
-#define CONFIG_RTL8139
-
-/*-----------------------------------------------------------------------
- * BOOTCS Control (for AM29LV040B-120JC)
- *
- * 000 0 00 0 000 11 0 011 }- 0x0033
- * \ / | \| | \ / \| | \ /
- *  |  |  | |  |   | |  |
- *  |  |  | |  |   | |  +---- 3 Wait States (First Access)
- *  |  |  | |  |   | +------- Reserved
- *  |  |  | |  |   +--------- 3 Wait States (Subsequent Access)
- *  |  |  | |  +------------- Reserved
- *  |  |  | +---------------- Non-Paged Mode
- *  |  |  +------------------ 8 Bit Wide
- *  |  +--------------------- GP Bus
- *  +------------------------ Reserved
- */
-#define CONFIG_SYS_SC520_BOOTCS_CTRL           0x0033
-
-/*-----------------------------------------------------------------------
- * ROMCS Control (for E28F128J3A-150 StrataFlash)
- *
- * 000 0 01 1 000 01 0 101 }- 0x0615
- * \ / | \| | \ / \| | \ /
- *  |  |  | |  |   | |  |
- *  |  |  | |  |   | |  +---- 5 Wait States (First Access)
- *  |  |  | |  |   | +------- Reserved
- *  |  |  | |  |   +--------- 1 Wait State (Subsequent Access)
- *  |  |  | |  +------------- Reserved
- *  |  |  | +---------------- Paged Mode
- *  |  |  +------------------ 16 Bit Wide
- *  |  +--------------------- GP Bus
- *  +------------------------ Reserved
- */
-#define CONFIG_SYS_SC520_ROMCS1_CTRL           0x0615
-#define CONFIG_SYS_SC520_ROMCS2_CTRL           0x0615
-
-/*-----------------------------------------------------------------------
- * SC520 General Purpose Bus configuration
- *
- * Chip Select Offset          1 Clock Cycle
- * Chip Select Pulse Width     8 Clock Cycles
- * Chip Select Read Offset     2 Clock Cycles
- * Chip Select Read Width      6 Clock Cycles
- * Chip Select Write Offset    2 Clock Cycles
- * Chip Select Write Width     6 Clock Cycles
- * Chip Select Recovery Time   2 Clock Cycles
- *
- * Timing Diagram (from SC520 Register Set Manual - Order #22005B)
- *
- *   |<-------------General Purpose Bus Cycle---------------->|
- *   |                                                        |
- * ----------------------\__________________/------------------
- *   |<--(GPCSOFF + 1)-->|<--(GPCSPW + 1)-->|<-(GPCSRT + 1)-> |
- *
- * ------------------------\_______________/-------------------
- *   |<---(GPRDOFF + 1)--->|<-(GPRDW + 1)->|
- *
- * --------------------------\_______________/-----------------
- *   |<----(GPWROFF + 1)---->|<-(GPWRW + 1)->|
- *
- * ________/-----------\_______________________________________
- *   |<--->|<--------->|
- *      ^         ^
- * (GPALEOFF + 1) |
- *                |
- *         (GPALEW + 1)
- */
-#define CONFIG_SYS_SC520_GPCSOFF               0x00
-#define CONFIG_SYS_SC520_GPCSPW                        0x07
-#define CONFIG_SYS_SC520_GPRDOFF               0x01
-#define CONFIG_SYS_SC520_GPRDW                 0x05
-#define CONFIG_SYS_SC520_GPWROFF               0x01
-#define CONFIG_SYS_SC520_GPWRW                 0x05
-#define CONFIG_SYS_SC520_GPCSRT                        0x01
-
-/*-----------------------------------------------------------------------
- * SC520 Programmable I/O configuration
- *
- * Pin   Mode          Dir.    Description
- * ----------------------------------------------------------------------
- * PIO0   PIO          Output  Unused
- * PIO1   GPBHE#       Output  GP Bus Byte High Enable (active low)
- * PIO2   PIO          Output  Auxiliary power output enable
- * PIO3   GPAEN                Output  GP Bus Address Enable
- * PIO4   PIO          Output  Top Board Enable (active low)
- * PIO5   PIO          Output  StrataFlash 16 bit mode (low = 8 bit mode)
- * PIO6   PIO          Input   Data output of Power Supply ADC
- * PIO7   PIO          Output  Clock input to Power Supply ADC
- * PIO8   PIO          Output  Chip Select input of Power Supply ADC
- * PIO9   PIO          Output  StrataFlash 1 Reset / Power Down (active low)
- * PIO10  PIO          Output  StrataFlash 2 Reset / Power Down (active low)
- * PIO11  PIO          Input   StrataFlash 1 Status
- * PIO12  PIO          Input   StrataFlash 2 Status
- * PIO13  GPIRQ10#     Input   Can Bus / I2C IRQ (active low)
- * PIO14  PIO          Input   Low Input Voltage Warning (active low)
- * PIO15  PIO          Output  Watchdog (must toggle at least every 1.6s)
- * PIO16  PIO          Input   Power Fail
- * PIO17  GPIRQ6       Input   Compact Flash 1 IRQ (active low)
- * PIO18  GPIRQ5       Input   Compact Flash 2 IRQ (active low)
- * PIO19  GPIRQ4#      Input   Dual-Port RAM IRQ (active low)
- * PIO20  GPIRQ3       Input   UART D IRQ
- * PIO21  GPIRQ2       Input   UART C IRQ
- * PIO22  GPIRQ1       Input   UART B IRQ
- * PIO23  GPIRQ0       Input   UART A IRQ
- * PIO24  GPDBUFOE#    Output  GP Bus Data Bus Buffer Output Enable
- * PIO25  PIO          Input   Battery OK Indication
- * PIO26  GPMEMCS16#   Input   GP Bus Memory Chip-Select 16-bit access
- * PIO27  GPCS0#       Output  SRAM 1 Chip Select
- * PIO28  PIO          Input   Top Board UART CTS
- * PIO29  PIO          Output  FPGA Program Mode (active low)
- * PIO30  PIO          Input   FPGA Initialised (active low)
- * PIO31  PIO          Input   FPGA Done (active low)
- */
-#define CONFIG_SYS_SC520_PIOPFS15_0            0x200a
-#define CONFIG_SYS_SC520_PIOPFS31_16           0x0dfe
-#define CONFIG_SYS_SC520_PIODIR15_0            0x87bf
-#define CONFIG_SYS_SC520_PIODIR31_16           0x2900
-
-/*-----------------------------------------------------------------------
- * PIO Pin defines
- */
-#define CONFIG_SYS_ENET_AUX_PWR                        0x0004
-#define CONFIG_SYS_ENET_TOP_BRD_PWR            0x0010
-#define CONFIG_SYS_ENET_SF_WIDTH               0x0020
-#define CONFIG_SYS_ENET_PWR_ADC_DATA           0x0040
-#define CONFIG_SYS_ENET_PWR_ADC_CLK            0x0080
-#define CONFIG_SYS_ENET_PWR_ADC_CS             0x0100
-#define CONFIG_SYS_ENET_SF1_MODE               0x0200
-#define CONFIG_SYS_ENET_SF2_MODE               0x0400
-#define CONFIG_SYS_ENET_SF1_STATUS             0x0800
-#define CONFIG_SYS_ENET_SF2_STATUS             0x1000
-#define CONFIG_SYS_ENET_PWR_STATUS             0x4000
-#define CONFIG_SYS_ENET_WATCHDOG               0x8000
-
-#define CONFIG_SYS_ENET_PWR_FAIL               0x0001
-#define CONFIG_SYS_ENET_BAT_OK                 0x0200
-#define CONFIG_SYS_ENET_TOP_BRD_CTS            0x1000
-#define CONFIG_SYS_ENET_FPGA_PROG              0x2000
-#define CONFIG_SYS_ENET_FPGA_INIT              0x4000
-#define CONFIG_SYS_ENET_FPGA_DONE              0x8000
-
-/*-----------------------------------------------------------------------
- * Chip Select Pin Function Select
- *
- * 1 1 1 1 1 0 0 0 }- 0xf8
- * | | | | | | | |
- * | | | | | | | +--- Reserved
- * | | | | | | +----- GPCS1_SEL = ROMCS1#
- * | | | | | +------- GPCS2_SEL = ROMCS2#
- * | | | | +--------- GPCS3_SEL = GPCS3
- * | | | +----------- GPCS4_SEL = GPCS4
- * | | +------------- GPCS5_SEL = GPCS5
- * | +--------------- GPCS6_SEL = GPCS6
- * +----------------- GPCS7_SEL = GPCS7
- */
-#define CONFIG_SYS_SC520_CSPFS                 0xf8
-
-/*-----------------------------------------------------------------------
- * Clock Select (CLKTIMER[CLKTEST] pin)
- *
- * 0 111 00 1 0 }- 0x72
- * | \ / \| | |
- * |  |   | | +--- Pin Disabled
- * |  |   | +----- Pin is an output
- * |  |   +------- Reserved
- * |  +----------- Disabled (pin stays Low)
- * +-------------- Reserved
- */
-#define CONFIG_SYS_SC520_CLKSEL                        0x72
-
-/*-----------------------------------------------------------------------
- * Address Decode Control
- *
- * 0 00 0 0 0 0 0 }- 0x00
- * | \| | | | | |
- * |  | | | | | +--- Integrated UART 1 is enabled
- * |  | | | | +----- Integrated UART 2 is enabled
- * |  | | | +------- Integrated RTC is enabled
- * |  | | +--------- Reserved
- * |  | +----------- I/O Hole accesses are forwarded to the external GP bus
- * |  +------------- Reserved
- * +---------------- Write-protect violations do not generate an IRQ
- */
-#define CONFIG_SYS_SC520_ADDDECCTL             0x00
-
-/*-----------------------------------------------------------------------
- * UART Control
- *
- * 00000 1 1 1 }- 0x07
- * \___/ | | |
- *   |   | | +--- Transmit TC interrupt enable
- *   |   | +----- Receive TC interrupt enable
- *   |   +------- 1.8432 MHz
- *   +----------- Reserved
- */
-#define CONFIG_SYS_SC520_UART1CTL              0x07
-#define CONFIG_SYS_SC520_UART2CTL              0x07
-
-/*-----------------------------------------------------------------------
- * System Arbiter Control
- *
- * 00000 1 1 0 }- 0x06
- * \___/ | | |
- *   |   | | +--- Disable PCI Bus Arbiter Grant Time-Out Interrupt
- *   |   | +----- The system arbiter operates in concurrent mode
- *   |   +------- Park the PCI bus on the last master that acquired the bus
- *   +----------- Reserved
- */
-#define CONFIG_SYS_SC520_SYSARBCTL             0x06
-
-/*-----------------------------------------------------------------------
- * System Arbiter Master Enable
- *
- * 00000000000 0 0 0 1 1 }- 0x06
- * \_________/ | | | | |
- *      |      | | | | +--- PCI master REQ0 enabled (Ethernet 1)
- *      |      | | | +----- PCI master REQ1 enabled (Ethernet 2)
- *      |      | | +------- PCI master REQ2 disabled
- *      |      | +--------- PCI master REQ3 disabled
- *      |      +----------- PCI master REQ4 disabled
- *      +------------------ Reserved
- */
-#define CONFIG_SYS_SC520_SYSARBMENB            0x0003
-
-/*-----------------------------------------------------------------------
- * System Arbiter Master Enable
- *
- * 0 0000 0 00 0000 1 000 }- 0x06
- * | \__/ | \| \__/ | \_/
- * |   |  |  |   |  |  +---- Reserved
- * |   |  |  |   |  +------- Enable CPU-to-PCI bus write posting
- * |   |  |  |   +---------- Reserved
- * |   |  |  +-------------- PCI bus reads to SDRAM are not automatically
- * |   |  |                  retried
- * |   |  +----------------- Target read FIFOs are not snooped during write
- * |   |                     transactions
- * |   +-------------------- Reserved
- * +------------------------ Deassert the PCI bus reset signal
- */
-#define CONFIG_SYS_SC520_HBCTL                 0x08
-
-/*-----------------------------------------------------------------------
- * PAR for Boot Flash - 512kB @ 0x38000000, BOOTCS
- * 100 0 1 0 1 00000000111 11100000000000 }- 0x8a01f800
- * \ / | | | | \----+----/ \-----+------/
- *  |  | | | |      |            +---------- Start at 0x38000000
- *  |  | | | |      +----------------------- 512kB Region Size
- *  |  | | | |                               ((7 + 1) * 64kB)
- *  |  | | | +------------------------------ 64kB Page Size
- *  |  | | +-------------------------------- Writes Enabled (So it can be
- *  |  | |                                   reprogrammed!)
- *  |  | +---------------------------------- Caching Disabled
- *  |  +------------------------------------ Execution Enabled
- *  +--------------------------------------- BOOTCS
- */
-#define CONFIG_SYS_SC520_BOOTCS_PAR            0x8a01f800
-
-/*-----------------------------------------------------------------------
- * Cache-As-RAM (Targets Boot Flash)
- *
- * 100 1 0 0 0 0001111 011001001000000000 }- 0x903d9200
- * \ / | | | | \--+--/ \-------+--------/
- *  |  | | | |    |            +------------ Start at 0x19200000
- *  |  | | | |    +------------------------- 64k Region Size
- *  |  | | | |                               ((15 + 1) * 4kB)
- *  |  | | | +------------------------------ 4kB Page Size
- *  |  | | +-------------------------------- Writes Enabled
- *  |  | +---------------------------------- Caching Enabled
- *  |  +------------------------------------ Execution Prevented
- *  +--------------------------------------- BOOTCS
- */
-#define CONFIG_SYS_SC520_CAR_PAR               0x903d9200
-
-/*-----------------------------------------------------------------------
- * PAR for Low Level I/O (LEDs, Hex Switches etc) - 33 Bytes @ 0x1000, GPCS6
- *
- * 001 110 0 000100000 0001000000000000 }- 0x38201000
- * \ / \ / | \---+---/ \------+-------/
- *  |   |  |     |            +----------- Start at 0x00001000
- *  |   |  |     +------------------------ 33 Bytes (0x20 + 1)
- *  |   |  +------------------------------ Ignored
- *  |   +--------------------------------- GPCS6
- *  +------------------------------------- GP Bus I/O
- */
-#define CONFIG_SYS_SC520_LLIO_PAR              0x38201000
-
-/*-----------------------------------------------------------------------
- * PAR for Compact Flash Port #1 - 4kB @ 0x200000000, CS5
- * PAR for Compact Flash Port #2 - 4kB @ 0x200010000, CS7
- *
- * 010 101 0 0000000 100000000000000000 }- 0x54020000
- * 010 111 0 0000000 100000000000000001 }- 0x5c020001
- * \ / \ / | \--+--/ \-------+--------/
- *  |   |  |    |            +------------ Start at 0x200000000
- *  |   |  |    |                                   0x200010000
- *  |   |  |    +------------------------- 4kB Region Size
- *  |   |  |                               ((0 + 1) * 4kB)
- *  |   |  +------------------------------ 4k Page Size
- *  |   +--------------------------------- GPCS5
- *  |                                      GPCS7
- *  +------------------------------------- GP Bus Memory
- */
-#define CONFIG_SYS_SC520_CF1_PAR               0x54020000
-#define CONFIG_SYS_SC520_CF2_PAR               0x5c020001
-
-/*-----------------------------------------------------------------------
- * PAR for Extra 16550 UART A - 8 bytes @ 0x013f8, GPCS0
- * PAR for Extra 16550 UART B - 8 bytes @ 0x012f8, GPCS3
- * PAR for Extra 16550 UART C - 8 bytes @ 0x011f8, GPCS4
- * PAR for Extra 16550 UART D - 8 bytes @ 0x010f8, GPCS5
- *
- * 001 000 0 000000111 0001001111111000 }- 0x200713f8
- * 001 011 0 000000111 0001001011111000 }- 0x2c0712f8
- * 001 011 0 000000111 0001001011111000 }- 0x300711f8
- * 001 011 0 000000111 0001001011111000 }- 0x340710f8
- * \ / \ / | \---+---/ \------+-------/
- *  |   |  |     |            +----------- Start at 0x013f8
- *  |   |  |     |                                  0x012f8
- *  |   |  |     |                                  0x011f8
- *  |   |  |     |                                  0x010f8
- *  |   |  |     +------------------------ 33 Bytes (32 + 1)
- *  |   |  +------------------------------ Ignored
- *  |   +--------------------------------- GPCS6
- *  +------------------------------------- GP Bus I/O
- */
-#define CONFIG_SYS_SC520_UARTA_PAR             0x200713f8
-#define CONFIG_SYS_SC520_UARTB_PAR             0x2c0712f8
-#define CONFIG_SYS_SC520_UARTC_PAR             0x300711f8
-#define CONFIG_SYS_SC520_UARTD_PAR             0x340710f8
-
-/*-----------------------------------------------------------------------
- * PAR for StrataFlash #1 - 16MB @ 0x10000000, ROMCS1
- * PAR for StrataFlash #2 - 16MB @ 0x11000000, ROMCS2
- *
- * 101 0 1 0 1 00011111111 01000000000000 }- 0xaa3fd000
- * 110 0 1 0 1 00011111111 01000100000000 }- 0xca3fd100
- * \ / | | | | \----+----/ \-----+------/
- *  |  | | | |      |            +---------- Start at 0x10000000
- *  |  | | | |      |                                 0x11000000
- *  |  | | | |      +----------------------- 16MB Region Size
- *  |  | | | |                               ((255 + 1) * 64kB)
- *  |  | | | +------------------------------ 64kB Page Size
- *  |  | | +-------------------------------- Writes Enabled
- *  |  | +---------------------------------- Caching Disabled
- *  |  +------------------------------------ Execution Enabled
- *  +--------------------------------------- ROMCS1
- *                                           ROMCS2
- */
-#define CONFIG_SYS_SC520_SF1_PAR               0xaa3fd000
-#define CONFIG_SYS_SC520_SF2_PAR               0xca3fd100
-
-/*-----------------------------------------------------------------------
- * PAR for SRAM #1 - 1MB @ 0x19000000, GPCS0
- * PAR for SRAM #2 - 1MB @ 0x19100000, GPCS3
- *
- * 010 000 1 00000001111 01100100000000 }- 0x4203d900
- * 010 011 1 00000001111 01100100010000 }- 0x4e03d910
- * \ / \ / | \----+----/ \-----+------/
- *  |   |  |      |            +---------- Start at 0x19000000
- *  |   |  |      |                                 0x19100000
- *  |   |  |      +----------------------- 1MB Region Size
- *  |   |  |                               ((15 + 1) * 64kB)
- *  |   |  +------------------------------ 64kB Page Size
- *  |   +--------------------------------- GPCS0
- *  |                                      GPCS3
- *  +------------------------------------- GP Bus Memory
- */
-#define CONFIG_SYS_SC520_SRAM1_PAR             0x4203d900
-#define CONFIG_SYS_SC520_SRAM2_PAR             0x4e03d910
-
-/*-----------------------------------------------------------------------
- * PAR for Dual-Port RAM - 4kB @ 0x18100000, GPCS4
- *
- * 010 100 0 00000000 11000000100000000 }- 0x50018100
- * \ / \ / | \---+--/ \-------+-------/
- *  |   |  |     |            +----------- Start at 0x18100000
- *  |   |  |     +------------------------ 4kB Region Size
- *  |   |  |                               ((0 + 1) * 4kB)
- *  |   |  +------------------------------ 4kB Page Size
- *  |   +--------------------------------- GPCS4
- *  +------------------------------------- GP Bus Memory
- */
-#define CONFIG_SYS_SC520_DPRAM_PAR             0x50018100
-
-#endif /* __CONFIG_H */