remove the v850 port
Adrian Bunk [Thu, 24 Jul 2008 04:28:50 +0000 (21:28 -0700)]
Trying to compile the v850 port brings many compile errors, one of them exists
since at least kernel 2.6.19.

There also seems to be noone willing to bring this port back into a usable
state.

This patch therefore removes the v850 port.

If anyone ever decides to revive the v850 port the code will still be
available from older kernels, and it wouldn't be impossible for the port to
reenter the kernel if it would become actively maintained again.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Acked-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

204 files changed:
MAINTAINERS
arch/v850/Kconfig [deleted file]
arch/v850/Kconfig.debug [deleted file]
arch/v850/Makefile [deleted file]
arch/v850/README [deleted file]
arch/v850/configs/rte-ma1-cb_defconfig [deleted file]
arch/v850/configs/rte-me2-cb_defconfig [deleted file]
arch/v850/configs/sim_defconfig [deleted file]
arch/v850/kernel/Makefile [deleted file]
arch/v850/kernel/anna-rom.ld [deleted file]
arch/v850/kernel/anna.c [deleted file]
arch/v850/kernel/anna.ld [deleted file]
arch/v850/kernel/as85ep1-rom.ld [deleted file]
arch/v850/kernel/as85ep1.c [deleted file]
arch/v850/kernel/as85ep1.ld [deleted file]
arch/v850/kernel/asm-offsets.c [deleted file]
arch/v850/kernel/bug.c [deleted file]
arch/v850/kernel/entry.S [deleted file]
arch/v850/kernel/fpga85e2c.c [deleted file]
arch/v850/kernel/fpga85e2c.ld [deleted file]
arch/v850/kernel/gbus_int.c [deleted file]
arch/v850/kernel/head.S [deleted file]
arch/v850/kernel/highres_timer.c [deleted file]
arch/v850/kernel/init_task.c [deleted file]
arch/v850/kernel/intv.S [deleted file]
arch/v850/kernel/irq.c [deleted file]
arch/v850/kernel/ma.c [deleted file]
arch/v850/kernel/mach.c [deleted file]
arch/v850/kernel/mach.h [deleted file]
arch/v850/kernel/me2.c [deleted file]
arch/v850/kernel/memcons.c [deleted file]
arch/v850/kernel/module.c [deleted file]
arch/v850/kernel/process.c [deleted file]
arch/v850/kernel/procfs.c [deleted file]
arch/v850/kernel/ptrace.c [deleted file]
arch/v850/kernel/rte_cb.c [deleted file]
arch/v850/kernel/rte_cb_leds.c [deleted file]
arch/v850/kernel/rte_cb_multi.c [deleted file]
arch/v850/kernel/rte_ma1_cb-rom.ld [deleted file]
arch/v850/kernel/rte_ma1_cb.c [deleted file]
arch/v850/kernel/rte_ma1_cb.ld [deleted file]
arch/v850/kernel/rte_mb_a_pci.c [deleted file]
arch/v850/kernel/rte_me2_cb.c [deleted file]
arch/v850/kernel/rte_me2_cb.ld [deleted file]
arch/v850/kernel/rte_nb85e_cb-multi.ld [deleted file]
arch/v850/kernel/rte_nb85e_cb.c [deleted file]
arch/v850/kernel/rte_nb85e_cb.ld [deleted file]
arch/v850/kernel/setup.c [deleted file]
arch/v850/kernel/signal.c [deleted file]
arch/v850/kernel/sim.c [deleted file]
arch/v850/kernel/sim.ld [deleted file]
arch/v850/kernel/sim85e2.c [deleted file]
arch/v850/kernel/sim85e2.ld [deleted file]
arch/v850/kernel/simcons.c [deleted file]
arch/v850/kernel/syscalls.c [deleted file]
arch/v850/kernel/teg.c [deleted file]
arch/v850/kernel/time.c [deleted file]
arch/v850/kernel/v850_ksyms.c [deleted file]
arch/v850/kernel/v850e2_cache.c [deleted file]
arch/v850/kernel/v850e_cache.c [deleted file]
arch/v850/kernel/v850e_intc.c [deleted file]
arch/v850/kernel/v850e_timer_d.c [deleted file]
arch/v850/kernel/v850e_utils.c [deleted file]
arch/v850/kernel/vmlinux.lds.S [deleted file]
arch/v850/lib/Makefile [deleted file]
arch/v850/lib/ashldi3.c [deleted file]
arch/v850/lib/ashrdi3.c [deleted file]
arch/v850/lib/checksum.c [deleted file]
arch/v850/lib/lshrdi3.c [deleted file]
arch/v850/lib/memcpy.c [deleted file]
arch/v850/lib/memset.c [deleted file]
arch/v850/lib/muldi3.c [deleted file]
arch/v850/lib/negdi2.c [deleted file]
drivers/serial/Kconfig
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
include/asm-v850/Kbuild [deleted file]
include/asm-v850/a.out.h [deleted file]
include/asm-v850/anna.h [deleted file]
include/asm-v850/as85ep1.h [deleted file]
include/asm-v850/asm.h [deleted file]
include/asm-v850/atomic.h [deleted file]
include/asm-v850/auxvec.h [deleted file]
include/asm-v850/bitops.h [deleted file]
include/asm-v850/bug.h [deleted file]
include/asm-v850/bugs.h [deleted file]
include/asm-v850/byteorder.h [deleted file]
include/asm-v850/cache.h [deleted file]
include/asm-v850/cacheflush.h [deleted file]
include/asm-v850/checksum.h [deleted file]
include/asm-v850/clinkage.h [deleted file]
include/asm-v850/cputime.h [deleted file]
include/asm-v850/current.h [deleted file]
include/asm-v850/delay.h [deleted file]
include/asm-v850/device.h [deleted file]
include/asm-v850/div64.h [deleted file]
include/asm-v850/dma-mapping.h [deleted file]
include/asm-v850/dma.h [deleted file]
include/asm-v850/elf.h [deleted file]
include/asm-v850/emergency-restart.h [deleted file]
include/asm-v850/entry.h [deleted file]
include/asm-v850/errno.h [deleted file]
include/asm-v850/fb.h [deleted file]
include/asm-v850/fcntl.h [deleted file]
include/asm-v850/flat.h [deleted file]
include/asm-v850/fpga85e2c.h [deleted file]
include/asm-v850/futex.h [deleted file]
include/asm-v850/gbus_int.h [deleted file]
include/asm-v850/hardirq.h [deleted file]
include/asm-v850/highres_timer.h [deleted file]
include/asm-v850/hw_irq.h [deleted file]
include/asm-v850/io.h [deleted file]
include/asm-v850/ioctl.h [deleted file]
include/asm-v850/ioctls.h [deleted file]
include/asm-v850/ipcbuf.h [deleted file]
include/asm-v850/irq.h [deleted file]
include/asm-v850/irq_regs.h [deleted file]
include/asm-v850/kdebug.h [deleted file]
include/asm-v850/kmap_types.h [deleted file]
include/asm-v850/kvm.h [deleted file]
include/asm-v850/linkage.h [deleted file]
include/asm-v850/local.h [deleted file]
include/asm-v850/ma.h [deleted file]
include/asm-v850/ma1.h [deleted file]
include/asm-v850/machdep.h [deleted file]
include/asm-v850/macrology.h [deleted file]
include/asm-v850/me2.h [deleted file]
include/asm-v850/mman.h [deleted file]
include/asm-v850/mmu.h [deleted file]
include/asm-v850/mmu_context.h [deleted file]
include/asm-v850/module.h [deleted file]
include/asm-v850/msgbuf.h [deleted file]
include/asm-v850/mutex.h [deleted file]
include/asm-v850/page.h [deleted file]
include/asm-v850/param.h [deleted file]
include/asm-v850/pci.h [deleted file]
include/asm-v850/percpu.h [deleted file]
include/asm-v850/pgalloc.h [deleted file]
include/asm-v850/pgtable.h [deleted file]
include/asm-v850/poll.h [deleted file]
include/asm-v850/posix_types.h [deleted file]
include/asm-v850/processor.h [deleted file]
include/asm-v850/ptrace.h [deleted file]
include/asm-v850/resource.h [deleted file]
include/asm-v850/rte_cb.h [deleted file]
include/asm-v850/rte_ma1_cb.h [deleted file]
include/asm-v850/rte_mb_a_pci.h [deleted file]
include/asm-v850/rte_me2_cb.h [deleted file]
include/asm-v850/rte_nb85e_cb.h [deleted file]
include/asm-v850/scatterlist.h [deleted file]
include/asm-v850/sections.h [deleted file]
include/asm-v850/segment.h [deleted file]
include/asm-v850/semaphore.h [deleted file]
include/asm-v850/sembuf.h [deleted file]
include/asm-v850/serial.h [deleted file]
include/asm-v850/setup.h [deleted file]
include/asm-v850/shmbuf.h [deleted file]
include/asm-v850/shmparam.h [deleted file]
include/asm-v850/sigcontext.h [deleted file]
include/asm-v850/siginfo.h [deleted file]
include/asm-v850/signal.h [deleted file]
include/asm-v850/sim.h [deleted file]
include/asm-v850/sim85e2.h [deleted file]
include/asm-v850/sim85e2c.h [deleted file]
include/asm-v850/sim85e2s.h [deleted file]
include/asm-v850/simsyscall.h [deleted file]
include/asm-v850/socket.h [deleted file]
include/asm-v850/sockios.h [deleted file]
include/asm-v850/stat.h [deleted file]
include/asm-v850/statfs.h [deleted file]
include/asm-v850/string.h [deleted file]
include/asm-v850/system.h [deleted file]
include/asm-v850/teg.h [deleted file]
include/asm-v850/termbits.h [deleted file]
include/asm-v850/termios.h [deleted file]
include/asm-v850/thread_info.h [deleted file]
include/asm-v850/timex.h [deleted file]
include/asm-v850/tlb.h [deleted file]
include/asm-v850/tlbflush.h [deleted file]
include/asm-v850/topology.h [deleted file]
include/asm-v850/types.h [deleted file]
include/asm-v850/uaccess.h [deleted file]
include/asm-v850/ucontext.h [deleted file]
include/asm-v850/unaligned.h [deleted file]
include/asm-v850/unistd.h [deleted file]
include/asm-v850/user.h [deleted file]
include/asm-v850/v850e.h [deleted file]
include/asm-v850/v850e2.h [deleted file]
include/asm-v850/v850e2_cache.h [deleted file]
include/asm-v850/v850e_cache.h [deleted file]
include/asm-v850/v850e_intc.h [deleted file]
include/asm-v850/v850e_timer_c.h [deleted file]
include/asm-v850/v850e_timer_d.h [deleted file]
include/asm-v850/v850e_uart.h [deleted file]
include/asm-v850/v850e_uarta.h [deleted file]
include/asm-v850/v850e_uartb.h [deleted file]
include/asm-v850/v850e_utils.h [deleted file]
include/linux/audit.h
include/linux/module.h
include/linux/serial_core.h
include/linux/syscalls.h
scripts/genksyms/genksyms.c
scripts/mod/file2alias.c
scripts/mod/mk_elfconfig.c

index 7ffd78c..7e5c7b0 100644 (file)
@@ -4131,9 +4131,6 @@ W:        http://www.uclinux.org/
 L:     uclinux-dev@uclinux.org  (subscribers-only)
 S:     Maintained
 
-UCLINUX FOR NEC V850
-P:     Miles Bader
-
 UCLINUX FOR RENESAS H8/300
 P:     Yoshinori Sato
 M:     ysato@users.sourceforge.jp
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
deleted file mode 100644 (file)
index 4379f43..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-#############################################################################
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-#############################################################################
-
-mainmenu "uClinux/v850 (w/o MMU) Kernel Configuration"
-
-config MMU
-               bool
-       default n
-config ZONE_DMA
-       bool
-       default y
-config RWSEM_GENERIC_SPINLOCK
-       bool
-       default y
-config RWSEM_XCHGADD_ALGORITHM
-       bool
-       default n
-config GENERIC_FIND_NEXT_BIT
-       bool
-       default y
-config GENERIC_HWEIGHT
-       bool
-       default y
-config GENERIC_CALIBRATE_DELAY
-       bool
-       default y
-
-config GENERIC_HARDIRQS
-       bool
-       default y
-
-config GENERIC_IRQ_PROBE
-       bool
-       default y
-
-config GENERIC_TIME
-       bool
-       default y
-
-config TIME_LOW_RES
-       bool
-       default y
-
-config ARCH_HAS_ILOG2_U32
-       bool
-       default n
-
-config ARCH_HAS_ILOG2_U64
-       bool
-       default n
-
-config ARCH_SUPPORTS_AOUT
-       def_bool y
-
-# Turn off some random 386 crap that can affect device config
-config ISA
-       bool
-       default n
-config ISAPNP
-       bool
-       default n
-config EISA
-       bool
-       default n
-config MCA
-       bool
-       default n
-
-
-#############################################################################
-#### v850-specific config
-
-# Define the architecture
-config V850
-       bool
-       default y
-       select HAVE_IDE
-
-menu "Processor type and features"
-
-   choice
-         prompt "Platform"
-         default GDB
-      config V850E_SIM
-            bool "GDB"
-      config RTE_CB_MA1
-            bool "RTE-V850E/MA1-CB"
-      config RTE_CB_NB85E
-            bool "RTE-V850E/NB85E-CB"
-      config RTE_CB_ME2
-            bool "RTE-V850E/ME2-CB"
-      config V850E_AS85EP1
-            bool "AS85EP1"
-      config V850E2_SIM85E2C
-            bool "sim85e2c"
-      config V850E2_SIM85E2S
-            bool "sim85e2s"
-      config V850E2_FPGA85E2C
-            bool "NA85E2C-FPGA"
-      config V850E2_ANNA
-            bool "Anna"
-   endchoice
-
-   #### V850E processor-specific config
-
-   # All CPUs currently supported use the v850e architecture
-   config V850E
-         bool
-         default y
-
-   # The RTE-V850E/MA1-CB is the only type of V850E/MA1 platform we
-   # currently support
-   config V850E_MA1
-         bool
-         depends on RTE_CB_MA1
-         default y
-   # Similarly for the RTE-V850E/NB85E-CB - V850E/TEG
-   config V850E_TEG
-         bool
-         depends on RTE_CB_NB85E
-         default y
-   # ... and the RTE-V850E/ME2-CB - V850E/ME2
-   config V850E_ME2
-         bool
-         depends on RTE_CB_ME2
-         default y
-
-
-   #### sim85e2-specific config
-
-   config V850E2_SIM85E2
-         bool
-         depends on V850E2_SIM85E2C || V850E2_SIM85E2S
-         default y
-
-
-   #### V850E2 processor-specific config
-
-   # V850E2 processors
-   config V850E2
-         bool
-         depends on V850E2_SIM85E2 || V850E2_FPGA85E2C || V850E2_ANNA
-         default y
-
-
-   #### RTE-CB platform-specific config
-
-   # Boards in the RTE-x-CB series
-   config RTE_CB
-         bool
-         depends on RTE_CB_MA1 || RTE_CB_NB85E || RTE_CB_ME2
-         default y
-
-   config RTE_CB_MULTI
-         bool
-         # RTE_CB_NB85E can either have multi ROM support or not, but
-         # other platforms (currently only RTE_CB_MA1) require it.
-         prompt "Multi monitor ROM support" if RTE_CB_NB85E
-         depends on RTE_CB_MA1 || RTE_CB_NB85E
-         default y
-
-   config RTE_CB_MULTI_DBTRAP
-         bool "Pass illegal insn trap / dbtrap to kernel"
-         depends on RTE_CB_MULTI
-         default n
-
-   config RTE_CB_MA1_KSRAM
-         bool "Kernel in SRAM (limits size of kernel)"
-         depends on RTE_CB_MA1 && RTE_CB_MULTI
-         default n
-
-   config RTE_MB_A_PCI
-         bool "Mother-A PCI support"
-         depends on RTE_CB
-         default y
-
-   # The GBUS is used to talk to the RTE-MOTHER-A board
-   config RTE_GBUS_INT
-         bool
-         depends on RTE_MB_A_PCI
-         default y
-
-   # The only PCI bus we support is on the RTE-MOTHER-A board
-   config PCI
-         bool
-         default RTE_MB_A_PCI
-
-   #### Some feature-specific configs
-
-   # Everything except for the GDB simulator uses the same interrupt controller
-   config V850E_INTC
-         bool
-         default !V850E_SIM
-
-   # Everything except for the various simulators uses the "Timer D" unit
-   config V850E_TIMER_D
-         bool
-         default !V850E_SIM && !V850E2_SIM85E2
-
-   # Cache control used on some v850e1 processors
-   config V850E_CACHE
-          bool
-         default V850E_TEG || V850E_ME2
-
-   # Cache control used on v850e2 processors; I think this should
-   # actually apply to more, but currently only the SIM85E2S uses it
-   config V850E2_CACHE
-         bool
-         default V850E2_SIM85E2S
-
-   config NO_CACHE
-         bool
-         default !V850E_CACHE && !V850E2_CACHE
-
-   # HZ depends on the platform
-   config HZ
-         int
-         default 24  if V850E_SIM || V850E2_SIM85E2
-         default 122 if V850E2_FPGA85E2C
-         default 100
-
-   #### Misc config
-
-   config ROM_KERNEL
-         bool "Kernel in ROM"
-         depends on V850E2_ANNA || V850E_AS85EP1 || RTE_CB_ME2
-
-   # Some platforms pre-zero memory, in which case the kernel doesn't need to
-   config ZERO_BSS
-         bool
-         depends on !V850E2_SIM85E2C
-         default y
-
-   # The crappy-ass zone allocator requires that the start of allocatable
-   # memory be aligned to the largest possible allocation.
-   config FORCE_MAX_ZONEORDER
-         int
-         default 8 if V850E2_SIM85E2C || V850E2_FPGA85E2C
-
-   config V850E_HIGHRES_TIMER
-         bool "High resolution timer support"
-         depends on V850E_TIMER_D
-   config TIME_BOOTUP
-         bool "Time bootup"
-         depends on V850E_HIGHRES_TIMER
-
-   config RESET_GUARD
-         bool "Reset Guard"
-
-source "mm/Kconfig"
-
-endmenu
-
-
-#############################################################################
-
-source init/Kconfig
-
-#############################################################################
-
-menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
-
-#    config PCI
-#         bool "PCI support"
-#         help
-#           Support for PCI bus.
-
-source "drivers/pci/Kconfig"
-
-source "drivers/pcmcia/Kconfig"
-
-source "drivers/pci/hotplug/Kconfig"
-
-endmenu
-
-menu "Executable file formats"
-
-source "fs/Kconfig.binfmt"
-
-endmenu
-
-source "net/Kconfig"
-
-#############################################################################
-
-source "drivers/base/Kconfig"
-
-source drivers/mtd/Kconfig
-
-source drivers/parport/Kconfig
-
-#source drivers/pnp/Kconfig
-
-source drivers/block/Kconfig
-
-#############################################################################
-
-menu "Disk device support"
-
-source "drivers/ide/Kconfig"
-
-source "drivers/scsi/Kconfig"
-
-endmenu
-
-#############################################################################
-
-
-source "drivers/md/Kconfig"
-
-source "drivers/message/fusion/Kconfig"
-
-source "drivers/ieee1394/Kconfig"
-
-source "drivers/message/i2o/Kconfig"
-
-source "drivers/net/Kconfig"
-
-source "drivers/isdn/Kconfig"
-
-#source "drivers/telephony/Kconfig"
-
-#
-# input before char - char/joystick depends on it. As does USB.
-#
-source "drivers/input/Kconfig"
-
-source "drivers/char/Kconfig"
-
-#source drivers/misc/Config.in
-source "drivers/media/Kconfig"
-
-source "fs/Kconfig"
-
-source "drivers/video/Kconfig"
-
-source "sound/Kconfig"
-
-source "drivers/usb/Kconfig"
-
-source "arch/v850/Kconfig.debug"
-
-source "security/Kconfig"
-
-source "crypto/Kconfig"
-
-source "lib/Kconfig"
-
-#############################################################################
diff --git a/arch/v850/Kconfig.debug b/arch/v850/Kconfig.debug
deleted file mode 100644 (file)
index 4acfb9c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-menu "Kernel hacking"
-
-source "lib/Kconfig.debug"
-
-config NO_KERNEL_MSG
-       bool "Suppress Kernel BUG Messages"
-       help
-         Do not output any debug BUG messages within the kernel.
-
-endmenu
diff --git a/arch/v850/Makefile b/arch/v850/Makefile
deleted file mode 100644 (file)
index 8b629df..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# arch/v850/Makefile
-#
-#  Copyright (C) 2001,02,03,05  NEC Corporation
-#  Copyright (C) 2001,02,03,05  Miles Bader <miles@gnu.org>
-#
-# This file is included by the global makefile so that you can add your own
-# architecture-specific flags and dependencies. Remember to do have actions
-# for "archclean" and "archdep" for cleaning up and making dependencies for
-# this architecture
-#
-# This file is subject to the terms and conditions of the GNU General Public
-# License.  See the file "COPYING" in the main directory of this archive
-# for more details.
-#
-
-arch_dir = arch/v850
-
-KBUILD_CFLAGS += -mv850e
-# r16 is a fixed pointer to the current task
-KBUILD_CFLAGS += -ffixed-r16 -mno-prolog-function
-KBUILD_CFLAGS += -fno-builtin
-KBUILD_CFLAGS += -D__linux__ -DUTS_SYSNAME=\"uClinux\"
-
-# By default, build a kernel that runs on the gdb v850 simulator.
-KBUILD_DEFCONFIG := sim_defconfig
-
-# This prevents the linker from consolidating the .gnu.linkonce.this_module
-# section into .text (which the v850 default linker script for -r does for
-# some reason)
-LDFLAGS_MODULE += --unique=.gnu.linkonce.this_module
-
-OBJCOPY_FLAGS_BLOB := -I binary -O elf32-little -B v850e
-
-
-head-y := $(arch_dir)/kernel/head.o $(arch_dir)/kernel/init_task.o
-core-y += $(arch_dir)/kernel/
-libs-y += $(arch_dir)/lib/
-
-
-# Deal with the initial contents of the root device
-ifdef ROOT_FS_IMAGE
-core-y += root_fs_image.o
-
-# Because the kernel build-system erases all explicit .o build rules, we
-# have to use an intermediate target to fool it into building for us.
-# This results in it being built anew each time, but that's alright.
-root_fs_image.o: root_fs_image_force
-
-root_fs_image_force: $(ROOT_FS_IMAGE)
-       $(OBJCOPY) $(OBJCOPY_FLAGS_BLOB) --rename-section .data=.root,alloc,load,readonly,data,contents $< root_fs_image.o
-endif
-
-CLEAN_FILES += root_fs_image.o
diff --git a/arch/v850/README b/arch/v850/README
deleted file mode 100644 (file)
index 12f7f7a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-This port to the NEC V850E processor supports the following platforms:
-
-   "sim"
-       The gdb v850e simulator (CONFIG_V850E_SIM).
-
-   "rte-ma1-cb"
-       The Midas labs RTE-V850E/MA1-CB and RTE-V850E/NB85E-CB evaluation
-       boards (CONFIG_RTE_CB_MA1 and CONFIG_RTE_CB_NB85E).  This support
-       has only been tested when running with the Multi-debugger monitor
-       ROM (for the Green Hills Multi debugger).  The optional NEC
-       Solution Gear RTE-MOTHER-A motherboard is also supported, which
-       allows PCI boards to be used (CONFIG_RTE_MB_A_PCI).
-
-   "rte-me2-cb"
-       The Midas labs RTE-V850E/ME2-CB evaluation board (CONFIG_RTE_CB_ME2).
-       This has only been tested using a kernel downloaded via an ICE
-       connection using the Multi debugger.  Support for the RTE-MOTHER-A is
-       present, but hasn't been tested (unlike the other Midas labs cpu
-       boards, the RTE-V850E/ME2-CB includes an ethernet adaptor).
-
-   "as85ep1"
-       The NEC AS85EP1 V850E evaluation chip/board (CONFIG_V850E_AS85EP1).
-
-   "anna"
-       The NEC `Anna' (board/chip) implementation of the V850E2 processor
-       (CONFIG_V850E2_ANNA).
-
-   "sim85e2c", "sim85e2s"
-       The sim85e2c and sim85e2s simulators, which are verilog simulations
-       of the V850E2 NA85E2C/NA85E2S cpu cores (CONFIG_V850E2_SIM85E2C and
-       CONFIG_V850E2_SIM85E2S).
-
-   "fpga85e2c"
-       A FPGA implementation of the V850E2 NA85E2C cpu core
-       (CONFIG_V850E2_FPGA85E2C).
-
-To get a default kernel configuration for a particular platform, you can
-use a <platform>_defconfig make target (e.g., "make rte-me2-cb_defconfig");
-to see which default configurations are possible, look in the directory
-"arch/v850/configs".
-
-Porting to anything with a V850E/MA1 or MA2 processor should be simple.
-See the file <asm-v850/machdep.h> and the files it includes for an example of
-how to add platform/chip-specific support.
diff --git a/arch/v850/configs/rte-ma1-cb_defconfig b/arch/v850/configs/rte-ma1-cb_defconfig
deleted file mode 100644 (file)
index 1a5beda..0000000
+++ /dev/null
@@ -1,617 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.13-uc0
-# Fri Sep  2 13:54:27 2005
-#
-# CONFIG_MMU is not set
-# CONFIG_UID16 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_ISA is not set
-# CONFIG_ISAPNP is not set
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-CONFIG_V850=y
-
-#
-# Processor type and features
-#
-# CONFIG_V850E_SIM is not set
-CONFIG_RTE_CB_MA1=y
-# CONFIG_RTE_CB_NB85E is not set
-# CONFIG_RTE_CB_ME2 is not set
-# CONFIG_V850E_AS85EP1 is not set
-# CONFIG_V850E2_SIM85E2C is not set
-# CONFIG_V850E2_SIM85E2S is not set
-# CONFIG_V850E2_FPGA85E2C is not set
-# CONFIG_V850E2_ANNA is not set
-CONFIG_V850E=y
-CONFIG_V850E_MA1=y
-CONFIG_RTE_CB=y
-CONFIG_RTE_CB_MULTI=y
-CONFIG_RTE_CB_MULTI_DBTRAP=y
-# CONFIG_RTE_CB_MA1_KSRAM is not set
-CONFIG_RTE_MB_A_PCI=y
-CONFIG_RTE_GBUS_INT=y
-CONFIG_PCI=y
-CONFIG_V850E_INTC=y
-CONFIG_V850E_TIMER_D=y
-# CONFIG_V850E_CACHE is not set
-# CONFIG_V850E2_CACHE is not set
-CONFIG_NO_CACHE=y
-CONFIG_ZERO_BSS=y
-# CONFIG_V850E_HIGHRES_TIMER is not set
-# CONFIG_RESET_GUARD is not set
-CONFIG_LARGE_ALLOCS=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-
-#
-# Code maturity level options
-#
-# CONFIG_EXPERIMENTAL is not set
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_SYSCTL is not set
-# CONFIG_AUDIT is not set
-# CONFIG_HOTPLUG is not set
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-# CONFIG_PCI_LEGACY_PROC is not set
-# CONFIG_PCI_NAMES is not set
-# CONFIG_PCI_DEBUG is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_FLAT=y
-# CONFIG_BINFMT_ZFLAT is not set
-# CONFIG_BINFMT_SHARED_FLAT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-# CONFIG_PACKET is not set
-# CONFIG_UNIX is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_IP_TCPDIAG is not set
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_BIC=y
-# CONFIG_IPV6 is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_PARTITIONS is not set
-
-#
-# User Modules And Translation Layers
-#
-# CONFIG_MTD_CHAR is not set
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-CONFIG_MTD_SLRAM=y
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_RAM is not set
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_CDROM_PKTCDVD is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# Disk device support
-#
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_SCSI is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NET_VENDOR_SMC is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_NE2000 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_DGRS is not set
-CONFIG_EEPRO100=y
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_V850E_UART=y
-CONFIG_V850E_UART_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# File systems
-#
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-
-#
-# XFS support
-#
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-CONFIG_ROMFS_FS=y
-# CONFIG_MAGIC_ROM_PTR is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-# CONFIG_MSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_JFFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-# CONFIG_NLS is not set
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-# CONFIG_USB is not set
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_MAGIC_SYSRQ is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_FS is not set
-# CONFIG_NO_KERNEL_MSG is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC32 is not set
-# CONFIG_LIBCRC32C is not set
diff --git a/arch/v850/configs/rte-me2-cb_defconfig b/arch/v850/configs/rte-me2-cb_defconfig
deleted file mode 100644 (file)
index 15e6664..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.13-uc0
-# Fri Sep  2 13:47:50 2005
-#
-# CONFIG_MMU is not set
-# CONFIG_UID16 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_ISA is not set
-# CONFIG_ISAPNP is not set
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-CONFIG_V850=y
-
-#
-# Processor type and features
-#
-# CONFIG_V850E_SIM is not set
-# CONFIG_RTE_CB_MA1 is not set
-# CONFIG_RTE_CB_NB85E is not set
-CONFIG_RTE_CB_ME2=y
-# CONFIG_V850E_AS85EP1 is not set
-# CONFIG_V850E2_SIM85E2C is not set
-# CONFIG_V850E2_SIM85E2S is not set
-# CONFIG_V850E2_FPGA85E2C is not set
-# CONFIG_V850E2_ANNA is not set
-CONFIG_V850E=y
-CONFIG_V850E_ME2=y
-CONFIG_RTE_CB=y
-# CONFIG_RTE_MB_A_PCI is not set
-# CONFIG_PCI is not set
-CONFIG_V850E_INTC=y
-CONFIG_V850E_TIMER_D=y
-CONFIG_V850E_CACHE=y
-# CONFIG_V850E2_CACHE is not set
-# CONFIG_NO_CACHE is not set
-# CONFIG_ROM_KERNEL is not set
-CONFIG_ZERO_BSS=y
-# CONFIG_V850E_HIGHRES_TIMER is not set
-# CONFIG_RESET_GUARD is not set
-CONFIG_LARGE_ALLOCS=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-
-#
-# Code maturity level options
-#
-# CONFIG_EXPERIMENTAL is not set
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_SYSCTL is not set
-# CONFIG_HOTPLUG is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_FLAT=y
-# CONFIG_BINFMT_ZFLAT is not set
-# CONFIG_BINFMT_SHARED_FLAT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Networking
-#
-# CONFIG_NET is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_PARTITIONS is not set
-
-#
-# User Modules And Translation Layers
-#
-# CONFIG_MTD_CHAR is not set
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_SLRAM=y
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_RAM is not set
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_CDROM_PKTCDVD is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
-
-#
-# Disk device support
-#
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_SCSI is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# I2O device support
-#
-
-#
-# Network device support
-#
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-
-#
-# ISDN subsystem
-#
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=1
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_V850E_UART is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-
-#
-# File systems
-#
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-
-#
-# XFS support
-#
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-CONFIG_ROMFS_FS=y
-# CONFIG_MAGIC_ROM_PTR is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-# CONFIG_MSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_JFFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-# CONFIG_NLS is not set
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB_ARCH_HAS_HCD is not set
-# CONFIG_USB_ARCH_HAS_OHCI is not set
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_MAGIC_SYSRQ is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_FS is not set
-# CONFIG_NO_KERNEL_MSG is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC32 is not set
-# CONFIG_LIBCRC32C is not set
diff --git a/arch/v850/configs/sim_defconfig b/arch/v850/configs/sim_defconfig
deleted file mode 100644 (file)
index f31ba73..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.13-uc0
-# Fri Sep  2 13:36:43 2005
-#
-# CONFIG_MMU is not set
-# CONFIG_UID16 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_ISA is not set
-# CONFIG_ISAPNP is not set
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-CONFIG_V850=y
-
-#
-# Processor type and features
-#
-CONFIG_V850E_SIM=y
-# CONFIG_RTE_CB_MA1 is not set
-# CONFIG_RTE_CB_NB85E is not set
-# CONFIG_RTE_CB_ME2 is not set
-# CONFIG_V850E_AS85EP1 is not set
-# CONFIG_V850E2_SIM85E2C is not set
-# CONFIG_V850E2_SIM85E2S is not set
-# CONFIG_V850E2_FPGA85E2C is not set
-# CONFIG_V850E2_ANNA is not set
-CONFIG_V850E=y
-# CONFIG_PCI is not set
-# CONFIG_V850E_INTC is not set
-# CONFIG_V850E_TIMER_D is not set
-# CONFIG_V850E_CACHE is not set
-# CONFIG_V850E2_CACHE is not set
-CONFIG_NO_CACHE=y
-CONFIG_ZERO_BSS=y
-# CONFIG_RESET_GUARD is not set
-CONFIG_LARGE_ALLOCS=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-
-#
-# Code maturity level options
-#
-# CONFIG_EXPERIMENTAL is not set
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_SYSCTL is not set
-# CONFIG_HOTPLUG is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_FLAT=y
-# CONFIG_BINFMT_ZFLAT is not set
-# CONFIG_BINFMT_SHARED_FLAT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Networking
-#
-# CONFIG_NET is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_PARTITIONS is not set
-
-#
-# User Modules And Translation Layers
-#
-# CONFIG_MTD_CHAR is not set
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_SLRAM=y
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_RAM is not set
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_CDROM_PKTCDVD is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
-
-#
-# Disk device support
-#
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_SCSI is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# I2O device support
-#
-
-#
-# Network device support
-#
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-
-#
-# ISDN subsystem
-#
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-
-#
-# File systems
-#
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-
-#
-# XFS support
-#
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-CONFIG_ROMFS_FS=y
-# CONFIG_MAGIC_ROM_PTR is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-# CONFIG_MSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_JFFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-# CONFIG_NLS is not set
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB_ARCH_HAS_HCD is not set
-# CONFIG_USB_ARCH_HAS_OHCI is not set
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_MAGIC_SYSRQ is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_FS is not set
-# CONFIG_NO_KERNEL_MSG is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC32 is not set
-# CONFIG_LIBCRC32C is not set
diff --git a/arch/v850/kernel/Makefile b/arch/v850/kernel/Makefile
deleted file mode 100644 (file)
index da5889c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# arch/v850/kernel/Makefile
-#
-#  Copyright (C) 2001,02,03  NEC Electronics Corporation
-#  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
-#
-# This file is subject to the terms and conditions of the GNU General Public
-# License.  See the file "COPYING" in the main directory of this archive
-# for more details.
-#
-
-extra-y := head.o init_task.o vmlinux.lds
-
-obj-y += intv.o entry.o process.o syscalls.o time.o setup.o \
-        signal.o irq.o mach.o ptrace.o bug.o
-obj-$(CONFIG_MODULES)          += module.o v850_ksyms.o
-# chip-specific code
-obj-$(CONFIG_V850E_MA1)                += ma.o
-obj-$(CONFIG_V850E_ME2)                += me2.o
-obj-$(CONFIG_V850E_TEG)                += teg.o
-obj-$(CONFIG_V850E_AS85EP1)    += as85ep1.o
-obj-$(CONFIG_V850E2_ANNA)      += anna.o
-# platform-specific code
-obj-$(CONFIG_V850E_SIM)                += sim.o simcons.o
-obj-$(CONFIG_V850E2_SIM85E2)   += sim85e2.o memcons.o
-obj-$(CONFIG_V850E2_FPGA85E2C) += fpga85e2c.o memcons.o
-obj-$(CONFIG_RTE_CB)           += rte_cb.o rte_cb_leds.o
-obj-$(CONFIG_RTE_CB_MA1)       += rte_ma1_cb.o
-obj-$(CONFIG_RTE_CB_ME2)       += rte_me2_cb.o
-obj-$(CONFIG_RTE_CB_NB85E)     += rte_nb85e_cb.o
-obj-$(CONFIG_RTE_CB_MULTI)     += rte_cb_multi.o
-obj-$(CONFIG_RTE_MB_A_PCI)     += rte_mb_a_pci.o
-obj-$(CONFIG_RTE_GBUS_INT)     += gbus_int.o
-# feature-specific code
-obj-$(CONFIG_V850E_INTC)       += v850e_intc.o
-obj-$(CONFIG_V850E_TIMER_D)    += v850e_timer_d.o v850e_utils.o
-obj-$(CONFIG_V850E_CACHE)      += v850e_cache.o
-obj-$(CONFIG_V850E2_CACHE)     += v850e2_cache.o
-obj-$(CONFIG_V850E_HIGHRES_TIMER) += highres_timer.o
-obj-$(CONFIG_PROC_FS)          += procfs.o
diff --git a/arch/v850/kernel/anna-rom.ld b/arch/v850/kernel/anna-rom.ld
deleted file mode 100644 (file)
index 7c54e7e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Linker script for the Midas labs Anna V850E2 evaluation board
-   (CONFIG_V850E2_ANNA), with kernel in ROM (CONFIG_ROM_KERNEL).  */
-
-MEMORY {
-       /* 8MB of flash ROM.  */
-       ROM   : ORIGIN = 0,          LENGTH = 0x00800000
-
-       /* 1MB of static RAM.  This memory is mirrored 64 times.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = SRAM_SIZE
-       /* 64MB of DRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-SECTIONS {
-       ROMK_SECTIONS(ROM, SRAM)
-}
diff --git a/arch/v850/kernel/anna.c b/arch/v850/kernel/anna.c
deleted file mode 100644 (file)
index 5978a25..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * arch/v850/kernel/anna.c -- Anna V850E2 evaluation chip/board
- *
- *  Copyright (C) 2002,03  NEC Electronics Corporation
- *  Copyright (C) 2002,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/bootmem.h>
-#include <linux/major.h>
-#include <linux/irq.h>
-
-#include <asm/machdep.h>
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/v850e_timer_d.h>
-#include <asm/v850e_uart.h>
-
-#include "mach.h"
-
-
-/* SRAM and SDRAM are vaguely contiguous (with a big hole in between; see
-   mach_reserve_bootmem for details); use both as one big area.  */
-#define RAM_START      SRAM_ADDR
-#define RAM_END                (SDRAM_ADDR + SDRAM_SIZE)
-
-/* The bits of this port are connected to an 8-LED bar-graph.  */
-#define LEDS_PORT      0
-
-
-static void anna_led_tick (void);
-
-
-void __init mach_early_init (void)
-{
-       ANNA_ILBEN    = 0;
-
-       V850E2_CSC(0) = 0x402F;
-       V850E2_CSC(1) = 0x4000;
-       V850E2_BPC    = 0;
-       V850E2_BSC    = 0xAAAA;
-       V850E2_BEC    = 0;
-
-#if 0
-       V850E2_BHC    = 0xFFFF; /* icache all memory, dcache all */
-#else
-       V850E2_BHC    = 0;      /* cache no memory */
-#endif
-       V850E2_BCT(0) = 0xB088;
-       V850E2_BCT(1) = 0x0008;
-       V850E2_DWC(0) = 0x0027;
-       V850E2_DWC(1) = 0;
-       V850E2_BCC    = 0x0006;
-       V850E2_ASC    = 0;
-       V850E2_LBS    = 0x0089;
-       V850E2_SCR(3) = 0x21A9;
-       V850E2_RFS(3) = 0x8121;
-
-       v850e_intc_disable_irqs ();
-}
-
-void __init mach_setup (char **cmdline)
-{
-       ANNA_PORT_PM (LEDS_PORT) = 0;   /* Make all LED pins output pins.  */
-       mach_tick = anna_led_tick;
-}
-
-void __init mach_get_physical_ram (unsigned long *ram_start,
-                                  unsigned long *ram_len)
-{
-       *ram_start = RAM_START;
-       *ram_len = RAM_END - RAM_START;
-}
-
-void __init mach_reserve_bootmem ()
-{
-       /* The space between SRAM and SDRAM is filled with duplicate
-          images of SRAM.  Prevent the kernel from using them.  */
-       reserve_bootmem (SRAM_ADDR + SRAM_SIZE,
-                        SDRAM_ADDR - (SRAM_ADDR + SRAM_SIZE),
-                        BOOTMEM_DEFAULT);
-}
-
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-
-void __init mach_sched_init (struct irqaction *timer_action)
-{
-       /* Start hardware timer.  */
-       v850e_timer_d_configure (0, HZ);
-       /* Install timer interrupt handler.  */
-       setup_irq (IRQ_INTCMD(0), timer_action);
-}
-
-static struct v850e_intc_irq_init irq_inits[] = {
-       { "IRQ", 0,             NUM_MACH_IRQS,  1, 7 },
-       { "PIN", IRQ_INTP(0),   IRQ_INTP_NUM,   1, 4 },
-       { "CCC", IRQ_INTCCC(0), IRQ_INTCCC_NUM, 1, 5 },
-       { "CMD", IRQ_INTCMD(0), IRQ_INTCMD_NUM, 1, 5 },
-       { "DMA", IRQ_INTDMA(0), IRQ_INTDMA_NUM, 1, 2 },
-       { "DMXER", IRQ_INTDMXER,1,              1, 2 },
-       { "SRE", IRQ_INTSRE(0), IRQ_INTSRE_NUM, 3, 3 },
-       { "SR",  IRQ_INTSR(0),  IRQ_INTSR_NUM,  3, 4 },
-       { "ST",  IRQ_INTST(0),  IRQ_INTST_NUM,  3, 5 },
-       { 0 }
-};
-#define NUM_IRQ_INITS (ARRAY_SIZE(irq_inits) - 1)
-
-static struct hw_interrupt_type hw_itypes[NUM_IRQ_INITS];
-
-void __init mach_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-
-void machine_restart (char *__unused)
-{
-#ifdef CONFIG_RESET_GUARD
-       disable_reset_guard ();
-#endif
-       asm ("jmp r0"); /* Jump to the reset vector.  */
-}
-
-void machine_halt (void)
-{
-#ifdef CONFIG_RESET_GUARD
-       disable_reset_guard ();
-#endif
-       local_irq_disable ();   /* Ignore all interrupts.  */
-       ANNA_PORT_IO(LEDS_PORT) = 0xAA; /* Note that we halted.  */
-       for (;;)
-               asm ("halt; nop; nop; nop; nop; nop");
-}
-
-void machine_power_off (void)
-{
-       machine_halt ();
-}
-
-/* Called before configuring an on-chip UART.  */
-void anna_uart_pre_configure (unsigned chan, unsigned cflags, unsigned baud)
-{
-       /* The Anna connects some general-purpose I/O pins on the CPU to
-          the RTS/CTS lines of UART 1's serial connection.  I/O pins P07
-          and P37 are RTS and CTS respectively.  */
-       if (chan == 1) {
-               ANNA_PORT_PM(0) &= ~0x80; /* P07 in output mode */
-               ANNA_PORT_PM(3) |=  0x80; /* P37 in input mode */
-       }
-}
-
-/* Minimum and maximum bounds for the moving upper LED boundary in the
-   clock tick display.  We can't use the last bit because it's used for
-   UART0's CTS output.  */
-#define MIN_MAX_POS 0
-#define MAX_MAX_POS 6
-
-/* There are MAX_MAX_POS^2 - MIN_MAX_POS^2 cycles in the animation, so if
-   we pick 6 and 0 as above, we get 49 cycles, which is when divided into
-   the standard 100 value for HZ, gives us an almost 1s total time.  */
-#define TICKS_PER_FRAME \
-       (HZ / (MAX_MAX_POS * MAX_MAX_POS - MIN_MAX_POS * MIN_MAX_POS))
-
-static void anna_led_tick ()
-{
-       static unsigned counter = 0;
-       
-       if (++counter == TICKS_PER_FRAME) {
-               static int pos = 0, max_pos = MAX_MAX_POS, dir = 1;
-
-               if (dir > 0 && pos == max_pos) {
-                       dir = -1;
-                       if (max_pos == MIN_MAX_POS)
-                               max_pos = MAX_MAX_POS;
-                       else
-                               max_pos--;
-               } else {
-                       if (dir < 0 && pos == 0)
-                               dir = 1;
-
-                       if (pos + dir <= max_pos) {
-                               /* Each bit of port 0 has a LED. */
-                               clear_bit (pos, &ANNA_PORT_IO(LEDS_PORT));
-                               pos += dir;
-                               set_bit (pos, &ANNA_PORT_IO(LEDS_PORT));
-                       }
-               }
-
-               counter = 0;
-       }
-}
diff --git a/arch/v850/kernel/anna.ld b/arch/v850/kernel/anna.ld
deleted file mode 100644 (file)
index df7f80f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Linker script for the Midas labs Anna V850E2 evaluation board
-   (CONFIG_V850E2_ANNA).  */
-
-MEMORY {
-       /* 256KB of internal memory (followed by one mirror).  */
-       iMEM0 : ORIGIN = 0,          LENGTH = 0x00040000
-       /* 256KB of internal memory (followed by one mirror).  */
-       iMEM1 : ORIGIN = 0x00040000, LENGTH = 0x00040000
-
-       /* 1MB of static RAM.  This memory is mirrored 64 times.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = SRAM_SIZE
-       /* 64MB of DRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-SECTIONS {
-       .intv : { INTV_CONTENTS } > iMEM0
-       .sram : { RAMK_KRAM_CONTENTS } > SRAM
-       .root : { ROOT_FS_CONTENTS } > SDRAM
-}
diff --git a/arch/v850/kernel/as85ep1-rom.ld b/arch/v850/kernel/as85ep1-rom.ld
deleted file mode 100644 (file)
index fe2a9a3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Linker script for the NEC AS85EP1 V850E evaluation board
-   (CONFIG_V850E_AS85EP1), with kernel in ROM (CONFIG_ROM_KERNEL).  */
-
-MEMORY {
-       /* 4MB of flash ROM.  */
-       ROM   : ORIGIN = 0,          LENGTH = 0x00400000
-
-       /* 1MB of static RAM.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = SRAM_SIZE
-
-       /* About 58MB of DRAM.  This can actually be at one of two
-          positions, determined by jumper JP3; we have to use the first
-          position because the second is partially out of processor
-          instruction addressing range (though in the second position
-          there's actually 64MB available).  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-SECTIONS {
-       ROMK_SECTIONS(ROM, SRAM)
-}
diff --git a/arch/v850/kernel/as85ep1.c b/arch/v850/kernel/as85ep1.c
deleted file mode 100644 (file)
index b525ecf..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * arch/v850/kernel/as85ep1.c -- AS85EP1 V850E evaluation chip/board
- *
- *  Copyright (C) 2002,03  NEC Electronics Corporation
- *  Copyright (C) 2002,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/bootmem.h>
-#include <linux/major.h>
-#include <linux/irq.h>
-
-#include <asm/machdep.h>
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/v850e_timer_d.h>
-#include <asm/v850e_uart.h>
-
-#include "mach.h"
-
-
-/* SRAM and SDRAM are vaguely contiguous (with a big hole in between; see
-   mach_reserve_bootmem for details); use both as one big area.  */
-#define RAM_START      SRAM_ADDR
-#define RAM_END                (SDRAM_ADDR + SDRAM_SIZE)
-
-/* The bits of this port are connected to an 8-LED bar-graph.  */
-#define LEDS_PORT      4
-
-
-static void as85ep1_led_tick (void);
-
-extern char _intv_copy_src_start, _intv_copy_src_end;
-extern char _intv_copy_dst_start;
-
-
-void __init mach_early_init (void)
-{
-#ifndef CONFIG_ROM_KERNEL
-       const u32 *src;
-       register u32 *dst asm ("ep");
-#endif
-
-       AS85EP1_CSC(0) = 0x0403;
-       AS85EP1_BCT(0) = 0xB8B8;
-       AS85EP1_DWC(0) = 0x0104;
-       AS85EP1_BCC    = 0x0012;
-       AS85EP1_ASC    = 0;
-       AS85EP1_LBS    = 0x00A9;
-
-       AS85EP1_PORT_PMC(6)  = 0xFF; /* valid A0,A1,A20-A25 */
-       AS85EP1_PORT_PMC(7)  = 0x0E; /* valid CS1-CS3       */
-       AS85EP1_PORT_PMC(9)  = 0xFF; /* valid D16-D23       */
-       AS85EP1_PORT_PMC(10) = 0xFF; /* valid D24-D31       */
-
-       AS85EP1_RFS(1) = 0x800c;
-       AS85EP1_RFS(3) = 0x800c;
-       AS85EP1_SCR(1) = 0x20A9;
-       AS85EP1_SCR(3) = 0x20A9;
-
-#ifndef CONFIG_ROM_KERNEL
-       /* The early chip we have is buggy, and writing the interrupt
-          vectors into low RAM may screw up, so for non-ROM kernels, we
-          only rely on the reset vector being downloaded, and copy the
-          rest of the interrupt vectors into place here.  The specific bug
-          is that writing address N, where (N & 0x10) == 0x10, will _also_
-          write to address (N - 0x10).  We avoid this (effectively) by
-          writing in 16-byte chunks backwards from the end.  */
-
-       AS85EP1_IRAMM = 0x3;    /* "write-mode" for the internal instruction memory */
-
-       src = (u32 *)(((u32)&_intv_copy_src_end - 1) & ~0xF);
-       dst = (u32 *)&_intv_copy_dst_start
-               + (src - (u32 *)&_intv_copy_src_start);
-       do {
-               u32 t0 = src[0], t1 = src[1], t2 = src[2], t3 = src[3];
-               dst[0] = t0; dst[1] = t1; dst[2] = t2; dst[3] = t3;
-               dst -= 4;
-               src -= 4;
-       } while (src > (u32 *)&_intv_copy_src_start);
-
-       AS85EP1_IRAMM = 0x0;    /* "read-mode" for the internal instruction memory */
-#endif /* !CONFIG_ROM_KERNEL */
-
-       v850e_intc_disable_irqs ();
-}
-
-void __init mach_setup (char **cmdline)
-{
-       AS85EP1_PORT_PMC (LEDS_PORT) = 0; /* Make the LEDs port an I/O port. */
-       AS85EP1_PORT_PM (LEDS_PORT) = 0; /* Make all the bits output pins.  */
-       mach_tick = as85ep1_led_tick;
-}
-
-void __init mach_get_physical_ram (unsigned long *ram_start,
-                                  unsigned long *ram_len)
-{
-       *ram_start = RAM_START;
-       *ram_len = RAM_END - RAM_START;
-}
-
-/* Convenience macros.  */
-#define SRAM_END       (SRAM_ADDR + SRAM_SIZE)
-#define SDRAM_END      (SDRAM_ADDR + SDRAM_SIZE)
-
-void __init mach_reserve_bootmem ()
-{
-       if (SDRAM_ADDR < RAM_END && SDRAM_ADDR > RAM_START)
-               /* We can't use the space between SRAM and SDRAM, so
-                  prevent the kernel from trying.  */
-               reserve_bootmem(SRAM_END, SDRAM_ADDR - SRAM_END,
-                               BOOTMEM_DEFAULT);
-}
-
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-
-void __init mach_sched_init (struct irqaction *timer_action)
-{
-       /* Start hardware timer.  */
-       v850e_timer_d_configure (0, HZ);
-       /* Install timer interrupt handler.  */
-       setup_irq (IRQ_INTCMD(0), timer_action);
-}
-
-static struct v850e_intc_irq_init irq_inits[] = {
-       { "IRQ", 0,             NUM_MACH_IRQS,  1, 7 },
-       { "CCC", IRQ_INTCCC(0), IRQ_INTCCC_NUM, 1, 5 },
-       { "CMD", IRQ_INTCMD(0), IRQ_INTCMD_NUM, 1, 5 },
-       { "SRE", IRQ_INTSRE(0), IRQ_INTSRE_NUM, 3, 3 },
-       { "SR",  IRQ_INTSR(0),  IRQ_INTSR_NUM,  3, 4 },
-       { "ST",  IRQ_INTST(0),  IRQ_INTST_NUM,  3, 5 },
-       { 0 }
-};
-#define NUM_IRQ_INITS (ARRAY_SIZE(irq_inits) - 1)
-
-static struct hw_interrupt_type hw_itypes[NUM_IRQ_INITS];
-
-void __init mach_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-
-void machine_restart (char *__unused)
-{
-#ifdef CONFIG_RESET_GUARD
-       disable_reset_guard ();
-#endif
-       asm ("jmp r0"); /* Jump to the reset vector.  */
-}
-
-void machine_halt (void)
-{
-#ifdef CONFIG_RESET_GUARD
-       disable_reset_guard ();
-#endif
-       local_irq_disable ();   /* Ignore all interrupts.  */
-       AS85EP1_PORT_IO (LEDS_PORT) = 0xAA;     /* Note that we halted.  */
-       for (;;)
-               asm ("halt; nop; nop; nop; nop; nop");
-}
-
-void machine_power_off (void)
-{
-       machine_halt ();
-}
-
-/* Called before configuring an on-chip UART.  */
-void as85ep1_uart_pre_configure (unsigned chan, unsigned cflags, unsigned baud)
-{
-       /* Make the shared uart/port pins be uart pins.  */
-       AS85EP1_PORT_PMC(3) |= (0x5 << chan);
-
-       /* The AS85EP1 connects some general-purpose I/O pins on the CPU to
-          the RTS/CTS lines of UART 1's serial connection.  I/O pins P53
-          and P54 are RTS and CTS respectively.  */
-       if (chan == 1) {
-               /* Put P53 & P54 in I/O port mode.  */
-               AS85EP1_PORT_PMC(5) &= ~0x18;
-               /* Make P53 an output, and P54 an input.  */
-               AS85EP1_PORT_PM(5) |=  0x10;
-       }
-}
-
-/* Minimum and maximum bounds for the moving upper LED boundary in the
-   clock tick display.  */
-#define MIN_MAX_POS 0
-#define MAX_MAX_POS 7
-
-/* There are MAX_MAX_POS^2 - MIN_MAX_POS^2 cycles in the animation, so if
-   we pick 6 and 0 as above, we get 49 cycles, which is when divided into
-   the standard 100 value for HZ, gives us an almost 1s total time.  */
-#define TICKS_PER_FRAME \
-       (HZ / (MAX_MAX_POS * MAX_MAX_POS - MIN_MAX_POS * MIN_MAX_POS))
-
-static void as85ep1_led_tick ()
-{
-       static unsigned counter = 0;
-       
-       if (++counter == TICKS_PER_FRAME) {
-               static int pos = 0, max_pos = MAX_MAX_POS, dir = 1;
-
-               if (dir > 0 && pos == max_pos) {
-                       dir = -1;
-                       if (max_pos == MIN_MAX_POS)
-                               max_pos = MAX_MAX_POS;
-                       else
-                               max_pos--;
-               } else {
-                       if (dir < 0 && pos == 0)
-                               dir = 1;
-
-                       if (pos + dir <= max_pos) {
-                               /* Each bit of port 0 has a LED. */
-                               set_bit (pos, &AS85EP1_PORT_IO(LEDS_PORT));
-                               pos += dir;
-                               clear_bit (pos, &AS85EP1_PORT_IO(LEDS_PORT));
-                       }
-               }
-
-               counter = 0;
-       }
-}
diff --git a/arch/v850/kernel/as85ep1.ld b/arch/v850/kernel/as85ep1.ld
deleted file mode 100644 (file)
index ef2c439..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Linker script for the NEC AS85EP1 V850E evaluation board
-   (CONFIG_V850E_AS85EP1).  */
-
-MEMORY {
-       /* 1MB of internal instruction memory. */
-       iMEM0 : ORIGIN = 0,          LENGTH = 0x00100000
-
-       /* 1MB of static RAM.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = SRAM_SIZE
-
-       /* About 58MB of DRAM.  This can actually be at one of two
-          positions, determined by jump JP3; we have to use the first
-          position because the second is partially out of processor
-          instruction addressing range (though in the second position
-          there's actually 64MB available).  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-SECTIONS {
-       .resetv : {
-               __intv_start = . ;
-                       *(.intv.reset)  /* Reset vector */
-       } > iMEM0
-
-       .sram : {
-               RAMK_KRAM_CONTENTS
-
-               /* We stick most of the interrupt vectors here; they'll be
-                  copied into the proper location by the early init code (we
-                  can't put them directly in the right place because of
-                  hardware bugs).  The vectors shouldn't need to be
-                  relocated, so we don't have to use `> ...  AT> ...' to
-                  split the load/vm addresses (and we can't because of
-                  problems with the loader).  */
-               . = ALIGN (0x10) ;
-               __intv_copy_src_start = . ;
-                       *(.intv.common) /* Vectors common to all v850e proc. */
-                       *(.intv.mach)   /* Machine-specific int. vectors.  */
-               . = ALIGN (0x10) ;
-               __intv_copy_src_end = . ;
-       } > SRAM
-
-       /* Where we end up putting the vectors.  */
-       __intv_copy_dst_start = 0x10 ;
-       __intv_copy_dst_end = __intv_copy_dst_start + (__intv_copy_src_end - __intv_copy_src_start) ;
-       __intv_end = __intv_copy_dst_end ;
-
-       .root : { ROOT_FS_CONTENTS } > SDRAM
-}
diff --git a/arch/v850/kernel/asm-offsets.c b/arch/v850/kernel/asm-offsets.c
deleted file mode 100644 (file)
index 581e698..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.
- */
-
-#include <linux/stddef.h>
-#include <linux/sched.h>
-#include <linux/kernel_stat.h>
-#include <linux/ptrace.h>
-#include <linux/hardirq.h>
-#include <linux/kbuild.h>
-
-#include <asm/irq.h>
-#include <asm/errno.h>
-
-int main (void)
-{
-       /* offsets into the task struct */
-       DEFINE (TASK_STATE, offsetof (struct task_struct, state));
-       DEFINE (TASK_FLAGS, offsetof (struct task_struct, flags));
-       DEFINE (TASK_PTRACE, offsetof (struct task_struct, ptrace));
-       DEFINE (TASK_BLOCKED, offsetof (struct task_struct, blocked));
-       DEFINE (TASK_THREAD, offsetof (struct task_struct, thread));
-       DEFINE (TASK_THREAD_INFO, offsetof (struct task_struct, stack));
-       DEFINE (TASK_MM, offsetof (struct task_struct, mm));
-       DEFINE (TASK_ACTIVE_MM, offsetof (struct task_struct, active_mm));
-       DEFINE (TASK_PID, offsetof (struct task_struct, pid));
-
-       /* offsets into the kernel_stat struct */
-       DEFINE (STAT_IRQ, offsetof (struct kernel_stat, irqs));
-
-
-       /* signal defines */
-       DEFINE (SIGSEGV, SIGSEGV);
-       DEFINE (SEGV_MAPERR, SEGV_MAPERR);
-       DEFINE (SIGTRAP, SIGTRAP);
-       DEFINE (SIGCHLD, SIGCHLD);
-       DEFINE (SIGILL, SIGILL);
-       DEFINE (TRAP_TRACE, TRAP_TRACE);
-
-       /* ptrace flag bits */
-       DEFINE (PT_PTRACED, PT_PTRACED);
-       DEFINE (PT_DTRACE, PT_DTRACE);
-
-       /* error values */
-       DEFINE (ENOSYS, ENOSYS);
-
-       /* clone flag bits */
-       DEFINE (CLONE_VFORK, CLONE_VFORK);
-       DEFINE (CLONE_VM, CLONE_VM);
-
-       return 0;
-}
diff --git a/arch/v850/kernel/bug.c b/arch/v850/kernel/bug.c
deleted file mode 100644 (file)
index c78cf75..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * arch/v850/kernel/bug.c -- Bug reporting functions
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/reboot.h>
-#include <linux/sched.h>
-#include <linux/module.h>
-
-#include <asm/errno.h>
-#include <asm/ptrace.h>
-#include <asm/processor.h>
-#include <asm/current.h>
-
-/* We should use __builtin_return_address, but it doesn't work in gcc-2.90
-   (which is currently our standard compiler on the v850).  */
-#define ret_addr() ({ register u32 lp asm ("lp"); lp; })
-#define stack_addr() ({ register u32 sp asm ("sp"); sp; })
-
-void __bug ()
-{
-       printk (KERN_CRIT "kernel BUG at PC 0x%x (SP ~0x%x)!\n",
-               ret_addr() - 4, /* - 4 for `jarl' */
-               stack_addr());
-       machine_halt ();
-}
-
-int bad_trap (int trap_num, struct pt_regs *regs)
-{
-       printk (KERN_CRIT
-               "unimplemented trap %d called at 0x%08lx, pid %d!\n",
-               trap_num, regs->pc, current->pid);
-       return -ENOSYS;
-}
-
-#ifdef CONFIG_RESET_GUARD
-void unexpected_reset (unsigned long ret_addr, unsigned long kmode,
-                      struct task_struct *task, unsigned long sp)
-{
-       printk (KERN_CRIT
-               "unexpected reset in %s mode, pid %d"
-               " (ret_addr = 0x%lx, sp = 0x%lx)\n",
-               kmode ? "kernel" : "user",
-               task ? task->pid : -1,
-               ret_addr, sp);
-
-       machine_halt ();
-}
-#endif /* CONFIG_RESET_GUARD */
-
-\f
-
-struct spec_reg_name {
-       const char *name;
-       int gpr;
-};
-
-struct spec_reg_name spec_reg_names[] = {
-       { "sp", GPR_SP },
-       { "gp", GPR_GP },
-       { "tp", GPR_TP },
-       { "ep", GPR_EP },
-       { "lp", GPR_LP },
-       { 0, 0 }
-};
-
-void show_regs (struct pt_regs *regs)
-{
-       int gpr_base, gpr_offs;
-
-       printk ("     pc 0x%08lx    psw 0x%08lx                       kernel_mode %d\n",
-               regs->pc, regs->psw, regs->kernel_mode);
-       printk ("   ctpc 0x%08lx  ctpsw 0x%08lx   ctbp 0x%08lx\n",
-               regs->ctpc, regs->ctpsw, regs->ctbp);
-
-       for (gpr_base = 0; gpr_base < NUM_GPRS; gpr_base += 4) {
-               for (gpr_offs = 0; gpr_offs < 4; gpr_offs++) {
-                       int gpr = gpr_base + gpr_offs;
-                       long val = regs->gpr[gpr];
-                       struct spec_reg_name *srn;
-
-                       for (srn = spec_reg_names; srn->name; srn++)
-                               if (srn->gpr == gpr)
-                                       break;
-
-                       if (srn->name)
-                               printk ("%7s 0x%08lx", srn->name, val);
-                       else
-                               printk ("    r%02d 0x%08lx", gpr, val);
-               }
-
-               printk ("\n");
-       }
-}
-
-/*
- * TASK is a pointer to the task whose backtrace we want to see (or NULL
- * for current task), SP is the stack pointer of the first frame that
- * should be shown in the back trace (or NULL if the entire call-chain of
- * the task should be shown).
- */
-void show_stack (struct task_struct *task, unsigned long *sp)
-{
-       unsigned long addr, end;
-
-       if (sp)
-               addr = (unsigned long)sp;
-       else if (task)
-               addr = task_sp (task);
-       else
-               addr = stack_addr ();
-
-       addr = addr & ~3;
-       end = (addr + THREAD_SIZE - 1) & THREAD_MASK;
-
-       while (addr < end) {
-               printk ("%8lX: ", addr);
-               while (addr < end) {
-                       printk (" %8lX", *(unsigned long *)addr);
-                       addr += sizeof (unsigned long);
-                       if (! (addr & 0xF))
-                               break;
-               }
-               printk ("\n");
-       }
-}
-
-void dump_stack ()
-{
-       show_stack (0, 0);
-}
-
-EXPORT_SYMBOL(dump_stack);
diff --git a/arch/v850/kernel/entry.S b/arch/v850/kernel/entry.S
deleted file mode 100644 (file)
index e4327a8..0000000
+++ /dev/null
@@ -1,1121 +0,0 @@
-/*
- * arch/v850/kernel/entry.S -- Low-level system-call handling, trap handlers,
- *     and context-switching
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/sys.h>
-
-#include <asm/entry.h>
-#include <asm/current.h>
-#include <asm/thread_info.h>
-#include <asm/clinkage.h>
-#include <asm/processor.h>
-#include <asm/irq.h>
-#include <asm/errno.h>
-
-#include <asm/asm-offsets.h>
-
-
-/* Make a slightly more convenient alias for C_SYMBOL_NAME.  */
-#define CSYM   C_SYMBOL_NAME
-
-
-/* The offset of the struct pt_regs in a state-save-frame on the stack.  */
-#define PTO    STATE_SAVE_PT_OFFSET
-
-
-/* Save argument registers to the state-save-frame pointed to by EP.  */
-#define SAVE_ARG_REGS                                                        \
-       sst.w   r6, PTO+PT_GPR(6)[ep];                                        \
-       sst.w   r7, PTO+PT_GPR(7)[ep];                                        \
-       sst.w   r8, PTO+PT_GPR(8)[ep];                                        \
-       sst.w   r9, PTO+PT_GPR(9)[ep]
-/* Restore argument registers from the state-save-frame pointed to by EP.  */
-#define RESTORE_ARG_REGS                                                     \
-       sld.w   PTO+PT_GPR(6)[ep], r6;                                        \
-       sld.w   PTO+PT_GPR(7)[ep], r7;                                        \
-       sld.w   PTO+PT_GPR(8)[ep], r8;                                        \
-       sld.w   PTO+PT_GPR(9)[ep], r9
-
-/* Save value return registers to the state-save-frame pointed to by EP.  */
-#define SAVE_RVAL_REGS                                                       \
-       sst.w   r10, PTO+PT_GPR(10)[ep];                                      \
-       sst.w   r11, PTO+PT_GPR(11)[ep]
-/* Restore value return registers from the state-save-frame pointed to by EP.  */
-#define RESTORE_RVAL_REGS                                                    \
-       sld.w   PTO+PT_GPR(10)[ep], r10;                                      \
-       sld.w   PTO+PT_GPR(11)[ep], r11
-
-
-#define SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS                                 \
-       sst.w   r1, PTO+PT_GPR(1)[ep];                                        \
-       sst.w   r5, PTO+PT_GPR(5)[ep]
-#define SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL                                  \
-       sst.w   r12, PTO+PT_GPR(12)[ep];                                      \
-       sst.w   r13, PTO+PT_GPR(13)[ep];                                      \
-       sst.w   r14, PTO+PT_GPR(14)[ep];                                      \
-       sst.w   r15, PTO+PT_GPR(15)[ep];                                      \
-       sst.w   r16, PTO+PT_GPR(16)[ep];                                      \
-       sst.w   r17, PTO+PT_GPR(17)[ep];                                      \
-       sst.w   r18, PTO+PT_GPR(18)[ep];                                      \
-       sst.w   r19, PTO+PT_GPR(19)[ep]
-#define RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS                                      \
-       sld.w   PTO+PT_GPR(1)[ep], r1;                                        \
-       sld.w   PTO+PT_GPR(5)[ep], r5
-#define RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL                               \
-       sld.w   PTO+PT_GPR(12)[ep], r12;                                      \
-       sld.w   PTO+PT_GPR(13)[ep], r13;                                      \
-       sld.w   PTO+PT_GPR(14)[ep], r14;                                      \
-       sld.w   PTO+PT_GPR(15)[ep], r15;                                      \
-       sld.w   PTO+PT_GPR(16)[ep], r16;                                      \
-       sld.w   PTO+PT_GPR(17)[ep], r17;                                      \
-       sld.w   PTO+PT_GPR(18)[ep], r18;                                      \
-       sld.w   PTO+PT_GPR(19)[ep], r19
-
-/* Save `call clobbered' registers to the state-save-frame pointed to by EP.  */
-#define SAVE_CALL_CLOBBERED_REGS                                             \
-       SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS;                                 \
-       SAVE_ARG_REGS;                                                        \
-       SAVE_RVAL_REGS;                                                       \
-       SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL
-/* Restore `call clobbered' registers from the state-save-frame pointed to
-   by EP.  */
-#define RESTORE_CALL_CLOBBERED_REGS                                          \
-       RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS;                              \
-       RESTORE_ARG_REGS;                                                     \
-       RESTORE_RVAL_REGS;                                                    \
-       RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL
-
-/* Save `call clobbered' registers except for the return-value registers
-   to the state-save-frame pointed to by EP.  */
-#define SAVE_CALL_CLOBBERED_REGS_NO_RVAL                                     \
-       SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS;                                 \
-       SAVE_ARG_REGS;                                                        \
-       SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL
-/* Restore `call clobbered' registers except for the return-value registers
-   from the state-save-frame pointed to by EP.  */
-#define RESTORE_CALL_CLOBBERED_REGS_NO_RVAL                                  \
-       RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS;                              \
-       RESTORE_ARG_REGS;                                                     \
-       RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL
-
-/* Save `call saved' registers to the state-save-frame pointed to by EP.  */
-#define SAVE_CALL_SAVED_REGS                                                 \
-       sst.w   r2, PTO+PT_GPR(2)[ep];                                        \
-       sst.w   r20, PTO+PT_GPR(20)[ep];                                      \
-       sst.w   r21, PTO+PT_GPR(21)[ep];                                      \
-       sst.w   r22, PTO+PT_GPR(22)[ep];                                      \
-       sst.w   r23, PTO+PT_GPR(23)[ep];                                      \
-       sst.w   r24, PTO+PT_GPR(24)[ep];                                      \
-       sst.w   r25, PTO+PT_GPR(25)[ep];                                      \
-       sst.w   r26, PTO+PT_GPR(26)[ep];                                      \
-       sst.w   r27, PTO+PT_GPR(27)[ep];                                      \
-       sst.w   r28, PTO+PT_GPR(28)[ep];                                      \
-       sst.w   r29, PTO+PT_GPR(29)[ep]
-/* Restore `call saved' registers from the state-save-frame pointed to by EP.  */
-#define RESTORE_CALL_SAVED_REGS                                                      \
-       sld.w   PTO+PT_GPR(2)[ep], r2;                                        \
-       sld.w   PTO+PT_GPR(20)[ep], r20;                                      \
-       sld.w   PTO+PT_GPR(21)[ep], r21;                                      \
-       sld.w   PTO+PT_GPR(22)[ep], r22;                                      \
-       sld.w   PTO+PT_GPR(23)[ep], r23;                                      \
-       sld.w   PTO+PT_GPR(24)[ep], r24;                                      \
-       sld.w   PTO+PT_GPR(25)[ep], r25;                                      \
-       sld.w   PTO+PT_GPR(26)[ep], r26;                                      \
-       sld.w   PTO+PT_GPR(27)[ep], r27;                                      \
-       sld.w   PTO+PT_GPR(28)[ep], r28;                                      \
-       sld.w   PTO+PT_GPR(29)[ep], r29
-
-
-/* Save the PC stored in the special register SAVEREG to the state-save-frame
-   pointed to by EP.  r19 is clobbered.  */
-#define SAVE_PC(savereg)                                                     \
-       stsr    SR_ ## savereg, r19;                                          \
-       sst.w   r19, PTO+PT_PC[ep]
-/* Restore the PC from the state-save-frame pointed to by EP, to the special
-   register SAVEREG.  LP is clobbered (it is used as a scratch register
-   because the POP_STATE macro restores it, and this macro is usually used
-   inside POP_STATE).  */
-#define RESTORE_PC(savereg)                                                  \
-       sld.w   PTO+PT_PC[ep], lp;                                            \
-       ldsr    lp, SR_ ## savereg
-/* Save the PSW register stored in the special register SAVREG to the
-   state-save-frame pointed to by EP.  r19 is clobbered.  */
-#define SAVE_PSW(savereg)                                                    \
-       stsr    SR_ ## savereg, r19;                                          \
-       sst.w   r19, PTO+PT_PSW[ep]
-/* Restore the PSW register from the state-save-frame pointed to by EP, to
-   the special register SAVEREG.  LP is clobbered (it is used as a scratch
-   register because the POP_STATE macro restores it, and this macro is
-   usually used inside POP_STATE).  */
-#define RESTORE_PSW(savereg)                                                 \
-       sld.w   PTO+PT_PSW[ep], lp;                                           \
-       ldsr    lp, SR_ ## savereg
-
-/* Save CTPC/CTPSW/CTBP registers to the state-save-frame pointed to by REG.
-   r19 is clobbered.  */
-#define SAVE_CT_REGS                                                         \
-       stsr    SR_CTPC, r19;                                                 \
-       sst.w   r19, PTO+PT_CTPC[ep];                                         \
-       stsr    SR_CTPSW, r19;                                                \
-       sst.w   r19, PTO+PT_CTPSW[ep];                                        \
-       stsr    SR_CTBP, r19;                                                 \
-       sst.w   r19, PTO+PT_CTBP[ep]
-/* Restore CTPC/CTPSW/CTBP registers from the state-save-frame pointed to by EP.
-   LP is clobbered (it is used as a scratch register because the POP_STATE
-   macro restores it, and this macro is usually used inside POP_STATE).  */
-#define RESTORE_CT_REGS                                                              \
-       sld.w   PTO+PT_CTPC[ep], lp;                                          \
-       ldsr    lp, SR_CTPC;                                                  \
-       sld.w   PTO+PT_CTPSW[ep], lp;                                         \
-       ldsr    lp, SR_CTPSW;                                                 \
-       sld.w   PTO+PT_CTBP[ep], lp;                                          \
-       ldsr    lp, SR_CTBP
-
-
-/* Push register state, except for the stack pointer, on the stack in the
-   form of a state-save-frame (plus some extra padding), in preparation for
-   a system call.  This macro makes sure that the EP, GP, and LP
-   registers are saved, and TYPE identifies the set of extra registers to
-   be saved as well.  Also copies (the new value of) SP to EP.  */
-#define PUSH_STATE(type)                                                     \
-       addi    -STATE_SAVE_SIZE, sp, sp; /* Make room on the stack.  */      \
-       st.w    ep, PTO+PT_GPR(GPR_EP)[sp];                                   \
-       mov     sp, ep;                                                       \
-       sst.w   gp, PTO+PT_GPR(GPR_GP)[ep];                                   \
-       sst.w   lp, PTO+PT_GPR(GPR_LP)[ep];                                   \
-       type ## _STATE_SAVER
-/* Pop a register state pushed by PUSH_STATE, except for the stack pointer,
-   from the stack.  */
-#define POP_STATE(type)                                                              \
-       mov     sp, ep;                                                       \
-       type ## _STATE_RESTORER;                                              \
-       sld.w   PTO+PT_GPR(GPR_GP)[ep], gp;                                   \
-       sld.w   PTO+PT_GPR(GPR_LP)[ep], lp;                                   \
-       sld.w   PTO+PT_GPR(GPR_EP)[ep], ep;                                   \
-       addi    STATE_SAVE_SIZE, sp, sp /* Clean up our stack space.  */
-
-
-/* Switch to the kernel stack if necessary, and push register state on the
-   stack in the form of a state-save-frame.  Also load the current task
-   pointer if switching from user mode.  The stack-pointer (r3) should have
-   already been saved to the memory location SP_SAVE_LOC (the reason for
-   this is that the interrupt vectors may be beyond a 22-bit signed offset
-   jump from the actual interrupt handler, and this allows them to save the
-   stack-pointer and use that register to do an indirect jump).  This macro
-   makes sure that `special' registers, system registers, and the stack
-   pointer are saved; TYPE identifies the set of extra registers to be
-   saved as well.  SYSCALL_NUM is the register in which the system-call
-   number this state is for is stored (r0 if this isn't a system call).
-   Interrupts should already be disabled when calling this.  */
-#define SAVE_STATE(type, syscall_num, sp_save_loc)                           \
-       tst1    0, KM;                  /* See if already in kernel mode.  */ \
-       bz      1f;                                                           \
-       ld.w    sp_save_loc, sp;        /* ... yes, use saved SP.  */         \
-       br      2f;                                                           \
-1:     ld.w    KSP, sp;                /* ... no, switch to kernel stack. */ \
-2:     PUSH_STATE(type);                                                     \
-       ld.b    KM, r19;                /* Remember old kernel-mode.  */      \
-       sst.w   r19, PTO+PT_KERNEL_MODE[ep];                                  \
-       ld.w    sp_save_loc, r19;       /* Remember old SP.  */               \
-       sst.w   r19, PTO+PT_GPR(GPR_SP)[ep];                                  \
-       mov     1, r19;                 /* Now definitely in kernel-mode. */  \
-       st.b    r19, KM;                                                      \
-       GET_CURRENT_TASK(CURRENT_TASK); /* Fetch the current task pointer. */ \
-       /* Save away the syscall number.  */                                  \
-       sst.w   syscall_num, PTO+PT_CUR_SYSCALL[ep]
-
-
-/* Save register state not normally saved by PUSH_STATE for TYPE, to the
-   state-save-frame on the stack; also copies SP to EP.  r19 may be trashed. */
-#define SAVE_EXTRA_STATE(type)                                               \
-       mov     sp, ep;                                                       \
-       type ## _EXTRA_STATE_SAVER
-/* Restore register state not normally restored by POP_STATE for TYPE,
-   from the state-save-frame on the stack; also copies SP to EP.
-   r19 may be trashed.  */
-#define RESTORE_EXTRA_STATE(type)                                            \
-       mov     sp, ep;                                                       \
-       type ## _EXTRA_STATE_RESTORER
-
-/* Save any call-clobbered registers not normally saved by PUSH_STATE for
-   TYPE, to the state-save-frame on the stack.
-   EP may be trashed, but is not guaranteed to contain a copy of SP
-   (unlike after most SAVE_... macros).  r19 may be trashed.  */
-#define SAVE_EXTRA_STATE_FOR_SCHEDULE(type)                                  \
-       type ## _SCHEDULE_EXTRA_STATE_SAVER
-/* Restore any call-clobbered registers not normally restored by
-   POP_STATE for TYPE, to the state-save-frame on the stack.
-   EP may be trashed, but is not guaranteed to contain a copy of SP
-   (unlike after most RESTORE_... macros).  r19 may be trashed.  */
-#define RESTORE_EXTRA_STATE_FOR_SCHEDULE(type)                               \
-       type ## _SCHEDULE_EXTRA_STATE_RESTORER
-
-
-/* These are extra_state_saver/restorer values for a user trap.  Note
-   that we save the argument registers so that restarted syscalls will
-   function properly (otherwise it wouldn't be necessary), and we must
-   _not_ restore the return-value registers (so that traps can return a
-   value!), but call-clobbered registers are not saved at all, as the
-   caller of the syscall function should have saved them.  */
-
-#define TRAP_RET reti
-/* Traps don't save call-clobbered registers (but do still save arg regs).
-   We preserve PSw to keep long-term state, namely interrupt status (for traps
-   from kernel-mode), and the single-step flag (for user traps).  */
-#define TRAP_STATE_SAVER                                                     \
-       SAVE_ARG_REGS;                                                        \
-       SAVE_PC(EIPC);                                                        \
-       SAVE_PSW(EIPSW)
-/* When traps return, they just leave call-clobbered registers (except for arg
-   regs) with whatever value they have from the kernel.  Traps don't preserve
-   the PSW, but we zero EIPSW to ensure it doesn't contain anything dangerous
-   (in particular, the single-step flag).  */
-#define TRAP_STATE_RESTORER                                                  \
-       RESTORE_ARG_REGS;                                                     \
-       RESTORE_PC(EIPC);                                                     \
-       RESTORE_PSW(EIPSW)
-/* Save registers not normally saved by traps.  We need to save r12, even
-   though it's nominally call-clobbered, because it's used when restarting
-   a system call (the signal-handling path uses SAVE_EXTRA_STATE, and
-   expects r12 to be restored when the trap returns).  */
-#define TRAP_EXTRA_STATE_SAVER                                               \
-       SAVE_RVAL_REGS;                                                       \
-       sst.w   r12, PTO+PT_GPR(12)[ep];                                      \
-       SAVE_CALL_SAVED_REGS;                                                 \
-       SAVE_CT_REGS
-#define TRAP_EXTRA_STATE_RESTORER                                            \
-       RESTORE_RVAL_REGS;                                                    \
-       sld.w   PTO+PT_GPR(12)[ep], r12;                                      \
-       RESTORE_CALL_SAVED_REGS;                                              \
-       RESTORE_CT_REGS
-/* Save registers prior to calling scheduler (just before trap returns).
-   We have to save the return-value registers to preserve the trap's return
-   value.  Note that ..._SCHEDULE_EXTRA_STATE_SAVER, unlike most ..._SAVER
-   macros, is required to setup EP itself if EP is needed (this is because
-   in many cases, the macro is empty).  */
-#define TRAP_SCHEDULE_EXTRA_STATE_SAVER                                              \
-       mov sp, ep;                                                           \
-       SAVE_RVAL_REGS
-/* Note that ..._SCHEDULE_EXTRA_STATE_RESTORER, unlike most ..._RESTORER
-   macros, is required to setup EP itself if EP is needed (this is because
-   in many cases, the macro is empty).  */
-#define TRAP_SCHEDULE_EXTRA_STATE_RESTORER                                   \
-       mov sp, ep;                                                           \
-       RESTORE_RVAL_REGS
-
-/* Register saving/restoring for maskable interrupts.  */
-#define IRQ_RET reti
-#define IRQ_STATE_SAVER                                                              \
-       SAVE_CALL_CLOBBERED_REGS;                                             \
-       SAVE_PC(EIPC);                                                        \
-       SAVE_PSW(EIPSW)
-#define IRQ_STATE_RESTORER                                                   \
-       RESTORE_CALL_CLOBBERED_REGS;                                          \
-       RESTORE_PC(EIPC);                                                     \
-       RESTORE_PSW(EIPSW)
-#define IRQ_EXTRA_STATE_SAVER                                                \
-       SAVE_CALL_SAVED_REGS;                                                 \
-       SAVE_CT_REGS
-#define IRQ_EXTRA_STATE_RESTORER                                             \
-       RESTORE_CALL_SAVED_REGS;                                              \
-       RESTORE_CT_REGS
-#define IRQ_SCHEDULE_EXTRA_STATE_SAVER      /* nothing */
-#define IRQ_SCHEDULE_EXTRA_STATE_RESTORER    /* nothing */
-
-/* Register saving/restoring for non-maskable interrupts.  */
-#define NMI_RET reti
-#define NMI_STATE_SAVER                                                              \
-       SAVE_CALL_CLOBBERED_REGS;                                             \
-       SAVE_PC(FEPC);                                                        \
-       SAVE_PSW(FEPSW);
-#define NMI_STATE_RESTORER                                                   \
-       RESTORE_CALL_CLOBBERED_REGS;                                          \
-       RESTORE_PC(FEPC);                                                     \
-       RESTORE_PSW(FEPSW);
-#define NMI_EXTRA_STATE_SAVER                                                \
-       SAVE_CALL_SAVED_REGS;                                                 \
-       SAVE_CT_REGS
-#define NMI_EXTRA_STATE_RESTORER                                             \
-       RESTORE_CALL_SAVED_REGS;                                              \
-       RESTORE_CT_REGS
-#define NMI_SCHEDULE_EXTRA_STATE_SAVER      /* nothing */
-#define NMI_SCHEDULE_EXTRA_STATE_RESTORER    /* nothing */
-
-/* Register saving/restoring for debug traps.  */
-#define DBTRAP_RET .long 0x014607E0 /* `dbret', but gas doesn't support it. */
-#define DBTRAP_STATE_SAVER                                                   \
-       SAVE_CALL_CLOBBERED_REGS;                                             \
-       SAVE_PC(DBPC);                                                        \
-       SAVE_PSW(DBPSW)
-#define DBTRAP_STATE_RESTORER                                                \
-       RESTORE_CALL_CLOBBERED_REGS;                                          \
-       RESTORE_PC(DBPC);                                                     \
-       RESTORE_PSW(DBPSW)
-#define DBTRAP_EXTRA_STATE_SAVER                                             \
-       SAVE_CALL_SAVED_REGS;                                                 \
-       SAVE_CT_REGS
-#define DBTRAP_EXTRA_STATE_RESTORER                                          \
-       RESTORE_CALL_SAVED_REGS;                                              \
-       RESTORE_CT_REGS
-#define DBTRAP_SCHEDULE_EXTRA_STATE_SAVER      /* nothing */
-#define DBTRAP_SCHEDULE_EXTRA_STATE_RESTORER   /* nothing */
-
-/* Register saving/restoring for a context switch.  We don't need to save
-   too many registers, because context-switching looks like a function call
-   (via the function `switch_thread'), so callers will save any
-   call-clobbered registers themselves.  We do need to save the CT regs, as
-   they're normally not saved during kernel entry (the kernel doesn't use
-   them).  We save PSW so that interrupt-status state will correctly follow
-   each thread (mostly NMI vs. normal-IRQ/trap), though for the most part
-   it doesn't matter since threads are always in almost exactly the same
-   processor state during a context switch.  The stack pointer and return
-   value are handled by switch_thread itself.  */
-#define SWITCH_STATE_SAVER                                                   \
-       SAVE_CALL_SAVED_REGS;                                                 \
-       SAVE_PSW(PSW);                                                        \
-       SAVE_CT_REGS
-#define SWITCH_STATE_RESTORER                                                \
-       RESTORE_CALL_SAVED_REGS;                                              \
-       RESTORE_PSW(PSW);                                                     \
-       RESTORE_CT_REGS
-
-
-/* Restore register state from the state-save-frame on the stack, switch back
-   to the user stack if necessary, and return from the trap/interrupt.
-   EXTRA_STATE_RESTORER is a sequence of assembly language statements to
-   restore anything not restored by this macro.  Only registers not saved by
-   the C compiler are restored (that is, R3(sp), R4(gp), R31(lp), and
-   anything restored by EXTRA_STATE_RESTORER).  */
-#define RETURN(type)                                                         \
-       ld.b    PTO+PT_KERNEL_MODE[sp], r19;                                  \
-       di;                             /* Disable interrupts */              \
-       cmp     r19, r0;                /* See if returning to kernel mode, */\
-       bne     2f;                     /* ... if so, skip resched &c.  */    \
-                                                                             \
-       /* We're returning to user mode, so check for various conditions that \
-          trigger rescheduling. */                                           \
-       GET_CURRENT_THREAD(r18);                                              \
-       ld.w    TI_FLAGS[r18], r19;                                           \
-       andi    _TIF_NEED_RESCHED, r19, r0;                                   \
-       bnz     3f;                     /* Call the scheduler.  */            \
-5:     andi    _TIF_SIGPENDING, r19, r18;                                    \
-       ld.w    TASK_PTRACE[CURRENT_TASK], r19; /* ptrace flags */            \
-       or      r18, r19;               /* see if either is non-zero */       \
-       bnz     4f;                     /* if so, handle them */              \
-                                                                             \
-/* Return to user state.  */                                                 \
-1:     st.b    r0, KM;                 /* Now officially in user state. */   \
-                                                                             \
-/* Final return.  The stack-pointer fiddling is not needed when returning     \
-   to kernel-mode, but they don't hurt, and this way we can share the        \
-   (sometimes rather lengthy) POP_STATE macro.  */                           \
-2:     POP_STATE(type);                                                      \
-       st.w    sp, KSP;                /* Save the kernel stack pointer. */  \
-       ld.w    PT_GPR(GPR_SP)-PT_SIZE[sp], sp; /* Restore stack pointer. */  \
-       type ## _RET;                   /* Return from the trap/interrupt. */ \
-                                                                             \
-/* Call the scheduler before returning from a syscall/trap. */               \
-3:     SAVE_EXTRA_STATE_FOR_SCHEDULE(type); /* Prepare to call scheduler. */ \
-       jarl    call_scheduler, lp;     /* Call scheduler */                  \
-       di;                             /* The scheduler enables interrupts */\
-       RESTORE_EXTRA_STATE_FOR_SCHEDULE(type);                               \
-       GET_CURRENT_THREAD(r18);                                              \
-       ld.w    TI_FLAGS[r18], r19;                                           \
-       br      5b;                     /* Continue with return path. */      \
-                                                                             \
-/* Handle a signal or ptraced process return.                                \
-   r18 should be non-zero if there are pending signals.  */                  \
-4:     /* Not all registers are saved by the normal trap/interrupt entry     \
-          points (for instance, call-saved registers (because the normal     \
-          C-compiler calling sequence in the kernel makes sure they're       \
-          preserved), and call-clobbered registers in the case of            \
-          traps), but signal handlers may want to examine or change the      \
-          complete register state.  Here we save anything not saved by       \
-          the normal entry sequence, so that it may be safely restored       \
-          (in a possibly modified form) after do_signal returns.  */         \
-       SAVE_EXTRA_STATE(type);         /* Save state not saved by entry. */  \
-       jarl    handle_signal_or_ptrace_return, lp;                           \
-       RESTORE_EXTRA_STATE(type);      /* Restore extra regs.  */            \
-       br      1b
-
-
-/* Jump to the appropriate function for the system call number in r12
-   (r12 is not preserved), or return an error if r12 is not valid.  The
-   LP register should point to the location where the called function
-   should return.  [note that MAKE_SYS_CALL uses label 1]  */
-#define MAKE_SYS_CALL                                                        \
-       /* Figure out which function to use for this system call.  */         \
-       shl     2, r12;                                                       \
-       /* See if the system call number is valid.  */                        \
-       addi    lo(CSYM(sys_call_table) - sys_call_table_end), r12, r0;       \
-       bnh     1f;                                                           \
-       mov     hilo(CSYM(sys_call_table)), r19;                              \
-       add     r19, r12;                                                     \
-       ld.w    0[r12], r12;                                                  \
-       /* Make the system call.  */                                          \
-       jmp     [r12];                                                        \
-       /* The syscall number is invalid, return an error.  */                \
-1:     addi    -ENOSYS, r0, r10;                                             \
-       jmp     [lp]
-
-
-       .text
-
-/*
- * User trap.
- *
- * Trap 0 system calls are also handled here.
- *
- * The stack-pointer (r3) should have already been saved to the memory
- * location ENTRY_SP (the reason for this is that the interrupt vectors may be
- * beyond a 22-bit signed offset jump from the actual interrupt handler, and
- * this allows them to save the stack-pointer and use that register to do an
- * indirect jump).
- *
- * Syscall protocol:
- *   Syscall number in r12, args in r6-r9
- *   Return value in r10
- */
-G_ENTRY(trap):
-       SAVE_STATE (TRAP, r12, ENTRY_SP) // Save registers.
-       stsr    SR_ECR, r19             // Find out which trap it was.
-       ei                              // Enable interrupts.
-       mov     hilo(ret_from_trap), lp // where the trap should return
-
-       // The following two shifts (1) clear out extraneous NMI data in the
-       // upper 16-bits, (2) convert the 0x40 - 0x5f range of trap ECR
-       // numbers into the (0-31) << 2 range we want, (3) set the flags.
-       shl     27, r19                 // chop off all high bits
-       shr     25, r19                 // scale back down and then << 2
-       bnz     2f                      // See if not trap 0.
-
-       // Trap 0 is a `short' system call, skip general trap table.
-       MAKE_SYS_CALL                   // Jump to the syscall function.
-
-2:     // For other traps, use a table lookup.
-       mov     hilo(CSYM(trap_table)), r18
-       add     r19, r18
-       ld.w    0[r18], r18
-       jmp     [r18]                   // Jump to the trap handler.
-END(trap)
-
-/* This is just like ret_from_trap, but first restores extra registers
-   saved by some wrappers.  */
-L_ENTRY(restore_extra_regs_and_ret_from_trap):
-       RESTORE_EXTRA_STATE(TRAP)
-       // fall through
-END(restore_extra_regs_and_ret_from_trap)
-
-/* Entry point used to return from a syscall/trap.  */
-L_ENTRY(ret_from_trap):
-       RETURN(TRAP)
-END(ret_from_trap)
-
-
-/* This the initial entry point for a new child thread, with an appropriate
-   stack in place that makes it look that the child is in the middle of an
-   syscall.  This function is actually `returned to' from switch_thread
-   (copy_thread makes ret_from_fork the return address in each new thread's
-   saved context).  */
-C_ENTRY(ret_from_fork):
-       mov     r10, r6                 // switch_thread returns the prev task.
-       jarl    CSYM(schedule_tail), lp // ...which is schedule_tail's arg
-       mov     r0, r10                 // Child's fork call should return 0.
-       br      ret_from_trap           // Do normal trap return.
-C_END(ret_from_fork)
-
-
-/*
- * Trap 1: `long' system calls
- * `Long' syscall protocol:
- *   Syscall number in r12, args in r6-r9, r13-r14
- *   Return value in r10
- */
-L_ENTRY(syscall_long):
-       // Push extra arguments on the stack.  Note that by default, the trap
-       // handler reserves enough stack space for 6 arguments, so we don't
-       // have to make any additional room.
-       st.w    r13, 16[sp]             // arg 5
-       st.w    r14, 20[sp]             // arg 6
-
-       // Make sure r13 and r14 are preserved, in case we have to restart a
-       // system call because of a signal (ep has already been set by caller).
-       st.w    r13, PTO+PT_GPR(13)[sp]
-       st.w    r14, PTO+PT_GPR(13)[sp]
-       mov     hilo(ret_from_long_syscall), lp
-
-       MAKE_SYS_CALL                   // Jump to the syscall function.
-END(syscall_long)
-
-/* Entry point used to return from a long syscall.  Only needed to restore
-   r13/r14 if the general trap mechanism doesnt' do so.  */
-L_ENTRY(ret_from_long_syscall):
-       ld.w    PTO+PT_GPR(13)[sp], r13 // Restore the extra registers
-       ld.w    PTO+PT_GPR(13)[sp], r14
-       br      ret_from_trap           // The rest is the same as other traps
-END(ret_from_long_syscall)
-
-
-/* These syscalls need access to the struct pt_regs on the stack, so we
-   implement them in assembly (they're basically all wrappers anyway).  */
-
-L_ENTRY(sys_fork_wrapper):
-#ifdef CONFIG_MMU
-       addi    SIGCHLD, r0, r6            // Arg 0: flags
-       ld.w    PTO+PT_GPR(GPR_SP)[sp], r7 // Arg 1: child SP (use parent's)
-       movea   PTO, sp, r8                // Arg 2: parent context
-       mov     r0, r9                     // Arg 3/4/5: 0
-       st.w    r0, 16[sp]
-       st.w    r0, 20[sp]
-       mov     hilo(CSYM(do_fork)), r18   // Where the real work gets done
-       br      save_extra_state_tramp     // Save state and go there
-#else
-       // fork almost works, enough to trick you into looking elsewhere :-(
-       addi    -EINVAL, r0, r10
-       jmp     [lp]
-#endif
-END(sys_fork_wrapper)
-
-L_ENTRY(sys_vfork_wrapper):
-       addi    CLONE_VFORK | CLONE_VM | SIGCHLD, r0, r6 // Arg 0: flags
-       ld.w    PTO+PT_GPR(GPR_SP)[sp], r7 // Arg 1: child SP (use parent's)
-       movea   PTO, sp, r8                // Arg 2: parent context
-       mov     r0, r9                     // Arg 3/4/5: 0
-       st.w    r0, 16[sp]
-       st.w    r0, 20[sp]
-       mov     hilo(CSYM(do_fork)), r18   // Where the real work gets done
-       br      save_extra_state_tramp     // Save state and go there
-END(sys_vfork_wrapper)
-
-L_ENTRY(sys_clone_wrapper):
-       ld.w    PTO+PT_GPR(GPR_SP)[sp], r19// parent's stack pointer
-       cmp     r7, r0                     // See if child SP arg (arg 1) is 0.
-       cmov    z, r19, r7, r7             // ... and use the parent's if so.
-       movea   PTO, sp, r8                // Arg 2: parent context
-       mov     r0, r9                     // Arg 3/4/5: 0
-       st.w    r0, 16[sp]
-       st.w    r0, 20[sp]
-       mov     hilo(CSYM(do_fork)), r18   // Where the real work gets done
-       br      save_extra_state_tramp     // Save state and go there
-END(sys_clone_wrapper)
-
-
-L_ENTRY(sys_execve_wrapper):
-       movea   PTO, sp, r9             // add user context as 4th arg
-       jr      CSYM(sys_execve)        // Do real work (tail-call).
-END(sys_execve_wrapper)
-
-
-L_ENTRY(sys_sigsuspend_wrapper):
-       movea   PTO, sp, r7             // add user context as 2nd arg
-       mov     hilo(CSYM(sys_sigsuspend)), r18 // syscall function
-       jarl    save_extra_state_tramp, lp      // Save state and do it
-       br      restore_extra_regs_and_ret_from_trap
-END(sys_sigsuspend_wrapper)
-L_ENTRY(sys_rt_sigsuspend_wrapper):
-       movea   PTO, sp, r8             // add user context as 3rd arg
-       mov     hilo(CSYM(sys_rt_sigsuspend)), r18 // syscall function
-       jarl    save_extra_state_tramp, lp         // Save state and do it
-       br      restore_extra_regs_and_ret_from_trap
-END(sys_rt_sigsuspend_wrapper)
-
-L_ENTRY(sys_sigreturn_wrapper):
-       movea   PTO, sp, r6             // add user context as 1st arg
-       mov     hilo(CSYM(sys_sigreturn)), r18  // syscall function
-       jarl    save_extra_state_tramp, lp      // Save state and do it
-       br      restore_extra_regs_and_ret_from_trap
-END(sys_sigreturn_wrapper)
-L_ENTRY(sys_rt_sigreturn_wrapper):
-       movea   PTO, sp, r6             // add user context as 1st arg
-       mov     hilo(CSYM(sys_rt_sigreturn)), r18// syscall function
-       jarl    save_extra_state_tramp, lp       // Save state and do it
-       br      restore_extra_regs_and_ret_from_trap
-END(sys_rt_sigreturn_wrapper)
-
-
-/* Save any state not saved by SAVE_STATE(TRAP), and jump to r18.
-   It's main purpose is to share the rather lengthy code sequence that
-   SAVE_STATE expands into among the above wrapper functions.  */
-L_ENTRY(save_extra_state_tramp):
-       SAVE_EXTRA_STATE(TRAP)          // Save state not saved by entry.
-       jmp     [r18]                   // Do the work the caller wants
-END(save_extra_state_tramp)
-
-
-/*
- * Hardware maskable interrupts.
- *
- * The stack-pointer (r3) should have already been saved to the memory
- * location ENTRY_SP (the reason for this is that the interrupt vectors may be
- * beyond a 22-bit signed offset jump from the actual interrupt handler, and
- * this allows them to save the stack-pointer and use that register to do an
- * indirect jump).
- */
-G_ENTRY(irq):
-       SAVE_STATE (IRQ, r0, ENTRY_SP)  // Save registers.
-
-       stsr    SR_ECR, r6              // Find out which interrupt it was.
-       movea   PTO, sp, r7             // User regs are arg2
-
-       // All v850 implementations I know about encode their interrupts as
-       // multiples of 0x10, starting at 0x80 (after NMIs and software
-       // interrupts).  Convert this number into a simple IRQ index for the
-       // rest of the kernel.  We also clear the upper 16 bits, which hold
-       // NMI info, and don't appear to be cleared when a NMI returns.
-       shl     16, r6                  // clear upper 16 bits
-       shr     20, r6                  // shift back, and remove lower nibble
-       add     -8, r6                  // remove bias for irqs
-
-       // Call the high-level interrupt handling code.
-       jarl    CSYM(handle_irq), lp
-
-       RETURN(IRQ)
-END(irq)
-
-
-/*
- * Debug trap / illegal-instruction exception
- *
- * The stack-pointer (r3) should have already been saved to the memory
- * location ENTRY_SP (the reason for this is that the interrupt vectors may be
- * beyond a 22-bit signed offset jump from the actual interrupt handler, and
- * this allows them to save the stack-pointer and use that register to do an
- * indirect jump).
- */
-G_ENTRY(dbtrap):
-       SAVE_STATE (DBTRAP, r0, ENTRY_SP)// Save registers.
-
-       /* First see if we came from kernel mode; if so, the dbtrap
-          instruction has a special meaning, to set the DIR (`debug
-          information register') register.  This is because the DIR register
-          can _only_ be manipulated/read while in `debug mode,' and debug
-          mode is only active while we're inside the dbtrap handler.  The
-          exact functionality is:  { DIR = (DIR | r6) & ~r7; return DIR; }. */
-       ld.b    PTO+PT_KERNEL_MODE[sp], r19
-       cmp     r19, r0
-       bz      1f
-
-       stsr    SR_DIR, r10
-       or      r6, r10
-       not     r7, r7
-       and     r7, r10
-       ldsr    r10, SR_DIR
-       stsr    SR_DIR, r10             // Confirm the value we set
-       st.w    r10, PTO+PT_GPR(10)[sp] // return it
-       br      3f
-
-1:     ei                              // Enable interrupts.
-
-       /* The default signal type we raise.  */
-       mov     SIGTRAP, r6
-
-       /* See if it's a single-step trap.  */
-       stsr    SR_DBPSW, r19
-       andi    0x0800, r19, r19
-       bnz     2f
-
-       /* Look to see if the preceding instruction was is a dbtrap or not,
-          to decide which signal we should use.  */
-       stsr    SR_DBPC, r19            // PC following trapping insn
-       ld.hu   -2[r19], r19
-       ori     0xf840, r0, r20         // DBTRAP insn
-       cmp     r19, r20                // Was this trap caused by DBTRAP?
-       cmov    ne, SIGILL, r6, r6      // Choose signal appropriately
-
-       /* Raise the desired signal.  */
-2:     mov     CURRENT_TASK, r7        // Arg 1: task
-       jarl    CSYM(send_sig), lp      // tail call
-
-3:     RETURN(DBTRAP)
-END(dbtrap)
-
-
-/*
- * Hardware non-maskable interrupts.
- *
- * The stack-pointer (r3) should have already been saved to the memory
- * location ENTRY_SP (the reason for this is that the interrupt vectors may be
- * beyond a 22-bit signed offset jump from the actual interrupt handler, and
- * this allows them to save the stack-pointer and use that register to do an
- * indirect jump).
- */
-G_ENTRY(nmi):
-       SAVE_STATE (NMI, r0, NMI_ENTRY_SP); /* Save registers.  */
-
-       stsr    SR_ECR, r6;             /* Find out which nmi it was.  */
-       shr     20, r6;                 /* Extract NMI code in bits 20-24. */
-       movea   PTO, sp, r7;            /* User regs are arg2.  */
-
-       /* Non-maskable interrupts always lie right after maskable interrupts.
-          Call the generic IRQ handler, with two arguments, the IRQ number,
-          and a pointer to the user registers, to handle the specifics.
-          (we subtract one because the first NMI has code 1).  */
-       addi    FIRST_NMI - 1, r6, r6
-       jarl    CSYM(handle_irq), lp
-
-       RETURN(NMI)
-END(nmi)
-
-
-/*
- * Trap with no handler
- */
-L_ENTRY(bad_trap_wrapper):
-       mov     r19, r6                 // Arg 0: trap number
-       movea   PTO, sp, r7             // Arg 1: user regs
-       jr      CSYM(bad_trap)          // tail call handler
-END(bad_trap_wrapper)
-
-
-/*
- * Invoke the scheduler, called from the trap/irq kernel exit path.
- *
- * This basically just calls `schedule', but also arranges for extra
- * registers to be saved for ptrace'd processes, so ptrace can modify them.
- */
-L_ENTRY(call_scheduler):
-       ld.w    TASK_PTRACE[CURRENT_TASK], r19  // See if task is ptrace'd
-       cmp     r19, r0
-       bnz     1f                      // ... yes, do special stuff
-       jr      CSYM(schedule)          // ... no, just tail-call scheduler
-
-       // Save extra regs for ptrace'd task.  We want to save anything
-       // that would otherwise only be `implicitly' saved by the normal
-       // compiler calling-convention.
-1:     mov     sp, ep                  // Setup EP for SAVE_CALL_SAVED_REGS
-       SAVE_CALL_SAVED_REGS            // Save call-saved registers to stack
-       mov     lp, r20                 // Save LP in a callee-saved register
-
-       jarl    CSYM(schedule), lp      // Call scheduler
-
-       mov     r20, lp
-       mov     sp, ep                  // We can't rely on EP after return
-       RESTORE_CALL_SAVED_REGS         // Restore (possibly modified) regs
-       jmp     [lp]                    // Return to the return path
-END(call_scheduler)
-
-
-/*
- * This is an out-of-line handler for two special cases during the kernel
- * trap/irq exit sequence:
- *
- *  (1) If r18 is non-zero then a signal needs to be handled, which is
- *     done, and then the caller returned to.
- *
- *  (2) If r18 is non-zero then we're returning to a ptraced process, which
- *     has several special cases -- single-stepping and trap tracing, both
- *     of which require using the `dbret' instruction to exit the kernel
- *     instead of the normal `reti' (this is because the CPU not correctly
- *     single-step after a reti).  In this case, of course, this handler
- *     never returns to the caller.
- *
- * In either case, all registers should have been saved to the current
- * state-save-frame on the stack, except for callee-saved registers.
- *
- * [These two different cases are combined merely to avoid bloating the
- * macro-inlined code, not because they really make much sense together!]
- */
-L_ENTRY(handle_signal_or_ptrace_return):
-       cmp     r18, r0                 // See if handling a signal
-       bz      1f                      // ... nope, go do ptrace return
-
-       // Handle a signal
-       mov     lp, r20                 // Save link-pointer
-       mov     r10, r21                // Save return-values (for trap)
-       mov     r11, r22
-
-       movea   PTO, sp, r6             // Arg 1: struct pt_regs *regs
-       mov     r0, r7                  // Arg 2: sigset_t *oldset
-       jarl    CSYM(do_signal), lp     // Handle the signal
-       di                              // sig handling enables interrupts
-
-       mov     r20, lp                 // Restore link-pointer
-       mov     r21, r10                // Restore return-values (for trap)
-       mov     r22, r11
-       ld.w    TASK_PTRACE[CURRENT_TASK], r19  // check ptrace flags too
-       cmp     r19, r0
-       bnz     1f                      // ... some set, so look more
-2:     jmp     [lp]                    // ... none set, so return normally
-
-       // ptrace return
-1:     ld.w    PTO+PT_PSW[sp], r19     // Look at user-processes's flags
-       andi    0x0800, r19, r19        // See if single-step flag is set
-       bz      2b                      // ... nope, return normally
-
-       // Return as if from a dbtrap insn
-       st.b    r0, KM                  // Now officially in user state.
-       POP_STATE(DBTRAP)               // Restore regs
-       st.w    sp, KSP                 // Save the kernel stack pointer.
-       ld.w    PT_GPR(GPR_SP)-PT_SIZE[sp], sp // Restore user stack pointer.
-       DBTRAP_RET                      // Return from the trap/interrupt.
-END(handle_signal_or_ptrace_return)
-
-
-/*
- * This is where we switch between two threads.  The arguments are:
- *   r6 -- pointer to the struct thread for the `current' process
- *   r7 -- pointer to the struct thread for the `new' process.
- * when this function returns, it will return to the new thread.
- */
-C_ENTRY(switch_thread):
-       // Return the previous task (r10 is not clobbered by restore below)
-       mov     CURRENT_TASK, r10
-       // First, push the current processor state on the stack
-       PUSH_STATE(SWITCH)
-       // Now save the location of the kernel stack pointer for this thread;
-       // since we've pushed all other state on the stack, this is enough to
-       // restore it all later.
-       st.w    sp, THREAD_KSP[r6]
-       // Now restore the stack pointer from the new process
-       ld.w    THREAD_KSP[r7], sp
-       // ... and restore all state from that
-       POP_STATE(SWITCH)
-       // Update the current task pointer
-       GET_CURRENT_TASK(CURRENT_TASK)
-       // Now return into the new thread
-       jmp     [lp]
-C_END(switch_thread)
-
-
-       .data
-
-       .align 4
-C_DATA(trap_table):
-       .long bad_trap_wrapper          // trap 0, doesn't use trap table.
-       .long syscall_long              // trap 1, `long' syscall.
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-       .long bad_trap_wrapper
-C_END(trap_table)
-
-
-       .section .rodata
-
-       .align 4
-C_DATA(sys_call_table):
-       .long CSYM(sys_restart_syscall) // 0
-       .long CSYM(sys_exit)
-       .long sys_fork_wrapper
-       .long CSYM(sys_read)
-       .long CSYM(sys_write)
-       .long CSYM(sys_open)            // 5
-       .long CSYM(sys_close)
-       .long CSYM(sys_waitpid)
-       .long CSYM(sys_creat)
-       .long CSYM(sys_link)
-       .long CSYM(sys_unlink)          // 10
-       .long sys_execve_wrapper
-       .long CSYM(sys_chdir)
-       .long CSYM(sys_time)
-       .long CSYM(sys_mknod)
-       .long CSYM(sys_chmod)           // 15
-       .long CSYM(sys_chown)
-       .long CSYM(sys_ni_syscall)      // was: break
-       .long CSYM(sys_ni_syscall)      // was: oldstat (aka stat)
-       .long CSYM(sys_lseek)
-       .long CSYM(sys_getpid)          // 20
-       .long CSYM(sys_mount)
-       .long CSYM(sys_oldumount)
-       .long CSYM(sys_setuid)
-       .long CSYM(sys_getuid)
-       .long CSYM(sys_stime)           // 25
-       .long CSYM(sys_ptrace)
-       .long CSYM(sys_alarm)
-       .long CSYM(sys_ni_syscall)      // was: oldfstat (aka fstat)
-       .long CSYM(sys_pause)
-       .long CSYM(sys_utime)           // 30
-       .long CSYM(sys_ni_syscall)      // was: stty
-       .long CSYM(sys_ni_syscall)      // was: gtty
-       .long CSYM(sys_access)
-       .long CSYM(sys_nice)
-       .long CSYM(sys_ni_syscall)      // 35, was: ftime
-       .long CSYM(sys_sync)
-       .long CSYM(sys_kill)
-       .long CSYM(sys_rename)
-       .long CSYM(sys_mkdir)
-       .long CSYM(sys_rmdir)           // 40
-       .long CSYM(sys_dup)
-       .long CSYM(sys_pipe)
-       .long CSYM(sys_times)
-       .long CSYM(sys_ni_syscall)      // was: prof
-       .long CSYM(sys_brk)             // 45
-       .long CSYM(sys_setgid)
-       .long CSYM(sys_getgid)
-       .long CSYM(sys_signal)
-       .long CSYM(sys_geteuid)
-       .long CSYM(sys_getegid)         // 50
-       .long CSYM(sys_acct)
-       .long CSYM(sys_umount)          // recycled never used phys()
-       .long CSYM(sys_ni_syscall)      // was: lock
-       .long CSYM(sys_ioctl)
-       .long CSYM(sys_fcntl)           // 55
-       .long CSYM(sys_ni_syscall)      // was: mpx
-       .long CSYM(sys_setpgid)
-       .long CSYM(sys_ni_syscall)      // was: ulimit
-       .long CSYM(sys_ni_syscall)
-       .long CSYM(sys_umask)           // 60
-       .long CSYM(sys_chroot)
-       .long CSYM(sys_ustat)
-       .long CSYM(sys_dup2)
-       .long CSYM(sys_getppid)
-       .long CSYM(sys_getpgrp)         // 65
-       .long CSYM(sys_setsid)
-       .long CSYM(sys_sigaction)
-       .long CSYM(sys_sgetmask)
-       .long CSYM(sys_ssetmask)
-       .long CSYM(sys_setreuid)        // 70
-       .long CSYM(sys_setregid)
-       .long sys_sigsuspend_wrapper
-       .long CSYM(sys_sigpending)
-       .long CSYM(sys_sethostname)
-       .long CSYM(sys_setrlimit)       // 75
-       .long CSYM(sys_getrlimit)
-       .long CSYM(sys_getrusage)
-       .long CSYM(sys_gettimeofday)
-       .long CSYM(sys_settimeofday)
-       .long CSYM(sys_getgroups)       // 80
-       .long CSYM(sys_setgroups)
-       .long CSYM(sys_select)
-       .long CSYM(sys_symlink)
-       .long CSYM(sys_ni_syscall)      // was: oldlstat (aka lstat)
-       .long CSYM(sys_readlink)        // 85
-       .long CSYM(sys_uselib)
-       .long CSYM(sys_swapon)
-       .long CSYM(sys_reboot)
-       .long CSYM(old_readdir)
-       .long CSYM(sys_mmap)            // 90
-       .long CSYM(sys_munmap)
-       .long CSYM(sys_truncate)
-       .long CSYM(sys_ftruncate)
-       .long CSYM(sys_fchmod)
-       .long CSYM(sys_fchown)          // 95
-       .long CSYM(sys_getpriority)
-       .long CSYM(sys_setpriority)
-       .long CSYM(sys_ni_syscall)      // was: profil
-       .long CSYM(sys_statfs)
-       .long CSYM(sys_fstatfs)         // 100
-       .long CSYM(sys_ni_syscall)      // i386: ioperm
-       .long CSYM(sys_socketcall)
-       .long CSYM(sys_syslog)
-       .long CSYM(sys_setitimer)
-       .long CSYM(sys_getitimer)       // 105
-       .long CSYM(sys_newstat)
-       .long CSYM(sys_newlstat)
-       .long CSYM(sys_newfstat)
-       .long CSYM(sys_ni_syscall)      // was: olduname (aka uname)
-       .long CSYM(sys_ni_syscall)      // 110, i386: iopl
-       .long CSYM(sys_vhangup)
-       .long CSYM(sys_ni_syscall)      // was: idle
-       .long CSYM(sys_ni_syscall)      // i386: vm86old
-       .long CSYM(sys_wait4)
-       .long CSYM(sys_swapoff)         // 115
-       .long CSYM(sys_sysinfo)
-       .long CSYM(sys_ipc)
-       .long CSYM(sys_fsync)
-       .long sys_sigreturn_wrapper
-       .long sys_clone_wrapper         // 120
-       .long CSYM(sys_setdomainname)
-       .long CSYM(sys_newuname)
-       .long CSYM(sys_ni_syscall)      // i386: modify_ldt, m68k: cacheflush
-       .long CSYM(sys_adjtimex)
-       .long CSYM(sys_ni_syscall)      // 125 - sys_mprotect
-       .long CSYM(sys_sigprocmask)
-       .long CSYM(sys_ni_syscall)      // sys_create_module
-       .long CSYM(sys_init_module)
-       .long CSYM(sys_delete_module)
-       .long CSYM(sys_ni_syscall)      // 130 - sys_get_kernel_syms
-       .long CSYM(sys_quotactl)
-       .long CSYM(sys_getpgid)
-       .long CSYM(sys_fchdir)
-       .long CSYM(sys_bdflush)
-       .long CSYM(sys_sysfs)           // 135
-       .long CSYM(sys_personality)
-       .long CSYM(sys_ni_syscall)      // for afs_syscall
-       .long CSYM(sys_setfsuid)
-       .long CSYM(sys_setfsgid)
-       .long CSYM(sys_llseek)          // 140
-       .long CSYM(sys_getdents)
-       .long CSYM(sys_select)          // for backward compat; remove someday
-       .long CSYM(sys_flock)
-       .long CSYM(sys_ni_syscall)      // sys_msync
-       .long CSYM(sys_readv)           // 145
-       .long CSYM(sys_writev)
-       .long CSYM(sys_getsid)
-       .long CSYM(sys_fdatasync)
-       .long CSYM(sys_sysctl)
-       .long CSYM(sys_ni_syscall)      // 150 - sys_mlock
-       .long CSYM(sys_ni_syscall)      // sys_munlock
-       .long CSYM(sys_ni_syscall)      // sys_mlockall
-       .long CSYM(sys_ni_syscall)      // sys_munlockall
-       .long CSYM(sys_sched_setparam)
-       .long CSYM(sys_sched_getparam)  // 155
-       .long CSYM(sys_sched_setscheduler)
-       .long CSYM(sys_sched_getscheduler)
-       .long CSYM(sys_sched_yield)
-       .long CSYM(sys_sched_get_priority_max)
-       .long CSYM(sys_sched_get_priority_min)  // 160
-       .long CSYM(sys_sched_rr_get_interval)
-       .long CSYM(sys_nanosleep)
-       .long CSYM(sys_ni_syscall)      // sys_mremap
-       .long CSYM(sys_setresuid)
-       .long CSYM(sys_getresuid)       // 165
-       .long CSYM(sys_ni_syscall)      // for vm86
-       .long CSYM(sys_ni_syscall)      // sys_query_module
-       .long CSYM(sys_poll)
-       .long CSYM(sys_nfsservctl)
-       .long CSYM(sys_setresgid)       // 170
-       .long CSYM(sys_getresgid)
-       .long CSYM(sys_prctl)
-       .long sys_rt_sigreturn_wrapper
-       .long CSYM(sys_rt_sigaction)
-       .long CSYM(sys_rt_sigprocmask)  // 175
-       .long CSYM(sys_rt_sigpending)
-       .long CSYM(sys_rt_sigtimedwait)
-       .long CSYM(sys_rt_sigqueueinfo)
-       .long sys_rt_sigsuspend_wrapper
-       .long CSYM(sys_pread64)         // 180
-       .long CSYM(sys_pwrite64)
-       .long CSYM(sys_lchown)
-       .long CSYM(sys_getcwd)
-       .long CSYM(sys_capget)
-       .long CSYM(sys_capset)          // 185
-       .long CSYM(sys_sigaltstack)
-       .long CSYM(sys_sendfile)
-       .long CSYM(sys_ni_syscall)      // streams1
-       .long CSYM(sys_ni_syscall)      // streams2
-       .long sys_vfork_wrapper         // 190
-       .long CSYM(sys_ni_syscall)
-       .long CSYM(sys_mmap2)
-       .long CSYM(sys_truncate64)
-       .long CSYM(sys_ftruncate64)
-       .long CSYM(sys_stat64)          // 195
-       .long CSYM(sys_lstat64)
-       .long CSYM(sys_fstat64)
-       .long CSYM(sys_fcntl64)
-       .long CSYM(sys_getdents64)
-       .long CSYM(sys_pivot_root)      // 200
-       .long CSYM(sys_gettid)
-       .long CSYM(sys_tkill)
-sys_call_table_end:
-C_END(sys_call_table)
diff --git a/arch/v850/kernel/fpga85e2c.c b/arch/v850/kernel/fpga85e2c.c
deleted file mode 100644 (file)
index ab9cf16..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * arch/v850/kernel/fpga85e2c.h -- Machine-dependent defs for
- *     FPGA implementation of V850E2/NA85E2C
- *
- *  Copyright (C) 2002,03  NEC Electronics Corporation
- *  Copyright (C) 2002,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/swap.h>
-#include <linux/bootmem.h>
-#include <linux/irq.h>
-#include <linux/bitops.h>
-
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/machdep.h>
-
-#include "mach.h"
-
-extern void memcons_setup (void);
-
-
-#define REG_DUMP_ADDR          0x220000
-
-
-extern struct irqaction reg_snap_action; /* fwd decl */
-
-
-void __init mach_early_init (void)
-{
-       int i;
-       const u32 *src;
-       register u32 *dst asm ("ep");
-       extern u32 _intv_end, _intv_load_start;
-
-       /* Set bus sizes: CS0 32-bit, CS1 16-bit, CS7 8-bit,
-          everything else 32-bit.  */
-       V850E2_BSC = 0x2AA6;
-       for (i = 2; i <= 6; i++)
-               CSDEV(i) = 0;   /* 32 bit */
-
-       /* Ensure that the simulator halts on a panic, instead of going
-          into an infinite loop inside the panic function.  */
-       panic_timeout = -1;
-
-       /* Move the interrupt vectors into their real location.  Note that
-          any relocations there are relative to the real location, so we
-          don't have to fix anything up.  We use a loop instead of calling
-          memcpy to keep this a leaf function (to avoid a function
-          prologue being generated).  */
-       dst = 0x10;             /* &_intv_start + 0x10.  */
-       src = &_intv_load_start;
-       do {
-               u32 t0 = src[0], t1 = src[1], t2 = src[2], t3 = src[3];
-               u32 t4 = src[4], t5 = src[5], t6 = src[6], t7 = src[7];
-               dst[0] = t0; dst[1] = t1; dst[2] = t2; dst[3] = t3;
-               dst[4] = t4; dst[5] = t5; dst[6] = t6; dst[7] = t7;
-               dst += 8;
-               src += 8;
-       } while (dst < &_intv_end);
-}
-
-void __init mach_setup (char **cmdline)
-{
-       memcons_setup ();
-
-       /* Setup up NMI0 to copy the registers to a known memory location.
-          The FGPA board has a button that produces NMI0 when pressed, so
-          this allows us to push the button, and then look at memory to see
-          what's in the registers (there's no other way to easily do so).
-          We have to use `setup_irq' instead of `request_irq' because it's
-          still too early to do memory allocation.  */
-       setup_irq (IRQ_NMI (0), &reg_snap_action);
-}
-
-void mach_get_physical_ram (unsigned long *ram_start, unsigned long *ram_len)
-{
-       *ram_start = ERAM_ADDR;
-       *ram_len = ERAM_SIZE;
-}
-
-void __init mach_sched_init (struct irqaction *timer_action)
-{
-       /* Setup up the timer interrupt.  The FPGA peripheral control
-          registers _only_ work with single-bit writes (set1/clr1)!  */
-       __clear_bit (RPU_GTMC_CE_BIT, &RPU_GTMC);
-       __clear_bit (RPU_GTMC_CLK_BIT, &RPU_GTMC);
-       __set_bit (RPU_GTMC_CE_BIT, &RPU_GTMC);
-
-       /* We use the first RPU interrupt, which occurs every 8.192ms.  */
-       setup_irq (IRQ_RPU (0), timer_action);
-}
-
-\f
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-
-void machine_halt (void) __attribute__ ((noreturn));
-void machine_halt (void)
-{
-       for (;;) {
-               DWC(0) = 0x7777;
-               DWC(1) = 0x7777;
-               ASC = 0xffff;
-               FLGREG(0) = 1;  /* Halt immediately.  */
-               asm ("di; halt; nop; nop; nop; nop; nop");
-       }
-}
-
-void machine_restart (char *__unused)
-{
-       machine_halt ();
-}
-
-void machine_power_off (void)
-{
-       machine_halt ();
-}
-
-\f
-/* Interrupts */
-
-struct v850e_intc_irq_init irq_inits[] = {
-       { "IRQ", 0,             NUM_MACH_IRQS,  1, 7 },
-       { "RPU", IRQ_RPU(0),    IRQ_RPU_NUM,    1, 6 },
-       { 0 }
-};
-#define NUM_IRQ_INITS (ARRAY_SIZE(irq_inits) - 1)
-
-struct hw_interrupt_type hw_itypes[NUM_IRQ_INITS];
-
-/* Initialize interrupts.  */
-void __init mach_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-
-\f
-/* An interrupt handler that copies the registers to a known memory location,
-   for debugging purposes.  */
-
-static void make_reg_snap (int irq, void *dummy, struct pt_regs *regs)
-{
-       (*(unsigned *)REG_DUMP_ADDR)++;
-       (*(struct pt_regs *)(REG_DUMP_ADDR + sizeof (unsigned))) = *regs;
-}
-
-static int reg_snap_dev_id;
-static struct irqaction reg_snap_action = {
-       .handler = make_reg_snap,
-       .mask = CPU_MASK_NONE,
-       .name = "reg_snap",
-       .dev_id = &reg_snap_dev_id,
-};
diff --git a/arch/v850/kernel/fpga85e2c.ld b/arch/v850/kernel/fpga85e2c.ld
deleted file mode 100644 (file)
index b5d4578..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Linker script for the FPGA implementation of the V850E2 NA85E2C cpu core
-   (CONFIG_V850E2_FPGA85E2C).  */
-
-MEMORY {
-       /* Reset vector.  */
-       RESET    : ORIGIN = 0, LENGTH = 0x10
-       /* Interrupt vectors.  */
-       INTV      : ORIGIN = 0x10, LENGTH = 0x470
-       /* The `window' in RAM were we're allowed to load stuff.  */
-       RAM_LOW   : ORIGIN = 0x480, LENGTH = 0x0005FB80
-       /* Some more ram above the window were we can put bss &c.  */
-       RAM_HIGH  : ORIGIN = 0x00060000, LENGTH = 0x000A0000
-       /* This is the area visible from the outside world (we can use
-          this only for uninitialized data).  */
-       VISIBLE   : ORIGIN = 0x00200000, LENGTH = 0x00060000
-}
-
-SECTIONS {
-       .reset : {
-               __kram_start = . ;
-               __intv_start = . ;
-                       *(.intv.reset)  /* Reset vector */
-       } > RESET
-
-       .ram_low : {
-               __r0_ram = . ;          /* Must be near address 0.  */
-               . = . + 32 ;
-
-               TEXT_CONTENTS
-               DATA_CONTENTS
-               ROOT_FS_CONTENTS
-               RAMK_INIT_CONTENTS_NO_END
-               INITRAMFS_CONTENTS
-       } > RAM_LOW
-
-        /* Where the interrupt vectors are initially loaded.  */
-       __intv_load_start = . ;
-
-       .intv : {
-                       *(.intv.common) /* Vectors common to all v850e proc. */
-                       *(.intv.mach)   /* Machine-specific int. vectors.  */
-               __intv_end = . ;
-       } > INTV  AT> RAM_LOW
-
-       .ram_high : {
-               /* This is here so that when we free init memory the
-                  load-time copy of the interrupt vectors and any empty
-                  space at the end of the `RAM_LOW' area is freed too.  */
-               . = ALIGN (4096);
-               __init_end = . ;
-
-               BSS_CONTENTS
-               __kram_end = . ;
-               BOOTMAP_CONTENTS
-       } > RAM_HIGH
-
-       .visible : {
-               _memcons_output = . ;
-               . = . + 0x8000 ;
-               _memcons_output_end = . ;
-       } > VISIBLE
-}
diff --git a/arch/v850/kernel/gbus_int.c b/arch/v850/kernel/gbus_int.c
deleted file mode 100644 (file)
index b2bcc25..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * arch/v850/kernel/gbus_int.c -- Midas labs GBUS interrupt support
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/interrupt.h>
-#include <linux/signal.h>
-#include <linux/kernel.h>
-
-#include <asm/machdep.h>
-
-
-/* The number of shared GINT interrupts. */
-#define NUM_GINTS      4
-
-/* For each GINT interrupt, how many GBUS interrupts are using it.  */
-static unsigned gint_num_active_irqs[NUM_GINTS] = { 0 };
-
-/* A table of GINTn interrupts we actually use.
-   Note that we don't use GINT0 because all the boards we support treat it
-   specially.  */
-struct used_gint {
-       unsigned gint;
-       unsigned priority;
-} used_gint[] = {
-       { 1, GBUS_INT_PRIORITY_HIGH },
-       { 3, GBUS_INT_PRIORITY_LOW }
-};
-#define NUM_USED_GINTS ARRAY_SIZE(used_gint)
-
-/* A table of which GINT is used by each GBUS interrupts (they are
-   assigned based on priority).  */
-static unsigned char gbus_int_gint[IRQ_GBUS_INT_NUM];
-
-\f
-/* Interrupt enabling/disabling.  */
-
-/* Enable interrupt handling for interrupt IRQ.  */
-void gbus_int_enable_irq (unsigned irq)
-{
-       unsigned gint = gbus_int_gint[irq - GBUS_INT_BASE_IRQ];
-       GBUS_INT_ENABLE (GBUS_INT_IRQ_WORD(irq), gint)
-               |= GBUS_INT_IRQ_MASK (irq);
-}
-
-/* Disable interrupt handling for interrupt IRQ.  Note that any
-   interrupts received while disabled will be delivered once the
-   interrupt is enabled again, unless they are explicitly cleared using
-   `gbus_int_clear_pending_irq'.  */
-void gbus_int_disable_irq (unsigned irq)
-{
-       unsigned gint = gbus_int_gint[irq - GBUS_INT_BASE_IRQ];
-       GBUS_INT_ENABLE (GBUS_INT_IRQ_WORD(irq), gint)
-               &= ~GBUS_INT_IRQ_MASK (irq);
-}
-
-/* Return true if interrupt handling for interrupt IRQ is enabled.  */
-int gbus_int_irq_enabled (unsigned irq)
-{
-       unsigned gint = gbus_int_gint[irq - GBUS_INT_BASE_IRQ];
-       return (GBUS_INT_ENABLE (GBUS_INT_IRQ_WORD(irq), gint)
-               & GBUS_INT_IRQ_MASK(irq));
-}
-
-/* Disable all GBUS irqs.  */
-void gbus_int_disable_irqs ()
-{
-       unsigned w, n;
-       for (w = 0; w < GBUS_INT_NUM_WORDS; w++)
-               for (n = 0; n < IRQ_GINT_NUM; n++)
-                       GBUS_INT_ENABLE (w, n) = 0;
-}
-
-/* Clear any pending interrupts for IRQ.  */
-void gbus_int_clear_pending_irq (unsigned irq)
-{
-       GBUS_INT_CLEAR (GBUS_INT_IRQ_WORD(irq)) = GBUS_INT_IRQ_MASK (irq);
-}
-
-/* Return true if interrupt IRQ is pending (but disabled).  */
-int gbus_int_irq_pending (unsigned irq)
-{
-       return (GBUS_INT_STATUS (GBUS_INT_IRQ_WORD(irq))
-               & GBUS_INT_IRQ_MASK(irq));
-}
-
-\f
-/* Delegating interrupts.  */
-
-/* Handle a shared GINT interrupt by passing to the appropriate GBUS
-   interrupt handler.  */
-static irqreturn_t gbus_int_handle_irq (int irq, void *dev_id,
-                                       struct pt_regs *regs)
-{
-       unsigned w;
-       irqreturn_t rval = IRQ_NONE;
-       unsigned gint = irq - IRQ_GINT (0);
-
-       for (w = 0; w < GBUS_INT_NUM_WORDS; w++) {
-               unsigned status = GBUS_INT_STATUS (w);
-               unsigned enable = GBUS_INT_ENABLE (w, gint);
-
-               /* Only pay attention to enabled interrupts.  */
-               status &= enable;
-               if (status) {
-                       irq = IRQ_GBUS_INT (w * GBUS_INT_BITS_PER_WORD);
-                       do {
-                               /* There's an active interrupt in word
-                                  W, find out which one, and call its
-                                  handler.  */
-
-                               while (! (status & 0x1)) {
-                                       irq++;
-                                       status >>= 1;
-                               }
-                               status &= ~0x1;
-
-                               /* Recursively call handle_irq to handle it. */
-                               handle_irq (irq, regs);
-                               rval = IRQ_HANDLED;
-                       } while (status);
-               }
-       }
-
-       /* Toggle the `all enable' bit back and forth, which should cause
-          another edge transition if there are any other interrupts
-          still pending, and so result in another CPU interrupt.  */
-       GBUS_INT_ENABLE (0, gint) &= ~0x1;
-       GBUS_INT_ENABLE (0, gint) |=  0x1;
-
-       return rval;
-}
-
-\f
-/* Initialize GBUS interrupt sources.  */
-
-static void irq_nop (unsigned irq) { }
-
-static unsigned gbus_int_startup_irq (unsigned irq)
-{
-       unsigned gint = gbus_int_gint[irq - GBUS_INT_BASE_IRQ];
-
-       if (gint_num_active_irqs[gint] == 0) {
-               /* First enable the CPU interrupt.  */
-               int rval =
-                       request_irq (IRQ_GINT(gint), gbus_int_handle_irq,
-                                    IRQF_DISABLED,
-                                    "gbus_int_handler",
-                                    &gint_num_active_irqs[gint]);
-               if (rval != 0)
-                       return rval;
-       }
-
-       gint_num_active_irqs[gint]++;
-
-       gbus_int_clear_pending_irq (irq);
-       gbus_int_enable_irq (irq);
-
-       return 0;
-}
-
-static void gbus_int_shutdown_irq (unsigned irq)
-{
-       unsigned gint = gbus_int_gint[irq - GBUS_INT_BASE_IRQ];
-
-       gbus_int_disable_irq (irq);
-
-       if (--gint_num_active_irqs[gint] == 0)
-               /* Disable the CPU interrupt.  */
-               free_irq (IRQ_GINT(gint), &gint_num_active_irqs[gint]);
-}
-
-/* Initialize HW_IRQ_TYPES for INTC-controlled irqs described in array
-   INITS (which is terminated by an entry with the name field == 0).  */
-void __init gbus_int_init_irq_types (struct gbus_int_irq_init *inits,
-                                    struct hw_interrupt_type *hw_irq_types)
-{
-       struct gbus_int_irq_init *init;
-       for (init = inits; init->name; init++) {
-               unsigned i;
-               struct hw_interrupt_type *hwit = hw_irq_types++;
-
-               hwit->typename = init->name;
-
-               hwit->startup  = gbus_int_startup_irq;
-               hwit->shutdown = gbus_int_shutdown_irq;
-               hwit->enable   = gbus_int_enable_irq;
-               hwit->disable  = gbus_int_disable_irq;
-               hwit->ack      = irq_nop;
-               hwit->end      = irq_nop;
-               
-               /* Initialize kernel IRQ infrastructure for this interrupt.  */
-               init_irq_handlers(init->base, init->num, init->interval, hwit);
-
-               /* Set the interrupt priorities.  */
-               for (i = 0; i < init->num; i++) {
-                       unsigned j;
-                       for (j = 0; j < NUM_USED_GINTS; j++)
-                               if (used_gint[j].priority > init->priority)
-                                       break;
-                       /* Wherever we stopped looking is one past the
-                          GINT we want. */
-                       gbus_int_gint[init->base + i * init->interval
-                                     - GBUS_INT_BASE_IRQ]
-                               = used_gint[j > 0 ? j - 1 : 0].gint;
-               }
-       }
-}
-
-\f
-/* Initialize IRQS.  */
-
-/* Chip interrupts (GINTn) shared among GBUS interrupts.  */
-static struct hw_interrupt_type gint_hw_itypes[NUM_USED_GINTS];
-
-
-/* GBUS interrupts themselves.  */
-
-struct gbus_int_irq_init gbus_irq_inits[] __initdata = {
-       /* First set defaults.  */
-       { "GBUS_INT", IRQ_GBUS_INT(0), IRQ_GBUS_INT_NUM, 1, 6},
-       { 0 }
-};
-#define NUM_GBUS_IRQ_INITS (ARRAY_SIZE(gbus_irq_inits) - 1)
-
-static struct hw_interrupt_type gbus_hw_itypes[NUM_GBUS_IRQ_INITS];
-
-
-/* Initialize GBUS interrupts.  */
-void __init gbus_int_init_irqs (void)
-{
-       unsigned i;
-
-       /* First initialize the shared gint interrupts.  */
-       for (i = 0; i < NUM_USED_GINTS; i++) {
-               unsigned gint = used_gint[i].gint;
-               struct v850e_intc_irq_init gint_irq_init[2];
-
-               /* We initialize one GINT interrupt at a time.  */
-               gint_irq_init[0].name = "GINT";
-               gint_irq_init[0].base = IRQ_GINT (gint);
-               gint_irq_init[0].num = 1;
-               gint_irq_init[0].interval = 1;
-               gint_irq_init[0].priority = used_gint[i].priority;
-
-               gint_irq_init[1].name = 0; /* Terminate the vector.  */
-
-               v850e_intc_init_irq_types (gint_irq_init, gint_hw_itypes);
-       }
-
-       /* Then the GBUS interrupts.  */
-       gbus_int_disable_irqs ();
-       gbus_int_init_irq_types (gbus_irq_inits, gbus_hw_itypes);
-       /* Turn on the `all enable' bits, which are ANDed with
-          individual interrupt enable bits; we only want to bother with
-          the latter.  They are the first bit in the first word of each
-          interrupt-enable area.  */
-       for (i = 0; i < NUM_USED_GINTS; i++)
-               GBUS_INT_ENABLE (0, used_gint[i].gint) = 0x1;
-}
diff --git a/arch/v850/kernel/head.S b/arch/v850/kernel/head.S
deleted file mode 100644 (file)
index c490b93..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * arch/v850/kernel/head.S -- Lowest-level startup code
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <asm/clinkage.h>
-#include <asm/current.h>
-#include <asm/entry.h>
-#include <asm/thread_info.h>
-#include <asm/irq.h>
-
-
-/* Make a slightly more convenient alias for C_SYMBOL_NAME.  */
-#define CSYM   C_SYMBOL_NAME
-
-
-       .text
-
-       // Define `mach_early_init' as a weak symbol
-       .global CSYM(mach_early_init)
-       .weak   CSYM(mach_early_init)
-
-C_ENTRY(start):
-       // Make sure interrupts are turned off, just in case
-       di
-
-#ifdef CONFIG_RESET_GUARD
-       // See if we got here via an unexpected reset
-       ld.w    RESET_GUARD, r19        // Check current value of reset guard
-       mov     RESET_GUARD_ACTIVE, r20
-       cmp     r19, r20
-       bne     1f                      // Guard was not active
-
-       // If we get here, the reset guard was active.  Load up some
-       // interesting values as arguments, and jump to the handler.
-       st.w    r0, RESET_GUARD         // Allow further resets to succeed
-       mov     lp, r6                  // Arg 0: return address
-       ld.b    KM, r7                  // Arg 1: kernel mode
-       mov     sp, r9                  // Arg 3: stack pointer
-       ld.w    KSP, r19                // maybe switch to kernel stack
-       cmp     r7, r0                  // see if already in kernel mode
-       cmov    z, r19, sp, sp          //  and switch to kernel stack if not
-       GET_CURRENT_TASK(r8)            // Arg 2: task pointer
-       jr      CSYM(unexpected_reset)
-
-1:     st.w    r20, RESET_GUARD        // Turn on reset guard
-#endif /* CONFIG_RESET_GUARD */
-
-       // Setup a temporary stack for doing pre-initialization function calls.
-       // 
-       // We can't use the initial kernel stack, because (1) it may be
-       // located in memory we're not allowed to touch, and (2) since
-       // it's in the data segment, calling memcpy to initialize that
-       // area from ROM will overwrite memcpy's return address.
-       mov     hilo(CSYM(_init_stack_end) - 4), sp
-
-       // See if there's a platform-specific early-initialization routine
-       // defined; it's a weak symbol, so it will have an address of zero if
-       // there's not.
-       mov     hilo(CSYM(mach_early_init)), r6
-       cmp     r6, r0
-       bz      3f
-
-       // There is one, so call it.  If this function is written in C, it
-       // should be very careful -- the stack pointer is valid, but very
-       // little else is (e.g., bss is not zeroed yet, and initialized data
-       // hasn't been).
-       jarl    2f, lp                  // first figure out return address
-2:     add     3f - ., lp
-       jmp     [r6]                    // do call
-3:
-
-#ifdef CONFIG_ROM_KERNEL
-       // Copy the data area from ROM to RAM
-       mov     hilo(CSYM(_rom_copy_dst_start)), r6
-       mov     hilo(CSYM(_rom_copy_src_start)), r7
-       mov     hilo(CSYM(_rom_copy_dst_end)), r8
-       sub     r6, r8
-       jarl    CSYM(memcpy), lp
-#endif
-
-       // Load the initial thread's stack, and current task pointer (in r16)
-       mov     hilo(CSYM(init_thread_union)), r19
-       movea   THREAD_SIZE, r19, sp
-       ld.w    TI_TASK[r19], CURRENT_TASK
-
-#ifdef CONFIG_TIME_BOOTUP
-       /* This stuff must come after mach_early_init, because interrupts may
-          not work until after its been called.  */
-       jarl    CSYM(highres_timer_reset), lp
-       jarl    CSYM(highres_timer_start), lp
-#endif
-
-       // Kernel stack pointer save location
-       st.w    sp, KSP
-
-       // Assert that we're in `kernel mode'
-       mov     1, r19
-       st.w    r19, KM
-
-#ifdef CONFIG_ZERO_BSS
-       // Zero bss area, since we can't rely upon any loader to do so
-       mov     hilo(CSYM(_sbss)), r6
-       mov     r0, r7
-       mov     hilo(CSYM(_ebss)), r8
-       sub     r6, r8
-       jarl    CSYM(memset), lp
-#endif
-
-       // What happens if the main kernel function returns (it shouldn't)
-       mov     hilo(CSYM(machine_halt)), lp
-
-       // Start the linux kernel.  We use an indirect jump to get extra
-       // range, because on some platforms this initial startup code
-       // (and the associated platform-specific code in mach_early_init)
-       // are located far away from the main kernel, e.g. so that they
-       // can initialize RAM first and copy the kernel or something.
-       mov     hilo(CSYM(start_kernel)), r12
-       jmp     [r12]
-C_END(start)
diff --git a/arch/v850/kernel/highres_timer.c b/arch/v850/kernel/highres_timer.c
deleted file mode 100644 (file)
index b16ad1e..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * arch/v850/kernel/highres_timer.c -- High resolution timing routines
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <asm/system.h>
-#include <asm/v850e_timer_d.h>
-#include <asm/highres_timer.h>
-
-#define HIGHRES_TIMER_USEC_SHIFT   12
-
-/* Pre-calculated constant used for converting ticks to real time
-   units.  We initialize it to prevent it being put into BSS.  */
-static u32 highres_timer_usec_prescale = 1;
-
-void highres_timer_slow_tick_irq (void) __attribute__ ((noreturn));
-void highres_timer_slow_tick_irq (void)
-{
-       /* This is an interrupt handler, so it must be very careful to
-          not to trash any registers.  At this point, the stack-pointer
-          (r3) has been saved in the chip ram location ENTRY_SP by the
-          interrupt vector, so we can use it as a scratch register; we
-          must also restore it before returning.  */
-       asm ("ld.w      %0[r0], sp;"
-            "add       1, sp;"
-            "st.w      sp, %0[r0];"
-            "ld.w      %1[r0], sp;" /* restore pre-irq stack-pointer */
-            "reti"
-            ::
-             "i" (HIGHRES_TIMER_SLOW_TICKS_ADDR),
-             "i" (ENTRY_SP_ADDR)
-            : "memory");
-}
-
-void highres_timer_reset (void)
-{
-       V850E_TIMER_D_TMD (HIGHRES_TIMER_TIMER_D_UNIT) = 0;
-       HIGHRES_TIMER_SLOW_TICKS = 0;
-}
-
-void highres_timer_start (void)
-{
-       u32 fast_tick_rate;
-
-       /* Start hardware timer.  */
-       v850e_timer_d_configure (HIGHRES_TIMER_TIMER_D_UNIT,
-                                HIGHRES_TIMER_SLOW_TICK_RATE);
-
-       fast_tick_rate =
-               (V850E_TIMER_D_BASE_FREQ
-                >> V850E_TIMER_D_DIVLOG2 (HIGHRES_TIMER_TIMER_D_UNIT));
-
-       /* The obvious way of calculating microseconds from fast ticks
-          is to do:
-
-            usec = fast_ticks * 10^6 / fast_tick_rate
-
-          However, divisions are much slower than multiplications, and
-          the above calculation can overflow, so we do this instead:
-
-            usec = fast_ticks * (10^6 * 2^12 / fast_tick_rate) / 2^12
-
-           since we can pre-calculate (10^6 * (2^12 / fast_tick_rate))
-          and use a shift for dividing by 2^12, this avoids division,
-          and is almost as accurate (it differs by about 2 microseconds
-          at the extreme value of the fast-tick counter's ranger).  */
-       highres_timer_usec_prescale = ((1000000 << HIGHRES_TIMER_USEC_SHIFT)
-                                      / fast_tick_rate);
-
-       /* Enable the interrupt (which is hardwired to this use), and
-          give it the highest priority.  */
-       V850E_INTC_IC (IRQ_INTCMD (HIGHRES_TIMER_TIMER_D_UNIT)) = 0;
-}
-
-void highres_timer_stop (void)
-{
-       /* Stop the timer.  */
-       V850E_TIMER_D_TMCD (HIGHRES_TIMER_TIMER_D_UNIT) =
-               V850E_TIMER_D_TMCD_CAE;
-       /* Disable its interrupt, just in case.  */
-       v850e_intc_disable_irq (IRQ_INTCMD (HIGHRES_TIMER_TIMER_D_UNIT));
-}
-
-inline void highres_timer_read_ticks (u32 *slow_ticks, u32 *fast_ticks)
-{
-       int flags;
-       u32 fast_ticks_1, fast_ticks_2, _slow_ticks;
-
-       local_irq_save (flags);
-       fast_ticks_1 = V850E_TIMER_D_TMD (HIGHRES_TIMER_TIMER_D_UNIT);
-       _slow_ticks = HIGHRES_TIMER_SLOW_TICKS;
-       fast_ticks_2 = V850E_TIMER_D_TMD (HIGHRES_TIMER_TIMER_D_UNIT);
-       local_irq_restore (flags);
-
-       if (fast_ticks_2 < fast_ticks_1)
-               _slow_ticks++;
-
-       *slow_ticks = _slow_ticks;
-       *fast_ticks = fast_ticks_2;
-}
-
-inline void highres_timer_ticks_to_timeval (u32 slow_ticks, u32 fast_ticks,
-                                           struct timeval *tv)
-{
-       unsigned long sec, sec_rem, usec;
-
-       usec = ((fast_ticks * highres_timer_usec_prescale)
-               >> HIGHRES_TIMER_USEC_SHIFT);
-
-       sec = slow_ticks / HIGHRES_TIMER_SLOW_TICK_RATE;
-       sec_rem = slow_ticks % HIGHRES_TIMER_SLOW_TICK_RATE;
-
-       usec += sec_rem * (1000000 / HIGHRES_TIMER_SLOW_TICK_RATE);
-
-       tv->tv_sec = sec;
-       tv->tv_usec = usec;
-}
-
-void highres_timer_read (struct timeval *tv)
-{
-       u32 fast_ticks, slow_ticks;
-       highres_timer_read_ticks (&slow_ticks, &fast_ticks);
-       highres_timer_ticks_to_timeval (slow_ticks, fast_ticks, tv);
-}
diff --git a/arch/v850/kernel/init_task.c b/arch/v850/kernel/init_task.c
deleted file mode 100644 (file)
index 44b274d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * arch/v850/kernel/init_task.c -- Initial task/thread structures
- *
- *  Copyright (C) 2002,03  NEC Electronics Corporation
- *  Copyright (C) 2002,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- */
-
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct fs_struct init_fs = INIT_FS;
-static struct signal_struct init_signals = INIT_SIGNALS (init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-struct mm_struct init_mm = INIT_MM (init_mm);
-
-EXPORT_SYMBOL(init_mm);
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK (init_task);
-
-EXPORT_SYMBOL(init_task);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry.
- */
-union thread_union init_thread_union 
-       __attribute__((__section__(".data.init_task"))) =
-               { INIT_THREAD_INFO(init_task) };
diff --git a/arch/v850/kernel/intv.S b/arch/v850/kernel/intv.S
deleted file mode 100644 (file)
index 671e4c6..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * arch/v850/kernel/intv.S -- Interrupt vectors
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <asm/clinkage.h>
-#include <asm/irq.h>
-#include <asm/machdep.h>
-#include <asm/entry.h>
-
-#ifdef CONFIG_V850E_HIGHRES_TIMER
-#include <asm/highres_timer.h>
-#endif
-
-/* Jump to an interrupt/trap handler.  These handlers (defined in entry.S)
-   expect the stack-pointer to be saved in ENTRY_SP, so we use sp to do an
-   indirect jump (which avoids problems when the handler is more than a signed
-   22-bit offset away).  */
-#define JUMP_TO_HANDLER(name, sp_save_loc)                                   \
-       st.w    sp, sp_save_loc;                                              \
-       mov     hilo(name), sp;                                               \
-       jmp     [sp]
-
-
-       /* Reset vector.  */
-       .section        .intv.reset, "ax"
-       .org    0x0
-       mov     hilo(C_SYMBOL_NAME(start)), r1;
-       jmp     [r1]
-
-
-       /* Generic interrupt vectors.  */
-       .section        .intv.common, "ax"
-       .balign 0x10
-       JUMP_TO_HANDLER (nmi, NMI_ENTRY_SP)     // 0x10 - NMI0
-       .balign 0x10
-       JUMP_TO_HANDLER (nmi, NMI_ENTRY_SP)     // 0x20 - NMI1
-       .balign 0x10
-       JUMP_TO_HANDLER (nmi, NMI_ENTRY_SP)     // 0x30 - NMI2
-       
-       .balign 0x10
-       JUMP_TO_HANDLER (trap, ENTRY_SP)        // 0x40 - TRAP0n
-       .balign 0x10
-       JUMP_TO_HANDLER (trap, ENTRY_SP)        // 0x50 - TRAP1n
-
-       .balign 0x10
-       JUMP_TO_HANDLER (dbtrap, ENTRY_SP)      // 0x60 - Illegal op / DBTRAP insn
-
-
-       /* Hardware interrupt vectors.  */
-       .section        .intv.mach, "ax"
-       .org    0x0
-
-#if defined (CONFIG_V850E_HIGHRES_TIMER) && defined (IRQ_INTCMD)
-
-       /* Interrupts before the highres timer interrupt.  */
-       .rept   IRQ_INTCMD (HIGHRES_TIMER_TIMER_D_UNIT)
-       .balign 0x10
-       JUMP_TO_HANDLER (irq, ENTRY_SP)
-       .endr
-
-       /* The highres timer interrupt.  */
-       .balign 0x10
-       JUMP_TO_HANDLER (C_SYMBOL_NAME (highres_timer_slow_tick_irq), ENTRY_SP)
-
-       /* Interrupts after the highres timer interrupt.  */
-       .rept   NUM_CPU_IRQS - IRQ_INTCMD (HIGHRES_TIMER_TIMER_D_UNIT) - 1
-       .balign 0x10
-       JUMP_TO_HANDLER (irq, ENTRY_SP)
-       .endr
-
-#else /* No highres timer */
-
-       .rept   NUM_CPU_IRQS
-       .balign 0x10
-       JUMP_TO_HANDLER (irq, ENTRY_SP)
-       .endr
-
-#endif /* Highres timer */
diff --git a/arch/v850/kernel/irq.c b/arch/v850/kernel/irq.c
deleted file mode 100644 (file)
index 858c458..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * arch/v850/kernel/irq.c -- High-level interrupt handling
- *
- *  Copyright (C) 2001,02,03,04,05  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03,04,05  Miles Bader <miles@gnu.org>
- *  Copyright (C) 1994-2000  Ralf Baechle
- *  Copyright (C) 1992  Linus Torvalds
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * This file was was derived from the mips version, arch/mips/kernel/irq.c
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/irq.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/kernel_stat.h>
-#include <linux/slab.h>
-#include <linux/mm.h>
-#include <linux/random.h>
-#include <linux/seq_file.h>
-
-#include <asm/system.h>
-
-/*
- * 'what should we do if we get a hw irq event on an illegal vector'.
- * each architecture has to answer this themselves, it doesn't deserve
- * a generic callback i think.
- */
-void ack_bad_irq(unsigned int irq)
-{
-       printk("received IRQ %d with unknown interrupt type\n", irq);
-}
-
-volatile unsigned long irq_err_count, spurious_count;
-
-/*
- * Generic, controller-independent functions:
- */
-
-int show_interrupts(struct seq_file *p, void *v)
-{
-       int irq = *(loff_t *) v;
-
-       if (irq == 0) {
-               int cpu;
-               seq_puts(p, "           ");
-               for (cpu=0; cpu < 1 /*smp_num_cpus*/; cpu++)
-                       seq_printf(p, "CPU%d       ", cpu);
-               seq_putc(p, '\n');
-       }
-
-       if (irq < NR_IRQS) {
-               unsigned long flags;
-               struct irqaction *action;
-
-               spin_lock_irqsave(&irq_desc[irq].lock, flags);
-
-               action = irq_desc[irq].action;
-               if (action) {
-                       int j;
-                       int count = 0;
-                       int num = -1;
-                       const char *type_name = irq_desc[irq].chip->typename;
-
-                       for (j = 0; j < NR_IRQS; j++)
-                               if (irq_desc[j].chip->typename == type_name){
-                                       if (irq == j)
-                                               num = count;
-                                       count++;
-                               }
-
-                       seq_printf(p, "%3d: ",irq);
-                       seq_printf(p, "%10u ", kstat_irqs(irq));
-                       if (count > 1) {
-                               int prec = (num >= 100 ? 3 : num >= 10 ? 2 : 1);
-                               seq_printf(p, " %*s%d", 14 - prec,
-                                          type_name, num);
-                       } else
-                               seq_printf(p, " %14s", type_name);
-               
-                       seq_printf(p, "  %s", action->name);
-                       for (action=action->next; action; action = action->next)
-                               seq_printf(p, ", %s", action->name);
-                       seq_putc(p, '\n');
-               }
-
-               spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
-       } else if (irq == NR_IRQS)
-               seq_printf(p, "ERR: %10lu\n", irq_err_count);
-
-       return 0;
-}
-
-/* Handle interrupt IRQ.  REGS are the registers at the time of ther
-   interrupt.  */
-unsigned int handle_irq (int irq, struct pt_regs *regs)
-{
-       irq_enter();
-       __do_IRQ(irq, regs);
-       irq_exit();
-       return 1;
-}
-
-/* Initialize irq handling for IRQs.
-   BASE_IRQ, BASE_IRQ+INTERVAL, ..., BASE_IRQ+NUM*INTERVAL
-   to IRQ_TYPE.  An IRQ_TYPE of 0 means to use a generic interrupt type.  */
-void __init
-init_irq_handlers (int base_irq, int num, int interval,
-                  struct hw_interrupt_type *irq_type)
-{
-       while (num-- > 0) {
-               irq_desc[base_irq].status  = IRQ_DISABLED;
-               irq_desc[base_irq].action  = NULL;
-               irq_desc[base_irq].depth   = 1;
-               irq_desc[base_irq].chip = irq_type;
-               base_irq += interval;
-       }
-}
diff --git a/arch/v850/kernel/ma.c b/arch/v850/kernel/ma.c
deleted file mode 100644 (file)
index 143774d..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * arch/v850/kernel/ma.c -- V850E/MA series of cpu chips
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/swap.h>
-#include <linux/bootmem.h>
-#include <linux/irq.h>
-
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/machdep.h>
-#include <asm/v850e_timer_d.h>
-
-#include "mach.h"
-
-void __init mach_sched_init (struct irqaction *timer_action)
-{
-       /* Start hardware timer.  */
-       v850e_timer_d_configure (0, HZ);
-       /* Install timer interrupt handler.  */
-       setup_irq (IRQ_INTCMD(0), timer_action);
-}
-
-static struct v850e_intc_irq_init irq_inits[] = {
-       { "IRQ", 0,             NUM_MACH_IRQS,  1, 7 },
-       { "CMD", IRQ_INTCMD(0), IRQ_INTCMD_NUM, 1, 5 },
-       { "DMA", IRQ_INTDMA(0), IRQ_INTDMA_NUM, 1, 2 },
-       { "CSI", IRQ_INTCSI(0), IRQ_INTCSI_NUM, 4, 4 },
-       { "SER", IRQ_INTSER(0), IRQ_INTSER_NUM, 4, 3 },
-       { "SR",  IRQ_INTSR(0),  IRQ_INTSR_NUM,  4, 4 },
-       { "ST",  IRQ_INTST(0),  IRQ_INTST_NUM,  4, 5 },
-       { 0 }
-};
-#define NUM_IRQ_INITS (ARRAY_SIZE(irq_inits) - 1)
-
-static struct hw_interrupt_type hw_itypes[NUM_IRQ_INITS];
-
-/* Initialize MA chip interrupts.  */
-void __init ma_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-
-/* Called before configuring an on-chip UART.  */
-void ma_uart_pre_configure (unsigned chan, unsigned cflags, unsigned baud)
-{
-       /* We only know about the first two UART channels (though
-          specific chips may have more).  */
-       if (chan < 2) {
-               unsigned bits = 0x3 << (chan * 3);
-               /* Specify that the relevant pins on the chip should do
-                  serial I/O, not direct I/O.  */
-               MA_PORT4_PMC |= bits;
-               /* Specify that we're using the UART, not the CSI device.  */
-               MA_PORT4_PFC |= bits;
-       }
-}
diff --git a/arch/v850/kernel/mach.c b/arch/v850/kernel/mach.c
deleted file mode 100644 (file)
index b9db278..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * arch/v850/kernel/mach.c -- Defaults for some things defined by "mach.h"
- *
- *  Copyright (C) 2001  NEC Corporation
- *  Copyright (C) 2001  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include "mach.h"
-
-/* Called with each timer tick, if non-zero.  */
-void (*mach_tick)(void) = 0;
diff --git a/arch/v850/kernel/mach.h b/arch/v850/kernel/mach.h
deleted file mode 100644 (file)
index 9e0e481..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * arch/v850/kernel/mach.h -- Machine-dependent functions used by v850 port
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#ifndef __V850_MACH_H__
-#define __V850_MACH_H__
-
-#include <linux/kernel.h>
-#include <linux/time.h>
-#include <linux/spinlock.h>
-#include <linux/interrupt.h>
-#include <linux/fs.h>
-#include <linux/seq_file.h>
-
-#include <asm/ptrace.h>
-#include <asm/entry.h>
-#include <asm/clinkage.h>
-
-void mach_setup (char **cmdline);
-void mach_gettimeofday (struct timespec *tv);
-void mach_sched_init (struct irqaction *timer_action);
-void mach_get_physical_ram (unsigned long *ram_start, unsigned long *ram_len);
-void mach_init_irqs (void);
-
-/* If defined, is called very early in the kernel initialization.  The
-   stack pointer is valid, but very little has been initialized (e.g.,
-   bss is not zeroed yet) when this is called, so care must taken.  */
-void mach_early_init (void);
-
-/* If defined, called after the bootmem allocator has been initialized,
-   to allow the platform-dependent code to reserve any areas of RAM that
-   the kernel shouldn't touch.  */
-void mach_reserve_bootmem (void) __attribute__ ((__weak__));
-
-/* Called with each timer tick, if non-zero.  */
-extern void (*mach_tick) (void);
-
-/* The following establishes aliases for various mach_ functions to the
-   name by which the rest of the kernel calls them.  These statements
-   should only have an effect in the file that defines the actual functions. */
-#define MACH_ALIAS(to, from)                                                 \
-   asm (".global " macrology_stringify (C_SYMBOL_NAME (to)) ";"                      \
-       macrology_stringify (C_SYMBOL_NAME (to))                              \
-       " = " macrology_stringify (C_SYMBOL_NAME (from)))
-/* e.g.: MACH_ALIAS (kernel_name,      arch_spec_name);  */
-
-#endif /* __V850_MACH_H__ */
diff --git a/arch/v850/kernel/me2.c b/arch/v850/kernel/me2.c
deleted file mode 100644 (file)
index 007115d..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * arch/v850/kernel/me2.c -- V850E/ME2 chip-specific support
- *
- *  Copyright (C) 2003  NEC Corporation
- *  Copyright (C) 2003  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/swap.h>
-#include <linux/bootmem.h>
-#include <linux/irq.h>
-
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/machdep.h>
-#include <asm/v850e_timer_d.h>
-
-#include "mach.h"
-
-void __init mach_sched_init (struct irqaction *timer_action)
-{
-       /* Start hardware timer.  */
-       v850e_timer_d_configure (0, HZ);
-       /* Install timer interrupt handler.  */
-       setup_irq (IRQ_INTCMD(0), timer_action);
-}
-
-static struct v850e_intc_irq_init irq_inits[] = {
-       { "IRQ",    0,                NUM_CPU_IRQS,      1, 7 },
-       { "INTP",   IRQ_INTP(0),      IRQ_INTP_NUM,      1, 5 },
-       { "CMD",    IRQ_INTCMD(0),    IRQ_INTCMD_NUM,    1, 3 },
-       { "UBTIRE", IRQ_INTUBTIRE(0), IRQ_INTUBTIRE_NUM, 5, 4 },
-       { "UBTIR",  IRQ_INTUBTIR(0),  IRQ_INTUBTIR_NUM,  5, 4 },
-       { "UBTIT",  IRQ_INTUBTIT(0),  IRQ_INTUBTIT_NUM,  5, 4 },
-       { "UBTIF",  IRQ_INTUBTIF(0),  IRQ_INTUBTIF_NUM,  5, 4 },
-       { "UBTITO", IRQ_INTUBTITO(0), IRQ_INTUBTITO_NUM, 5, 4 },
-       { 0 }
-};
-#define NUM_IRQ_INITS (ARRAY_SIZE(irq_inits) - 1)
-
-static struct hw_interrupt_type hw_itypes[NUM_IRQ_INITS];
-
-/* Initialize V850E/ME2 chip interrupts.  */
-void __init me2_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-
-/* Called before configuring an on-chip UART.  */
-void me2_uart_pre_configure (unsigned chan, unsigned cflags, unsigned baud)
-{
-       if (chan == 0) {
-               /* Specify that the relevant pins on the chip should do
-                  serial I/O, not direct I/O.  */
-               ME2_PORT1_PMC |= 0xC;
-               /* Specify that we're using the UART, not the CSI device. */
-               ME2_PORT1_PFC |= 0xC;
-       } else if (chan == 1) {
-               /* Specify that the relevant pins on the chip should do
-                  serial I/O, not direct I/O.  */
-               ME2_PORT2_PMC |= 0x6;
-               /* Specify that we're using the UART, not the CSI device. */
-               ME2_PORT2_PFC |= 0x6;
-       }
-}
diff --git a/arch/v850/kernel/memcons.c b/arch/v850/kernel/memcons.c
deleted file mode 100644 (file)
index 92f514f..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * arch/v850/kernel/memcons.c -- Console I/O to a memory buffer
- *
- *  Copyright (C) 2001,02  NEC Corporation
- *  Copyright (C) 2001,02  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/console.h>
-#include <linux/tty.h>
-#include <linux/tty_driver.h>
-#include <linux/init.h>
-
-/* If this device is enabled, the linker map should define start and
-   end points for its buffer. */
-extern char memcons_output[], memcons_output_end;
-
-/* Current offset into the buffer.  */
-static unsigned long memcons_offs = 0;
-
-/* Spinlock protecting memcons_offs.  */
-static DEFINE_SPINLOCK(memcons_lock);
-
-
-static size_t write (const char *buf, size_t len)
-{
-       unsigned long flags;
-       char *point;
-
-       spin_lock_irqsave (memcons_lock, flags);
-
-       point = memcons_output + memcons_offs;
-       if (point + len >= &memcons_output_end) {
-               len = &memcons_output_end - point;
-               memcons_offs = 0;
-       } else
-               memcons_offs += len;
-
-       spin_unlock_irqrestore (memcons_lock, flags);
-
-       memcpy (point, buf, len);
-
-       return len;
-}
-
-\f
-/*  Low-level console. */
-
-static void memcons_write (struct console *co, const char *buf, unsigned len)
-{
-       while (len > 0)
-               len -= write (buf, len);
-}
-
-static struct tty_driver *tty_driver;
-
-static struct tty_driver *memcons_device (struct console *co, int *index)
-{
-       *index = co->index;
-       return tty_driver;
-}
-
-static struct console memcons =
-{
-    .name      = "memcons",
-    .write     = memcons_write,
-    .device    = memcons_device,
-    .flags     = CON_PRINTBUFFER,
-    .index     = -1,
-};
-
-void memcons_setup (void)
-{
-       register_console (&memcons);
-       printk (KERN_INFO "Console: static memory buffer (memcons)\n");
-}
-\f
-/* Higher level TTY interface.  */
-
-int memcons_tty_open (struct tty_struct *tty, struct file *filp)
-{
-       return 0;
-}
-
-int memcons_tty_write (struct tty_struct *tty, const unsigned char *buf, int len)
-{
-       return write (buf, len);
-}
-
-int memcons_tty_write_room (struct tty_struct *tty)
-{
-       return &memcons_output_end - (memcons_output + memcons_offs);
-}
-
-int memcons_tty_chars_in_buffer (struct tty_struct *tty)
-{
-       /* We have no buffer.  */
-       return 0;
-}
-
-static const struct tty_operations ops = {
-       .open = memcons_tty_open,
-       .write = memcons_tty_write,
-       .write_room = memcons_tty_write_room,
-       .chars_in_buffer = memcons_tty_chars_in_buffer,
-};
-
-int __init memcons_tty_init (void)
-{
-       int err;
-       struct tty_driver *driver = alloc_tty_driver(1);
-       if (!driver)
-               return -ENOMEM;
-
-       driver->name = "memcons";
-       driver->major = TTY_MAJOR;
-       driver->minor_start = 64;
-       driver->type = TTY_DRIVER_TYPE_SYSCONS;
-       driver->init_termios = tty_std_termios;
-       tty_set_operations(driver, &ops);
-       err = tty_register_driver(driver);
-       if (err) {
-               put_tty_driver(driver);
-               return err;
-       }
-       tty_driver = driver;
-       return 0;
-}
-__initcall (memcons_tty_init);
diff --git a/arch/v850/kernel/module.c b/arch/v850/kernel/module.c
deleted file mode 100644 (file)
index 64aeb3e..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * arch/v850/kernel/module.c -- Architecture-specific module functions
- *
- *  Copyright (C) 2002,03  NEC Electronics Corporation
- *  Copyright (C) 2002,03  Miles Bader <miles@gnu.org>
- *  Copyright (C) 2001,03  Rusty Russell
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- *
- * Derived in part from arch/ppc/kernel/module.c
- */
-
-#include <linux/kernel.h>
-#include <linux/vmalloc.h>
-#include <linux/moduleloader.h>
-#include <linux/elf.h>
-
-#if 0
-#define DEBUGP printk
-#else
-#define DEBUGP(fmt , ...)
-#endif
-
-void *module_alloc (unsigned long size)
-{
-       return size == 0 ? 0 : vmalloc (size);
-}
-
-void module_free (struct module *mod, void *module_region)
-{
-       vfree (module_region);
-       /* FIXME: If module_region == mod->init_region, trim exception
-           table entries. */
-}
-
-int module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs,
-                    struct module *mod)
-{
-       return 0;
-}
-
-/* Count how many different relocations (different symbol, different
-   addend) */
-static unsigned int count_relocs(const Elf32_Rela *rela, unsigned int num)
-{
-       unsigned int i, j, ret = 0;
-
-       /* Sure, this is order(n^2), but it's usually short, and not
-           time critical */
-       for (i = 0; i < num; i++) {
-               for (j = 0; j < i; j++) {
-                       /* If this addend appeared before, it's
-                           already been counted */
-                       if (ELF32_R_SYM(rela[i].r_info)
-                           == ELF32_R_SYM(rela[j].r_info)
-                           && rela[i].r_addend == rela[j].r_addend)
-                               break;
-               }
-               if (j == i) ret++;
-       }
-       return ret;
-}
-
-/* Get the potential trampolines size required of the init and
-   non-init sections */
-static unsigned long get_plt_size(const Elf32_Ehdr *hdr,
-                                 const Elf32_Shdr *sechdrs,
-                                 const char *secstrings,
-                                 int is_init)
-{
-       unsigned long ret = 0;
-       unsigned i;
-
-       /* Everything marked ALLOC (this includes the exported
-           symbols) */
-       for (i = 1; i < hdr->e_shnum; i++) {
-               /* If it's called *.init*, and we're not init, we're
-                   not interested */
-               if ((strstr(secstrings + sechdrs[i].sh_name, ".init") != 0)
-                   != is_init)
-                       continue;
-
-               if (sechdrs[i].sh_type == SHT_RELA) {
-                       DEBUGP("Found relocations in section %u\n", i);
-                       DEBUGP("Ptr: %p.  Number: %u\n",
-                              (void *)hdr + sechdrs[i].sh_offset,
-                              sechdrs[i].sh_size / sizeof(Elf32_Rela));
-                       ret += count_relocs((void *)hdr
-                                            + sechdrs[i].sh_offset,
-                                            sechdrs[i].sh_size
-                                            / sizeof(Elf32_Rela))
-                               * sizeof(struct v850_plt_entry);
-               }
-       }
-
-       return ret;
-}
-
-int module_frob_arch_sections(Elf32_Ehdr *hdr,
-                             Elf32_Shdr *sechdrs,
-                             char *secstrings,
-                             struct module *me)
-{
-       unsigned int i;
-
-       /* Find .plt and .pltinit sections */
-       for (i = 0; i < hdr->e_shnum; i++) {
-               if (strcmp(secstrings + sechdrs[i].sh_name, ".init.plt") == 0)
-                       me->arch.init_plt_section = i;
-               else if (strcmp(secstrings + sechdrs[i].sh_name, ".plt") == 0)
-                       me->arch.core_plt_section = i;
-       }
-       if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
-               printk("Module doesn't contain .plt or .plt.init sections.\n");
-               return -ENOEXEC;
-       }
-
-       /* Override their sizes */
-       sechdrs[me->arch.core_plt_section].sh_size
-               = get_plt_size(hdr, sechdrs, secstrings, 0);
-       sechdrs[me->arch.init_plt_section].sh_size
-               = get_plt_size(hdr, sechdrs, secstrings, 1);
-       return 0;
-}
-
-int apply_relocate (Elf32_Shdr *sechdrs, const char *strtab,
-                   unsigned int symindex, unsigned int relsec,
-                   struct module *mod)
-{
-       printk ("Barf\n");
-       return -ENOEXEC;
-}
-
-/* Set up a trampoline in the PLT to bounce us to the distant function */
-static uint32_t do_plt_call (void *location, Elf32_Addr val,
-                            Elf32_Shdr *sechdrs, struct module *mod)
-{
-       struct v850_plt_entry *entry;
-       /* Instructions used to do the indirect jump.  */
-       uint32_t tramp[2];
-
-       /* We have to trash a register, so we assume that any control
-          transfer more than 21-bits away must be a function call
-          (so we can use a call-clobbered register).  */
-       tramp[0] = 0x0621 + ((val & 0xffff) << 16);   /* mov sym, r1 ... */
-       tramp[1] = ((val >> 16) & 0xffff) + 0x610000; /* ...; jmp r1 */
-
-       /* Init, or core PLT? */
-       if (location >= mod->module_core
-           && location < mod->module_core + mod->core_size)
-               entry = (void *)sechdrs[mod->arch.core_plt_section].sh_addr;
-       else
-               entry = (void *)sechdrs[mod->arch.init_plt_section].sh_addr;
-
-       /* Find this entry, or if that fails, the next avail. entry */
-       while (entry->tramp[0])
-               if (entry->tramp[0] == tramp[0] && entry->tramp[1] == tramp[1])
-                       return (uint32_t)entry;
-               else
-                       entry++;
-
-       entry->tramp[0] = tramp[0];
-       entry->tramp[1] = tramp[1];
-
-       return (uint32_t)entry;
-}
-
-int apply_relocate_add (Elf32_Shdr *sechdrs, const char *strtab,
-                       unsigned int symindex, unsigned int relsec,
-                       struct module *mod)
-{
-       unsigned int i;
-       Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr;
-
-       DEBUGP ("Applying relocate section %u to %u\n", relsec,
-               sechdrs[relsec].sh_info);
-
-       for (i = 0; i < sechdrs[relsec].sh_size / sizeof (*rela); i++) {
-               /* This is where to make the change */
-               uint32_t *loc
-                       = ((void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
-                          + rela[i].r_offset);
-               /* This is the symbol it is referring to.  Note that all
-                  undefined symbols have been resolved.  */
-               Elf32_Sym *sym
-                       = ((Elf32_Sym *)sechdrs[symindex].sh_addr
-                          + ELF32_R_SYM (rela[i].r_info));
-               uint32_t val = sym->st_value + rela[i].r_addend;
-
-               switch (ELF32_R_TYPE (rela[i].r_info)) {
-               case R_V850_32:
-                       /* We write two shorts instead of a long because even
-                          32-bit insns only need half-word alignment, but
-                          32-bit data writes need to be long-word aligned.  */
-                       val += ((uint16_t *)loc)[0];
-                       val += ((uint16_t *)loc)[1] << 16;
-                       ((uint16_t *)loc)[0] = val & 0xffff;
-                       ((uint16_t *)loc)[1] = (val >> 16) & 0xffff;
-                       break;
-
-               case R_V850_22_PCREL:
-                       /* Maybe jump indirectly via a PLT table entry.  */
-                       if ((int32_t)(val - (uint32_t)loc) > 0x1fffff
-                           || (int32_t)(val - (uint32_t)loc) < -0x200000)
-                               val = do_plt_call (loc, val, sechdrs, mod);
-
-                       val -= (uint32_t)loc;
-
-                       /* We write two shorts instead of a long because
-                          even 32-bit insns only need half-word alignment,
-                          but 32-bit data writes need to be long-word
-                          aligned.  */
-                       ((uint16_t *)loc)[0] =
-                               (*(uint16_t *)loc & 0xffc0) /* opcode + reg */
-                               | ((val >> 16) & 0xffc03f); /* offs high */
-                       ((uint16_t *)loc)[1] =
-                               (val & 0xffff);             /* offs low */
-                       break;
-
-               default:
-                       printk (KERN_ERR "module %s: Unknown reloc: %u\n",
-                               mod->name, ELF32_R_TYPE (rela[i].r_info));
-                       return -ENOEXEC;
-               }
-       }
-
-       return 0;
-}
-
-void
-module_arch_cleanup(struct module *mod)
-{
-}
diff --git a/arch/v850/kernel/process.c b/arch/v850/kernel/process.c
deleted file mode 100644 (file)
index e4a4b8e..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * arch/v850/kernel/process.c -- Arch-dependent process handling
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/errno.h>
-#include <linux/sched.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/smp.h>
-#include <linux/stddef.h>
-#include <linux/unistd.h>
-#include <linux/ptrace.h>
-#include <linux/slab.h>
-#include <linux/user.h>
-#include <linux/a.out.h>
-#include <linux/reboot.h>
-
-#include <asm/uaccess.h>
-#include <asm/system.h>
-#include <asm/pgtable.h>
-
-void (*pm_power_off)(void) = NULL;
-EXPORT_SYMBOL(pm_power_off);
-
-extern void ret_from_fork (void);
-
-
-/* The idle loop.  */
-static void default_idle (void)
-{
-       while (! need_resched ())
-               asm ("halt; nop; nop; nop; nop; nop" ::: "cc");
-}
-
-void (*idle)(void) = default_idle;
-
-/*
- * The idle thread. There's no useful work to be
- * done, so just try to conserve power and have a
- * low exit latency (ie sit in a loop waiting for
- * somebody to say that they'd like to reschedule)
- */
-void cpu_idle (void)
-{
-       /* endless idle loop with no priority at all */
-       while (1) {
-               while (!need_resched())
-                       (*idle) ();
-
-               preempt_enable_no_resched();
-               schedule();
-               preempt_disable();
-       }
-}
-
-/*
- * This is the mechanism for creating a new kernel thread.
- *
- * NOTE! Only a kernel-only process (ie the swapper or direct descendants who
- * haven't done an "execve()") should use this: it will work within a system
- * call from a "real" process, but the process memory space will not be free'd
- * until both the parent and the child have exited.
- */
-int kernel_thread (int (*fn)(void *), void *arg, unsigned long flags)
-{
-       register mm_segment_t fs = get_fs ();
-       register unsigned long syscall asm (SYSCALL_NUM);
-       register unsigned long arg0 asm (SYSCALL_ARG0);
-       register unsigned long ret asm (SYSCALL_RET);
-
-       set_fs (KERNEL_DS);
-
-       /* Clone this thread.  Note that we don't pass the clone syscall's
-          second argument -- it's ignored for calls from kernel mode (the
-          child's SP is always set to the top of the kernel stack).  */
-       arg0 = flags | CLONE_VM;
-       syscall = __NR_clone;
-       asm volatile ("trap " SYSCALL_SHORT_TRAP
-                     : "=r" (ret), "=r" (syscall)
-                     : "1" (syscall), "r" (arg0)
-                     : SYSCALL_SHORT_CLOBBERS);
-
-       if (ret == 0) {
-               /* In child thread, call FN and exit.  */
-               arg0 = (*fn) (arg);
-               syscall = __NR_exit;
-               asm volatile ("trap " SYSCALL_SHORT_TRAP
-                             : "=r" (ret), "=r" (syscall)
-                             : "1" (syscall), "r" (arg0)
-                             : SYSCALL_SHORT_CLOBBERS);
-       }
-
-       /* In parent.  */
-       set_fs (fs);
-
-       return ret;
-}
-
-void flush_thread (void)
-{
-       set_fs (USER_DS);
-}
-
-int copy_thread (int nr, unsigned long clone_flags,
-                unsigned long stack_start, unsigned long stack_size,
-                struct task_struct *p, struct pt_regs *regs)
-{
-       /* Start pushing stuff from the top of the child's kernel stack.  */
-       unsigned long orig_ksp = task_tos(p);
-       unsigned long ksp = orig_ksp;
-       /* We push two `state save' stack fames (see entry.S) on the new
-          kernel stack:
-            1) The innermost one is what switch_thread would have
-               pushed, and is used when we context switch to the child
-               thread for the first time.  It's set up to return to
-               ret_from_fork in entry.S.
-            2) The outermost one (nearest the top) is what a syscall
-               trap would have pushed, and is set up to return to the
-               same location as the parent thread, but with a return
-               value of 0. */
-       struct pt_regs *child_switch_regs, *child_trap_regs;
-
-       /* Trap frame.  */
-       ksp -= STATE_SAVE_SIZE;
-       child_trap_regs = (struct pt_regs *)(ksp + STATE_SAVE_PT_OFFSET);
-       /* Switch frame.  */
-       ksp -= STATE_SAVE_SIZE;
-       child_switch_regs = (struct pt_regs *)(ksp + STATE_SAVE_PT_OFFSET);
-
-       /* First copy parent's register state to child.  */
-       *child_switch_regs = *regs;
-       *child_trap_regs = *regs;
-
-       /* switch_thread returns to the restored value of the lp
-          register (r31), so we make that the place where we want to
-          jump when the child thread begins running.  */
-       child_switch_regs->gpr[GPR_LP] = (v850_reg_t)ret_from_fork;
-
-       if (regs->kernel_mode)
-               /* Since we're returning to kernel-mode, make sure the child's
-                  stored kernel stack pointer agrees with what the actual
-                  stack pointer will be at that point (the trap return code
-                  always restores the SP, even when returning to
-                  kernel-mode).  */
-               child_trap_regs->gpr[GPR_SP] = orig_ksp;
-       else
-               /* Set the child's user-mode stack-pointer (the name
-                  `stack_start' is a misnomer, it's just the initial SP
-                  value).  */
-               child_trap_regs->gpr[GPR_SP] = stack_start;
-
-       /* Thread state for the child (everything else is on the stack).  */
-       p->thread.ksp = ksp;
-
-       return 0;
-}
-
-/*
- * sys_execve() executes a new program.
- */
-int sys_execve (char *name, char **argv, char **envp, struct pt_regs *regs)
-{
-       char *filename = getname (name);
-       int error = PTR_ERR (filename);
-
-       if (! IS_ERR (filename)) {
-               error = do_execve (filename, argv, envp, regs);
-               putname (filename);
-       }
-
-       return error;
-}
-
-
-/*
- * These bracket the sleeping functions..
- */
-#define first_sched    ((unsigned long)__sched_text_start)
-#define last_sched     ((unsigned long)__sched_text_end)
-
-unsigned long get_wchan (struct task_struct *p)
-{
-#if 0  /* Barf.  Figure out the stack-layout later.  XXX  */
-       unsigned long fp, pc;
-       int count = 0;
-
-       if (!p || p == current || p->state == TASK_RUNNING)
-               return 0;
-
-       pc = thread_saved_pc (p);
-
-       /* This quite disgusting function walks up the stack, following
-          saved return address, until it something that's out of bounds
-          (as defined by `first_sched' and `last_sched').  It then
-          returns the last PC that was in-bounds.  */
-       do {
-               if (fp < stack_page + sizeof (struct task_struct) ||
-                   fp >= 8184+stack_page)
-                       return 0;
-               pc = ((unsigned long *)fp)[1];
-               if (pc < first_sched || pc >= last_sched)
-                       return pc;
-               fp = *(unsigned long *) fp;
-       } while (count++ < 16);
-#endif
-
-       return 0;
-}
diff --git a/arch/v850/kernel/procfs.c b/arch/v850/kernel/procfs.c
deleted file mode 100644 (file)
index e433cde..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * arch/v850/kernel/procfs.c -- Introspection functions for /proc filesystem
- *
- *  Copyright (C) 2001,02  NEC Corporation
- *  Copyright (C) 2001,02  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include "mach.h"
-
-static int cpuinfo_print (struct seq_file *m, void *v)
-{
-       extern unsigned long loops_per_jiffy;
-       
-       seq_printf (m, "CPU-Family:     v850\nCPU-Arch: %s\n", CPU_ARCH);
-
-#ifdef CPU_MODEL_LONG
-       seq_printf (m, "CPU-Model:      %s (%s)\n", CPU_MODEL, CPU_MODEL_LONG);
-#else
-       seq_printf (m, "CPU-Model:      %s\n", CPU_MODEL);
-#endif
-
-#ifdef CPU_CLOCK_FREQ
-       seq_printf (m, "CPU-Clock:      %ld (%ld MHz)\n",
-                   (long)CPU_CLOCK_FREQ,
-                   (long)CPU_CLOCK_FREQ / 1000000);
-#endif
-
-       seq_printf (m, "BogoMips:       %lu.%02lu\n",
-                   loops_per_jiffy/(500000/HZ),
-                   (loops_per_jiffy/(5000/HZ)) % 100);
-
-#ifdef PLATFORM_LONG
-       seq_printf (m, "Platform:       %s (%s)\n", PLATFORM, PLATFORM_LONG);
-#elif defined (PLATFORM)
-       seq_printf (m, "Platform:       %s\n", PLATFORM);
-#endif
-
-       return 0;
-}
-
-static void *cpuinfo_start (struct seq_file *m, loff_t *pos)
-{
-       return *pos < NR_CPUS ? ((void *) 0x12345678) : NULL;
-}
-
-static void *cpuinfo_next (struct seq_file *m, void *v, loff_t *pos)
-{
-       ++*pos;
-       return cpuinfo_start (m, pos);
-}
-
-static void cpuinfo_stop (struct seq_file *m, void *v)
-{
-}
-
-const struct seq_operations cpuinfo_op = {
-       .start  = cpuinfo_start,
-       .next   = cpuinfo_next,
-       .stop   = cpuinfo_stop,
-       .show   = cpuinfo_print
-};
diff --git a/arch/v850/kernel/ptrace.c b/arch/v850/kernel/ptrace.c
deleted file mode 100644 (file)
index a458ac9..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * arch/v850/kernel/ptrace.c -- `ptrace' system call
- *
- *  Copyright (C) 2002,03,04  NEC Electronics Corporation
- *  Copyright (C) 2002,03,04  Miles Bader <miles@gnu.org>
- *
- * Derived from arch/mips/kernel/ptrace.c:
- *
- *  Copyright (C) 1992 Ross Biro
- *  Copyright (C) Linus Torvalds
- *  Copyright (C) 1994, 95, 96, 97, 98, 2000 Ralf Baechle
- *  Copyright (C) 1996 David S. Miller
- *  Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
- *  Copyright (C) 1999 MIPS Technologies, Inc.
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- */
-
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/ptrace.h>
-#include <linux/signal.h>
-
-#include <asm/errno.h>
-#include <asm/ptrace.h>
-#include <asm/processor.h>
-#include <asm/uaccess.h>
-
-/* Returns the address where the register at REG_OFFS in P is stashed away.  */
-static v850_reg_t *reg_save_addr (unsigned reg_offs, struct task_struct *t)
-{
-       struct pt_regs *regs;
-
-       /* Three basic cases:
-
-          (1) A register normally saved before calling the scheduler, is
-              available in the kernel entry pt_regs structure at the top
-              of the kernel stack.  The kernel trap/irq exit path takes
-              care to save/restore almost all registers for ptrace'd
-              processes.
-
-          (2) A call-clobbered register, where the process P entered the
-              kernel via [syscall] trap, is not stored anywhere; that's
-              OK, because such registers are not expected to be preserved
-              when the trap returns anyway (so we don't actually bother to
-              test for this case).
-
-          (3) A few registers not used at all by the kernel, and so
-              normally never saved except by context-switches, are in the
-              context switch state.  */
-
-       if (reg_offs == PT_CTPC || reg_offs == PT_CTPSW || reg_offs == PT_CTBP)
-               /* Register saved during context switch.  */
-               regs = thread_saved_regs (t);
-       else
-               /* Register saved during kernel entry (or not available).  */
-               regs = task_pt_regs (t);
-
-       return (v850_reg_t *)((char *)regs + reg_offs);
-}
-
-/* Set the bits SET and clear the bits CLEAR in the v850e DIR
-   (`debug information register').  Returns the new value of DIR.  */
-static inline v850_reg_t set_dir (v850_reg_t set, v850_reg_t clear)
-{
-       register v850_reg_t rval asm ("r10");
-       register v850_reg_t arg0 asm ("r6") = set;
-       register v850_reg_t arg1 asm ("r7") = clear;
-
-       /* The dbtrap handler has exactly this functionality when called
-          from kernel mode.  0xf840 is a `dbtrap' insn.  */
-       asm (".short 0xf840" : "=r" (rval) : "r" (arg0), "r" (arg1));
-
-       return rval;
-}
-
-/* Makes sure hardware single-stepping is (globally) enabled.
-   Returns true if successful.  */
-static inline int enable_single_stepping (void)
-{
-       static int enabled = 0; /* Remember whether we already did it.  */
-       if (! enabled) {
-               /* Turn on the SE (`single-step enable') bit, 0x100, in the
-                  DIR (`debug information register').  This may fail if a
-                  processor doesn't support it or something.  We also try
-                  to clear bit 0x40 (`INI'), which is necessary to use the
-                  debug stuff on the v850e2; on the v850e, clearing 0x40
-                  shouldn't cause any problem.  */
-               v850_reg_t dir = set_dir (0x100, 0x40);
-               /* Make sure it really got set.  */
-               if (dir & 0x100)
-                       enabled = 1;
-       }
-       return enabled;
-}
-
-/* Try to set CHILD's single-step flag to VAL.  Returns true if successful.  */
-static int set_single_step (struct task_struct *t, int val)
-{
-       v850_reg_t *psw_addr = reg_save_addr(PT_PSW, t);
-       if (val) {
-               /* Make sure single-stepping is enabled.  */
-               if (! enable_single_stepping ())
-                       return 0;
-               /* Set T's single-step flag.  */
-               *psw_addr |= 0x800;
-       } else
-               *psw_addr &= ~0x800;
-       return 1;
-}
-
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
-{
-       int rval;
-
-       switch (request) {
-               unsigned long val;
-
-       case PTRACE_PEEKTEXT: /* read word at location addr. */
-       case PTRACE_PEEKDATA:
-               rval = generic_ptrace_peekdata(child, addr, data);
-               goto out;
-
-       case PTRACE_POKETEXT: /* write the word at location addr. */
-       case PTRACE_POKEDATA:
-               rval = generic_ptrace_pokedata(child, addr, data);
-               goto out;
-
-       /* Read/write the word at location ADDR in the registers.  */
-       case PTRACE_PEEKUSR:
-       case PTRACE_POKEUSR:
-               rval = 0;
-               if (addr >= PT_SIZE && request == PTRACE_PEEKUSR) {
-                       /* Special requests that don't actually correspond
-                          to offsets in struct pt_regs.  */
-                       if (addr == PT_TEXT_ADDR)
-                               val = child->mm->start_code;
-                       else if (addr == PT_DATA_ADDR)
-                               val = child->mm->start_data;
-                       else if (addr == PT_TEXT_LEN)
-                               val = child->mm->end_code
-                                       - child->mm->start_code;
-                       else
-                               rval = -EIO;
-               } else if (addr >= 0 && addr < PT_SIZE && (addr & 0x3) == 0) {
-                       v850_reg_t *reg_addr = reg_save_addr(addr, child);
-                       if (request == PTRACE_PEEKUSR)
-                               val = *reg_addr;
-                       else
-                               *reg_addr = data;
-               } else
-                       rval = -EIO;
-
-               if (rval == 0 && request == PTRACE_PEEKUSR)
-                       rval = put_user (val, (unsigned long *)data);
-               goto out;
-
-       /* Continue and stop at next (return from) syscall */
-       case PTRACE_SYSCALL:
-       /* Restart after a signal.  */
-       case PTRACE_CONT:
-       /* Execute a single instruction. */
-       case PTRACE_SINGLESTEP:
-               rval = -EIO;
-               if (!valid_signal(data))
-                       break;
-
-               /* Turn CHILD's single-step flag on or off.  */
-               if (! set_single_step (child, request == PTRACE_SINGLESTEP))
-                       break;
-
-               if (request == PTRACE_SYSCALL)
-                       set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-               else
-                       clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-
-               child->exit_code = data;
-               wake_up_process(child);
-               rval = 0;
-               break;
-
-       /*
-        * make the child exit.  Best I can do is send it a sigkill.
-        * perhaps it should be put in the status that it wants to
-        * exit.
-        */
-       case PTRACE_KILL:
-               rval = 0;
-               if (child->exit_state == EXIT_ZOMBIE)   /* already dead */
-                       break;
-               child->exit_code = SIGKILL;
-               wake_up_process(child);
-               break;
-
-       case PTRACE_DETACH: /* detach a process that was attached. */
-               set_single_step (child, 0);  /* Clear single-step flag */
-               rval = ptrace_detach(child, data);
-               break;
-
-       default:
-               rval = -EIO;
-               goto out;
-       }
- out:
-       return rval;
-}
-
-asmlinkage void syscall_trace(void)
-{
-       if (!test_thread_flag(TIF_SYSCALL_TRACE))
-               return;
-       if (!(current->ptrace & PT_PTRACED))
-               return;
-       /* The 0x80 provides a way for the tracing parent to distinguish
-          between a syscall stop and SIGTRAP delivery */
-       ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
-                                ? 0x80 : 0));
-       /*
-        * this isn't the same as continuing with a signal, but it will do
-        * for normal use.  strace only continues with a signal if the
-        * stopping signal is not SIGTRAP.  -brl
-        */
-       if (current->exit_code) {
-               send_sig(current->exit_code, current, 1);
-               current->exit_code = 0;
-       }
-}
-
-void ptrace_disable (struct task_struct *child)
-{
-       /* nothing to do */
-}
diff --git a/arch/v850/kernel/rte_cb.c b/arch/v850/kernel/rte_cb.c
deleted file mode 100644 (file)
index 43018e1..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * include/asm-v850/rte_cb.c -- Midas lab RTE-CB series of evaluation boards
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-
-#include <asm/machdep.h>
-#include <asm/v850e_uart.h>
-
-#include "mach.h"
-
-static void led_tick (void);
-
-/* LED access routines.  */
-extern unsigned read_leds (int pos, char *buf, int len);
-extern unsigned write_leds (int pos, const char *buf, int len);
-
-#ifdef CONFIG_RTE_CB_MULTI
-extern void multi_init (void);
-#endif
-
-\f
-void __init rte_cb_early_init (void)
-{
-       v850e_intc_disable_irqs ();
-
-#ifdef CONFIG_RTE_CB_MULTI
-       multi_init ();
-#endif
-}
-
-void __init mach_setup (char **cmdline)
-{
-#ifdef CONFIG_RTE_MB_A_PCI
-       /* Probe for Mother-A, and print a message if we find it.  */
-       *(volatile unsigned long *)MB_A_SRAM_ADDR = 0xDEADBEEF;
-       if (*(volatile unsigned long *)MB_A_SRAM_ADDR == 0xDEADBEEF) {
-               *(volatile unsigned long *)MB_A_SRAM_ADDR = 0x12345678;
-               if (*(volatile unsigned long *)MB_A_SRAM_ADDR == 0x12345678)
-                       printk (KERN_INFO
-                               "          NEC SolutionGear/Midas lab"
-                               " RTE-MOTHER-A motherboard\n");
-       }
-#endif /* CONFIG_RTE_MB_A_PCI */
-
-       mach_tick = led_tick;
-}
-
-void machine_restart (char *__unused)
-{
-#ifdef CONFIG_RESET_GUARD
-       disable_reset_guard ();
-#endif
-       asm ("jmp r0"); /* Jump to the reset vector.  */
-}
-
-/* This says `HALt.' in LEDese.  */
-static unsigned char halt_leds_msg[] = { 0x76, 0x77, 0x38, 0xF8 };
-
-void machine_halt (void)
-{
-#ifdef CONFIG_RESET_GUARD
-       disable_reset_guard ();
-#endif
-
-       /* Ignore all interrupts.  */
-       local_irq_disable ();
-
-       /* Write a little message.  */
-       write_leds (0, halt_leds_msg, sizeof halt_leds_msg);
-
-       /* Really halt.  */
-       for (;;)
-               asm ("halt; nop; nop; nop; nop; nop");
-}
-
-void machine_power_off (void)
-{
-       machine_halt ();
-}
-
-\f
-/* Animated LED display for timer tick.  */
-
-#define TICK_UPD_FREQ  6
-static int tick_frames[][10] = {
-       { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, -1 },
-       { 0x63, 0x5c, -1 },
-       { 0x5c, 0x00, -1 },
-       { 0x63, 0x00, -1 },
-       { -1 }
-};
-
-static void led_tick ()
-{
-       static unsigned counter = 0;
-       
-       if (++counter == (HZ / TICK_UPD_FREQ)) {
-               /* Which frame we're currently displaying for each digit.  */
-               static unsigned frame_nums[LED_NUM_DIGITS] = { 0 };
-               /* Display image.  */
-               static unsigned char image[LED_NUM_DIGITS] = { 0 };
-               unsigned char prev_image[LED_NUM_DIGITS];
-               int write_to_leds = 1; /* true if we should actually display */
-               int digit;
-
-               /* We check to see if the physical LEDs contains what we last
-                  wrote to them; if not, we suppress display (this is so that
-                  users can write to the LEDs, and not have their output
-                  overwritten).  As a special case, we start writing again if
-                  all the LEDs are blank, or our display image is all zeros
-                  (indicating that this is the initial update, when the actual
-                  LEDs might contain random data).  */
-               read_leds (0, prev_image, LED_NUM_DIGITS);
-               for (digit = 0; digit < LED_NUM_DIGITS; digit++)
-                       if (image[digit] != prev_image[digit]
-                           && image[digit] && prev_image[digit])
-                       {
-                               write_to_leds = 0;
-                               break;
-                       }
-
-               /* Update display image.  */
-               for (digit = 0;
-                    digit < LED_NUM_DIGITS && tick_frames[digit][0] >= 0;
-                    digit++)
-               {
-                       int frame = tick_frames[digit][frame_nums[digit]];
-                       if (frame < 0) {
-                               image[digit] = tick_frames[digit][0];
-                               frame_nums[digit] = 1;
-                       } else {
-                               image[digit] = frame;
-                               frame_nums[digit]++;
-                               break;
-                       }
-               }
-
-               if (write_to_leds)
-                       /* Write the display image to the physical LEDs.  */
-                       write_leds (0, image, LED_NUM_DIGITS);
-
-               counter = 0;
-       }
-}
-
-\f
-/* Mother-A interrupts.  */
-
-#ifdef CONFIG_RTE_GBUS_INT
-
-#define L GBUS_INT_PRIORITY_LOW
-#define M GBUS_INT_PRIORITY_MEDIUM
-#define H GBUS_INT_PRIORITY_HIGH
-
-static struct gbus_int_irq_init gbus_irq_inits[] = {
-#ifdef CONFIG_RTE_MB_A_PCI
-       { "MB_A_LAN",   IRQ_MB_A_LAN,           1,                   1, L },
-       { "MB_A_PCI1",  IRQ_MB_A_PCI1(0),       IRQ_MB_A_PCI1_NUM,   1, L },
-       { "MB_A_PCI2",  IRQ_MB_A_PCI2(0),       IRQ_MB_A_PCI2_NUM,   1, L },
-       { "MB_A_EXT",   IRQ_MB_A_EXT(0),        IRQ_MB_A_EXT_NUM,    1, L },
-       { "MB_A_USB_OC",IRQ_MB_A_USB_OC(0),     IRQ_MB_A_USB_OC_NUM, 1, L },
-       { "MB_A_PCMCIA_OC",IRQ_MB_A_PCMCIA_OC,  1,                   1, L },
-#endif
-       { 0 }
-};
-#define NUM_GBUS_IRQ_INITS (ARRAY_SIZE(gbus_irq_inits) - 1)
-
-static struct hw_interrupt_type gbus_hw_itypes[NUM_GBUS_IRQ_INITS];
-
-#endif /* CONFIG_RTE_GBUS_INT */
-
-
-void __init rte_cb_init_irqs (void)
-{
-#ifdef CONFIG_RTE_GBUS_INT
-       gbus_int_init_irqs ();
-       gbus_int_init_irq_types (gbus_irq_inits, gbus_hw_itypes);
-#endif /* CONFIG_RTE_GBUS_INT */
-}
diff --git a/arch/v850/kernel/rte_cb_leds.c b/arch/v850/kernel/rte_cb_leds.c
deleted file mode 100644 (file)
index aa47ab1..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * include/asm-v850/rte_cb_leds.c -- Midas lab RTE-CB board LED device support
- *
- *  Copyright (C) 2002,03  NEC Electronics Corporation
- *  Copyright (C) 2002,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/init.h>
-#include <linux/spinlock.h>
-#include <linux/fs.h>
-#include <linux/miscdevice.h>
-
-#include <asm/uaccess.h>
-
-#define LEDS_MINOR     169     /* Minor device number, using misc major.  */
-
-/* The actual LED hardware is write-only, so we hold the contents here too.  */
-static unsigned char leds_image[LED_NUM_DIGITS] = { 0 };
-
-/* Spinlock protecting the above leds.  */
-static DEFINE_SPINLOCK(leds_lock);
-
-/* Common body of LED read/write functions, checks POS and LEN for
-   correctness, declares a variable using IMG_DECL, initialized pointing at
-   the POS position in the LED image buffer, and and iterates COPY_EXPR
-   until BUF is equal to the last buffer position; finally, sets LEN to be
-   the amount actually copied.  IMG should be a variable declaration
-   (without an initializer or a terminating semicolon); POS, BUF, and LEN
-   should all be simple variables.  */
-#define DO_LED_COPY(img_decl, pos, buf, len, copy_expr)                        \
-do {                                                                   \
-       if (pos > LED_NUM_DIGITS)                                       \
-               len = 0;                                                \
-       else {                                                          \
-               if (pos + len > LED_NUM_DIGITS)                         \
-                       len = LED_NUM_DIGITS - pos;                     \
-                                                                       \
-               if (len > 0) {                                          \
-                       unsigned long _flags;                           \
-                       const char *_end = buf + len;                   \
-                       img_decl = &leds_image[pos];                    \
-                                                                       \
-                       spin_lock_irqsave (leds_lock, _flags);          \
-                       do                                              \
-                               (copy_expr);                            \
-                       while (buf != _end);                            \
-                       spin_unlock_irqrestore (leds_lock, _flags);     \
-               }                                                       \
-       }                                                               \
-} while (0)
-
-/* Read LEN bytes from LEDs at position POS, into BUF.
-   Returns actual amount read.  */
-unsigned read_leds (unsigned pos, char *buf, unsigned len)
-{
-       DO_LED_COPY (const char *img, pos, buf, len, *buf++ = *img++);
-       return len;
-}
-
-/* Write LEN bytes to LEDs at position POS, from BUF.
-   Returns actual amount written.  */
-unsigned write_leds (unsigned pos, const char *buf, unsigned len)
-{
-       /* We write the actual LED values backwards, because
-          increasing memory addresses reflect LEDs right-to-left. */
-       volatile char *led = &LED (LED_NUM_DIGITS - pos - 1);
-       /* We invert the value written to the hardware, because 1 = off,
-          and 0 = on.  */
-       DO_LED_COPY (char *img, pos, buf, len,
-                    *led-- = 0xFF ^ (*img++ = *buf++));
-       return len;
-}
-
-\f
-/* Device functions.  */
-
-static ssize_t leds_dev_read (struct file *file, char *buf, size_t len,
-                             loff_t *pos)
-{
-       char temp_buf[LED_NUM_DIGITS];
-       len = read_leds (*pos, temp_buf, len);
-       if (copy_to_user (buf, temp_buf, len))
-               return -EFAULT;
-       *pos += len;
-       return len;
-}
-
-static ssize_t leds_dev_write (struct file *file, const char *buf, size_t len,
-                              loff_t *pos)
-{
-       char temp_buf[LED_NUM_DIGITS];
-       if (copy_from_user (temp_buf, buf, min_t(size_t, len, LED_NUM_DIGITS)))
-               return -EFAULT;
-       len = write_leds (*pos, temp_buf, len);
-       *pos += len;
-       return len;
-}
-
-static loff_t leds_dev_lseek (struct file *file, loff_t offs, int whence)
-{
-       if (whence == 1)
-               offs += file->f_pos; /* relative */
-       else if (whence == 2)
-               offs += LED_NUM_DIGITS; /* end-relative */
-
-       if (offs < 0 || offs > LED_NUM_DIGITS)
-               return -EINVAL;
-
-       file->f_pos = offs;
-
-       return 0;
-}
-
-static const struct file_operations leds_fops = {
-       .read           = leds_dev_read,
-       .write          = leds_dev_write,
-       .llseek         = leds_dev_lseek
-};
-
-static struct miscdevice leds_miscdev = {
-       .name           = "leds",
-       .minor          = LEDS_MINOR,
-       .fops           = &leds_fops
-};
-
-int __init leds_dev_init (void)
-{
-       return misc_register (&leds_miscdev);
-}
-
-__initcall (leds_dev_init);
diff --git a/arch/v850/kernel/rte_cb_multi.c b/arch/v850/kernel/rte_cb_multi.c
deleted file mode 100644 (file)
index 963d55a..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * include/asm-v850/rte_multi.c -- Support for Multi debugger monitor ROM
- *     on Midas lab RTE-CB series of evaluation boards
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/init.h>
-
-#include <asm/machdep.h>
-
-#define IRQ_ADDR(irq) (0x80 + (irq) * 0x10)
-
-/* A table of which interrupt vectors to install, since blindly
-   installing all of them makes the debugger stop working.  This is a
-   list of offsets in the interrupt vector area; each entry means to
-   copy that particular 16-byte vector.  An entry less than zero ends
-   the table.  */
-static long multi_intv_install_table[] = {
-       /* Trap vectors */
-       0x40, 0x50,             
-
-#ifdef CONFIG_RTE_CB_MULTI_DBTRAP
-       /* Illegal insn / dbtrap.  These are used by multi, so only handle
-          them if configured to do so.  */
-       0x60,
-#endif
-
-       /* GINT1 - GINT3 (note, not GINT0!) */
-       IRQ_ADDR (IRQ_GINT(1)),
-       IRQ_ADDR (IRQ_GINT(2)),
-       IRQ_ADDR (IRQ_GINT(3)),
-
-       /* Timer D interrupts (up to 4 timers) */
-       IRQ_ADDR (IRQ_INTCMD(0)),
-#if IRQ_INTCMD_NUM > 1
-       IRQ_ADDR (IRQ_INTCMD(1)),
-#if IRQ_INTCMD_NUM > 2
-       IRQ_ADDR (IRQ_INTCMD(2)),
-#if IRQ_INTCMD_NUM > 3
-       IRQ_ADDR (IRQ_INTCMD(3)),
-#endif
-#endif
-#endif
-       
-       /* UART interrupts (up to 3 channels) */
-       IRQ_ADDR (IRQ_INTSER (0)), /* err */
-       IRQ_ADDR (IRQ_INTSR  (0)), /* rx */
-       IRQ_ADDR (IRQ_INTST  (0)), /* tx */
-#if IRQ_INTSR_NUM > 1
-       IRQ_ADDR (IRQ_INTSER (1)), /* err */
-       IRQ_ADDR (IRQ_INTSR  (1)), /* rx */
-       IRQ_ADDR (IRQ_INTST  (1)), /* tx */
-#if IRQ_INTSR_NUM > 2
-       IRQ_ADDR (IRQ_INTSER (2)), /* err */
-       IRQ_ADDR (IRQ_INTSR  (2)), /* rx */
-       IRQ_ADDR (IRQ_INTST  (2)), /* tx */
-#endif
-#endif
-
-       -1
-};
-
-/* Early initialization for kernel using Multi debugger ROM monitor.  */
-void __init multi_init (void)
-{
-       /* We're using the Multi debugger monitor, so we have to install
-          the interrupt vectors.  The monitor doesn't allow them to be
-          initially downloaded into their final destination because
-          it's in the monitor's scratch-RAM area.  Unfortunately, Multi
-          also doesn't deal correctly with ELF sections where the LMA
-          and VMA differ -- it just ignores the LMA -- so we can't use
-          that feature to work around the problem.  What we do instead
-          is just put the interrupt vectors into a normal section, and
-          do the necessary copying and relocation here.  Since the
-          interrupt vector basically only contains `jr' instructions
-          and no-ops, it's not that hard.  */
-       extern unsigned long _intv_load_start, _intv_start;
-       register unsigned long *src = &_intv_load_start;
-       register unsigned long *dst = (unsigned long *)INTV_BASE;
-       register unsigned long jr_fixup = (char *)&_intv_start - (char *)dst;
-       register long *ii;
-
-       /* Copy interrupt vectors as instructed by multi_intv_install_table. */
-       for (ii = multi_intv_install_table; *ii >= 0; ii++) {
-               /* Copy 16-byte interrupt vector at offset *ii.  */
-               int boffs;
-               for (boffs = 0; boffs < 0x10; boffs += sizeof *src) {
-                       /* Copy a single word, fixing up the jump offs
-                          if it's a `jr' instruction.  */
-                       int woffs = (*ii + boffs) / sizeof *src;
-                       unsigned long word = src[woffs];
-
-                       if ((word & 0xFC0) == 0x780) {
-                               /* A `jr' insn, fix up its offset (and yes, the
-                                  weird half-word swapping is intentional). */
-                               unsigned short hi = word & 0xFFFF;
-                               unsigned short lo = word >> 16;
-                               unsigned long udisp22
-                                       = lo + ((hi & 0x3F) << 16);
-                               long disp22 = (long)(udisp22 << 10) >> 10;
-
-                               disp22 += jr_fixup;
-
-                               hi = ((disp22 >> 16) & 0x3F) | 0x780;
-                               lo = disp22 & 0xFFFF;
-
-                               word = hi + (lo << 16);
-                       }
-
-                       dst[woffs] = word;
-               }
-       }
-}
diff --git a/arch/v850/kernel/rte_ma1_cb-rom.ld b/arch/v850/kernel/rte_ma1_cb-rom.ld
deleted file mode 100644 (file)
index 87b618f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Linker script for the Midas labs RTE-V850E/MA1-CB evaluation board
-   (CONFIG_RTE_CB_MA1), with kernel in ROM.  */
-
-MEMORY {
-       ROM   : ORIGIN = 0x00000000, LENGTH = 0x00100000
-       /* 1MB of SRAM.  This memory is mirrored 4 times.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = SRAM_SIZE
-       /* 32MB of SDRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-SECTIONS {
-       ROMK_SECTIONS(ROM, SRAM)
-}
diff --git a/arch/v850/kernel/rte_ma1_cb.c b/arch/v850/kernel/rte_ma1_cb.c
deleted file mode 100644 (file)
index 08abf3d..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * arch/v850/kernel/rte_ma1_cb.c -- Midas labs RTE-V850E/MA1-CB board
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/bootmem.h>
-
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/ma1.h>
-#include <asm/rte_ma1_cb.h>
-#include <asm/v850e_timer_c.h>
-
-#include "mach.h"
-
-
-/* SRAM and SDRAM are almost contiguous (with a small hole in between;
-   see mach_reserve_bootmem for details), so just use both as one big area.  */
-#define RAM_START      SRAM_ADDR
-#define RAM_END                (SDRAM_ADDR + SDRAM_SIZE)
-
-
-void __init mach_early_init (void)
-{
-       rte_cb_early_init ();
-}
-
-void __init mach_get_physical_ram (unsigned long *ram_start,
-                                  unsigned long *ram_len)
-{
-       *ram_start = RAM_START;
-       *ram_len = RAM_END - RAM_START;
-}
-
-void __init mach_reserve_bootmem ()
-{
-#ifdef CONFIG_RTE_CB_MULTI
-       /* Prevent the kernel from touching the monitor's scratch RAM.  */
-       reserve_bootmem(MON_SCRATCH_ADDR, MON_SCRATCH_SIZE,
-                       BOOTMEM_DEFAULT);
-#endif
-
-       /* The space between SRAM and SDRAM is filled with duplicate
-          images of SRAM.  Prevent the kernel from using them.  */
-       reserve_bootmem (SRAM_ADDR + SRAM_SIZE,
-                        SDRAM_ADDR - (SRAM_ADDR + SRAM_SIZE),
-                        BOOTMEM_DEFAULT);
-}
-
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-
-/* Called before configuring an on-chip UART.  */
-void rte_ma1_cb_uart_pre_configure (unsigned chan,
-                                   unsigned cflags, unsigned baud)
-{
-       /* The RTE-MA1-CB connects some general-purpose I/O pins on the
-          CPU to the RTS/CTS lines of UART 0's serial connection.
-          I/O pins P42 and P43 are RTS and CTS respectively.  */
-       if (chan == 0) {
-               /* Put P42 & P43 in I/O port mode.  */
-               MA_PORT4_PMC &= ~0xC;
-               /* Make P42 an output, and P43 an input.  */
-               MA_PORT4_PM = (MA_PORT4_PM & ~0xC) | 0x8;
-       }
-
-       /* Do pre-configuration for the actual UART.  */
-       ma_uart_pre_configure (chan, cflags, baud);
-}
-
-void __init mach_init_irqs (void)
-{
-       unsigned tc;
-
-       /* Initialize interrupts.  */
-       ma_init_irqs ();
-       rte_cb_init_irqs ();
-
-       /* Use falling-edge-sensitivity for interrupts .  */
-       V850E_TIMER_C_SESC (0) &= ~0xC;
-       V850E_TIMER_C_SESC (1) &= ~0xF;
-
-       /* INTP000-INTP011 are shared with `Timer C', so we have to set
-          up Timer C to pass them through as raw interrupts.  */
-       for (tc = 0; tc < 2; tc++)
-               /* Turn on the timer.  */
-               V850E_TIMER_C_TMCC0 (tc) |= V850E_TIMER_C_TMCC0_CAE;
-
-       /* Make sure the relevant port0/port1 pins are assigned
-          interrupt duty.  We used INTP001-INTP011 (don't screw with
-          INTP000 because the monitor uses it).  */
-       MA_PORT0_PMC |= 0x4;    /* P02 (INTP001) in IRQ mode.  */
-       MA_PORT1_PMC |= 0x6;    /* P11 (INTP010) & P12 (INTP011) in IRQ mode.*/
-}
diff --git a/arch/v850/kernel/rte_ma1_cb.ld b/arch/v850/kernel/rte_ma1_cb.ld
deleted file mode 100644 (file)
index c8e16d1..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Linker script for the Midas labs RTE-V850E/MA1-CB evaluation board
-   (CONFIG_RTE_CB_MA1), with kernel in SDRAM, under Multi debugger.  */
-
-MEMORY {
-       /* 1MB of SRAM; we can't use the last 32KB, because it's used by
-          the monitor scratch-RAM.  This memory is mirrored 4 times.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = (SRAM_SIZE - MON_SCRATCH_SIZE)
-       /* Monitor scratch RAM; only the interrupt vectors should go here.  */
-       MRAM  : ORIGIN = MON_SCRATCH_ADDR,  LENGTH = MON_SCRATCH_SIZE
-       /* 32MB of SDRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-#ifdef CONFIG_RTE_CB_MA1_KSRAM
-# define KRAM SRAM
-#else
-# define KRAM SDRAM
-#endif
-
-SECTIONS {
-       /* We can't use RAMK_KRAM_CONTENTS because that puts the whole
-          kernel in a single ELF segment, and the Multi debugger (which
-          we use to load the kernel) appears to have bizarre problems
-          dealing with it.  */
-
-       .text : {
-               __kram_start = . ;
-               TEXT_CONTENTS
-       } > KRAM
-
-       .data : {
-               DATA_CONTENTS
-               BSS_CONTENTS
-               RAMK_INIT_CONTENTS
-               __kram_end = . ;
-               BOOTMAP_CONTENTS
-
-               /* The address at which the interrupt vectors are initially
-                  loaded by the loader.  We can't load the interrupt vectors
-                  directly into their target location, because the monitor
-                  ROM for the GHS Multi debugger barfs if we try.
-                  Unfortunately, Multi also doesn't deal correctly with ELF
-                  sections where the LMA and VMA differ (it just ignores the
-                  LMA), so we can't use that feature to work around the
-                  problem!  What we do instead is just put the interrupt
-                  vectors into a normal section, and have the
-                  `mach_early_init' function for Midas boards do the
-                  necessary copying and relocation at runtime (this section
-                  basically only contains `jr' instructions, so it's not
-                  that hard).  */
-               . = ALIGN (0x10) ;
-               __intv_load_start = . ;
-               INTV_CONTENTS
-       } > KRAM
-
-       .root ALIGN (4096) : { ROOT_FS_CONTENTS } > SDRAM
-}
diff --git a/arch/v850/kernel/rte_mb_a_pci.c b/arch/v850/kernel/rte_mb_a_pci.c
deleted file mode 100644 (file)
index 687e367..0000000
+++ /dev/null
@@ -1,819 +0,0 @@
-/*
- * arch/v850/kernel/mb_a_pci.c -- PCI support for Midas lab RTE-MOTHER-A board
- *
- *  Copyright (C) 2001,02,03,05  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03,05  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/slab.h>
-#include <linux/spinlock.h>
-#include <linux/pci.h>
-
-#include <asm/machdep.h>
-
-/* __nomods_init is like __devinit, but is a no-op when modules are enabled.
-   This is used by some routines that can be called either during boot
-   or by a module.  */
-#ifdef CONFIG_MODULES
-#define __nomods_init /*nothing*/
-#else
-#define __nomods_init __devinit
-#endif
-
-/* PCI devices on the Mother-A board can only do DMA to/from the MB SRAM
-   (the RTE-V850E/MA1-CB cpu board doesn't support PCI access to
-   CPU-board memory), and since linux DMA buffers are allocated in
-   normal kernel memory, we basically have to copy DMA blocks around
-   (this is like a `bounce buffer').  When a DMA block is `mapped', we
-   allocate an identically sized block in MB SRAM, and if we're doing
-   output to the device, copy the CPU-memory block to the MB-SRAM block.
-   When an active block is `unmapped', we will copy the block back to
-   CPU memory if necessary, and then deallocate the MB SRAM block.
-   Ack.  */
-
-/* Where the motherboard SRAM is in the PCI-bus address space (the
-   first 512K of it is also mapped at PCI address 0).  */
-#define PCI_MB_SRAM_ADDR 0x800000
-
-/* Convert CPU-view MB SRAM address to/from PCI-view addresses of the
-   same memory.  */
-#define MB_SRAM_TO_PCI(mb_sram_addr) \
-   ((dma_addr_t)mb_sram_addr - MB_A_SRAM_ADDR + PCI_MB_SRAM_ADDR)
-#define PCI_TO_MB_SRAM(pci_addr)     \
-   (void *)(pci_addr - PCI_MB_SRAM_ADDR + MB_A_SRAM_ADDR)
-
-static void pcibios_assign_resources (void);
-
-struct mb_pci_dev_irq {
-       unsigned dev;           /* PCI device number */
-       unsigned irq_base;      /* First IRQ  */
-       unsigned query_pin;     /* True if we should read the device's
-                                  Interrupt Pin info, and allocate
-                                  interrupt IRQ_BASE + PIN.  */
-};
-
-/* PCI interrupts are mapped statically to GBUS interrupts.  */
-static struct mb_pci_dev_irq mb_pci_dev_irqs[] = {
-       /* Motherboard SB82558 ethernet controller */
-       { 10,   IRQ_MB_A_LAN,           0 },
-       /* PCI slot 1 */
-       { 8,    IRQ_MB_A_PCI1(0),       1 },
-       /* PCI slot 2 */
-       { 9,    IRQ_MB_A_PCI2(0),       1 }
-};
-#define NUM_MB_PCI_DEV_IRQS ARRAY_SIZE(mb_pci_dev_irqs)
-
-\f
-/* PCI configuration primitives.  */
-
-#define CONFIG_DMCFGA(bus, devfn, offs)                                        \
-   (0x80000000                                                         \
-    | ((offs) & ~0x3)                                                  \
-    | ((devfn) << 8)                                                   \
-    | ((bus)->number << 16))
-
-static int
-mb_pci_read (struct pci_bus *bus, unsigned devfn, int offs, int size, u32 *rval)
-{
-       u32 addr;
-       int flags;
-
-       local_irq_save (flags);
-
-       MB_A_PCI_PCICR = 0x7;
-       MB_A_PCI_DMCFGA = CONFIG_DMCFGA (bus, devfn, offs);
-
-       addr = MB_A_PCI_IO_ADDR + (offs & 0x3);
-
-       switch (size) {
-       case 1: *rval = *(volatile  u8 *)addr; break;
-       case 2: *rval = *(volatile u16 *)addr; break;
-       case 4: *rval = *(volatile u32 *)addr; break;
-       }
-
-        if (MB_A_PCI_PCISR & 0x2000) {
-               MB_A_PCI_PCISR = 0x2000;
-               *rval = ~0;
-        }
-
-       MB_A_PCI_DMCFGA = 0;
-
-       local_irq_restore (flags);
-
-       return PCIBIOS_SUCCESSFUL;
-}
-
-static int
-mb_pci_write (struct pci_bus *bus, unsigned devfn, int offs, int size, u32 val)
-{
-       u32 addr;
-       int flags;
-
-       local_irq_save (flags);
-
-       MB_A_PCI_PCICR = 0x7;
-       MB_A_PCI_DMCFGA = CONFIG_DMCFGA (bus, devfn, offs);
-
-       addr = MB_A_PCI_IO_ADDR + (offs & 0x3);
-
-       switch (size) {
-       case 1: *(volatile  u8 *)addr = val; break;
-       case 2: *(volatile u16 *)addr = val; break;
-       case 4: *(volatile u32 *)addr = val; break;
-       }
-
-        if (MB_A_PCI_PCISR & 0x2000)
-               MB_A_PCI_PCISR = 0x2000;
-
-       MB_A_PCI_DMCFGA = 0;
-
-       local_irq_restore (flags);
-
-       return PCIBIOS_SUCCESSFUL;
-}
-
-static struct pci_ops mb_pci_config_ops = {
-       .read   = mb_pci_read,
-       .write  = mb_pci_write,
-};
-
-\f
-/* PCI Initialization.  */
-
-static struct pci_bus *mb_pci_bus = 0;
-
-/* Do initial PCI setup.  */
-static int __devinit pcibios_init (void)
-{
-       u32 id = MB_A_PCI_PCIHIDR;
-       u16 vendor = id & 0xFFFF;
-       u16 device = (id >> 16) & 0xFFFF;
-
-       if (vendor == PCI_VENDOR_ID_PLX && device == PCI_DEVICE_ID_PLX_9080) {
-               printk (KERN_INFO
-                       "PCI: PLX Technology PCI9080 HOST/PCI bridge\n");
-
-               MB_A_PCI_PCICR = 0x147;
-
-               MB_A_PCI_PCIBAR0 = 0x007FFF00;
-               MB_A_PCI_PCIBAR1 = 0x0000FF00;
-               MB_A_PCI_PCIBAR2 = 0x00800000;
-
-               MB_A_PCI_PCILTR = 0x20;
-
-               MB_A_PCI_PCIPBAM |= 0x3;
-
-               MB_A_PCI_PCISR =  ~0; /* Clear errors.  */
-
-               /* Reprogram the motherboard's IO/config address space,
-                  as we don't support the GCS7 address space that the
-                  default uses.  */
-
-               /* Significant address bits used for decoding PCI GCS5 space
-                  accesses.  */
-               MB_A_PCI_DMRR = ~(MB_A_PCI_MEM_SIZE - 1);
-
-               /* I don't understand this, but the SolutionGear example code
-                  uses such an offset, and it doesn't work without it.  XXX */
-#if GCS5_SIZE == 0x00800000
-#define GCS5_CFG_OFFS 0x00800000
-#else
-#define GCS5_CFG_OFFS 0
-#endif
-
-               /* Address bit values for matching.  Note that we have to give
-                  the address from the motherboard's point of view, which is
-                  different than the CPU's.  */
-               /* PCI memory space.  */
-               MB_A_PCI_DMLBAM = GCS5_CFG_OFFS + 0x0;
-               /* PCI I/O space.  */
-               MB_A_PCI_DMLBAI =
-                       GCS5_CFG_OFFS + (MB_A_PCI_IO_ADDR - GCS5_ADDR);
-
-               mb_pci_bus = pci_scan_bus (0, &mb_pci_config_ops, 0);
-
-               pcibios_assign_resources ();
-       } else
-               printk (KERN_ERR "PCI: HOST/PCI bridge not found\n");
-
-       return 0;
-}
-
-subsys_initcall (pcibios_init);
-
-char __devinit *pcibios_setup (char *option)
-{
-       /* Don't handle any options. */
-       return option;
-}
-
-\f
-int __nomods_init pcibios_enable_device (struct pci_dev *dev, int mask)
-{
-       u16 cmd, old_cmd;
-       int idx;
-       struct resource *r;
-
-       pci_read_config_word(dev, PCI_COMMAND, &cmd);
-       old_cmd = cmd;
-       for (idx = 0; idx < 6; idx++) {
-               r = &dev->resource[idx];
-               if (!r->start && r->end) {
-                       printk(KERN_ERR "PCI: Device %s not available because "
-                              "of resource collisions\n", pci_name(dev));
-                       return -EINVAL;
-               }
-               if (r->flags & IORESOURCE_IO)
-                       cmd |= PCI_COMMAND_IO;
-               if (r->flags & IORESOURCE_MEM)
-                       cmd |= PCI_COMMAND_MEMORY;
-       }
-       if (cmd != old_cmd) {
-               printk("PCI: Enabling device %s (%04x -> %04x)\n",
-                      pci_name(dev), old_cmd, cmd);
-               pci_write_config_word(dev, PCI_COMMAND, cmd);
-       }
-       return 0;
-}
-
-\f
-/* Resource allocation.  */
-static void __devinit pcibios_assign_resources (void)
-{
-       struct pci_dev *dev = NULL;
-       struct resource *r;
-
-       for_each_pci_dev(dev) {
-               unsigned di_num;
-               unsigned class = dev->class >> 8;
-
-               if (class && class != PCI_CLASS_BRIDGE_HOST) {
-                       unsigned r_num;
-                       for(r_num = 0; r_num < 6; r_num++) {
-                               r = &dev->resource[r_num];
-                               if (!r->start && r->end)
-                                       pci_assign_resource (dev, r_num);
-                       }
-               }
-
-               /* Assign interrupts.  */
-               for (di_num = 0; di_num < NUM_MB_PCI_DEV_IRQS; di_num++) {
-                       struct mb_pci_dev_irq *di = &mb_pci_dev_irqs[di_num];
-
-                       if (di->dev == PCI_SLOT (dev->devfn)) {
-                               unsigned irq = di->irq_base;
-
-                               if (di->query_pin) {
-                                       /* Find out which interrupt pin
-                                          this device uses (each PCI
-                                          slot has 4).  */
-                                       u8 irq_pin;
-
-                                       pci_read_config_byte (dev,
-                                                            PCI_INTERRUPT_PIN,
-                                                             &irq_pin);
-
-                                       if (irq_pin == 0)
-                                               /* Doesn't use interrupts.  */ 
-                                               continue;
-                                       else
-                                               irq += irq_pin - 1;
-                               }
-
-                               pcibios_update_irq (dev, irq);
-                       }
-               }
-       }
-}
-
-void __devinit pcibios_update_irq (struct pci_dev *dev, int irq)
-{
-       dev->irq = irq;
-       pci_write_config_byte (dev, PCI_INTERRUPT_LINE, irq);
-}
-
-void __devinit
-pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
-                       struct resource *res)
-{
-       unsigned long offset = 0;
-
-       if (res->flags & IORESOURCE_IO) {
-               offset = MB_A_PCI_IO_ADDR;
-       } else if (res->flags & IORESOURCE_MEM) {
-               offset = MB_A_PCI_MEM_ADDR;
-       }
-
-       region->start = res->start - offset;
-       region->end = res->end - offset;
-}
-
-\f
-/* Stubs for things we don't use.  */
-
-/* Called after each bus is probed, but before its children are examined. */
-void pcibios_fixup_bus(struct pci_bus *b)
-{
-}
-
-void
-pcibios_align_resource (void *data, struct resource *res,
-                       resource_size_t size, resource_size_t align)
-{
-}
-
-void pcibios_set_master (struct pci_dev *dev)
-{
-}
-
-\f
-/* Mother-A SRAM memory allocation.  This is a simple first-fit allocator.  */
-
-/* A memory free-list node.  */
-struct mb_sram_free_area {
-       void *mem;
-       unsigned long size;
-       struct mb_sram_free_area *next;
-};
-
-/* The tail of the free-list, which starts out containing all the SRAM.  */
-static struct mb_sram_free_area mb_sram_free_tail = {
-       (void *)MB_A_SRAM_ADDR, MB_A_SRAM_SIZE, 0
-};
-
-/* The free-list.  */
-static struct mb_sram_free_area *mb_sram_free_areas = &mb_sram_free_tail;
-
-/* The free-list of free free-list nodes. (:-)  */
-static struct mb_sram_free_area *mb_sram_free_free_areas = 0;
-
-/* Spinlock protecting the above globals.  */
-static DEFINE_SPINLOCK(mb_sram_lock);
-
-/* Allocate a memory block at least SIZE bytes long in the Mother-A SRAM
-   space.  */
-static void *alloc_mb_sram (size_t size)
-{
-       struct mb_sram_free_area *prev, *fa;
-       unsigned long flags;
-       void *mem = 0;
-
-       spin_lock_irqsave (mb_sram_lock, flags);
-
-       /* Look for a free area that can contain SIZE bytes.  */
-       for (prev = 0, fa = mb_sram_free_areas; fa; prev = fa, fa = fa->next)
-               if (fa->size >= size) {
-                       /* Found one!  */
-                       mem = fa->mem;
-
-                       if (fa->size == size) {
-                               /* In fact, it fits exactly, so remove
-                                  this node from the free-list.  */
-                               if (prev)
-                                       prev->next = fa->next;
-                               else
-                                       mb_sram_free_areas = fa->next;
-                               /* Put it on the free-list-entry-free-list. */
-                               fa->next = mb_sram_free_free_areas;
-                               mb_sram_free_free_areas = fa;
-                       } else {
-                               /* FA is bigger than SIZE, so just
-                                  reduce its size to account for this
-                                  allocation.  */
-                               fa->mem += size;
-                               fa->size -= size;
-                       }
-
-                       break;
-               }
-
-       spin_unlock_irqrestore (mb_sram_lock, flags);
-
-       return mem;
-}
-
-/* Return the memory area MEM of size SIZE to the MB SRAM free pool.  */
-static void free_mb_sram (void *mem, size_t size)
-{
-       struct mb_sram_free_area *prev, *fa, *new_fa;
-       unsigned long flags;
-       void *end = mem + size;
-
-       spin_lock_irqsave (mb_sram_lock, flags);
-
- retry:
-       /* Find an adjacent free-list entry.  */
-       for (prev = 0, fa = mb_sram_free_areas; fa; prev = fa, fa = fa->next)
-               if (fa->mem == end) {
-                       /* FA is just after MEM, grow down to encompass it. */
-                       fa->mem = mem;
-                       fa->size += size;
-                       goto done;
-               } else if (fa->mem + fa->size == mem) {
-                       struct mb_sram_free_area *next_fa = fa->next;
-
-                       /* FA is just before MEM, expand to encompass it. */
-                       fa->size += size;
-
-                       /* See if FA can now be merged with its successor. */
-                       if (next_fa && fa->mem + fa->size == next_fa->mem) {
-                               /* Yup; merge NEXT_FA's info into FA.  */
-                               fa->size += next_fa->size;
-                               fa->next = next_fa->next;
-                               /* Free NEXT_FA.  */
-                               next_fa->next = mb_sram_free_free_areas;
-                               mb_sram_free_free_areas = next_fa;
-                       }
-                       goto done;
-               } else if (fa->mem > mem)
-                       /* We've reached the right spot in the free-list
-                          without finding an adjacent free-area, so add
-                          a new free area to hold mem. */
-                       break;
-
-       /* Make a new free-list entry.  */
-
-       /* First, get a free-list entry.  */
-       if (! mb_sram_free_free_areas) {
-               /* There are none, so make some.  */
-               void *block;
-               size_t block_size = sizeof (struct mb_sram_free_area) * 8;
-
-               /* Don't hold the lock while calling kmalloc (I'm not
-                  sure whether it would be a problem, since we use
-                  GFP_ATOMIC, but it makes me nervous).  */
-               spin_unlock_irqrestore (mb_sram_lock, flags);
-
-               block = kmalloc (block_size, GFP_ATOMIC);
-               if (! block)
-                       panic ("free_mb_sram: can't allocate free-list entry");
-
-               /* Now get the lock back.  */
-               spin_lock_irqsave (mb_sram_lock, flags);
-
-               /* Add the new free free-list entries.  */
-               while (block_size > 0) {
-                       struct mb_sram_free_area *nfa = block;
-                       nfa->next = mb_sram_free_free_areas;
-                       mb_sram_free_free_areas = nfa;
-                       block += sizeof *nfa;
-                       block_size -= sizeof *nfa;
-               }
-
-               /* Since we dropped the lock to call kmalloc, the
-                  free-list could have changed, so retry from the
-                  beginning.  */
-               goto retry;
-       }
-
-       /* Remove NEW_FA from the free-list of free-list entries.  */
-       new_fa = mb_sram_free_free_areas;
-       mb_sram_free_free_areas = new_fa->next;
-
-       /* NEW_FA initially holds only MEM.  */
-       new_fa->mem = mem;
-       new_fa->size = size;
-
-       /* Insert NEW_FA in the free-list between PREV and FA. */
-       new_fa->next = fa;
-       if (prev)
-               prev->next = new_fa;
-       else
-               mb_sram_free_areas = new_fa;
-
- done:
-       spin_unlock_irqrestore (mb_sram_lock, flags);
-}
-
-\f
-/* Maintainence of CPU -> Mother-A DMA mappings.  */
-
-struct dma_mapping {
-       void *cpu_addr;
-       void *mb_sram_addr;
-       size_t size;
-       struct dma_mapping *next;
-};
-
-/* A list of mappings from CPU addresses to MB SRAM addresses for active
-   DMA blocks (that have been `granted' to the PCI device).  */
-static struct dma_mapping *active_dma_mappings = 0;
-
-/* A list of free mapping objects.  */
-static struct dma_mapping *free_dma_mappings = 0;
-
-/* Spinlock protecting the above globals.  */
-static DEFINE_SPINLOCK(dma_mappings_lock);
-
-static struct dma_mapping *new_dma_mapping (size_t size)
-{
-       unsigned long flags;
-       struct dma_mapping *mapping;
-       void *mb_sram_block = alloc_mb_sram (size);
-
-       if (! mb_sram_block)
-               return 0;
-
-       spin_lock_irqsave (dma_mappings_lock, flags);
-
-       if (! free_dma_mappings) {
-               /* We're out of mapping structures, make more.  */
-               void *mblock;
-               size_t mblock_size = sizeof (struct dma_mapping) * 8;
-
-               /* Don't hold the lock while calling kmalloc (I'm not
-                  sure whether it would be a problem, since we use
-                  GFP_ATOMIC, but it makes me nervous).  */
-               spin_unlock_irqrestore (dma_mappings_lock, flags);
-
-               mblock = kmalloc (mblock_size, GFP_ATOMIC);
-               if (! mblock) {
-                       free_mb_sram (mb_sram_block, size);
-                       return 0;
-               }
-
-               /* Get the lock back.  */
-               spin_lock_irqsave (dma_mappings_lock, flags);
-
-               /* Add the new mapping structures to the free-list.  */
-               while (mblock_size > 0) {
-                       struct dma_mapping *fm = mblock;
-                       fm->next = free_dma_mappings;
-                       free_dma_mappings = fm;
-                       mblock += sizeof *fm;
-                       mblock_size -= sizeof *fm;
-               }
-       }
-
-       /* Get a mapping struct from the freelist.  */
-       mapping = free_dma_mappings;
-       free_dma_mappings = mapping->next;
-
-       /* Initialize the mapping.  Other fields should be filled in by
-          caller.  */
-       mapping->mb_sram_addr = mb_sram_block;
-       mapping->size = size;
-
-       /* Add it to the list of active mappings.  */
-       mapping->next = active_dma_mappings;
-       active_dma_mappings = mapping;
-
-       spin_unlock_irqrestore (dma_mappings_lock, flags);
-
-       return mapping;
-}
-
-static struct dma_mapping *find_dma_mapping (void *mb_sram_addr)
-{
-       unsigned long flags;
-       struct dma_mapping *mapping;
-
-       spin_lock_irqsave (dma_mappings_lock, flags);
-
-       for (mapping = active_dma_mappings; mapping; mapping = mapping->next)
-               if (mapping->mb_sram_addr == mb_sram_addr) {
-                       spin_unlock_irqrestore (dma_mappings_lock, flags);
-                       return mapping;
-               }
-
-       panic ("find_dma_mapping: unmapped PCI DMA addr 0x%x",
-              MB_SRAM_TO_PCI (mb_sram_addr));
-}
-
-static struct dma_mapping *deactivate_dma_mapping (void *mb_sram_addr)
-{
-       unsigned long flags;
-       struct dma_mapping *mapping, *prev;
-
-       spin_lock_irqsave (dma_mappings_lock, flags);
-
-       for (prev = 0, mapping = active_dma_mappings;
-            mapping;
-            prev = mapping, mapping = mapping->next)
-       {
-               if (mapping->mb_sram_addr == mb_sram_addr) {
-                       /* This is the MAPPING; deactivate it.  */
-                       if (prev)
-                               prev->next = mapping->next;
-                       else
-                               active_dma_mappings = mapping->next;
-
-                       spin_unlock_irqrestore (dma_mappings_lock, flags);
-
-                       return mapping;
-               }
-       }
-
-       panic ("deactivate_dma_mapping: unmapped PCI DMA addr 0x%x",
-              MB_SRAM_TO_PCI (mb_sram_addr));
-}
-
-/* Return MAPPING to the freelist.  */
-static inline void
-free_dma_mapping (struct dma_mapping *mapping)
-{
-       unsigned long flags;
-
-       free_mb_sram (mapping->mb_sram_addr, mapping->size);
-
-       spin_lock_irqsave (dma_mappings_lock, flags);
-
-       mapping->next = free_dma_mappings;
-       free_dma_mappings = mapping;
-
-       spin_unlock_irqrestore (dma_mappings_lock, flags);
-}
-
-\f
-/* Single PCI DMA mappings.  */
-
-/* `Grant' to PDEV the memory block at CPU_ADDR, for doing DMA.  The
-   32-bit PCI bus mastering address to use is returned.  the device owns
-   this memory until either pci_unmap_single or pci_dma_sync_single is
-   performed.  */
-dma_addr_t
-pci_map_single (struct pci_dev *pdev, void *cpu_addr, size_t size, int dir)
-{
-       struct dma_mapping *mapping = new_dma_mapping (size);
-
-       if (! mapping)
-               return 0;
-
-       mapping->cpu_addr = cpu_addr;
-
-       if (dir == PCI_DMA_BIDIRECTIONAL || dir == PCI_DMA_TODEVICE)
-               memcpy (mapping->mb_sram_addr, cpu_addr, size);
-
-       return MB_SRAM_TO_PCI (mapping->mb_sram_addr);
-}
-
-/* Return to the CPU the PCI DMA memory block previously `granted' to
-   PDEV, at DMA_ADDR.  */
-void pci_unmap_single (struct pci_dev *pdev, dma_addr_t dma_addr, size_t size,
-                      int dir)
-{
-       void *mb_sram_addr = PCI_TO_MB_SRAM (dma_addr);
-       struct dma_mapping *mapping = deactivate_dma_mapping (mb_sram_addr);
-
-       if (size != mapping->size)
-               panic ("pci_unmap_single: size (%d) doesn't match"
-                      " size of mapping at PCI DMA addr 0x%x (%d)\n",
-                      size, dma_addr, mapping->size);
-
-       /* Copy back the DMA'd contents if necessary.  */
-       if (dir == PCI_DMA_BIDIRECTIONAL || dir == PCI_DMA_FROMDEVICE)
-               memcpy (mapping->cpu_addr, mb_sram_addr, size);
-
-       /* Return mapping to the freelist.  */
-       free_dma_mapping (mapping);
-}
-
-/* Make physical memory consistent for a single streaming mode DMA
-   translation after a transfer.
-
-   If you perform a pci_map_single() but wish to interrogate the
-   buffer using the cpu, yet do not wish to teardown the PCI dma
-   mapping, you must call this function before doing so.  At the next
-   point you give the PCI dma address back to the card, you must first
-   perform a pci_dma_sync_for_device, and then the device again owns
-   the buffer.  */
-void
-pci_dma_sync_single_for_cpu (struct pci_dev *pdev, dma_addr_t dma_addr, size_t size,
-                    int dir)
-{
-       void *mb_sram_addr = PCI_TO_MB_SRAM (dma_addr);
-       struct dma_mapping *mapping = find_dma_mapping (mb_sram_addr);
-
-       /* Synchronize the DMA buffer with the CPU buffer if necessary.  */
-       if (dir == PCI_DMA_FROMDEVICE)
-               memcpy (mapping->cpu_addr, mb_sram_addr, size);
-       else if (dir == PCI_DMA_TODEVICE)
-               ; /* nothing to do */
-       else
-               panic("pci_dma_sync_single: unsupported sync dir: %d", dir);
-}
-
-void
-pci_dma_sync_single_for_device (struct pci_dev *pdev, dma_addr_t dma_addr, size_t size,
-                               int dir)
-{
-       void *mb_sram_addr = PCI_TO_MB_SRAM (dma_addr);
-       struct dma_mapping *mapping = find_dma_mapping (mb_sram_addr);
-
-       /* Synchronize the DMA buffer with the CPU buffer if necessary.  */
-       if (dir == PCI_DMA_FROMDEVICE)
-               ; /* nothing to do */
-       else if (dir == PCI_DMA_TODEVICE)
-               memcpy (mb_sram_addr, mapping->cpu_addr, size);
-       else
-               panic("pci_dma_sync_single: unsupported sync dir: %d", dir);
-}
-
-\f
-/* Scatter-gather PCI DMA mappings.  */
-
-/* Do multiple DMA mappings at once.  */
-int
-pci_map_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len, int dir)
-{
-       BUG ();
-       return 0;
-}
-
-/* Unmap multiple DMA mappings at once.  */
-void
-pci_unmap_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len,int dir)
-{
-       BUG ();
-}
-
-/* Make physical memory consistent for a set of streaming mode DMA
-   translations after a transfer.  The same as pci_dma_sync_single_* but
-   for a scatter-gather list, same rules and usage.  */
-
-void
-pci_dma_sync_sg_for_cpu (struct pci_dev *dev,
-                        struct scatterlist *sg, int sg_len,
-                        int dir)
-{
-       BUG ();
-}
-
-void
-pci_dma_sync_sg_for_device (struct pci_dev *dev,
-                           struct scatterlist *sg, int sg_len,
-                           int dir)
-{
-       BUG ();
-}
-
-\f
-/* PCI mem mapping.  */
-
-/* Allocate and map kernel buffer using consistent mode DMA for PCI
-   device.  Returns non-NULL cpu-view pointer to the buffer if
-   successful and sets *DMA_ADDR to the pci side dma address as well,
-   else DMA_ADDR is undefined.  */
-void *
-pci_alloc_consistent (struct pci_dev *pdev, size_t size, dma_addr_t *dma_addr)
-{
-       void *mb_sram_mem = alloc_mb_sram (size);
-       if (mb_sram_mem)
-               *dma_addr = MB_SRAM_TO_PCI (mb_sram_mem);
-       return mb_sram_mem;
-}
-
-/* Free and unmap a consistent DMA buffer.  CPU_ADDR and DMA_ADDR must
-   be values that were returned from pci_alloc_consistent.  SIZE must be
-   the same as what as passed into pci_alloc_consistent.  References to
-   the memory and mappings associated with CPU_ADDR or DMA_ADDR past
-   this call are illegal.  */
-void
-pci_free_consistent (struct pci_dev *pdev, size_t size, void *cpu_addr,
-                    dma_addr_t dma_addr)
-{
-       void *mb_sram_mem = PCI_TO_MB_SRAM (dma_addr);
-       free_mb_sram (mb_sram_mem, size);
-}
-
-\f
-/* iomap/iomap */
-
-void __iomem *pci_iomap (struct pci_dev *dev, int bar, unsigned long max)
-{
-       resource_size_t start = pci_resource_start (dev, bar);
-       resource_size_t len = pci_resource_len (dev, bar);
-
-       if (!start || len == 0)
-               return 0;
-
-       /* None of the ioremap functions actually do anything, other than
-          re-casting their argument, so don't bother differentiating them.  */
-       return ioremap (start, len);
-}
-
-void pci_iounmap (struct pci_dev *dev, void __iomem *addr)
-{
-       /* nothing */
-}
-
-\f
-/* symbol exports (for modules) */
-
-EXPORT_SYMBOL (pci_map_single);
-EXPORT_SYMBOL (pci_unmap_single);
-EXPORT_SYMBOL (pci_alloc_consistent);
-EXPORT_SYMBOL (pci_free_consistent);
-EXPORT_SYMBOL (pci_dma_sync_single_for_cpu);
-EXPORT_SYMBOL (pci_dma_sync_single_for_device);
-EXPORT_SYMBOL (pci_iomap);
-EXPORT_SYMBOL (pci_iounmap);
diff --git a/arch/v850/kernel/rte_me2_cb.c b/arch/v850/kernel/rte_me2_cb.c
deleted file mode 100644 (file)
index 46803d4..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * arch/v850/kernel/rte_me2_cb.c -- Midas labs RTE-V850E/ME2-CB board
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/bootmem.h>
-#include <linux/irq.h>
-#include <linux/fs.h>
-#include <linux/major.h>
-#include <linux/sched.h>
-#include <linux/delay.h>
-
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/me2.h>
-#include <asm/rte_me2_cb.h>
-#include <asm/machdep.h>
-#include <asm/v850e_intc.h>
-#include <asm/v850e_cache.h>
-#include <asm/irq.h>
-
-#include "mach.h"
-
-extern unsigned long *_intv_start;
-extern unsigned long *_intv_end;
-
-/* LED access routines.  */
-extern unsigned read_leds (int pos, char *buf, int len);
-extern unsigned write_leds (int pos, const char *buf, int len);
-
-
-/* SDRAM are almost contiguous (with a small hole in between;
-   see mach_reserve_bootmem for details), so just use both as one big area.  */
-#define RAM_START      SDRAM_ADDR
-#define RAM_END                (SDRAM_ADDR + SDRAM_SIZE)
-
-
-void __init mach_get_physical_ram (unsigned long *ram_start,
-                                  unsigned long *ram_len)
-{
-       *ram_start = RAM_START;
-       *ram_len = RAM_END - RAM_START;
-}
-
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-
-/* Called before configuring an on-chip UART.  */
-void rte_me2_cb_uart_pre_configure (unsigned chan,
-                                   unsigned cflags, unsigned baud)
-{
-       /* The RTE-V850E/ME2-CB connects some general-purpose I/O
-          pins on the CPU to the RTS/CTS lines of UARTB channel 0's
-          serial connection.
-          I/O pins P21 and P22 are RTS and CTS respectively.  */
-       if (chan == 0) {
-               /* Put P21 & P22 in I/O port mode.  */
-               ME2_PORT2_PMC &= ~0x6;
-               /* Make P21 and output, and P22 an input.  */
-               ME2_PORT2_PM = (ME2_PORT2_PM & ~0xC) | 0x4;
-       }
-
-       me2_uart_pre_configure (chan, cflags, baud);
-}
-
-void __init mach_init_irqs (void)
-{
-       /* Initialize interrupts.  */
-       me2_init_irqs ();
-       rte_me2_cb_init_irqs ();
-}
-
-#ifdef CONFIG_ROM_KERNEL
-/* Initialization for kernel in ROM.  */
-static inline rom_kernel_init (void)
-{
-       /* If the kernel is in ROM, we have to copy any initialized data
-          from ROM into RAM.  */
-       extern unsigned long _data_load_start, _sdata, _edata;
-       register unsigned long *src = &_data_load_start;
-       register unsigned long *dst = &_sdata, *end = &_edata;
-
-       while (dst != end)
-               *dst++ = *src++;
-}
-#endif /* CONFIG_ROM_KERNEL */
-
-static void install_interrupt_vectors (void)
-{
-       unsigned long *p1, *p2;
-
-       ME2_IRAMM = 0x03; /* V850E/ME2 iRAM write mode */
-
-       /* vector copy to iRAM */
-       p1 = (unsigned long *)0; /* v85x vector start */
-       p2 = (unsigned long *)&_intv_start;
-       while (p2 < (unsigned long *)&_intv_end)
-               *p1++ = *p2++;
-
-       ME2_IRAMM = 0x00; /* V850E/ME2 iRAM read mode */
-}
-\f
-/* CompactFlash */
-
-static void cf_power_on (void)
-{
-       /* CF card detected? */
-       if (CB_CF_STS0 & 0x0030)
-               return;
-
-       CB_CF_REG0 = 0x0002; /* reest on */
-       mdelay (10);
-       CB_CF_REG0 = 0x0003; /* power on */
-       mdelay (10);
-       CB_CF_REG0 = 0x0001; /* reset off */
-       mdelay (10);
-}
-
-static void cf_power_off (void)
-{
-       CB_CF_REG0 = 0x0003; /* power on */
-       mdelay (10);
-       CB_CF_REG0 = 0x0002; /* reest on */
-       mdelay (10);
-}
-
-void __init mach_early_init (void)
-{
-       install_interrupt_vectors ();
-
-       /* CS1 SDRAM instruction cache enable */
-       v850e_cache_enable (0x04, 0x03, 0);
-
-       rte_cb_early_init ();
-
-       /* CompactFlash power on */
-       cf_power_on ();
-
-#if defined (CONFIG_ROM_KERNEL)
-       rom_kernel_init ();
-#endif
-}
-
-\f
-/* RTE-V850E/ME2-CB Programmable Interrupt Controller.  */
-
-static struct cb_pic_irq_init cb_pic_irq_inits[] = {
-       { "CB_EXTTM0",       IRQ_CB_EXTTM0,       1, 1, 6 },
-       { "CB_EXTSIO",       IRQ_CB_EXTSIO,       1, 1, 6 },
-       { "CB_TOVER",        IRQ_CB_TOVER,        1, 1, 6 },
-       { "CB_GINT0",        IRQ_CB_GINT0,        1, 1, 6 },
-       { "CB_USB",          IRQ_CB_USB,          1, 1, 6 },
-       { "CB_LANC",         IRQ_CB_LANC,         1, 1, 6 },
-       { "CB_USB_VBUS_ON",  IRQ_CB_USB_VBUS_ON,  1, 1, 6 },
-       { "CB_USB_VBUS_OFF", IRQ_CB_USB_VBUS_OFF, 1, 1, 6 },
-       { "CB_EXTTM1",       IRQ_CB_EXTTM1,       1, 1, 6 },
-       { "CB_EXTTM2",       IRQ_CB_EXTTM2,       1, 1, 6 },
-       { 0 }
-};
-#define NUM_CB_PIC_IRQ_INITS (ARRAY_SIZE(cb_pic_irq_inits) - 1)
-
-static struct hw_interrupt_type cb_pic_hw_itypes[NUM_CB_PIC_IRQ_INITS];
-static unsigned char cb_pic_active_irqs = 0;
-
-void __init rte_me2_cb_init_irqs (void)
-{
-       cb_pic_init_irq_types (cb_pic_irq_inits, cb_pic_hw_itypes);
-
-       /* Initalize on board PIC1 (not PIC0) enable */
-       CB_PIC_INT0M  = 0x0000;
-       CB_PIC_INT1M  = 0x0000;
-       CB_PIC_INTR   = 0x0000;
-       CB_PIC_INTEN |= CB_PIC_INT1EN;
-
-       ME2_PORT2_PMC    |= 0x08;       /* INTP23/SCK1 mode */
-       ME2_PORT2_PFC    &= ~0x08;      /* INTP23 mode */
-       ME2_INTR(2)      &= ~0x08;      /* INTP23 falling-edge detect */
-       ME2_INTF(2)      &= ~0x08;      /*   " */
-
-       rte_cb_init_irqs ();    /* gbus &c */
-}
-
-
-/* Enable interrupt handling for interrupt IRQ.  */
-void cb_pic_enable_irq (unsigned irq)
-{
-       CB_PIC_INT1M |= 1 << (irq - CB_PIC_BASE_IRQ);
-}
-
-void cb_pic_disable_irq (unsigned irq)
-{
-       CB_PIC_INT1M &= ~(1 << (irq - CB_PIC_BASE_IRQ));
-}
-
-void cb_pic_shutdown_irq (unsigned irq)
-{
-       cb_pic_disable_irq (irq);
-
-       if (--cb_pic_active_irqs == 0)
-               free_irq (IRQ_CB_PIC, 0);
-
-       CB_PIC_INT1M &= ~(1 << (irq - CB_PIC_BASE_IRQ));
-}
-
-static irqreturn_t cb_pic_handle_irq (int irq, void *dev_id,
-                                     struct pt_regs *regs)
-{
-       irqreturn_t rval = IRQ_NONE;
-       unsigned status = CB_PIC_INTR;
-       unsigned enable = CB_PIC_INT1M;
-
-       /* Only pay attention to enabled interrupts.  */
-       status &= enable;
-
-       CB_PIC_INTEN &= ~CB_PIC_INT1EN;
-
-       if (status) {
-               unsigned mask = 1;
-
-               irq = CB_PIC_BASE_IRQ;
-               do {
-                       /* There's an active interrupt, find out which one,
-                          and call its handler.  */
-                       while (! (status & mask)) {
-                               irq++;
-                               mask <<= 1;
-                       }
-                       status &= ~mask;
-
-                       CB_PIC_INTR = mask;
-
-                       /* Recursively call handle_irq to handle it. */
-                       handle_irq (irq, regs);
-                       rval = IRQ_HANDLED;
-               } while (status);
-       }
-
-       CB_PIC_INTEN |= CB_PIC_INT1EN;
-
-       return rval;
-}
-
-\f
-static void irq_nop (unsigned irq) { }
-
-static unsigned cb_pic_startup_irq (unsigned irq)
-{
-       int rval;
-
-       if (cb_pic_active_irqs == 0) {
-               rval = request_irq (IRQ_CB_PIC, cb_pic_handle_irq,
-                                   IRQF_DISABLED, "cb_pic_handler", 0);
-               if (rval != 0)
-                       return rval;
-       }
-
-       cb_pic_active_irqs++;
-
-       cb_pic_enable_irq (irq);
-
-       return 0;
-}
-
-/* Initialize HW_IRQ_TYPES for INTC-controlled irqs described in array
-   INITS (which is terminated by an entry with the name field == 0).  */
-void __init cb_pic_init_irq_types (struct cb_pic_irq_init *inits,
-                                  struct hw_interrupt_type *hw_irq_types)
-{
-       struct cb_pic_irq_init *init;
-       for (init = inits; init->name; init++) {
-               struct hw_interrupt_type *hwit = hw_irq_types++;
-
-               hwit->typename = init->name;
-
-               hwit->startup  = cb_pic_startup_irq;
-               hwit->shutdown = cb_pic_shutdown_irq;
-               hwit->enable   = cb_pic_enable_irq;
-               hwit->disable  = cb_pic_disable_irq;
-               hwit->ack      = irq_nop;
-               hwit->end      = irq_nop;
-
-               /* Initialize kernel IRQ infrastructure for this interrupt.  */
-               init_irq_handlers(init->base, init->num, init->interval, hwit);
-       }
-}
diff --git a/arch/v850/kernel/rte_me2_cb.ld b/arch/v850/kernel/rte_me2_cb.ld
deleted file mode 100644 (file)
index cf07660..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Linker script for the Midas labs RTE-V850E/ME2-CB evaluation board
-   (CONFIG_RTE_CB_ME2), with kernel in SDRAM.  */
-
-MEMORY {
-       /* 128Kbyte of IRAM */
-       IRAM : ORIGIN = 0x00000000, LENGTH = 0x00020000
-
-       /* 32MB of SDRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-#define KRAM SDRAM
-
-SECTIONS {
-       .text : {
-               __kram_start = . ;
-               TEXT_CONTENTS
-               INTV_CONTENTS   /* copy to iRAM (0x0-0x620) */
-       } > KRAM
-
-       .data : {
-               DATA_CONTENTS
-               BSS_CONTENTS
-               RAMK_INIT_CONTENTS
-               __kram_end = . ;
-               BOOTMAP_CONTENTS
-       } > KRAM
-       
-       .root ALIGN (4096) : { ROOT_FS_CONTENTS } > SDRAM
-}
diff --git a/arch/v850/kernel/rte_nb85e_cb-multi.ld b/arch/v850/kernel/rte_nb85e_cb-multi.ld
deleted file mode 100644 (file)
index de347b4..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Linker script for the Midas labs RTE-NB85E-CB evaluation board
-   (CONFIG_RTE_CB_NB85E), with the Multi debugger ROM monitor .  */
-
-MEMORY {
-       /* 1MB of SRAM; we can't use the last 96KB, because it's used by
-          the monitor scratch-RAM.  This memory is mirrored 4 times.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = (SRAM_SIZE - MON_SCRATCH_SIZE)
-       /* Monitor scratch RAM; only the interrupt vectors should go here.  */
-       MRAM  : ORIGIN = MON_SCRATCH_ADDR,  LENGTH = MON_SCRATCH_SIZE
-       /* 16MB of SDRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-#ifdef CONFIG_RTE_CB_NB85E_KSRAM
-# define KRAM SRAM
-#else
-# define KRAM SDRAM
-#endif
-
-SECTIONS {
-       /* We can't use RAMK_KRAM_CONTENTS because that puts the whole
-          kernel in a single ELF segment, and the Multi debugger (which
-          we use to load the kernel) appears to have bizarre problems
-          dealing with it.  */
-
-       .text : {
-               __kram_start = . ;
-               TEXT_CONTENTS
-       } > KRAM
-
-       .data : {
-               DATA_CONTENTS
-               BSS_CONTENTS
-               RAMK_INIT_CONTENTS
-               __kram_end = . ;
-               BOOTMAP_CONTENTS
-
-               /* The address at which the interrupt vectors are initially
-                  loaded by the loader.  We can't load the interrupt vectors
-                  directly into their target location, because the monitor
-                  ROM for the GHS Multi debugger barfs if we try.
-                  Unfortunately, Multi also doesn't deal correctly with ELF
-                  sections where the LMA and VMA differ (it just ignores the
-                  LMA), so we can't use that feature to work around the
-                  problem!  What we do instead is just put the interrupt
-                  vectors into a normal section, and have the
-                  `mach_early_init' function for Midas boards do the
-                  necessary copying and relocation at runtime (this section
-                  basically only contains `jr' instructions, so it's not
-                  that hard).  */
-               . = ALIGN (0x10) ;
-               __intv_load_start = . ;
-               INTV_CONTENTS
-       } > KRAM
-
-       .root ALIGN (4096) : { ROOT_FS_CONTENTS } > SDRAM
-}
diff --git a/arch/v850/kernel/rte_nb85e_cb.c b/arch/v850/kernel/rte_nb85e_cb.c
deleted file mode 100644 (file)
index b4a045d..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * arch/v850/kernel/rte_nb85e_cb.c -- Midas labs RTE-V850E/NB85E-CB board
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file COPYING in the main directory of this
- * archive for more details.
- *
- * Written by Miles Bader <miles@gnu.org>
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/swap.h>
-#include <linux/bootmem.h>
-#include <linux/irq.h>
-
-#include <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/v850e.h>
-#include <asm/rte_nb85e_cb.h>
-
-#include "mach.h"
-
-void __init mach_early_init (void)
-{
-       /* Configure caching; some possible settings:
-
-            BHC = 0x0000, DCC = 0x0000  -- all caching disabled
-            BHC = 0x0040, DCC = 0x0000  -- SDRAM: icache only
-            BHC = 0x0080, DCC = 0x0C00  -- SDRAM: write-back dcache only
-            BHC = 0x00C0, DCC = 0x0C00  -- SDRAM: icache + write-back dcache
-            BHC = 0x00C0, DCC = 0x0800  -- SDRAM: icache + write-thru dcache
-
-          We can only cache SDRAM (we can't use cache SRAM because it's in
-          the same memory region as the on-chip RAM and I/O space).
-
-          Unfortunately, the dcache seems to be buggy, so we only use the
-          icache for now.  */
-       v850e_cache_enable (0x0040 /*BHC*/, 0x0003 /*ICC*/, 0x0000 /*DCC*/);
-
-       rte_cb_early_init ();
-}
-
-void __init mach_get_physical_ram (unsigned long *ram_start,
-                                  unsigned long *ram_len)
-{
-       /* We just use SDRAM here.  */
-       *ram_start = SDRAM_ADDR;
-       *ram_len = SDRAM_SIZE;
-}
-
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-
-/* Called before configuring an on-chip UART.  */
-void rte_nb85e_cb_uart_pre_configure (unsigned chan,
-                                   unsigned cflags, unsigned baud)
-{
-       /* The RTE-NB85E-CB connects some general-purpose I/O pins on the
-          CPU to the RTS/CTS lines the UART's serial connection, as follows:
-          P00 = CTS (in), P01 = DSR (in), P02 = RTS (out), P03 = DTR (out). */
-
-       TEG_PORT0_PM = 0x03;    /* P00 and P01 inputs, P02 and P03 outputs */
-       TEG_PORT0_IO = 0x03;    /* Accept input */
-
-       /* Do pre-configuration for the actual UART.  */
-       teg_uart_pre_configure (chan, cflags, baud);
-}
-
-void __init mach_init_irqs (void)
-{
-       teg_init_irqs ();
-       rte_cb_init_irqs ();
-}
diff --git a/arch/v850/kernel/rte_nb85e_cb.ld b/arch/v850/kernel/rte_nb85e_cb.ld
deleted file mode 100644 (file)
index b672f48..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Linker script for the Midas labs RTE-NB85E-CB evaluation board
-   (CONFIG_RTE_CB_NB85E).  */
-
-MEMORY {
-       LOW   : ORIGIN = 0x0,        LENGTH = 0x00100000
-       /* 1MB of SRAM  This memory is mirrored 4 times.  */
-       SRAM  : ORIGIN = SRAM_ADDR,  LENGTH = SRAM_SIZE
-       /* 16MB of SDRAM.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-#ifdef CONFIG_RTE_CB_NB85E_KSRAM
-# define KRAM SRAM
-#else
-# define KRAM SDRAM
-#endif
-
-SECTIONS {
-       .intv : { INTV_CONTENTS } > LOW
-       .sram : { RAMK_KRAM_CONTENTS } > KRAM
-       .root : { ROOT_FS_CONTENTS } > SDRAM
-}
diff --git a/arch/v850/kernel/setup.c b/arch/v850/kernel/setup.c
deleted file mode 100644 (file)
index 10335ce..0000000
+++ /dev/null
@@