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
 
+++ /dev/null
-#############################################################################
-#
-# 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"
-
-#############################################################################
 
+++ /dev/null
-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
 
+++ /dev/null
-#
-# 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
 
+++ /dev/null
-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.
 
+++ /dev/null
-#
-# 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
 
+++ /dev/null
-#
-# 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
 
+++ /dev/null
-#
-# 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
 
+++ /dev/null
-#
-# 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
 
+++ /dev/null
-/* 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)
-}
 
+++ /dev/null
-/*
- * 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;
-       }
-}
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/* 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)
-}
 
+++ /dev/null
-/*
- * 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;
-       }
-}
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/*
- * 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;
-}
 
+++ /dev/null
-/*
- * 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);
 
+++ /dev/null
-/*
- * 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)
 
+++ /dev/null
-/*
- * 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), ®_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 = ®_snap_dev_id,
-};
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/*
- * 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;
-}
 
+++ /dev/null
-/*
- * 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)
 
+++ /dev/null
-/*
- * 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);
-}
 
+++ /dev/null
-/*
- * 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) };
 
+++ /dev/null
-/*
- * 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 */
 
+++ /dev/null
-/*
- * 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;
-       }
-}
 
+++ /dev/null
-/*
- * 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;
-       }
-}
 
+++ /dev/null
-/*
- * 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;
 
+++ /dev/null
-/*
- * 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__ */
 
+++ /dev/null
-/*
- * 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;
-       }
-}
 
+++ /dev/null
-/*
- * 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);
 
+++ /dev/null
-/*
- * 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)
-{
-}
 
+++ /dev/null
-/*
- * 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;
-}
 
+++ /dev/null
-/*
- * 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
-};
 
+++ /dev/null
-/*
- * 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 */
-}
 
+++ /dev/null
-/*
- * 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 */
-}
 
+++ /dev/null
-/*
- * 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);
 
+++ /dev/null
-/*
- * 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;
-               }
-       }
-}
 
+++ /dev/null
-/* 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)
-}
 
+++ /dev/null
-/*
- * 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.*/
-}
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/*
- * 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);
 
+++ /dev/null
-/*
- * 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);
-       }
-}
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/*
- * 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 ();
-}
 
+++ /dev/null
-/* 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
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/setup.c -- Arch-dependent initialization functions
- *
- *  Copyright (C) 2001,02,03,05,06  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03,05,06  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/mm.h>
-#include <linux/bootmem.h>
-#include <linux/swap.h>                /* we don't have swap, but for nr_free_pages */
-#include <linux/irq.h>
-#include <linux/reboot.h>
-#include <linux/personality.h>
-#include <linux/major.h>
-#include <linux/root_dev.h>
-#include <linux/mtd/mtd.h>
-#include <linux/init.h>
-
-#include <asm/irq.h>
-#include <asm/setup.h>
-
-#include "mach.h"
-
-/* These symbols are all defined in the linker map to delineate various
-   statically allocated regions of memory.  */
-
-extern char _intv_start, _intv_end;
-/* `kram' is only used if the kernel uses part of normal user RAM.  */
-extern char _kram_start __attribute__ ((__weak__));
-extern char _kram_end __attribute__ ((__weak__));
-extern char _init_start, _init_end;
-extern char _bootmap;
-extern char _stext, _etext, _sdata, _edata, _sbss, _ebss;
-/* Many platforms use an embedded root image.  */
-extern char _root_fs_image_start __attribute__ ((__weak__));
-extern char _root_fs_image_end __attribute__ ((__weak__));
-
-
-char __initdata command_line[COMMAND_LINE_SIZE];
-
-/* Memory not used by the kernel.  */
-static unsigned long total_ram_pages;
-
-/* System RAM.  */
-static unsigned long ram_start = 0, ram_len = 0;
-
-
-#define ADDR_TO_PAGE_UP(x)   ((((unsigned long)x) + PAGE_SIZE-1) >> PAGE_SHIFT)
-#define ADDR_TO_PAGE(x)             (((unsigned long)x) >> PAGE_SHIFT)
-#define PAGE_TO_ADDR(x)             (((unsigned long)x) << PAGE_SHIFT)
-
-static void init_mem_alloc (unsigned long ram_start, unsigned long ram_len);
-
-void set_mem_root (void *addr, size_t len, char *cmd_line);
-
-
-void __init setup_arch (char **cmdline)
-{
-       /* Keep a copy of command line */
-       *cmdline = command_line;
-       memcpy (boot_command_line, command_line, COMMAND_LINE_SIZE);
-       boot_command_line[COMMAND_LINE_SIZE - 1] = '\0';
-
-       console_verbose ();
-
-       init_mm.start_code = (unsigned long) &_stext;
-       init_mm.end_code = (unsigned long) &_etext;
-       init_mm.end_data = (unsigned long) &_edata;
-       init_mm.brk = (unsigned long) &_kram_end;
-
-       /* Find out what mem this machine has.  */
-       mach_get_physical_ram (&ram_start, &ram_len);
-       /* ... and tell the kernel about it.  */
-       init_mem_alloc (ram_start, ram_len);
-
-       printk (KERN_INFO "CPU: %s\nPlatform: %s\n",
-               CPU_MODEL_LONG, PLATFORM_LONG);
-
-       /* do machine-specific setups.  */
-       mach_setup (cmdline);
-
-#ifdef CONFIG_MTD
-       if (!ROOT_DEV && &_root_fs_image_end > &_root_fs_image_start)
-               set_mem_root (&_root_fs_image_start,
-                             &_root_fs_image_end - &_root_fs_image_start,
-                             *cmdline);
-#endif
-}
-
-void __init trap_init (void)
-{
-}
-
-#ifdef CONFIG_MTD
-
-/* From drivers/mtd/devices/slram.c */
-#define SLRAM_BLK_SZ 0x4000
-
-/* Set the root filesystem to be the given memory region.
-   Some parameter may be appended to CMD_LINE.  */
-void set_mem_root (void *addr, size_t len, char *cmd_line)
-{
-       /* Some sort of idiocy in MTD means we must supply a length that's
-          a multiple of SLRAM_BLK_SZ.  We just round up the real length,
-          as the file system shouldn't attempt to access anything beyond
-          the end of the image anyway.  */
-       len = (((len - 1) + SLRAM_BLK_SZ) / SLRAM_BLK_SZ) * SLRAM_BLK_SZ;
-
-       /* The only way to pass info to the MTD slram driver is via
-          the command line.  */
-       if (*cmd_line) {
-               cmd_line += strlen (cmd_line);
-               *cmd_line++ = ' ';
-       }
-       sprintf (cmd_line, "slram=root,0x%x,+0x%x", (u32)addr, (u32)len);
-
-       ROOT_DEV = MKDEV (MTD_BLOCK_MAJOR, 0);
-}
-#endif
-
-\f
-static void irq_nop (unsigned irq) { }
-static unsigned irq_zero (unsigned irq) { return 0; }
-
-static void nmi_end (unsigned irq)
-{
-       if (irq != IRQ_NMI (0)) {
-               printk (KERN_CRIT "NMI %d is unrecoverable; restarting...",
-                       irq - IRQ_NMI (0));
-               machine_restart (0);
-       }
-}
-
-static struct hw_interrupt_type nmi_irq_type = {
-       .typename = "NMI",
-       .startup = irq_zero,            /* startup */
-       .shutdown = irq_nop,            /* shutdown */
-       .enable = irq_nop,              /* enable */
-       .disable = irq_nop,             /* disable */
-       .ack = irq_nop,         /* ack */
-       .end = nmi_end,         /* end */
-};
-
-void __init init_IRQ (void)
-{
-       init_irq_handlers (0, NUM_MACH_IRQS, 1, 0);
-       init_irq_handlers (IRQ_NMI (0), NUM_NMIS, 1, &nmi_irq_type);
-       mach_init_irqs ();
-}
-
-\f
-void __init mem_init (void)
-{
-       max_mapnr = MAP_NR (ram_start + ram_len);
-
-       num_physpages = ADDR_TO_PAGE (ram_len);
-
-       total_ram_pages = free_all_bootmem ();
-
-       printk (KERN_INFO
-               "Memory: %luK/%luK available"
-               " (%luK kernel code, %luK data)\n",
-               PAGE_TO_ADDR (nr_free_pages()) / 1024,
-               ram_len / 1024,
-               ((unsigned long)&_etext - (unsigned long)&_stext) / 1024,
-               ((unsigned long)&_ebss - (unsigned long)&_sdata) / 1024);
-}
-
-void free_initmem (void)
-{
-       unsigned long ram_end = ram_start + ram_len;
-       unsigned long start = PAGE_ALIGN ((unsigned long)(&_init_start));
-
-       if (start >= ram_start && start < ram_end) {
-               unsigned long addr;
-               unsigned long end = PAGE_ALIGN ((unsigned long)(&_init_end));
-
-               if (end > ram_end)
-                       end = ram_end;
-
-               printk("Freeing unused kernel memory: %ldK freed\n",
-                      (end - start) / 1024);
-
-               for (addr = start; addr < end; addr += PAGE_SIZE) {
-                       struct page *page = virt_to_page (addr);
-                       ClearPageReserved (page);
-                       init_page_count (page);
-                       __free_page (page);
-                       total_ram_pages++;
-               }
-       }
-}
-
-\f
-/* Initialize the `bootmem allocator'.  RAM_START and RAM_LEN identify
-   what RAM may be used.  */
-static void __init
-init_bootmem_alloc (unsigned long ram_start, unsigned long ram_len)
-{
-       /* The part of the kernel that's in the same managed RAM space
-          used for general allocation.  */
-       unsigned long kram_start = (unsigned long)&_kram_start;
-       unsigned long kram_end = (unsigned long)&_kram_end;
-       /* End of the managed RAM space.  */
-       unsigned long ram_end = ram_start + ram_len;
-       /* Address range of the interrupt vector table.  */
-       unsigned long intv_start = (unsigned long)&_intv_start;
-       unsigned long intv_end = (unsigned long)&_intv_end;
-       /* True if the interrupt vectors are in the managed RAM area.  */
-       int intv_in_ram = (intv_end > ram_start && intv_start < ram_end);
-       /* True if the interrupt vectors are inside the kernel's RAM.  */
-       int intv_in_kram = (intv_end > kram_start && intv_start < kram_end);
-       /* A pointer to an optional function that reserves platform-specific
-          memory regions.  We declare the pointer `volatile' to avoid gcc
-          turning the call into a static call (the problem is that since
-          it's a weak symbol, a static call may end up trying to reference
-          the location 0x0, which is not always reachable).  */
-       void (*volatile mrb) (void) = mach_reserve_bootmem;
-       /* The bootmem allocator's allocation bitmap.  */
-       unsigned long bootmap = (unsigned long)&_bootmap;
-       unsigned long bootmap_len;
-
-       /* Round bootmap location up to next page.  */
-       bootmap = PAGE_TO_ADDR (ADDR_TO_PAGE_UP (bootmap));
-
-       /* Initialize bootmem allocator.  */
-       bootmap_len = init_bootmem_node (NODE_DATA (0),
-                                        ADDR_TO_PAGE (bootmap),
-                                        ADDR_TO_PAGE (PAGE_OFFSET),
-                                        ADDR_TO_PAGE (ram_end));
-
-       /* Now make the RAM actually allocatable (it starts out `reserved'). */
-       free_bootmem (ram_start, ram_len);
-
-       if (kram_end > kram_start)
-               /* Reserve the RAM part of the kernel's address space, so it
-                  doesn't get allocated.  */
-               reserve_bootmem(kram_start, kram_end - kram_start,
-                               BOOTMEM_DEFAULT);
-       
-       if (intv_in_ram && !intv_in_kram)
-               /* Reserve the interrupt vector space.  */
-               reserve_bootmem(intv_start, intv_end - intv_start,
-                               BOOTMEM_DEFAULT);
-
-       if (bootmap >= ram_start && bootmap < ram_end)
-               /* Reserve the bootmap space.  */
-               reserve_bootmem(bootmap, bootmap_len,
-                               BOOTMEM_DEFAULT);
-
-       /* Reserve the memory used by the root filesystem image if it's
-          in RAM.  */
-       if (&_root_fs_image_end > &_root_fs_image_start
-           && (unsigned long)&_root_fs_image_start >= ram_start
-           && (unsigned long)&_root_fs_image_start < ram_end)
-               reserve_bootmem ((unsigned long)&_root_fs_image_start,
-                                &_root_fs_image_end - &_root_fs_image_start,
-                                BOOTMEM_DEFAULT);
-
-       /* Let the platform-dependent code reserve some too.  */
-       if (mrb)
-               (*mrb) ();
-}
-
-/* Tell the kernel about what RAM it may use for memory allocation.  */
-static void __init
-init_mem_alloc (unsigned long ram_start, unsigned long ram_len)
-{
-       unsigned i;
-       unsigned long zones_size[MAX_NR_ZONES];
-
-       init_bootmem_alloc (ram_start, ram_len);
-
-       for (i = 0; i < MAX_NR_ZONES; i++)
-               zones_size[i] = 0;
-
-       /* We stuff all the memory into one area, which includes the
-          initial gap from PAGE_OFFSET to ram_start.  */
-       zones_size[ZONE_DMA]
-               = ADDR_TO_PAGE (ram_len + (ram_start - PAGE_OFFSET));
-
-       /* The allocator is very picky about the address of the first
-          allocatable page -- it must be at least as aligned as the
-          maximum allocation -- so try to detect cases where it will get
-          confused and signal them at compile time (this is a common
-          problem when porting to a new platform with ).  There is a
-          similar runtime check in free_area_init_core.  */
-#if ((PAGE_OFFSET >> PAGE_SHIFT) & ((1UL << (MAX_ORDER - 1)) - 1))
-#error MAX_ORDER is too large for given PAGE_OFFSET (use CONFIG_FORCE_MAX_ZONEORDER to change it)
-#endif
-       NODE_DATA(0)->node_mem_map = NULL;
-       free_area_init_node(0, zones_size, ADDR_TO_PAGE (PAGE_OFFSET), 0);
-}
-
-\f
-
-/* Taken from m68knommu */
-void show_mem(void)
-{
-    unsigned long i;
-    int free = 0, total = 0, reserved = 0, shared = 0;
-    int cached = 0;
-
-    printk(KERN_INFO "\nMem-info:\n");
-    show_free_areas();
-    i = max_mapnr;
-    while (i-- > 0) {
-       total++;
-       if (PageReserved(mem_map+i))
-           reserved++;
-       else if (PageSwapCache(mem_map+i))
-           cached++;
-       else if (!page_count(mem_map+i))
-           free++;
-       else
-           shared += page_count(mem_map+i) - 1;
-    }
-    printk(KERN_INFO "%d pages of RAM\n",total);
-    printk(KERN_INFO "%d free pages\n",free);
-    printk(KERN_INFO "%d reserved pages\n",reserved);
-    printk(KERN_INFO "%d pages shared\n",shared);
-    printk(KERN_INFO "%d pages swap cached\n",cached);
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/signal.c -- Signal handling
- *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
- *  Copyright (C) 1999,2000,2002  Niibe Yutaka & Kaz Kojima
- *  Copyright (C) 1991,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.
- *
- * 1997-11-28  Modified for POSIX.1b signals by Richard Henderson
- *
- * This file was derived from the sh version, arch/sh/kernel/signal.c
- */
-
-#include <linux/mm.h>
-#include <linux/smp.h>
-#include <linux/kernel.h>
-#include <linux/signal.h>
-#include <linux/errno.h>
-#include <linux/wait.h>
-#include <linux/ptrace.h>
-#include <linux/unistd.h>
-#include <linux/stddef.h>
-#include <linux/personality.h>
-#include <linux/tty.h>
-
-#include <asm/ucontext.h>
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-#include <asm/pgalloc.h>
-#include <asm/thread_info.h>
-#include <asm/cacheflush.h>
-
-#define DEBUG_SIG 0
-
-#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
-
-asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset);
-
-/*
- * Atomically swap in the new signal mask, and wait for a signal.
- */
-asmlinkage int
-sys_sigsuspend(old_sigset_t mask, struct pt_regs *regs)
-{
-       sigset_t saveset;
-
-       mask &= _BLOCKABLE;
-       spin_lock_irq(¤t->sighand->siglock);
-       saveset = current->blocked;
-       siginitset(¤t->blocked, mask);
-       recalc_sigpending();
-       spin_unlock_irq(¤t->sighand->siglock);
-
-       regs->gpr[GPR_RVAL] = -EINTR;
-       while (1) {
-               current->state = TASK_INTERRUPTIBLE;
-               schedule();
-               if (do_signal(regs, &saveset))
-                       return -EINTR;
-       }
-}
-
-asmlinkage int
-sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize,
-                 struct pt_regs *regs)
-{
-       sigset_t saveset, newset;
-
-       /* XXX: Don't preclude handling different sized sigset_t's.  */
-       if (sigsetsize != sizeof(sigset_t))
-               return -EINVAL;
-
-       if (copy_from_user(&newset, unewset, sizeof(newset)))
-               return -EFAULT;
-       sigdelsetmask(&newset, ~_BLOCKABLE);
-       spin_lock_irq(¤t->sighand->siglock);
-       saveset = current->blocked;
-       current->blocked = newset;
-       recalc_sigpending();
-       spin_unlock_irq(¤t->sighand->siglock);
-
-       regs->gpr[GPR_RVAL] = -EINTR;
-       while (1) {
-               current->state = TASK_INTERRUPTIBLE;
-               schedule();
-               if (do_signal(regs, &saveset))
-                       return -EINTR;
-       }
-}
-
-asmlinkage int 
-sys_sigaction(int sig, const struct old_sigaction *act,
-             struct old_sigaction *oact)
-{
-       struct k_sigaction new_ka, old_ka;
-       int ret;
-
-       if (act) {
-               old_sigset_t mask;
-               if (!access_ok(VERIFY_READ, act, sizeof(*act)) ||
-                   __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
-                   __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
-                       return -EFAULT;
-               __get_user(new_ka.sa.sa_flags, &act->sa_flags);
-               __get_user(mask, &act->sa_mask);
-               siginitset(&new_ka.sa.sa_mask, mask);
-       }
-
-       ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
-
-       if (!ret && oact) {
-               if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) ||
-                   __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
-                   __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
-                       return -EFAULT;
-               __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
-               __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
-       }
-
-       return ret;
-}
-
-asmlinkage int
-sys_sigaltstack(const stack_t *uss, stack_t *uoss,
-               struct pt_regs *regs)
-{
-       return do_sigaltstack(uss, uoss, regs->gpr[GPR_SP]);
-}
-
-
-/*
- * Do a signal return; undo the signal stack.
- */
-
-struct sigframe
-{
-       struct sigcontext sc;
-       unsigned long extramask[_NSIG_WORDS-1];
-       unsigned long tramp[2]; /* signal trampoline */
-};
-
-struct rt_sigframe
-{
-       struct siginfo info;
-       struct ucontext uc;
-       unsigned long tramp[2]; /* signal trampoline */
-};
-
-static int
-restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc, int *rval_p)
-{
-       unsigned int err = 0;
-
-#define COPY(x)                err |= __get_user(regs->x, &sc->regs.x)
-       COPY(gpr[0]);   COPY(gpr[1]);   COPY(gpr[2]);   COPY(gpr[3]);
-       COPY(gpr[4]);   COPY(gpr[5]);   COPY(gpr[6]);   COPY(gpr[7]);
-       COPY(gpr[8]);   COPY(gpr[9]);   COPY(gpr[10]);  COPY(gpr[11]);
-       COPY(gpr[12]);  COPY(gpr[13]);  COPY(gpr[14]);  COPY(gpr[15]);
-       COPY(gpr[16]);  COPY(gpr[17]);  COPY(gpr[18]);  COPY(gpr[19]);
-       COPY(gpr[20]);  COPY(gpr[21]);  COPY(gpr[22]);  COPY(gpr[23]);
-       COPY(gpr[24]);  COPY(gpr[25]);  COPY(gpr[26]);  COPY(gpr[27]);
-       COPY(gpr[28]);  COPY(gpr[29]);  COPY(gpr[30]);  COPY(gpr[31]);
-       COPY(pc);       COPY(psw);
-       COPY(ctpc);     COPY(ctpsw);    COPY(ctbp);
-#undef COPY
-
-       return err;
-}
-
-asmlinkage int sys_sigreturn(struct pt_regs *regs)
-{
-       struct sigframe *frame = (struct sigframe *)regs->gpr[GPR_SP];
-       sigset_t set;
-       int rval;
-
-       if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-               goto badframe;
-
-       if (__get_user(set.sig[0], &frame->sc.oldmask)
-           || (_NSIG_WORDS > 1
-               && __copy_from_user(&set.sig[1], &frame->extramask,
-                                   sizeof(frame->extramask))))
-               goto badframe;
-
-       sigdelsetmask(&set, ~_BLOCKABLE);
-       spin_lock_irq(¤t->sighand->siglock);
-       current->blocked = set;
-       recalc_sigpending();
-       spin_unlock_irq(¤t->sighand->siglock);
-
-       if (restore_sigcontext(regs, &frame->sc, &rval))
-               goto badframe;
-       return rval;
-
-badframe:
-       force_sig(SIGSEGV, current);
-       return 0;
-}
-
-asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
-{
-       struct rt_sigframe *frame = (struct rt_sigframe *)regs->gpr[GPR_SP];
-       sigset_t set;
-       stack_t st;
-       int rval;
-
-       if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-               goto badframe;
-
-       if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
-               goto badframe;
-
-       sigdelsetmask(&set, ~_BLOCKABLE);
-       spin_lock_irq(¤t->sighand->siglock);
-       current->blocked = set;
-       recalc_sigpending();
-       spin_unlock_irq(¤t->sighand->siglock);
-
-       if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &rval))
-               goto badframe;
-
-       if (__copy_from_user(&st, &frame->uc.uc_stack, sizeof(st)))
-               goto badframe;
-       /* It is more difficult to avoid calling this function than to
-          call it and ignore errors.  */
-       do_sigaltstack(&st, NULL, regs->gpr[GPR_SP]);
-
-       return rval;
-
-badframe:
-       force_sig(SIGSEGV, current);
-       return 0;
-}      
-
-/*
- * Set up a signal frame.
- */
-
-static int
-setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs,
-                unsigned long mask)
-{
-       int err = 0;
-
-#define COPY(x)                err |= __put_user(regs->x, &sc->regs.x)
-       COPY(gpr[0]);   COPY(gpr[1]);   COPY(gpr[2]);   COPY(gpr[3]);
-       COPY(gpr[4]);   COPY(gpr[5]);   COPY(gpr[6]);   COPY(gpr[7]);
-       COPY(gpr[8]);   COPY(gpr[9]);   COPY(gpr[10]);  COPY(gpr[11]);
-       COPY(gpr[12]);  COPY(gpr[13]);  COPY(gpr[14]);  COPY(gpr[15]);
-       COPY(gpr[16]);  COPY(gpr[17]);  COPY(gpr[18]);  COPY(gpr[19]);
-       COPY(gpr[20]);  COPY(gpr[21]);  COPY(gpr[22]);  COPY(gpr[23]);
-       COPY(gpr[24]);  COPY(gpr[25]);  COPY(gpr[26]);  COPY(gpr[27]);
-       COPY(gpr[28]);  COPY(gpr[29]);  COPY(gpr[30]);  COPY(gpr[31]);
-       COPY(pc);       COPY(psw);
-       COPY(ctpc);     COPY(ctpsw);    COPY(ctbp);
-#undef COPY
-
-       err |= __put_user(mask, &sc->oldmask);
-
-       return err;
-}
-
-/*
- * Determine which stack to use..
- */
-static inline void *
-get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size)
-{
-       /* Default to using normal stack */
-       unsigned long sp = regs->gpr[GPR_SP];
-
-       if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp))
-               sp = current->sas_ss_sp + current->sas_ss_size;
-
-       return (void *)((sp - frame_size) & -8UL);
-}
-
-static void setup_frame(int sig, struct k_sigaction *ka,
-                       sigset_t *set, struct pt_regs *regs)
-{
-       struct sigframe *frame;
-       int err = 0;
-       int signal;
-
-       frame = get_sigframe(ka, regs, sizeof(*frame));
-
-       if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
-               goto give_sigsegv;
-
-       signal = current_thread_info()->exec_domain
-               && current_thread_info()->exec_domain->signal_invmap
-               && sig < 32
-               ? current_thread_info()->exec_domain->signal_invmap[sig]
-               : sig;
-
-       err |= setup_sigcontext(&frame->sc, regs, set->sig[0]);
-
-       if (_NSIG_WORDS > 1) {
-               err |= __copy_to_user(frame->extramask, &set->sig[1],
-                                     sizeof(frame->extramask));
-       }
-
-       /* Set up to return from userspace.  If provided, use a stub
-          already in userspace.  */
-       if (ka->sa.sa_flags & SA_RESTORER) {
-               regs->gpr[GPR_LP] = (unsigned long) ka->sa.sa_restorer;
-       } else {
-               /* Note, these encodings are _little endian_!  */
-
-               /* addi  __NR_sigreturn, r0, r12  */
-               err |= __put_user(0x6600 | (__NR_sigreturn << 16),
-                                 frame->tramp + 0);
-               /* trap 0 */
-               err |= __put_user(0x010007e0,
-                                 frame->tramp + 1);
-
-               regs->gpr[GPR_LP] = (unsigned long)frame->tramp;
-
-               flush_cache_sigtramp (regs->gpr[GPR_LP]);
-       }
-
-       if (err)
-               goto give_sigsegv;
-
-       /* Set up registers for signal handler.  */
-       regs->pc = (v850_reg_t) ka->sa.sa_handler;
-       regs->gpr[GPR_SP] = (v850_reg_t)frame;
-       /* Signal handler args:  */
-       regs->gpr[GPR_ARG0] = signal; /* arg 0: signum */
-       regs->gpr[GPR_ARG1] = (v850_reg_t)&frame->sc;/* arg 1: sigcontext */
-
-       set_fs(USER_DS);
-
-#if DEBUG_SIG
-       printk("SIG deliver (%s:%d): sp=%p pc=%08lx ra=%08lx\n",
-               current->comm, current->pid, frame, regs->pc, );
-#endif
-
-       return;
-
-give_sigsegv:
-       force_sigsegv(sig, current);
-}
-
-static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
-                          sigset_t *set, struct pt_regs *regs)
-{
-       struct rt_sigframe *frame;
-       int err = 0;
-       int signal;
-
-       frame = get_sigframe(ka, regs, sizeof(*frame));
-
-       if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
-               goto give_sigsegv;
-
-       signal = current_thread_info()->exec_domain
-               && current_thread_info()->exec_domain->signal_invmap
-               && sig < 32
-               ? current_thread_info()->exec_domain->signal_invmap[sig]
-               : sig;
-
-       err |= copy_siginfo_to_user(&frame->info, info);
-
-       /* Create the ucontext.  */
-       err |= __put_user(0, &frame->uc.uc_flags);
-       err |= __put_user(0, &frame->uc.uc_link);
-       err |= __put_user((void *)current->sas_ss_sp,
-                         &frame->uc.uc_stack.ss_sp);
-       err |= __put_user(sas_ss_flags(regs->gpr[GPR_SP]),
-                         &frame->uc.uc_stack.ss_flags);
-       err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
-       err |= setup_sigcontext(&frame->uc.uc_mcontext,
-                               regs, set->sig[0]);
-       err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
-
-       /* Set up to return from userspace.  If provided, use a stub
-          already in userspace.  */
-       if (ka->sa.sa_flags & SA_RESTORER) {
-               regs->gpr[GPR_LP] = (unsigned long) ka->sa.sa_restorer;
-       } else {
-               /* Note, these encodings are _little endian_!  */
-
-               /* addi  __NR_sigreturn, r0, r12  */
-               err |= __put_user(0x6600 | (__NR_sigreturn << 16),
-                                 frame->tramp + 0);
-               /* trap 0 */
-               err |= __put_user(0x010007e0,
-                                 frame->tramp + 1);
-
-               regs->gpr[GPR_LP] = (unsigned long)frame->tramp;
-
-               flush_cache_sigtramp (regs->gpr[GPR_LP]);
-       }
-
-       if (err)
-               goto give_sigsegv;
-
-       /* Set up registers for signal handler.  */
-       regs->pc = (v850_reg_t) ka->sa.sa_handler;
-       regs->gpr[GPR_SP] = (v850_reg_t)frame;
-       /* Signal handler args:  */
-       regs->gpr[GPR_ARG0] = signal; /* arg 0: signum */
-       regs->gpr[GPR_ARG1] = (v850_reg_t)&frame->info; /* arg 1: siginfo */
-       regs->gpr[GPR_ARG2] = (v850_reg_t)&frame->uc; /* arg 2: ucontext */
-
-       set_fs(USER_DS);
-
-#if DEBUG_SIG
-       printk("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n",
-               current->comm, current->pid, frame, regs->pc, regs->pr);
-#endif
-
-       return;
-
-give_sigsegv:
-       force_sigsegv(sig, current);
-}
-
-/*
- * OK, we're invoking a handler
- */    
-
-static void
-handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
-             sigset_t *oldset, struct pt_regs * regs)
-{
-       /* Are we from a system call? */
-       if (PT_REGS_SYSCALL (regs)) {
-               /* If so, check system call restarting.. */
-               switch (regs->gpr[GPR_RVAL]) {
-               case -ERESTART_RESTARTBLOCK:
-                       current_thread_info()->restart_block.fn =
-                               do_no_restart_syscall;
-                       /* fall through */
-               case -ERESTARTNOHAND:
-                       regs->gpr[GPR_RVAL] = -EINTR;
-                       break;
-
-               case -ERESTARTSYS:
-                       if (!(ka->sa.sa_flags & SA_RESTART)) {
-                               regs->gpr[GPR_RVAL] = -EINTR;
-                               break;
-                       }
-                       /* fallthrough */
-               case -ERESTARTNOINTR:
-                       regs->gpr[12] = PT_REGS_SYSCALL (regs);
-                       regs->pc -= 4; /* Size of `trap 0' insn.  */
-               }
-
-               PT_REGS_SET_SYSCALL (regs, 0);
-       }
-
-       /* Set up the stack frame */
-       if (ka->sa.sa_flags & SA_SIGINFO)
-               setup_rt_frame(sig, ka, info, oldset, regs);
-       else
-               setup_frame(sig, ka, oldset, regs);
-
-       spin_lock_irq(¤t->sighand->siglock);
-       sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask);
-       if (!(ka->sa.sa_flags & SA_NODEFER))
-               sigaddset(¤t->blocked,sig);
-       recalc_sigpending();
-       spin_unlock_irq(¤t->sighand->siglock);
-}
-
-/*
- * Note that 'init' is a special process: it doesn't get signals it doesn't
- * want to handle. Thus you cannot kill init even with a SIGKILL even by
- * mistake.
- *
- * Note that we go through the signals twice: once to check the signals that
- * the kernel can handle, and then we build all the user-level signal handling
- * stack-frames in one go after that.
- */
-int do_signal(struct pt_regs *regs, sigset_t *oldset)
-{
-       siginfo_t info;
-       int signr;
-       struct k_sigaction ka;
-
-       /*
-        * We want the common case to go fast, which
-        * is why we may in certain cases get here from
-        * kernel mode. Just return without doing anything
-        * if so.
-        */
-       if (!user_mode(regs))
-               return 1;
-
-       if (!oldset)
-               oldset = ¤t->blocked;
-
-       signr = get_signal_to_deliver(&info, &ka, regs, NULL);
-       if (signr > 0) {
-               /* Whee!  Actually deliver the signal.  */
-               handle_signal(signr, &info, &ka, oldset, regs);
-               return 1;
-       }
-
-       /* Did we come from a system call? */
-       if (PT_REGS_SYSCALL (regs)) {
-               int rval = (int)regs->gpr[GPR_RVAL];
-               /* Restart the system call - no handlers present */
-               if (rval == -ERESTARTNOHAND
-                   || rval == -ERESTARTSYS
-                   || rval == -ERESTARTNOINTR)
-               {
-                       regs->gpr[12] = PT_REGS_SYSCALL (regs);
-                       regs->pc -= 4; /* Size of `trap 0' insn.  */
-               }
-               else if (rval == -ERESTART_RESTARTBLOCK) {
-                       regs->gpr[12] = __NR_restart_syscall;
-                       regs->pc -= 4; /* Size of `trap 0' insn.  */
-               }
-       }
-       return 0;
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/sim.c -- Machine-specific stuff for GDB v850e simulator
- *
- *  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/module.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/simsyscall.h>
-
-#include "mach.h"
-
-/* The name of a file containing the root filesystem.  */
-#define ROOT_FS "rootfs.image"
-
-extern void simcons_setup (void);
-extern void simcons_poll_ttys (void);
-extern void set_mem_root (void *addr, size_t len, char *cmd_line);
-
-static int read_file (const char *name,
-                     unsigned long *addr, unsigned long *len,
-                     const char **err);
-
-void __init mach_setup (char **cmdline)
-{
-       const char *err;
-       unsigned long root_dev_addr, root_dev_len;
-
-       simcons_setup ();
-
-       printk (KERN_INFO "Reading root filesystem: %s", ROOT_FS);
-
-       if (read_file (ROOT_FS, &root_dev_addr, &root_dev_len, &err)) {
-               printk (" (size %luK)\n", root_dev_len / 1024);
-               set_mem_root ((void *)root_dev_addr, (size_t)root_dev_len,
-                             *cmdline);
-       } else
-               printk ("...%s failed!\n", err);
-}
-
-void mach_get_physical_ram (unsigned long *ram_start, unsigned long *ram_len)
-{
-       *ram_start = RAM_ADDR;
-       *ram_len = RAM_SIZE;
-}
-
-void __init mach_sched_init (struct irqaction *timer_action)
-{
-       /* ...do magic timer initialization?...  */
-       mach_tick = simcons_poll_ttys;
-       setup_irq (0, timer_action);
-}
-
-\f
-static void irq_nop (unsigned irq) { }
-static unsigned irq_zero (unsigned irq) { return 0; }
-
-static struct hw_interrupt_type sim_irq_type = {
-       .typename = "IRQ",
-       .startup = irq_zero,            /* startup */
-       .shutdown = irq_nop,            /* shutdown */
-       .enable = irq_nop,              /* enable */
-       .disable = irq_nop,             /* disable */
-       .ack = irq_nop,         /* ack */
-       .end = irq_nop,         /* end */
-};
-
-void __init mach_init_irqs (void)
-{
-       init_irq_handlers (0, NUM_MACH_IRQS, 1, &sim_irq_type);
-}
-
-\f
-void mach_gettimeofday (struct timespec *tv)
-{
-       long timeval[2], timezone[2];
-       int rval = V850_SIM_SYSCALL (gettimeofday, timeval, timezone);
-       if (rval == 0) {
-               tv->tv_sec = timeval[0];
-               tv->tv_nsec = timeval[1] * 1000;
-       }
-}
-
-void machine_restart (char *__unused)
-{
-       V850_SIM_SYSCALL (write, 1, "RESTART\n", 8);
-       V850_SIM_SYSCALL (exit, 0);
-}
-
-void machine_halt (void)
-{
-       V850_SIM_SYSCALL (write, 1, "HALT\n", 5);
-       V850_SIM_SYSCALL (exit, 0);
-}
-
-void machine_power_off (void)
-{
-       V850_SIM_SYSCALL (write, 1, "POWER OFF\n", 10);
-       V850_SIM_SYSCALL (exit, 0);
-}
-
-\f
-/* Load data from a file called NAME into ram.  The address and length
-   of the data image are returned in ADDR and LEN.  */
-static int __init
-read_file (const char *name,
-          unsigned long *addr, unsigned long *len,
-          const char **err)
-{
-       int rval, fd;
-       unsigned long cur, left;
-       /* Note this is not a normal stat buffer, it's an ad-hoc
-          structure defined by the simulator.  */
-       unsigned long stat_buf[10];
-
-       /* Stat the file to find out the length.  */
-       rval = V850_SIM_SYSCALL (stat, name, stat_buf);
-       if (rval < 0) {
-               if (err) *err = "stat";
-               return 0;
-       }
-       *len = stat_buf[4];
-
-       /* Open the file; `0' is O_RDONLY.  */
-       fd = V850_SIM_SYSCALL (open, name, 0);
-       if (fd < 0) {
-               if (err) *err = "open";
-               return 0;
-       }
-
-       *addr = (unsigned long)alloc_bootmem(*len);
-       if (! *addr) {
-               V850_SIM_SYSCALL (close, fd);
-               if (err) *err = "alloc_bootmem";
-               return 0;
-       }
-
-       cur = *addr;
-       left = *len;
-       while (left > 0) {
-               int chunk = V850_SIM_SYSCALL (read, fd, cur, left);
-               if (chunk <= 0)
-                       break;
-               cur += chunk;
-               left -= chunk;
-       }
-       V850_SIM_SYSCALL (close, fd);
-       if (left > 0) {
-               /* Some read failed.  */
-               free_bootmem (*addr, *len);
-               if (err) *err = "read";
-               return 0;
-       }
-
-       return 1;
-}
 
+++ /dev/null
-/* Linker script for the gdb v850e simulator (CONFIG_V850E_SIM).  */
-
-MEMORY {
-       /* Interrupt vectors.  */
-       INTV  : ORIGIN = 0x0, LENGTH = 0xe0
-       /* Main RAM.  */
-       RAM   : ORIGIN = RAM_ADDR, LENGTH = RAM_SIZE
-}
-
-SECTIONS {
-       .intv : { INTV_CONTENTS } > INTV
-       .ram : { RAMK_KRAM_CONTENTS } > RAM
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/sim85e2.c -- Machine-specific stuff for
- *     V850E2 RTL simulator
- *
- *  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 <asm/atomic.h>
-#include <asm/page.h>
-#include <asm/machdep.h>
-
-#include "mach.h"
-
-
-/* There are 4 possible areas we can use:
-
-     IRAM (1MB) is fast for instruction fetches, but slow for data
-     DRAM (1020KB) is fast for data, but slow for instructions
-     ERAM is cached, so should be fast for both insns and data
-     SDRAM is external DRAM, similar to ERAM
-*/
-
-#define INIT_MEMC_FOR_SDRAM
-#define USE_SDRAM_AREA
-#define KERNEL_IN_SDRAM_AREA
-
-#define DCACHE_MODE    V850E2_CACHE_BTSC_DCM_WT
-/*#define DCACHE_MODE  V850E2_CACHE_BTSC_DCM_WB_ALLOC*/
-
-#ifdef USE_SDRAM_AREA
-#define RAM_START      SDRAM_ADDR
-#define RAM_END                (SDRAM_ADDR + SDRAM_SIZE)
-#else
-/* When we use DRAM, we need to account for the fact that the end of it is
-   used for R0_RAM.  */
-#define RAM_START      DRAM_ADDR
-#define RAM_END                R0_RAM_ADDR
-#endif
-
-
-extern void memcons_setup (void);
-
-
-#ifdef KERNEL_IN_SDRAM_AREA
-#define EARLY_INIT_SECTION_ATTR __attribute__ ((section (".early.text")))
-#else
-#define EARLY_INIT_SECTION_ATTR __init
-#endif
-
-void EARLY_INIT_SECTION_ATTR mach_early_init (void)
-{
-       /* The sim85e2 simulator tracks `undefined' values, so to make
-          debugging easier, we begin by zeroing out all otherwise
-          undefined registers.  This is not strictly necessary.
-
-          The registers we zero are:
-              Every GPR except:
-                  stack-pointer (r3)
-                  task-pointer (r16)
-                  our return addr (r31)
-              Every system register (SPR) that we know about except for
-              the PSW (SPR 5), which we zero except for the
-              disable-interrupts bit.
-       */
-
-       /* GPRs */
-       asm volatile ("             mov r0, r1 ; mov r0, r2              ");
-       asm volatile ("mov r0, r4 ; mov r0, r5 ; mov r0, r6 ; mov r0, r7 ");
-       asm volatile ("mov r0, r8 ; mov r0, r9 ; mov r0, r10; mov r0, r11");
-       asm volatile ("mov r0, r12; mov r0, r13; mov r0, r14; mov r0, r15");
-       asm volatile ("             mov r0, r17; mov r0, r18; mov r0, r19");
-       asm volatile ("mov r0, r20; mov r0, r21; mov r0, r22; mov r0, r23");
-       asm volatile ("mov r0, r24; mov r0, r25; mov r0, r26; mov r0, r27");
-       asm volatile ("mov r0, r28; mov r0, r29; mov r0, r30");
-
-       /* SPRs */
-       asm volatile ("ldsr r0, 0;  ldsr r0, 1;  ldsr r0, 2;  ldsr r0, 3");
-       asm volatile ("ldsr r0, 4");
-       asm volatile ("addi 0x20, r0, r1; ldsr r1, 5"); /* PSW */
-       asm volatile ("ldsr r0, 16; ldsr r0, 17; ldsr r0, 18; ldsr r0, 19");
-       asm volatile ("ldsr r0, 20");
-
-
-#ifdef INIT_MEMC_FOR_SDRAM
-       /* Settings for SDRAM controller.  */
-       V850E2_VSWC   = 0x0042;
-       V850E2_BSC    = 0x9286;
-       V850E2_BCT(0) = 0xb000; /* was: 0 */
-       V850E2_BCT(1) = 0x000b;
-       V850E2_ASC    = 0;
-       V850E2_LBS    = 0xa9aa; /* was: 0xaaaa */
-       V850E2_LBC(0) = 0;
-       V850E2_LBC(1) = 0;      /* was: 0x3 */
-       V850E2_BCC    = 0;
-       V850E2_RFS(4) = 0x800a; /* was: 0xf109 */
-       V850E2_SCR(4) = 0x2091; /* was: 0x20a1 */
-       V850E2_RFS(3) = 0x800c;
-       V850E2_SCR(3) = 0x20a1;
-       V850E2_DWC(0) = 0;
-       V850E2_DWC(1) = 0;
-#endif
-
-#if 0
-#ifdef CONFIG_V850E2_SIM85E2S
-       /* Turn on the caches.  */
-       V850E2_CACHE_BTSC = V850E2_CACHE_BTSC_ICM | DCACHE_MODE;
-       V850E2_BHC  = 0x1010;
-#elif CONFIG_V850E2_SIM85E2C
-       V850E2_CACHE_BTSC |= (V850E2_CACHE_BTSC_ICM | V850E2_CACHE_BTSC_DCM0);
-       V850E2_BUSM_BHC = 0xFFFF;
-#endif
-#else
-       V850E2_BHC  = 0;
-#endif
-
-       /* Don't stop the simulator at `halt' instructions.  */
-       SIM85E2_NOTHAL = 1;
-
-       /* Ensure that the simulator halts on a panic, instead of going
-          into an infinite loop inside the panic function.  */
-       panic_timeout = -1;
-}
-
-void __init mach_setup (char **cmdline)
-{
-       memcons_setup ();
-}
-
-void 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_sched_init (struct irqaction *timer_action)
-{
-       /* The simulator actually cycles through all interrupts
-          periodically.  We just pay attention to IRQ0, which gives us
-          1/64 the rate of the periodic interrupts.  */
-       setup_irq (0, timer_action);
-}
-
-void mach_gettimeofday (struct timespec *tv)
-{
-       tv->tv_sec = 0;
-       tv->tv_nsec = 0;
-}
-\f
-/* Interrupts */
-
-struct v850e_intc_irq_init irq_inits[] = {
-       { "IRQ", 0, NUM_MACH_IRQS, 1, 7 },
-       { 0 }
-};
-struct hw_interrupt_type hw_itypes[1];
-
-/* Initialize interrupts.  */
-void __init mach_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-\f
-
-void machine_halt (void) __attribute__ ((noreturn));
-void machine_halt (void)
-{
-       SIM85E2_SIMFIN = 0;     /* Halt immediately.  */
-       for (;;) {}
-}
-
-void machine_restart (char *__unused)
-{
-       machine_halt ();
-}
-
-void machine_power_off (void)
-{
-       machine_halt ();
-}
-
 
+++ /dev/null
-/* Linker script for the sim85e2c simulator, which is a verilog simulation of
-   the V850E2 NA85E2C cpu core (CONFIG_V850E2_SIM85E2C).  */
-
-MEMORY {
-       /* 1MB of `instruction RAM', starting at 0.
-          Instruction fetches are much faster from IRAM than from DRAM.  */
-       IRAM : ORIGIN = IRAM_ADDR, LENGTH = IRAM_SIZE
-
-       /* 1MB of `data RAM', below and contiguous with the I/O space.
-          Data fetches are much faster from DRAM than from IRAM.  */
-       DRAM : ORIGIN = DRAM_ADDR, LENGTH = DRAM_SIZE
-
-       /* `external ram' (CS1 area), comes after IRAM.  */
-       ERAM : ORIGIN = ERAM_ADDR, LENGTH = ERAM_SIZE
-
-       /* Dynamic RAM; uses memory controller.  */
-       SDRAM : ORIGIN = SDRAM_ADDR, LENGTH = SDRAM_SIZE
-}
-
-SECTIONS {
-       .iram : {
-               INTV_CONTENTS
-               *arch/v850/kernel/head.o
-               *(.early.text)
-       } > IRAM
-       .dram : {
-               _memcons_output = . ;
-               . = . + 0x8000 ;
-               _memcons_output_end = . ;
-       } > DRAM
-       .sdram : {
-               /* We stick console output into a buffer here.  */
-               RAMK_KRAM_CONTENTS
-               ROOT_FS_CONTENTS
-       } > SDRAM
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/simcons.c -- Console I/O for GDB v850e simulator
- *
- *  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/console.h>
-#include <linux/tty.h>
-#include <linux/tty_flip.h>
-#include <linux/tty_driver.h>
-#include <linux/init.h>
-
-#include <asm/poll.h>
-#include <asm/string.h>
-#include <asm/simsyscall.h>
-
-\f
-/*  Low-level console. */
-
-static void simcons_write (struct console *co, const char *buf, unsigned len)
-{
-       V850_SIM_SYSCALL (write, 1, buf, len);
-}
-
-static int simcons_read (struct console *co, char *buf, unsigned len)
-{
-       return V850_SIM_SYSCALL (read, 0, buf, len);
-}
-
-static struct tty_driver *tty_driver;
-static struct tty_driver *simcons_device (struct console *c, int *index)
-{
-       *index = c->index;
-       return tty_driver;
-}
-
-static struct console simcons =
-{
-    .name      = "simcons",
-    .write     = simcons_write,
-    .read      = simcons_read,
-    .device    = simcons_device,
-    .flags     = CON_PRINTBUFFER,
-    .index     = -1,
-};
-\f
-/* Higher level TTY interface.  */
-
-int simcons_tty_open (struct tty_struct *tty, struct file *filp)
-{
-       return 0;
-}
-
-int simcons_tty_write (struct tty_struct *tty,
-                      const unsigned char *buf, int count)
-{
-       return V850_SIM_SYSCALL (write, 1, buf, count);
-}
-
-int simcons_tty_write_room (struct tty_struct *tty)
-{
-       /* Completely arbitrary.  */
-       return 0x100000;
-}
-
-int simcons_tty_chars_in_buffer (struct tty_struct *tty)
-{
-       /* We have no buffer.  */
-       return 0;
-}
-
-static const struct tty_operations ops = {
-       .open = simcons_tty_open,
-       .write = simcons_tty_write,
-       .write_room = simcons_tty_write_room,
-       .chars_in_buffer = simcons_tty_chars_in_buffer,
-};
-
-int __init simcons_tty_init (void)
-{
-       struct tty_driver *driver = alloc_tty_driver(1);
-       int err;
-       if (!driver)
-               return -ENOMEM;
-       driver->name = "simcons";
-       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;
-}
-/* We use `late_initcall' instead of just `__initcall' as a workaround for
-   the fact that (1) simcons_tty_init can't be called before tty_init,
-   (2) tty_init is called via `module_init', (3) if statically linked,
-   module_init == device_init, and (4) there's no ordering of init lists.
-   We can do this easily because simcons is always statically linked, but
-   other tty drivers that depend on tty_init and which must use
-   `module_init' to declare their init routines are likely to be broken.  */
-late_initcall(simcons_tty_init);
-\f
-/* Poll for input on the console, and if there's any, deliver it to the
-   tty driver.  */
-void simcons_poll_tty (struct tty_struct *tty)
-{
-       char buf[32];   /* Not the nicest way to do it but I need it correct first */
-       int flip = 0, send_break = 0;
-       struct pollfd pfd;
-       pfd.fd = 0;
-       pfd.events = POLLIN;
-
-       if (V850_SIM_SYSCALL (poll, &pfd, 1, 0) > 0) {
-               if (pfd.revents & POLLIN) {
-                       /* Real block hardware knows the transfer size before
-                          transfer so the new tty buffering doesn't try to handle
-                          this rather weird simulator specific case well */
-                       int rd = V850_SIM_SYSCALL (read, 0, buf, 32);
-                       if (rd > 0) {
-                               tty_insert_flip_string(tty, buf, rd);
-                               flip = 1;
-                       } else
-                               send_break = 1;
-               } else if (pfd.revents & POLLERR)
-                       send_break = 1;
-       }
-
-       if (send_break) {
-               tty_insert_flip_char (tty, 0, TTY_BREAK);               
-               flip = 1;
-       }
-
-       if (flip)
-               tty_schedule_flip (tty);
-}
-
-void simcons_poll_ttys (void)
-{
-       if (tty_driver && tty_driver->ttys[0])
-               simcons_poll_tty (tty_driver->ttys[0]);
-}
-\f
-void simcons_setup (void)
-{
-       V850_SIM_SYSCALL (make_raw, 0);
-       register_console (&simcons);
-       printk (KERN_INFO "Console: GDB V850E simulator stdio\n");
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/syscalls.c -- Various system-call definitions not
- *     defined in machine-independent code
- *
- *  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.
- *
- * This file was derived the ppc version, arch/ppc/kernel/syscalls.c
- * ... which was derived from "arch/i386/kernel/sys_i386.c" by Gary Thomas;
- *     modified by Cort Dougan (cort@cs.nmt.edu)
- *     and Paul Mackerras (paulus@cs.anu.edu.au).
- */
-
-#include <linux/errno.h>
-#include <linux/mm.h>
-#include <linux/smp.h>
-#include <linux/syscalls.h>
-#include <linux/sem.h>
-#include <linux/msg.h>
-#include <linux/shm.h>
-#include <linux/stat.h>
-#include <linux/mman.h>
-#include <linux/sys.h>
-#include <linux/ipc.h>
-#include <linux/utsname.h>
-#include <linux/file.h>
-
-#include <asm/uaccess.h>
-#include <asm/unistd.h>
-
-/*
- * sys_ipc() is the de-multiplexer for the SysV IPC calls..
- *
- * This is really horribly ugly.
- */
-int
-sys_ipc (uint call, int first, int second, int third, void *ptr, long fifth)
-{
-       int version, ret;
-
-       version = call >> 16; /* hack for backward compatibility */
-       call &= 0xffff;
-
-       ret = -EINVAL;
-       switch (call) {
-       case SEMOP:
-               ret = sys_semop (first, (struct sembuf *)ptr, second);
-               break;
-       case SEMGET:
-               ret = sys_semget (first, second, third);
-               break;
-       case SEMCTL:
-       {
-               union semun fourth;
-
-               if (!ptr)
-                       break;
-               if ((ret = access_ok(VERIFY_READ, ptr, sizeof(long)) ? 0 : -EFAULT)
-                   || (ret = get_user(fourth.__pad, (void **)ptr)))
-                       break;
-               ret = sys_semctl (first, second, third, fourth);
-               break;
-       }
-       case MSGSND:
-               ret = sys_msgsnd (first, (struct msgbuf *) ptr, second, third);
-               break;
-       case MSGRCV:
-               switch (version) {
-               case 0: {
-                       struct ipc_kludge tmp;
-
-                       if (!ptr)
-                               break;
-                       if ((ret = access_ok(VERIFY_READ, ptr, sizeof(tmp)) ? 0 : -EFAULT)
-                           || (ret = copy_from_user(&tmp,
-                                               (struct ipc_kludge *) ptr,
-                                               sizeof (tmp))))
-                               break;
-                       ret = sys_msgrcv (first, tmp.msgp, second, tmp.msgtyp,
-                                         third);
-                       break;
-                       }
-               default:
-                       ret = sys_msgrcv (first, (struct msgbuf *) ptr,
-                                         second, fifth, third);
-                       break;
-               }
-               break;
-       case MSGGET:
-               ret = sys_msgget ((key_t) first, second);
-               break;
-       case MSGCTL:
-               ret = sys_msgctl (first, second, (struct msqid_ds *) ptr);
-               break;
-       case SHMAT:
-               switch (version) {
-               default: {
-                       ulong raddr;
-
-                       if ((ret = access_ok(VERIFY_WRITE, (ulong*) third,
-                                              sizeof(ulong)) ? 0 : -EFAULT))
-                               break;
-                       ret = do_shmat (first, (char *) ptr, second, &raddr);
-                       if (ret)
-                               break;
-                       ret = put_user (raddr, (ulong *) third);
-                       break;
-                       }
-               case 1: /* iBCS2 emulator entry point */
-                       if (!segment_eq(get_fs(), get_ds()))
-                               break;
-                       ret = do_shmat (first, (char *) ptr, second,
-                                        (ulong *) third);
-                       break;
-               }
-               break;
-       case SHMDT: 
-               ret = sys_shmdt ((char *)ptr);
-               break;
-       case SHMGET:
-               ret = sys_shmget (first, second, third);
-               break;
-       case SHMCTL:
-               ret = sys_shmctl (first, second, (struct shmid_ds *) ptr);
-               break;
-       }
-
-       return ret;
-}
-
-static inline unsigned long
-do_mmap2 (unsigned long addr, size_t len,
-        unsigned long prot, unsigned long flags,
-        unsigned long fd, unsigned long pgoff)
-{
-       struct file * file = NULL;
-       int ret = -EBADF;
-
-       flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
-       if (! (flags & MAP_ANONYMOUS)) {
-               if (!(file = fget (fd)))
-                       goto out;
-       }
-       
-       down_write (¤t->mm->mmap_sem);
-       ret = do_mmap_pgoff (file, addr, len, prot, flags, pgoff);
-       up_write (¤t->mm->mmap_sem);
-       if (file)
-               fput (file);
-out:
-       return ret;
-}
-
-unsigned long sys_mmap2 (unsigned long addr, size_t len,
-                       unsigned long prot, unsigned long flags,
-                       unsigned long fd, unsigned long pgoff)
-{
-       return do_mmap2 (addr, len, prot, flags, fd, pgoff);
-}
-
-unsigned long sys_mmap (unsigned long addr, size_t len,
-                      unsigned long prot, unsigned long flags,
-                      unsigned long fd, off_t offset)
-{
-       int err = -EINVAL;
-
-       if (offset & ~PAGE_MASK)
-               goto out;
-
-       err = do_mmap2 (addr, len, prot, flags, fd, offset >> PAGE_SHIFT);
-out:
-       return err;
-}
-
-/*
- * Do a system call from kernel instead of calling sys_execve so we
- * end up with proper pt_regs.
- */
-int kernel_execve(const char *filename, char *const argv[], char *const envp[])
-{
-       register char *__a __asm__ ("r6") = filename;
-       register void *__b __asm__ ("r7") = argv;
-       register void *__c __asm__ ("r8") = envp;
-       register unsigned long __syscall __asm__ ("r12") = __NR_execve;
-       register unsigned long __ret __asm__ ("r10");
-       __asm__ __volatile__ ("trap 0"
-                       : "=r" (__ret), "=r" (__syscall)
-                       : "1" (__syscall), "r" (__a), "r" (__b), "r" (__c)
-                       : "r1", "r5", "r11", "r13", "r14",
-                         "r15", "r16", "r17", "r18", "r19");
-       return __ret;
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/teg.c -- NB85E-TEG cpu chip
- *
- *  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)
-{
-       /* Select timer interrupt instead of external pin.  */
-       TEG_ISS |= 0x1;
-       /* 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 },
-       { "CMD", IRQ_INTCMD(0), IRQ_INTCMD_NUM, 1, 5 },
-       { "SER", IRQ_INTSER(0), IRQ_INTSER_NUM, 1, 3 },
-       { "SR",  IRQ_INTSR(0),  IRQ_INTSR_NUM,  1, 4 },
-       { "ST",  IRQ_INTST(0),  IRQ_INTST_NUM,  1, 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 teg_init_irqs (void)
-{
-       v850e_intc_init_irq_types (irq_inits, hw_itypes);
-}
-
-/* Called before configuring an on-chip UART.  */
-void teg_uart_pre_configure (unsigned chan, unsigned cflags, unsigned baud)
-{
-       /* Enable UART I/O pins instead of external interrupt pins, and
-          UART interrupts instead of external pin interrupts.  */
-       TEG_ISS |= 0x4E;
-}
 
+++ /dev/null
-/*
- * linux/arch/v850/kernel/time.c -- Arch-dependent timer functions
- *
- *  Copyright (C) 1991, 1992, 1995, 2001, 2002  Linus Torvalds
- *
- * This file contains the v850-specific time handling details.
- * Most of the stuff is located in the machine specific files.
- *
- * 1997-09-10  Updated NTP code according to technical memorandum Jan '96
- *             "A Kernel Model for Precision Timekeeping" by Dave Mills
- */
-
-#include <linux/errno.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/param.h>
-#include <linux/string.h>
-#include <linux/mm.h>
-#include <linux/interrupt.h>
-#include <linux/time.h>
-#include <linux/timex.h>
-#include <linux/profile.h>
-
-#include <asm/io.h>
-
-#include "mach.h"
-
-#define TICK_SIZE      (tick_nsec / 1000)
-
-/*
- * timer_interrupt() needs to keep up the real-time clock,
- * as well as call the "do_timer()" routine every clocktick
- */
-static irqreturn_t timer_interrupt (int irq, void *dummy, struct pt_regs *regs)
-{
-#if 0
-       /* last time the cmos clock got updated */
-       static long last_rtc_update=0;
-#endif
-
-       /* may need to kick the hardware timer */
-       if (mach_tick)
-         mach_tick ();
-
-       do_timer (1);
-#ifndef CONFIG_SMP
-       update_process_times(user_mode(regs));
-#endif
-       profile_tick(CPU_PROFILING, regs);
-#if 0
-       /*
-        * If we have an externally synchronized Linux clock, then update
-        * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
-        * called as close as possible to 500 ms before the new second starts.
-        */
-       if (ntp_synced() &&
-           xtime.tv_sec > last_rtc_update + 660 &&
-           (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
-           (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {
-         if (set_rtc_mmss (xtime.tv_sec) == 0)
-           last_rtc_update = xtime.tv_sec;
-         else
-           last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */
-       }
-#ifdef CONFIG_HEARTBEAT
-       /* use power LED as a heartbeat instead -- much more useful
-          for debugging -- based on the version for PReP by Cort */
-       /* acts like an actual heart beat -- ie thump-thump-pause... */
-       if (mach_heartbeat) {
-           static unsigned cnt = 0, period = 0, dist = 0;
-
-           if (cnt == 0 || cnt == dist)
-               mach_heartbeat ( 1 );
-           else if (cnt == 7 || cnt == dist+7)
-               mach_heartbeat ( 0 );
-
-           if (++cnt > period) {
-               cnt = 0;
-               /* The hyperbolic function below modifies the heartbeat period
-                * length in dependency of the current (5min) load. It goes
-                * through the points f(0)=126, f(1)=86, f(5)=51,
-                * f(inf)->30. */
-               period = ((672<<FSHIFT)/(5*avenrun[0]+(7<<FSHIFT))) + 30;
-               dist = period / 4;
-           }
-       }
-#endif /* CONFIG_HEARTBEAT */
-#endif /* 0 */
-
-       return IRQ_HANDLED;
-}
-
-static int timer_dev_id;
-static struct irqaction timer_irqaction = {
-       .handler = timer_interrupt,
-       .flags = IRQF_DISABLED,
-       .mask = CPU_MASK_NONE,
-       .name = "timer",
-       .dev_id = &timer_dev_id,
-};
-
-void time_init (void)
-{
-       mach_gettimeofday (&xtime);
-       mach_sched_init (&timer_irqaction);
-}
 
+++ /dev/null
-#include <linux/module.h>
-#include <linux/linkage.h>
-#include <linux/sched.h>
-#include <linux/string.h>
-#include <linux/mm.h>
-#include <linux/user.h>
-#include <linux/elfcore.h>
-#include <linux/in6.h>
-#include <linux/interrupt.h>
-
-#include <asm/pgalloc.h>
-#include <asm/irq.h>
-#include <asm/io.h>
-#include <asm/checksum.h>
-#include <asm/current.h>
-
-
-extern void *trap_table;
-EXPORT_SYMBOL (trap_table);
-
-/* platform dependent support */
-EXPORT_SYMBOL (kernel_thread);
-EXPORT_SYMBOL (__bug);
-
-/* Networking helper routines. */
-EXPORT_SYMBOL (csum_partial_copy_nocheck);
-EXPORT_SYMBOL (csum_partial_copy_from_user);
-EXPORT_SYMBOL (ip_compute_csum);
-EXPORT_SYMBOL (ip_fast_csum);
-
-/* string / mem functions */
-EXPORT_SYMBOL (memset);
-EXPORT_SYMBOL (memcpy);
-EXPORT_SYMBOL (memmove);
-
-/*
- * libgcc functions - functions that are used internally by the
- * compiler...  (prototypes are not correct though, but that
- * doesn't really matter since they're not versioned).
- */
-extern void __ashldi3 (void);
-extern void __ashrdi3 (void);
-extern void __lshrdi3 (void);
-extern void __muldi3 (void);
-extern void __negdi2 (void);
-
-EXPORT_SYMBOL (__ashldi3);
-EXPORT_SYMBOL (__ashrdi3);
-EXPORT_SYMBOL (__lshrdi3);
-EXPORT_SYMBOL (__muldi3);
-EXPORT_SYMBOL (__negdi2);
 
+++ /dev/null
-/*
- * arch/v850/kernel/v850e2_cache.c -- Cache control for V850E2 cache
- *     memories
- *
- *  Copyright (C) 2003  NEC Electronics 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/mm.h>
-
-#include <asm/v850e2_cache.h>
-
-/* Cache operations we can do.  The encoding corresponds directly to the
-   value we need to write into the COPR register.  */
-enum cache_op {
-       OP_SYNC_IF_DIRTY           = V850E2_CACHE_COPR_CFC(0), /* 000 */
-       OP_SYNC_IF_VALID           = V850E2_CACHE_COPR_CFC(1), /* 001 */
-       OP_SYNC_IF_VALID_AND_CLEAR = V850E2_CACHE_COPR_CFC(3), /* 011 */
-       OP_WAY_CLEAR               = V850E2_CACHE_COPR_CFC(4), /* 100 */
-       OP_FILL                    = V850E2_CACHE_COPR_CFC(5), /* 101 */
-       OP_CLEAR                   = V850E2_CACHE_COPR_CFC(6), /* 110 */
-       OP_CREATE_DIRTY            = V850E2_CACHE_COPR_CFC(7)  /* 111 */
-};
-
-/* Which cache to use.  This encoding also corresponds directly to the
-   value we need to write into the COPR register. */
-enum cache {
-       ICACHE = 0,
-       DCACHE = V850E2_CACHE_COPR_LBSL
-};
-
-/* Returns ADDR rounded down to the beginning of its cache-line.  */
-#define CACHE_LINE_ADDR(addr)  \
-   ((addr) & ~(V850E2_CACHE_LINE_SIZE - 1))
-/* Returns END_ADDR rounded up to the `limit' of its cache-line.  */
-#define CACHE_LINE_END_ADDR(end_addr)  \
-   CACHE_LINE_ADDR(end_addr + (V850E2_CACHE_LINE_SIZE - 1))
-
-\f
-/* Low-level cache ops.  */
-
-/* Apply cache-op OP to all entries in CACHE.  */
-static inline void cache_op_all (enum cache_op op, enum cache cache)
-{
-       int cmd = op | cache | V850E2_CACHE_COPR_WSLE | V850E2_CACHE_COPR_STRT;
-
-       if (op != OP_WAY_CLEAR) {
-               /* The WAY_CLEAR operation does the whole way, but other
-                  ops take begin-index and count params; we just indicate
-                  the entire cache.  */
-               V850E2_CACHE_CADL = 0;
-               V850E2_CACHE_CADH = 0;
-               V850E2_CACHE_CCNT = V850E2_CACHE_WAY_SIZE - 1;
-       }
-
-       V850E2_CACHE_COPR = cmd | V850E2_CACHE_COPR_WSL(0); /* way 0 */
-       V850E2_CACHE_COPR = cmd | V850E2_CACHE_COPR_WSL(1); /* way 1 */
-       V850E2_CACHE_COPR = cmd | V850E2_CACHE_COPR_WSL(2); /* way 2 */
-       V850E2_CACHE_COPR = cmd | V850E2_CACHE_COPR_WSL(3); /* way 3 */
-}
-
-/* Apply cache-op OP to all entries in CACHE covering addresses ADDR
-   through ADDR+LEN.  */
-static inline void cache_op_range (enum cache_op op, u32 addr, u32 len,
-                                  enum cache cache)
-{
-       u32 start = CACHE_LINE_ADDR (addr);
-       u32 end = CACHE_LINE_END_ADDR (addr + len);
-       u32 num_lines = (end - start) >> V850E2_CACHE_LINE_SIZE_BITS;
-
-       V850E2_CACHE_CADL = start & 0xFFFF;
-       V850E2_CACHE_CADH = start >> 16;
-       V850E2_CACHE_CCNT = num_lines - 1;
-
-       V850E2_CACHE_COPR = op | cache | V850E2_CACHE_COPR_STRT;
-}
-
-\f
-/* High-level ops.  */
-
-static void cache_exec_after_store_all (void)
-{
-       cache_op_all (OP_SYNC_IF_DIRTY, DCACHE);
-       cache_op_all (OP_WAY_CLEAR, ICACHE);
-}
-
-static void cache_exec_after_store_range (u32 start, u32 len)
-{
-       cache_op_range (OP_SYNC_IF_DIRTY, start, len, DCACHE);
-       cache_op_range (OP_CLEAR, start, len, ICACHE);
-}
-
-\f
-/* Exported functions.  */
-
-void flush_icache (void)
-{
-       cache_exec_after_store_all ();
-}
-
-void flush_icache_range (unsigned long start, unsigned long end)
-{
-       cache_exec_after_store_range (start, end - start);
-}
-
-void flush_icache_page (struct vm_area_struct *vma, struct page *page)
-{
-       cache_exec_after_store_range (page_to_virt (page), PAGE_SIZE);
-}
-
-void flush_icache_user_range (struct vm_area_struct *vma, struct page *page,
-                             unsigned long addr, int len)
-{
-       cache_exec_after_store_range (addr, len);
-}
-
-void flush_cache_sigtramp (unsigned long addr)
-{
-       /* For the exact size, see signal.c, but 16 bytes should be enough.  */
-       cache_exec_after_store_range (addr, 16);
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/v850e_cache.c -- Cache control for V850E cache memories
- *
- *  Copyright (C) 2003  NEC Electronics 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>
- */
-
-/* This file implements cache control for the rather simple cache used on
-   some V850E CPUs, specifically the NB85E/TEG CPU-core and the V850E/ME2
-   CPU.  V850E2 processors have their own (better) cache
-   implementation.  */
-
-#include <asm/entry.h>
-#include <asm/cacheflush.h>
-#include <asm/v850e_cache.h>
-
-#define WAIT_UNTIL_CLEAR(value) while (value) {}
-
-/* Set caching params via the BHC and DCC registers.  */
-void v850e_cache_enable (u16 bhc, u16 icc, u16 dcc)
-{
-       unsigned long *r0_ram = (unsigned long *)R0_RAM_ADDR;
-       register u16 bhc_val asm ("r6") = bhc;
-
-       /* Read the instruction cache control register (ICC) and confirm
-          that bits 0 and 1 (TCLR0, TCLR1) are all cleared.  */
-       WAIT_UNTIL_CLEAR (V850E_CACHE_ICC & 0x3);
-       V850E_CACHE_ICC = icc;
-
-#ifdef V850E_CACHE_DCC
-       /* Configure data-cache.  */
-       V850E_CACHE_DCC = dcc;
-#endif /* V850E_CACHE_DCC */
-
-       /* Configure caching for various memory regions by writing the BHC
-          register.  The documentation says that an instruction _cannot_
-          enable/disable caching for the memory region in which the
-          instruction itself exists; to work around this, we store
-          appropriate instructions into the on-chip RAM area (which is never
-          cached), and briefly jump there to do the work.  */
-#ifdef V850E_CACHE_WRITE_IBS
-       *r0_ram++       = 0xf0720760;   /* st.h r0, 0xfffff072[r0] */
-#endif
-       *r0_ram++       = 0xf06a3760;   /* st.h r6, 0xfffff06a[r0] */
-       *r0_ram         = 0x5640006b;   /* jmp [r11] */
-
-       asm ("mov hilo(1f), r11; jmp [%1]; 1:;"
-            :: "r" (bhc_val), "r" (R0_RAM_ADDR) : "r11");
-}
-
-static void clear_icache (void)
-{
-       /* 1. Read the instruction cache control register (ICC) and confirm
-             that bits 0 and 1 (TCLR0, TCLR1) are all cleared.  */
-       WAIT_UNTIL_CLEAR (V850E_CACHE_ICC & 0x3);
-
-       /* 2. Read the ICC register and confirm that bit 12 (LOCK0) is
-             cleared.  Bit 13 of the ICC register is always cleared.  */
-       WAIT_UNTIL_CLEAR (V850E_CACHE_ICC & 0x1000);
-
-       /* 3. Set the TCLR0 and TCLR1 bits of the ICC register as follows,
-             when clearing way 0 and way 1 at the same time:
-               (a) Set the TCLR0 and TCLR1 bits.
-               (b) Read the TCLR0 and TCLR1 bits to confirm that these bits
-                   are cleared.
-               (c) Perform (a) and (b) above again.  */
-       V850E_CACHE_ICC |= 0x3;
-       WAIT_UNTIL_CLEAR (V850E_CACHE_ICC & 0x3);
-
-#ifdef V850E_CACHE_REPEAT_ICC_WRITE
-       /* Do it again.  */
-       V850E_CACHE_ICC |= 0x3;
-       WAIT_UNTIL_CLEAR (V850E_CACHE_ICC & 0x3);
-#endif
-}
-
-#ifdef V850E_CACHE_DCC
-/* Flush or clear (or both) the data cache, depending on the value of FLAGS;
-   the procedure is the same for both, just the control bits used differ (and
-   both may be performed simultaneously).  */
-static void dcache_op (unsigned short flags)
-{
-       /* 1. Read the data cache control register (DCC) and confirm that bits
-             0, 1, 4, and 5 (DC00, DC01, DC04, DC05) are all cleared.  */
-       WAIT_UNTIL_CLEAR (V850E_CACHE_DCC & 0x33);
-
-       /* 2. Clear DCC register bit 12 (DC12), bit 13 (DC13), or both
-             depending on the way for which tags are to be cleared.  */
-       V850E_CACHE_DCC &= ~0xC000;
-
-       /* 3. Set DCC register bit 0 (DC00), bit 1 (DC01) or both depending on
-             the way for which tags are to be cleared.
-             ...
-             Set DCC register bit 4 (DC04), bit 5 (DC05), or both depending
-             on the way to be data flushed.  */
-       V850E_CACHE_DCC |= flags;
-
-       /* 4. Read DCC register bit DC00, DC01 [DC04, DC05], or both depending
-             on the way for which tags were cleared [flushed] and confirm
-             that that bit is cleared.  */
-       WAIT_UNTIL_CLEAR (V850E_CACHE_DCC & flags);
-}
-#endif /* V850E_CACHE_DCC */
-
-/* Flushes the contents of the dcache to memory.  */
-static inline void flush_dcache (void)
-{
-#ifdef V850E_CACHE_DCC
-       /* We only need to do something if in write-back mode.  */
-       if (V850E_CACHE_DCC & 0x0400)
-               dcache_op (0x30);
-#endif /* V850E_CACHE_DCC */
-}
-
-/* Flushes the contents of the dcache to memory, and then clears it.  */
-static inline void clear_dcache (void)
-{
-#ifdef V850E_CACHE_DCC
-       /* We only need to do something if the dcache is enabled.  */
-       if (V850E_CACHE_DCC & 0x0C00)
-               dcache_op (0x33);
-#endif /* V850E_CACHE_DCC */
-}
-
-/* Clears the dcache without flushing to memory first.  */
-static inline void clear_dcache_no_flush (void)
-{
-#ifdef V850E_CACHE_DCC
-       /* We only need to do something if the dcache is enabled.  */
-       if (V850E_CACHE_DCC & 0x0C00)
-               dcache_op (0x3);
-#endif /* V850E_CACHE_DCC */
-}
-
-static inline void cache_exec_after_store (void)
-{
-       flush_dcache ();
-       clear_icache ();
-}
-
-\f
-/* Exported functions.  */
-
-void flush_icache (void)
-{
-       cache_exec_after_store ();
-}
-
-void flush_icache_range (unsigned long start, unsigned long end)
-{
-       cache_exec_after_store ();
-}
-
-void flush_icache_page (struct vm_area_struct *vma, struct page *page)
-{
-       cache_exec_after_store ();
-}
-
-void flush_icache_user_range (struct vm_area_struct *vma, struct page *page,
-                             unsigned long adr, int len)
-{
-       cache_exec_after_store ();
-}
-
-void flush_cache_sigtramp (unsigned long addr)
-{
-       cache_exec_after_store ();
-}
 
+++ /dev/null
-/*
- * arch/v850/kernel/v850e_intc.c -- V850E interrupt controller (INTC)
- *
- *  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/irq.h>
-
-#include <asm/v850e_intc.h>
-
-static void irq_nop (unsigned irq) { }
-
-static unsigned v850e_intc_irq_startup (unsigned irq)
-{
-       v850e_intc_clear_pending_irq (irq);
-       v850e_intc_enable_irq (irq);
-       return 0;
-}
-
-static void v850e_intc_end_irq (unsigned irq)
-{
-       unsigned long psw, temp;
-
-       /* Clear the highest-level bit in the In-service priority register
-          (ISPR), to allow this interrupt (or another of the same or
-          lesser priority) to happen again.
-
-          The `reti' instruction normally does this automatically when the
-          PSW bits EP and NP are zero, but we can't always rely on reti
-          being used consistently to return after an interrupt (another
-          process can be scheduled, for instance, which can delay the
-          associated reti for a long time, or this process may be being
-          single-stepped, which uses the `dbret' instruction to return
-          from the kernel).
-
-          We also set the PSW EP bit, which prevents reti from also
-          trying to modify the ISPR itself.  */
-
-       /* Get PSW and disable interrupts.  */
-       asm volatile ("stsr psw, %0; di" : "=r" (psw));
-       /* We don't want to do anything for NMIs (they don't use the ISPR).  */
-       if (! (psw & 0xC0)) {
-               /* Transition to `trap' state, so that an eventual real
-                  reti instruction won't modify the ISPR.  */
-               psw |= 0x40;
-               /* Fake an interrupt return, which automatically clears the
-                  appropriate bit in the ISPR.  */
-               asm volatile ("mov hilo(1f), %0;"
-                             "ldsr %0, eipc; ldsr %1, eipsw;"
-                             "reti;"
-                             "1:"
-                             : "=&r" (temp) : "r" (psw));
-       }
-}
-
-/* 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 v850e_intc_init_irq_types (struct v850e_intc_irq_init *inits,
-                                      struct hw_interrupt_type *hw_irq_types)
-{
-       struct v850e_intc_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  = v850e_intc_irq_startup;
-               hwit->shutdown = v850e_intc_disable_irq;
-               hwit->enable   = v850e_intc_enable_irq;
-               hwit->disable  = v850e_intc_disable_irq;
-               hwit->ack      = irq_nop;
-               hwit->end      = v850e_intc_end_irq;
-               
-               /* 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 irq = init->base + i * init->interval;
-
-                       /* If the interrupt is currently enabled (all
-                          interrupts are initially disabled), then
-                          assume whoever enabled it has set things up
-                          properly, and avoid messing with it.  */
-                       if (! v850e_intc_irq_enabled (irq))
-                               /* This write also (1) disables the
-                                  interrupt, and (2) clears any pending
-                                  interrupts.  */
-                               V850E_INTC_IC (irq)
-                                       = (V850E_INTC_IC_PR (init->priority)
-                                          | V850E_INTC_IC_MK);
-               }
-       }
-}
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_timer_d.c -- `Timer D' component often used
- *     with V850E CPUs
- *
- *  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 <asm/v850e_utils.h>
-#include <asm/v850e_timer_d.h>
-
-/* Start interval timer TIMER (0-3).  The timer will issue the
-   corresponding INTCMD interrupt RATE times per second.
-   This function does not enable the interrupt.  */
-void v850e_timer_d_configure (unsigned timer, unsigned rate)
-{
-       unsigned divlog2, count;
-
-       /* Calculate params for timer.  */
-       if (! calc_counter_params (
-                   V850E_TIMER_D_BASE_FREQ, rate,
-                   V850E_TIMER_D_TMCD_CS_MIN, V850E_TIMER_D_TMCD_CS_MAX, 16,
-                   &divlog2, &count))
-               printk (KERN_WARNING
-                       "Cannot find interval timer %d setting suitable"
-                       " for rate of %dHz.\n"
-                       "Using rate of %dHz instead.\n",
-                       timer, rate,
-                       (V850E_TIMER_D_BASE_FREQ >> divlog2) >> 16);
-
-       /* Do the actual hardware timer initialization:  */
-
-       /* Enable timer.  */
-       V850E_TIMER_D_TMCD(timer) = V850E_TIMER_D_TMCD_CAE;
-       /* Set clock divider.  */
-       V850E_TIMER_D_TMCD(timer)
-               = V850E_TIMER_D_TMCD_CAE
-               | V850E_TIMER_D_TMCD_CS(divlog2);
-       /* Set timer compare register.  */
-       V850E_TIMER_D_CMD(timer) = count;
-       /* Start counting.  */
-       V850E_TIMER_D_TMCD(timer)
-               = V850E_TIMER_D_TMCD_CAE
-               | V850E_TIMER_D_TMCD_CS(divlog2)
-               | V850E_TIMER_D_TMCD_CE;
-}
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_utils.h -- Utility functions associated with
- *     V850E CPUs
- *
- *  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/v850e_utils.h>
-
-/* Calculate counter clock-divider and count values to attain the
-   desired frequency RATE from the base frequency BASE_FREQ.  The
-   counter is expected to have a clock-divider, which can divide the
-   system cpu clock by a power of two value from MIN_DIVLOG2 to
-   MAX_DIV_LOG2, and a word-size of COUNTER_SIZE bits (the counter
-   counts up and resets whenever it's equal to the compare register,
-   generating an interrupt or whatever when it does so).  The returned
-   values are: *DIVLOG2 -- log2 of the desired clock divider and *COUNT
-   -- the counter compare value to use.  Returns true if it was possible
-   to find a reasonable value, otherwise false (and the other return
-   values will be set to be as good as possible).  */
-int calc_counter_params (unsigned long base_freq,
-                        unsigned long rate,
-                        unsigned min_divlog2, unsigned max_divlog2,
-                        unsigned counter_size,
-                        unsigned *divlog2, unsigned *count)
-{
-       unsigned _divlog2;
-       int ok = 0;
-
-       /* Find the lowest clock divider setting that can represent RATE.  */
-       for (_divlog2 = min_divlog2; _divlog2 <= max_divlog2; _divlog2++) {
-               /* Minimum interrupt rate possible using this divider.  */
-               unsigned min_int_rate
-                       = (base_freq >> _divlog2) >> counter_size;
-
-               if (min_int_rate <= rate) {
-                       /* This setting is the highest resolution
-                          setting that's slow enough enough to attain
-                          RATE interrupts per second, so use it.  */
-                       ok = 1;
-                       break;
-               }
-       }
-
-       if (_divlog2 > max_divlog2)
-               /* Can't find correct setting.  */
-               _divlog2 = max_divlog2;
-
-       if (divlog2)
-               *divlog2 = _divlog2;
-       if (count)
-               *count = ((base_freq >> _divlog2) + rate/2) / rate;
-
-       return ok;
-}
 
+++ /dev/null
-/*
- * arch/v850/vmlinux.lds.S -- kernel linker script for v850 platforms
- *
- *  Copyright (C) 2002,03,04,05  NEC Electronics Corporation
- *  Copyright (C) 2002,03,04,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>
- */
-
-
-#define VMLINUX_SYMBOL(_sym_) _##_sym_
-#include <asm-generic/vmlinux.lds.h>
-
-/* For most platforms, this will define useful things like RAM addr/size.  */
-#include <asm/machdep.h>
-
-
-/* The following macros contain the usual definitions for various data areas.
-   The prefix `RAMK_' is used to indicate macros suitable for kernels loaded
-   into RAM, and similarly `ROMK_' for ROM-resident kernels.  Note that all
-   symbols are prefixed with an extra `_' for compatibility with the v850
-   toolchain.  */
-
-       
-/* Interrupt vectors.  */
-#define INTV_CONTENTS                                                        \
-               . = ALIGN (0x10) ;                                            \
-               __intv_start = . ;                                            \
-                       *(.intv.reset)  /* Reset vector */                    \
-               . = __intv_start + 0x10 ;                                     \
-                       *(.intv.common) /* Vectors common to all v850e proc */\
-               . = __intv_start + 0x80 ;                                     \
-                       *(.intv.mach)   /* Machine-specific int. vectors.  */ \
-               __intv_end = . ;
-
-#define RODATA_CONTENTS                                                              \
-               . = ALIGN (16) ;                                              \
-                       *(.rodata) *(.rodata.*)                               \
-                       *(__vermagic)           /* Kernel version magic */    \
-                       *(.rodata1)                                           \
-               /* PCI quirks */                                              \
-               ___start_pci_fixups_early = . ;                               \
-                       *(.pci_fixup_early)                                   \
-               ___end_pci_fixups_early = . ;                                 \
-               ___start_pci_fixups_header = . ;                              \
-                       *(.pci_fixup_header)                                  \
-               ___end_pci_fixups_header = . ;                                \
-               ___start_pci_fixups_final = . ;                               \
-                       *(.pci_fixup_final)                                   \
-               ___end_pci_fixups_final = . ;                                 \
-               ___start_pci_fixups_enable = . ;                              \
-                       *(.pci_fixup_enable)                                  \
-               ___end_pci_fixups_enable = . ;                                \
-               /* Kernel symbol table: Normal symbols */                     \
-               ___start___ksymtab = .;                                       \
-                       *(__ksymtab)                                          \
-               ___stop___ksymtab = .;                                        \
-               /* Kernel symbol table: GPL-only symbols */                   \
-               ___start___ksymtab_gpl = .;                                   \
-                       *(__ksymtab_gpl)                                      \
-               ___stop___ksymtab_gpl = .;                                    \
-               /* Kernel symbol table: GPL-future symbols */                 \
-               ___start___ksymtab_gpl_future = .;                            \
-                       *(__ksymtab_gpl_future)                               \
-               ___stop___ksymtab_gpl_future = .;                             \
-               /* Kernel symbol table: strings */                            \
-                       *(__ksymtab_strings)                                  \
-               /* Kernel symbol table: Normal symbols */                     \
-               ___start___kcrctab = .;                                       \
-                       *(__kcrctab)                                          \
-               ___stop___kcrctab = .;                                        \
-               /* Kernel symbol table: GPL-only symbols */                   \
-               ___start___kcrctab_gpl = .;                                   \
-                       *(__kcrctab_gpl)                                      \
-               ___stop___kcrctab_gpl = .;                                    \
-               /* Kernel symbol table: GPL-future symbols */                 \
-               ___start___kcrctab_gpl_future = .;                            \
-                       *(__kcrctab_gpl_future)                               \
-               ___stop___kcrctab_gpl_future = .;                             \
-               /* Built-in module parameters */                              \
-               . = ALIGN (4) ;                                               \
-               ___start___param = .;                                         \
-               *(__param)                                                    \
-               ___stop___param = .;
-
-
-/* Kernel text segment, and some constant data areas.  */
-#define TEXT_CONTENTS                                                        \
-               _text = .;                                                    \
-               __stext = . ;                                                 \
-               TEXT_TEXT                                                     \
-               SCHED_TEXT                                                    \
-                       *(.exit.text)   /* 2.5 convention */                  \
-                       *(.text.exit)   /* 2.4 convention */                  \
-                       *(.text.lock)                                         \
-                       *(.exitcall.exit)                                     \
-               __real_etext = . ;      /* There may be data after here.  */  \
-               RODATA_CONTENTS                                               \
-               . = ALIGN (4) ;                                               \
-                       *(.call_table_data)                                   \
-                       *(.call_table_text)                                   \
-               . = ALIGN (16) ;        /* Exception table.  */               \
-               ___start___ex_table = . ;                                     \
-                       *(__ex_table)                                         \
-               ___stop___ex_table = . ;                                      \
-               . = ALIGN (4) ;                                               \
-               __etext = . ;
-
-/* Kernel data segment.  */
-#define DATA_CONTENTS                                                        \
-               __sdata = . ;                                                 \
-               DATA_DATA                                                     \
-                       EXIT_DATA       /* 2.5 convention */                  \
-                       *(.data.exit)   /* 2.4 convention */                  \
-               . = ALIGN (16) ;                                              \
-               *(.data.cacheline_aligned)                                    \
-               . = ALIGN (0x2000) ;                                          \
-               *(.data.init_task)                                            \
-               . = ALIGN (0x2000) ;                                          \
-               __edata = . ;
-
-/* Kernel BSS segment.  */
-#define BSS_CONTENTS                                                         \
-               __sbss = . ;                                                  \
-                       *(.bss)                                               \
-                       *(COMMON)                                             \
-               . = ALIGN (4) ;                                               \
-               __init_stack_end = . ;                                        \
-               __ebss = . ;
-
-/* `initcall' tables.  */
-#define INITCALL_CONTENTS                                                    \
-               . = ALIGN (16) ;                                              \
-               ___setup_start = . ;                                          \
-                       *(.init.setup)  /* 2.5 convention */                  \
-                       *(.setup.init)  /* 2.4 convention */                  \
-               ___setup_end = . ;                                            \
-               ___initcall_start = . ;                                       \
-                       *(.initcall.init)                                     \
-                       INITCALLS                                             \
-               . = ALIGN (4) ;                                               \
-               ___initcall_end = . ;                                         \
-               ___con_initcall_start = .;                                    \
-                       *(.con_initcall.init)                                 \
-               ___con_initcall_end = .;
-
-/* Contents of `init' section for a kernel that's loaded into RAM.  */
-#define RAMK_INIT_CONTENTS                                                   \
-               RAMK_INIT_CONTENTS_NO_END                                     \
-               __init_end = . ;
-/* Same as RAMK_INIT_CONTENTS, but doesn't define the `__init_end' symbol.  */
-#define RAMK_INIT_CONTENTS_NO_END                                            \
-               . = ALIGN (4096) ;                                            \
-               __init_start = . ;                                            \
-                       __sinittext = .;                                      \
-                       INIT_TEXT       /* 2.5 convention */                  \
-                       __einittext = .;                                      \
-                       INIT_DATA                                             \
-                       *(.text.init)   /* 2.4 convention */                  \
-                       *(.data.init)                                         \
-               INITCALL_CONTENTS                                             \
-               INITRAMFS_CONTENTS
-
-/* The contents of `init' section for a ROM-resident kernel which
-   should go into RAM.  */     
-#define ROMK_INIT_RAM_CONTENTS                                               \
-               . = ALIGN (4096) ;                                            \
-               __init_start = . ;                                            \
-                       INIT_DATA       /* 2.5 convention */                  \
-                       *(.data.init)   /* 2.4 convention */                  \
-               __init_end = . ;                                              \
-               . = ALIGN (4096) ;
-
-/* The contents of `init' section for a ROM-resident kernel which
-   should go into ROM.  */     
-#define ROMK_INIT_ROM_CONTENTS                                               \
-                       _sinittext = .;                                       \
-                       INIT_TEXT       /* 2.5 convention */                  \
-                       _einittext = .;                                       \
-                       *(.text.init)   /* 2.4 convention */                  \
-               INITCALL_CONTENTS                                             \
-               INITRAMFS_CONTENTS
-
-/* A root filesystem image, for kernels with an embedded root filesystem.  */
-#define ROOT_FS_CONTENTS                                                     \
-               __root_fs_image_start = . ;                                   \
-               *(.root)                                                      \
-               __root_fs_image_end = . ;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-/* The initramfs archive.  */
-#define INITRAMFS_CONTENTS                                                   \
-               . = ALIGN (4) ;                                               \
-               ___initramfs_start = . ;                                      \
-                       *(.init.ramfs)                                        \
-               ___initramfs_end = . ;
-#endif
-
-/* Where the initial bootmap (bitmap for the boot-time memory allocator) 
-   should be place.  */
-#define BOOTMAP_CONTENTS                                                     \
-               . = ALIGN (4096) ;                                            \
-               __bootmap = . ;                                               \
-               . = . + 4096 ;          /* enough for 128MB.   */
-
-/* The contents of a `typical' kram area for a kernel in RAM.  */
-#define RAMK_KRAM_CONTENTS                                                   \
-               __kram_start = . ;                                            \
-               TEXT_CONTENTS                                                 \
-               DATA_CONTENTS                                                 \
-               BSS_CONTENTS                                                  \
-               RAMK_INIT_CONTENTS                                            \
-               __kram_end = . ;                                              \
-               BOOTMAP_CONTENTS
-
-
-/* Define output sections normally used for a ROM-resident kernel.  
-   ROM and RAM should be appropriate memory areas to use for kernel
-   ROM and RAM data.  This assumes that ROM starts at 0 (and thus can
-   hold the interrupt vectors).  */
-#define ROMK_SECTIONS(ROM, RAM)                                                      \
-       .rom : {                                                              \
-               INTV_CONTENTS                                                 \
-               TEXT_CONTENTS                                                 \
-               ROMK_INIT_ROM_CONTENTS                                        \
-               ROOT_FS_CONTENTS                                              \
-       } > ROM                                                               \
-                                                                             \
-       __rom_copy_src_start = . ;                                            \
-                                                                             \
-       .data : {                                                             \
-               __kram_start = . ;                                            \
-               __rom_copy_dst_start = . ;                                    \
-               DATA_CONTENTS                                                 \
-               ROMK_INIT_RAM_CONTENTS                                        \
-               __rom_copy_dst_end = . ;                                      \
-       } > RAM  AT> ROM                                                      \
-                                                                             \
-       .bss ALIGN (4) : {                                                    \
-               BSS_CONTENTS                                                  \
-               __kram_end = . ;                                              \
-               BOOTMAP_CONTENTS                                              \
-       } > RAM
-
-
-/* The 32-bit variable `jiffies' is just the lower 32-bits of `jiffies_64'.  */
-_jiffies = _jiffies_64 ;
-
-
-/* Include an appropriate platform-dependent linker-script (which
-   usually should use the above macros to do most of the work).  */
-
-#ifdef CONFIG_V850E_SIM
-# include "sim.ld"
-#endif
-
-#ifdef CONFIG_V850E2_SIM85E2
-# include "sim85e2.ld"
-#endif
-
-#ifdef CONFIG_V850E2_FPGA85E2C
-# include "fpga85e2c.ld"
-#endif
-
-#ifdef CONFIG_V850E2_ANNA
-# ifdef CONFIG_ROM_KERNEL
-#  include "anna-rom.ld"
-# else
-#  include "anna.ld"
-# endif
-#endif
-
-#ifdef CONFIG_V850E_AS85EP1
-# ifdef CONFIG_ROM_KERNEL
-#  include "as85ep1-rom.ld"
-# else
-#  include "as85ep1.ld"
-# endif
-#endif
-
-#ifdef CONFIG_RTE_CB_MA1
-# ifdef CONFIG_ROM_KERNEL
-#  include "rte_ma1_cb-rom.ld"
-# else
-#  include "rte_ma1_cb.ld"
-# endif
-#endif
-
-#ifdef CONFIG_RTE_CB_NB85E
-# ifdef CONFIG_ROM_KERNEL
-#  include "rte_nb85e_cb-rom.ld"
-# elif defined(CONFIG_RTE_CB_MULTI)
-#  include "rte_nb85e_cb-multi.ld"
-# else
-#  include "rte_nb85e_cb.ld"
-# endif
-#endif
-
-#ifdef CONFIG_RTE_CB_ME2
-#  include "rte_me2_cb.ld"
-#endif
-
 
+++ /dev/null
-#
-# arch/v850/lib/Makefile
-#
-
-lib-y  = ashrdi3.o ashldi3.o lshrdi3.o muldi3.o negdi2.o \
-        checksum.o memcpy.o memset.o
 
+++ /dev/null
-/* ashldi3.c extracted from gcc-2.95.2/libgcc2.c which is: */
-/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#define BITS_PER_UNIT 8
-
-typedef         int SItype     __attribute__ ((mode (SI)));
-typedef unsigned int USItype   __attribute__ ((mode (SI)));
-typedef                 int DItype     __attribute__ ((mode (DI)));
-typedef int word_type __attribute__ ((mode (__word__)));
-
-struct DIstruct {SItype high, low;};
-
-typedef union
-{
-  struct DIstruct s;
-  DItype ll;
-} DIunion;
-
-DItype
-__ashldi3 (DItype u, word_type b)
-{
-  DIunion w;
-  word_type bm;
-  DIunion uu;
-
-  if (b == 0)
-    return u;
-
-  uu.ll = u;
-
-  bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
-  if (bm <= 0)
-    {
-      w.s.low = 0;
-      w.s.high = (USItype)uu.s.low << -bm;
-    }
-  else
-    {
-      USItype carries = (USItype)uu.s.low >> bm;
-      w.s.low = (USItype)uu.s.low << b;
-      w.s.high = ((USItype)uu.s.high << b) | carries;
-    }
-
-  return w.ll;
-}
 
+++ /dev/null
-/* ashrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */
-/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#define BITS_PER_UNIT 8
-
-typedef         int SItype     __attribute__ ((mode (SI)));
-typedef unsigned int USItype   __attribute__ ((mode (SI)));
-typedef                 int DItype     __attribute__ ((mode (DI)));
-typedef int word_type __attribute__ ((mode (__word__)));
-
-struct DIstruct {SItype high, low;};
-
-typedef union
-{
-  struct DIstruct s;
-  DItype ll;
-} DIunion;
-
-DItype
-__ashrdi3 (DItype u, word_type b)
-{
-  DIunion w;
-  word_type bm;
-  DIunion uu;
-
-  if (b == 0)
-    return u;
-
-  uu.ll = u;
-
-  bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
-  if (bm <= 0)
-    {
-      /* w.s.high = 1..1 or 0..0 */
-      w.s.high = uu.s.high >> (sizeof (SItype) * BITS_PER_UNIT - 1);
-      w.s.low = uu.s.high >> -bm;
-    }
-  else
-    {
-      USItype carries = (USItype)uu.s.high << bm;
-      w.s.high = uu.s.high >> b;
-      w.s.low = ((USItype)uu.s.low >> b) | carries;
-    }
-
-  return w.ll;
-}
 
+++ /dev/null
-/*
- * INET                An implementation of the TCP/IP protocol suite for the LINUX
- *             operating system.  INET is implemented using the  BSD Socket
- *             interface as the means of communication with the user level.
- *
- *             MIPS specific IP/TCP/UDP checksumming routines
- *
- * Authors:    Ralf Baechle, <ralf@waldorf-gmbh.de>
- *             Lots of code moved from tcp.c and ip.c; see those files
- *             for more names.
- *
- *             This program is free software; you can redistribute it and/or
- *             modify it under the terms of the GNU General Public License
- *             as published by the Free Software Foundation; either version
- *             2 of the License, or (at your option) any later version.
- *
- * $Id: checksum.c,v 1.1 2002/09/28 14:58:40 gerg Exp $
- */
-#include <net/checksum.h>
-#include <linux/module.h>
-#include <linux/types.h>
-#include <asm/byteorder.h>
-#include <asm/string.h>
-#include <asm/uaccess.h>
-
-static inline unsigned short from32to16 (unsigned long sum)
-{
-       unsigned int result;
-       /*
-                               %0              %1
-             hsw %1, %0        H     L         L     H
-             add %1, %0        H     L         H+L+C H+L
-       */
-       asm ("hsw %1, %0; add %1, %0" : "=&r" (result) : "r" (sum));
-       return result >> 16;
-}
-
-static inline unsigned int do_csum(const unsigned char * buff, int len)
-{
-       int odd, count;
-       unsigned int result = 0;
-
-       if (len <= 0)
-               goto out;
-       odd = 1 & (unsigned long) buff;
-       if (odd) {
-               result = be16_to_cpu(*buff);
-               len--;
-               buff++;
-       }
-       count = len >> 1;               /* nr of 16-bit words.. */
-       if (count) {
-               if (2 & (unsigned long) buff) {
-                       result += *(unsigned short *) buff;
-                       count--;
-                       len -= 2;
-                       buff += 2;
-               }
-               count >>= 1;            /* nr of 32-bit words.. */
-               if (count) {
-                       unsigned int carry = 0;
-                       do {
-                               unsigned int w = *(unsigned int *) buff;
-                               count--;
-                               buff += 4;
-                               result += carry;
-                               result += w;
-                               carry = (w > result);
-                       } while (count);
-                       result += carry;
-                       result = (result & 0xffff) + (result >> 16);
-               }
-               if (len & 2) {
-                       result += *(unsigned short *) buff;
-                       buff += 2;
-               }
-       }
-       if (len & 1)
-               result += le16_to_cpu(*buff);
-       result = from32to16(result);
-       if (odd)
-               result = ((result >> 8) & 0xff) | ((result & 0xff) << 8);
-out:
-       return result;
-}
-
-/*
- *     This is a version of ip_compute_csum() optimized for IP headers,
- *     which always checksum on 4 octet boundaries.
- */
-__sum16 ip_fast_csum(const void *iph, unsigned int ihl)
-{
-       return (__force __sum16)~do_csum(iph,ihl*4);
-}
-
-/*
- * this routine is used for miscellaneous IP-like checksums, mainly
- * in icmp.c
- */
-__sum16 ip_compute_csum(const void *buff, int len)
-{
-       return (__force __sum16)~do_csum(buff,len);
-}
-
-/*
- * computes a partial checksum, e.g. for TCP/UDP fragments
- */
-__wsum csum_partial(const void *buff, int len, __wsum sum)
-{
-       unsigned int result = do_csum(buff, len);
-
-       /* add in old sum, and carry.. */
-       result += (__force u32)sum;
-       if ((__force u32)sum > result)
-               result += 1;
-       return (__force __wsum)result;
-}
-
-EXPORT_SYMBOL(csum_partial);
-
-/*
- * copy while checksumming, otherwise like csum_partial
- */
-__wsum csum_partial_copy_nocheck(const void *src, void *dst,
-                               int len, __wsum sum)
-{
-       /*
-        * It's 2:30 am and I don't feel like doing it real ...
-        * This is lots slower than the real thing (tm)
-        */
-       sum = csum_partial(src, len, sum);
-       memcpy(dst, src, len);
-
-       return sum;
-}
-
-/*
- * Copy from userspace and compute checksum.  If we catch an exception
- * then zero the rest of the buffer.
- */
-__wsum csum_partial_copy_from_user (const void *src,
-                                         void *dst,
-                                          int len, __wsum sum,
-                                          int *err_ptr)
-{
-       int missing;
-
-       missing = copy_from_user(dst, src, len);
-       if (missing) {
-               memset(dst + len - missing, 0, missing);
-               *err_ptr = -EFAULT;
-       }
-               
-       return csum_partial(dst, len, sum);
-}
 
+++ /dev/null
-/* lshrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */
-/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#define BITS_PER_UNIT 8
-
-typedef         int SItype     __attribute__ ((mode (SI)));
-typedef unsigned int USItype   __attribute__ ((mode (SI)));
-typedef                 int DItype     __attribute__ ((mode (DI)));
-typedef int word_type __attribute__ ((mode (__word__)));
-
-struct DIstruct {SItype high, low;};
-
-typedef union
-{
-  struct DIstruct s;
-  DItype ll;
-} DIunion;
-
-DItype
-__lshrdi3 (DItype u, word_type b)
-{
-  DIunion w;
-  word_type bm;
-  DIunion uu;
-
-  if (b == 0)
-    return u;
-
-  uu.ll = u;
-
-  bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
-  if (bm <= 0)
-    {
-      w.s.high = 0;
-      w.s.low = (USItype)uu.s.high >> -bm;
-    }
-  else
-    {
-      USItype carries = (USItype)uu.s.high << bm;
-      w.s.high = (USItype)uu.s.high >> b;
-      w.s.low = ((USItype)uu.s.low >> b) | carries;
-    }
-
-  return w.ll;
-}
 
+++ /dev/null
-/*
- * arch/v850/lib/memcpy.c -- Memory copying
- *
- *  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/types.h>
-#include <asm/string.h>
-
-#define CHUNK_SIZE             32 /* bytes */
-#define CHUNK_ALIGNED(addr)    (((unsigned long)addr & 0x3) == 0)
-
-/* Note that this macro uses 8 call-clobbered registers (not including
-   R1), which are few enough so that the following functions don't need
-   to spill anything to memory.  It also uses R1, which is nominally
-   reserved for the assembler, but here it should be OK.  */
-#define COPY_CHUNK(src, dst)                   \
-   asm ("mov %0, ep;"                          \
-       "sld.w 0[ep], r1; sld.w 4[ep], r12;"    \
-       "sld.w 8[ep], r13; sld.w 12[ep], r14;"  \
-       "sld.w 16[ep], r15; sld.w 20[ep], r17;" \
-       "sld.w 24[ep], r18; sld.w 28[ep], r19;" \
-       "mov %1, ep;"                           \
-       "sst.w r1, 0[ep]; sst.w r12, 4[ep];"    \
-       "sst.w r13, 8[ep]; sst.w r14, 12[ep];"  \
-       "sst.w r15, 16[ep]; sst.w r17, 20[ep];" \
-       "sst.w r18, 24[ep]; sst.w r19, 28[ep]"  \
-       :: "r" (src), "r" (dst)                 \
-       : "r1", "r12", "r13", "r14", "r15",     \
-         "r17", "r18", "r19", "ep", "memory");
-
-void *memcpy (void *dst, const void *src, __kernel_size_t size)
-{
-       char *_dst = dst;
-       const char *_src = src;
-
-       if (size >= CHUNK_SIZE && CHUNK_ALIGNED(_src) && CHUNK_ALIGNED(_dst)) {
-               /* Copy large blocks efficiently.  */
-               unsigned count;
-               for (count = size / CHUNK_SIZE; count; count--) {
-                       COPY_CHUNK (_src, _dst);
-                       _src += CHUNK_SIZE;
-                       _dst += CHUNK_SIZE;
-               }
-               size %= CHUNK_SIZE;
-       }
-
-       if (size > 0)
-               do
-                       *_dst++ = *_src++;
-               while (--size);
-
-       return dst;
-}
-
-void *memmove (void *dst, const void *src, __kernel_size_t size)
-{
-       if ((unsigned long)dst < (unsigned long)src
-           || (unsigned long)src + size < (unsigned long)dst)
-               return memcpy (dst, src, size);
-       else {
-               char *_dst = dst + size;
-               const char *_src = src + size;
-
-               if (size >= CHUNK_SIZE
-                   && CHUNK_ALIGNED (_src) && CHUNK_ALIGNED (_dst))
-               {
-                       /* Copy large blocks efficiently.  */
-                       unsigned count;
-                       for (count = size / CHUNK_SIZE; count; count--) {
-                               _src -= CHUNK_SIZE;
-                               _dst -= CHUNK_SIZE;
-                               COPY_CHUNK (_src, _dst);
-                       }
-                       size %= CHUNK_SIZE;
-               }
-
-               if (size > 0)
-                       do
-                               *--_dst = *--_src;
-                       while (--size);
-
-               return _dst;
-       }
-}
 
+++ /dev/null
-/*
- * arch/v850/lib/memset.c -- Memory initialization
- *
- *  Copyright (C) 2001,02,04  NEC Corporation
- *  Copyright (C) 2001,02,04  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>
-
-void *memset (void *dst, int val, __kernel_size_t count)
-{
-       if (count) {
-               register unsigned loop;
-               register void *ptr asm ("ep") = dst;
-
-               /* replicate VAL into a long.  */
-               val &= 0xff;
-               val |= val << 8;
-               val |= val << 16;
-
-               /* copy initial unaligned bytes.  */
-               if ((long)ptr & 1) {
-                       *(char *)ptr = val;
-                       ptr = (void *)((char *)ptr + 1);
-                       count--;
-               }
-               if (count > 2 && ((long)ptr & 2)) {
-                       *(short *)ptr = val;
-                       ptr = (void *)((short *)ptr + 1);
-                       count -= 2;
-               }
-
-               /* 32-byte copying loop.  */
-               for (loop = count / 32; loop; loop--) {
-                       asm ("sst.w %0, 0[ep]; sst.w %0, 4[ep];"
-                            "sst.w %0, 8[ep]; sst.w %0, 12[ep];"
-                            "sst.w %0, 16[ep]; sst.w %0, 20[ep];"
-                            "sst.w %0, 24[ep]; sst.w %0, 28[ep]"
-                            :: "r" (val) : "memory");
-                       ptr += 32;
-               }
-               count %= 32;
-
-               /* long copying loop.  */
-               for (loop = count / 4; loop; loop--) {
-                       *(long *)ptr = val;
-                       ptr = (void *)((long *)ptr + 1);
-               }
-               count %= 4;
-
-               /* finish up with any trailing bytes.  */
-               if (count & 2) {
-                       *(short *)ptr = val;
-                       ptr = (void *)((short *)ptr + 1);
-               }
-               if (count & 1) {
-                       *(char *)ptr = val;
-               }
-       }
-
-       return dst;
-}
 
+++ /dev/null
-/* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and 
-                          gcc-2.7.2.3/longlong.h which is: */
-/* Copyright (C) 1989, 1992, 1993, 1994, 1995, 2001 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#define umul_ppmm(w1, w0, u, v) \
-  __asm__ ("mulu %3, %0, %1"                                           \
-           : "=r" ((USItype)(w0)),                                     \
-             "=r" ((USItype)(w1))                                      \
-           : "%0" ((USItype)(u)),                                      \
-             "r" ((USItype)(v)))
-
-#define __umulsidi3(u, v) \
-  ({DIunion __w;                                                       \
-    umul_ppmm (__w.s.high, __w.s.low, u, v);                           \
-    __w.ll; })
-
-typedef         int SItype     __attribute__ ((mode (SI)));
-typedef unsigned int USItype   __attribute__ ((mode (SI)));
-typedef                 int DItype     __attribute__ ((mode (DI)));
-typedef int word_type __attribute__ ((mode (__word__)));
-
-struct DIstruct {SItype high, low;};
-
-typedef union
-{
-  struct DIstruct s;
-  DItype ll;
-} DIunion;
-
-DItype
-__muldi3 (DItype u, DItype v)
-{
-  DIunion w;
-  DIunion uu, vv;
-
-  uu.ll = u,
-  vv.ll = v;
-
-  w.ll = __umulsidi3 (uu.s.low, vv.s.low);
-  w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
-              + (USItype) uu.s.high * (USItype) vv.s.low);
-
-  return w.ll;
-}
 
+++ /dev/null
-/*
- * arch/v850/lib/negdi2.c -- 64-bit negation
- *
- *  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>
- */
-
-typedef                 int DItype     __attribute__ ((mode (DI)));
-
-DItype __negdi2 (DItype x)
-{
-       __asm__ __volatile__
-               ("not   r6, r10;"
-                "add   1, r10;"
-                "setf  c, r6;"
-                "not   r7, r11;"
-                "add   r6, r11"
-                ::: "r6", "r7", "r10", "r11");
-}
 
        depends on SERIAL_IP22_ZILOG=y
        select SERIAL_CORE_CONSOLE
 
-config V850E_UART
-       bool "NEC V850E on-chip UART support"
-       depends on V850E_MA1 || V850E_ME2 || V850E_TEG || V850E2_ANNA || V850E_AS85EP1
-       select SERIAL_CORE
-       default y
-
-config V850E_UARTB
-        bool
-       depends on V850E_UART && V850E_ME2
-       default y
-
-config V850E_UART_CONSOLE
-       bool "Use NEC V850E on-chip UART for console"
-       depends on V850E_UART
-       select SERIAL_CORE_CONSOLE
-
 config SERIAL_SH_SCI
        tristate "SuperH SCI(F) serial port support"
        depends on SUPERH || H8300
 
          machines.  The watchdog timeout period is normally one minute but
          can be changed with a boot-time parameter.
 
-# V850 Architecture
-
 # XTENSA Architecture
 
 #
 
 
 # SPARC64 Architecture
 
-# V850 Architecture
-
 # XTENSA Architecture
 
 # Architecture Independant
 
+++ /dev/null
-include include/asm-generic/Kbuild.asm
 
+++ /dev/null
-#ifndef __V850_A_OUT_H__
-#define __V850_A_OUT_H__
-
-struct exec
-{
-  unsigned long a_info;                /* Use macros N_MAGIC, etc for access */
-  unsigned a_text;             /* length of text, in bytes */
-  unsigned a_data;             /* length of data, in bytes */
-  unsigned a_bss;              /* length of uninitialized data area for file, in bytes */
-  unsigned a_syms;             /* length of symbol table data in file, in bytes */
-  unsigned a_entry;            /* start address */
-  unsigned a_trsize;           /* length of relocation info for text, in bytes */
-  unsigned a_drsize;           /* length of relocation info for data, in bytes */
-};
-
-#define N_TRSIZE(a)    ((a).a_trsize)
-#define N_DRSIZE(a)    ((a).a_drsize)
-#define N_SYMSIZE(a)   ((a).a_syms)
-
-
-#endif /* __V850_A_OUT_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/anna.h -- Anna V850E2 evaluation cpu chip/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>
- */
-
-#ifndef __V850_ANNA_H__
-#define __V850_ANNA_H__
-
-#include <asm/v850e2.h>                /* Based on V850E2 core.  */
-
-
-#define CPU_MODEL      "v850e2/anna"
-#define CPU_MODEL_LONG "NEC V850E2/Anna"
-#define PLATFORM       "anna"
-#define PLATFORM_LONG  "NEC/Midas lab V850E2/Anna evaluation board"
-
-#define CPU_CLOCK_FREQ 200000000 /*  200MHz */
-#define SYS_CLOCK_FREQ  33300000 /* 33.3MHz */
-
-
-/* 1MB of static RAM.  This memory is mirrored 64 times.  */
-#define SRAM_ADDR      0x04000000
-#define SRAM_SIZE      0x00100000 /* 1MB */
-/* 64MB of DRAM.  */
-#define SDRAM_ADDR     0x08000000      
-#define SDRAM_SIZE     0x04000000 /* 64MB */
-
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET    SRAM_ADDR
-
-/* We use on-chip RAM, for a few miscellaneous variables that must be
-   accessible using a load instruction relative to R0.  The Anna chip has
-   128K of `dLB' ram nominally located at 0xFFF00000, but it's mirrored
-   every 128K, so we can use the `last mirror' (except for the portion at
-   the top which is overridden by I/O space).  In addition, the early
-   sample chip we're using has lots of memory errors in the dLB ram, so we
-   use a specially chosen location that has at least 20 bytes of contiguous
-   valid memory (xxxF0020 - xxxF003F).  */
-#define R0_RAM_ADDR                    0xFFFF8020
-
-
-/* Anna specific control registers.  */
-#define ANNA_ILBEN_ADDR                        0xFFFFF7F2
-#define ANNA_ILBEN                     (*(volatile u16 *)ANNA_ILBEN_ADDR)
-
-
-/* I/O port P0-P3. */
-/* Direct I/O.  Bits 0-7 are pins Pn0-Pn7.  */
-#define ANNA_PORT_IO_ADDR(n)           (0xFFFFF400 + (n) * 2)
-#define ANNA_PORT_IO(n)                        (*(volatile u8 *)ANNA_PORT_IO_ADDR(n))
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define ANNA_PORT_PM_ADDR(n)           (0xFFFFF410 + (n) * 2)
-#define ANNA_PORT_PM(n)                        (*(volatile u8 *)ANNA_PORT_PM_ADDR(n))
-
-
-/* Hardware-specific interrupt numbers (in the kernel IRQ namespace).  */
-#define IRQ_INTP(n)    (n)     /* Pnnn (pin) interrupts 0-15 */
-#define IRQ_INTP_NUM   16
-#define IRQ_INTOV(n)   (0x10 + (n)) /* 0-2 */
-#define IRQ_INTOV_NUM  2
-#define IRQ_INTCCC(n)  (0x12 + (n))
-#define IRQ_INTCCC_NUM 4
-#define IRQ_INTCMD(n)  (0x16 + (n)) /* interval timer interrupts 0-5 */
-#define IRQ_INTCMD_NUM 6
-#define IRQ_INTDMA(n)  (0x1C + (n)) /* DMA interrupts 0-3 */
-#define IRQ_INTDMA_NUM 4
-#define IRQ_INTDMXER   0x20
-#define IRQ_INTSRE(n)  (0x21 + (n)*3) /* UART 0-1 reception error */
-#define IRQ_INTSRE_NUM 2
-#define IRQ_INTSR(n)   (0x22 + (n)*3) /* UART 0-1 reception completion */
-#define IRQ_INTSR_NUM  2
-#define IRQ_INTST(n)   (0x23 + (n)*3) /* UART 0-1 transmission completion */
-#define IRQ_INTST_NUM  2
-
-#define NUM_CPU_IRQS   64
-
-#ifndef __ASSEMBLY__
-/* Initialize chip interrupts.  */
-extern void anna_init_irqs (void);
-#endif
-
-
-/* Anna UART details (basically the same as the V850E/MA1, but 2 channels).  */
-#define V850E_UART_NUM_CHANNELS                2
-#define V850E_UART_BASE_FREQ           (SYS_CLOCK_FREQ / 2)
-#define V850E_UART_CHIP_NAME           "V850E2/NA85E2A"
-
-/* This is the UART channel that's actually connected on the board.  */
-#define V850E_UART_CONSOLE_CHANNEL     1
-
-/* This is a function that gets called before configuring the UART.  */
-#define V850E_UART_PRE_CONFIGURE       anna_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void anna_uart_pre_configure (unsigned chan,
-                                    unsigned cflags, unsigned baud);
-#endif
-
-/* This board supports RTS/CTS for the on-chip UART, but only for channel 1. */
-
-/* CTS for UART channel 1 is pin P37 (bit 7 of port 3).  */
-#define V850E_UART_CTS(chan)   ((chan) == 1 ? !(ANNA_PORT_IO(3) & 0x80) : 1)
-/* RTS for UART channel 1 is pin P07 (bit 7 of port 0).  */
-#define V850E_UART_SET_RTS(chan, val)                                        \
-   do {                                                                              \
-          if (chan == 1) {                                                   \
-                  unsigned old = ANNA_PORT_IO(0);                            \
-                  if (val)                                                   \
-                          ANNA_PORT_IO(0) = old & ~0x80;                     \
-                  else                                                       \
-                          ANNA_PORT_IO(0) = old | 0x80;                      \
-          }                                                                  \
-   } while (0)
-
-
-/* Timer C details.  */
-#define V850E_TIMER_C_BASE_ADDR                0xFFFFF600
-
-/* Timer D details (the Anna actually has 5 of these; should change later). */
-#define V850E_TIMER_D_BASE_ADDR                0xFFFFF540
-#define V850E_TIMER_D_TMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x0)
-#define V850E_TIMER_D_CMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x2)
-#define V850E_TIMER_D_TMCD_BASE_ADDR   (V850E_TIMER_D_BASE_ADDR + 0x4)
-
-#define V850E_TIMER_D_BASE_FREQ                SYS_CLOCK_FREQ
-#define V850E_TIMER_D_TMCD_CS_MIN      1 /* min 2^1 divider */
-
-
-#endif /* __V850_ANNA_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/as85ep1.h -- AS85EP1 evaluation CPU chip/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>
- */
-
-#ifndef __V850_AS85EP1_H__
-#define __V850_AS85EP1_H__
-
-#include <asm/v850e.h>
-
-
-#define CPU_MODEL      "as85ep1"
-#define CPU_MODEL_LONG "NEC V850E/AS85EP1"
-#define PLATFORM       "AS85EP1"
-#define PLATFORM_LONG  "NEC V850E/AS85EP1 evaluation board"
-
-#define CPU_CLOCK_FREQ 96000000 /*  96MHz */
-#define SYS_CLOCK_FREQ CPU_CLOCK_FREQ
-
-
-/* 1MB of static RAM.  */
-#define SRAM_ADDR      0x00400000
-#define SRAM_SIZE      0x00100000 /* 1MB */
-/* 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).  */
-#define SDRAM_ADDR     0x00600000
-#define SDRAM_SIZE     0x039F8000 /* approx 58MB */
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET    SRAM_ADDR
-
-/* We use on-chip RAM, for a few miscellaneous variables that must be
-   accessible using a load instruction relative to R0.  The AS85EP1 chip
-   16K of internal RAM located slightly before I/O space.  */
-#define R0_RAM_ADDR    0xFFFF8000
-
-
-/* AS85EP1 specific control registers.  */
-#define AS85EP1_CSC_ADDR(n)    (0xFFFFF060 + (n) * 2)
-#define AS85EP1_CSC(n)         (*(volatile u16 *)AS85EP1_CSC_ADDR(n))
-#define AS85EP1_BSC_ADDR       0xFFFFF066
-#define AS85EP1_BSC            (*(volatile u16 *)AS85EP1_BSC_ADDR)
-#define AS85EP1_BCT_ADDR(n)    (0xFFFFF480 + (n) * 2)
-#define AS85EP1_BCT(n)         (*(volatile u16 *)AS85EP1_BCT_ADDR(n))
-#define AS85EP1_DWC_ADDR(n)    (0xFFFFF484 + (n) * 2)
-#define AS85EP1_DWC(n)         (*(volatile u16 *)AS85EP1_DWC_ADDR(n))
-#define AS85EP1_BCC_ADDR       0xFFFFF488
-#define AS85EP1_BCC            (*(volatile u16 *)AS85EP1_BCC_ADDR)
-#define AS85EP1_ASC_ADDR       0xFFFFF48A
-#define AS85EP1_ASC            (*(volatile u16 *)AS85EP1_ASC_ADDR)
-#define AS85EP1_BCP_ADDR       0xFFFFF48C
-#define AS85EP1_BCP            (*(volatile u16 *)AS85EP1_BCP_ADDR)
-#define AS85EP1_LBS_ADDR       0xFFFFF48E
-#define AS85EP1_LBS            (*(volatile u16 *)AS85EP1_LBS_ADDR)
-#define AS85EP1_BMC_ADDR       0xFFFFF498
-#define AS85EP1_BMC            (*(volatile u16 *)AS85EP1_BMC_ADDR)
-#define AS85EP1_PRC_ADDR       0xFFFFF49A
-#define AS85EP1_PRC            (*(volatile u16 *)AS85EP1_PRC_ADDR)
-#define AS85EP1_SCR_ADDR(n)    (0xFFFFF4A0 + (n) * 4)
-#define AS85EP1_SCR(n)         (*(volatile u16 *)AS85EP1_SCR_ADDR(n))
-#define AS85EP1_RFS_ADDR(n)    (0xFFFFF4A2 + (n) * 4)
-#define AS85EP1_RFS(n)         (*(volatile u16 *)AS85EP1_RFS_ADDR(n))
-#define AS85EP1_IRAMM_ADDR     0xFFFFF80A
-#define AS85EP1_IRAMM          (*(volatile u8 *)AS85EP1_IRAMM_ADDR)
-
-
-
-/* I/O port P0-P13. */
-/* Direct I/O.  Bits 0-7 are pins Pn0-Pn7.  */
-#define AS85EP1_PORT_IO_ADDR(n)        (0xFFFFF400 + (n) * 2)
-#define AS85EP1_PORT_IO(n)     (*(volatile u8 *)AS85EP1_PORT_IO_ADDR(n))
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define AS85EP1_PORT_PM_ADDR(n)        (0xFFFFF420 + (n) * 2)
-#define AS85EP1_PORT_PM(n)     (*(volatile u8 *)AS85EP1_PORT_PM_ADDR(n))
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define AS85EP1_PORT_PMC_ADDR(n) (0xFFFFF440 + (n) * 2)
-#define AS85EP1_PORT_PMC(n)    (*(volatile u8 *)AS85EP1_PORT_PMC_ADDR(n))
-
-
-/* Hardware-specific interrupt numbers (in the kernel IRQ namespace).  */
-#define IRQ_INTCCC(n)  (0x0C + (n))
-#define IRQ_INTCCC_NUM 8
-#define IRQ_INTCMD(n)  (0x14 + (n)) /* interval timer interrupts 0-5 */
-#define IRQ_INTCMD_NUM 6
-#define IRQ_INTSRE(n)  (0x1E + (n)*3) /* UART 0-1 reception error */
-#define IRQ_INTSRE_NUM 2
-#define IRQ_INTSR(n)   (0x1F + (n)*3) /* UART 0-1 reception completion */
-#define IRQ_INTSR_NUM  2
-#define IRQ_INTST(n)   (0x20 + (n)*3) /* UART 0-1 transmission completion */
-#define IRQ_INTST_NUM  2
-
-#define NUM_CPU_IRQS   64
-
-#ifndef __ASSEMBLY__
-/* Initialize chip interrupts.  */
-extern void as85ep1_init_irqs (void);
-#endif
-
-
-/* AS85EP1 UART details (basically the same as the V850E/MA1, but 2 channels).  */
-#define V850E_UART_NUM_CHANNELS                2
-#define V850E_UART_BASE_FREQ           (SYS_CLOCK_FREQ / 4)
-#define V850E_UART_CHIP_NAME           "V850E/NA85E"
-
-/* This is a function that gets called before configuring the UART.  */
-#define V850E_UART_PRE_CONFIGURE       as85ep1_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void as85ep1_uart_pre_configure (unsigned chan,
-                                       unsigned cflags, unsigned baud);
-#endif
-
-/* This board supports RTS/CTS for the on-chip UART, but only for channel 1. */
-
-/* CTS for UART channel 1 is pin P54 (bit 4 of port 5).  */
-#define V850E_UART_CTS(chan)   ((chan) == 1 ? !(AS85EP1_PORT_IO(5) & 0x10) : 1)
-/* RTS for UART channel 1 is pin P53 (bit 3 of port 5).  */
-#define V850E_UART_SET_RTS(chan, val)                                        \
-   do {                                                                              \
-          if (chan == 1) {                                                   \
-                  unsigned old = AS85EP1_PORT_IO(5);                         \
-                  if (val)                                                   \
-                          AS85EP1_PORT_IO(5) = old & ~0x8;                   \
-                  else                                                       \
-                          AS85EP1_PORT_IO(5) = old | 0x8;                    \
-          }                                                                  \
-   } while (0)
-
-
-/* Timer C details.  */
-#define V850E_TIMER_C_BASE_ADDR                0xFFFFF600
-
-/* Timer D details (the AS85EP1 actually has 5 of these; should change later). */
-#define V850E_TIMER_D_BASE_ADDR                0xFFFFF540
-#define V850E_TIMER_D_TMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x0)
-#define V850E_TIMER_D_CMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x2)
-#define V850E_TIMER_D_TMCD_BASE_ADDR   (V850E_TIMER_D_BASE_ADDR + 0x4)
-
-#define V850E_TIMER_D_BASE_FREQ                SYS_CLOCK_FREQ
-#define V850E_TIMER_D_TMCD_CS_MIN      2 /* min 2^2 divider */
-
-
-#endif /* __V850_AS85EP1_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/asm.h -- Macros for writing assembly 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>
- */
-
-#define G_ENTRY(name)                                                        \
-   .balign 4;                                                                \
-   .globl name;                                                                      \
-   .type  name,@function;                                                    \
-   name
-#define G_DATA(name)                                                         \
-   .globl name;                                                                      \
-   .type  name,@object;                                                              \
-   name
-#define END(name)                                                            \
-   .size  name,.-name
-
-#define L_ENTRY(name)                                                        \
-   .balign 4;                                                                \
-   .type  name,@function;                                                    \
-   name
-#define L_DATA(name)                                                         \
-   .type  name,@object;                                                              \
-   name
 
+++ /dev/null
-/*
- * include/asm-v850/atomic.h -- Atomic operations
- *
- *  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>
- */
-
-#ifndef __V850_ATOMIC_H__
-#define __V850_ATOMIC_H__
-
-
-#include <asm/system.h>
-
-#ifdef CONFIG_SMP
-#error SMP not supported
-#endif
-
-typedef struct { int counter; } atomic_t;
-
-#define ATOMIC_INIT(i) { (i) }
-
-#ifdef __KERNEL__
-
-#define atomic_read(v)         ((v)->counter)
-#define atomic_set(v,i)                (((v)->counter) = (i))
-
-static inline int atomic_add_return (int i, volatile atomic_t *v)
-{
-       unsigned long flags;
-       int res;
-
-       local_irq_save (flags);
-       res = v->counter + i;
-       v->counter = res;
-       local_irq_restore (flags);
-
-       return res;
-}
-
-static __inline__ int atomic_sub_return (int i, volatile atomic_t *v)
-{
-       unsigned long flags;
-       int res;
-
-       local_irq_save (flags);
-       res = v->counter - i;
-       v->counter = res;
-       local_irq_restore (flags);
-
-       return res;
-}
-
-static __inline__ void atomic_clear_mask (unsigned long mask, unsigned long *addr)
-{
-       unsigned long flags;
-
-       local_irq_save (flags);
-       *addr &= ~mask;
-       local_irq_restore (flags);
-}
-
-#endif
-
-#define atomic_add(i, v)       atomic_add_return ((i), (v))
-#define atomic_sub(i, v)       atomic_sub_return ((i), (v))
-
-#define atomic_dec_return(v)   atomic_sub_return (1, (v))
-#define atomic_inc_return(v)   atomic_add_return (1, (v))
-#define atomic_inc(v)          atomic_inc_return (v)
-#define atomic_dec(v)          atomic_dec_return (v)
-
-/*
- * atomic_inc_and_test - increment and test
- * @v: pointer of type atomic_t
- *
- * Atomically increments @v by 1
- * and returns true if the result is zero, or false for all
- * other cases.
- */
-#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
-
-#define atomic_sub_and_test(i,v)       (atomic_sub_return ((i), (v)) == 0)
-#define atomic_dec_and_test(v)         (atomic_sub_return (1, (v)) == 0)
-#define atomic_add_negative(i,v)       (atomic_add_return ((i), (v)) < 0)
-
-static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
-{
-       int ret;
-       unsigned long flags;
-
-       local_irq_save(flags);
-       ret = v->counter;
-       if (likely(ret == old))
-               v->counter = new;
-       local_irq_restore(flags);
-
-       return ret;
-}
-
-#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
-
-static inline int atomic_add_unless(atomic_t *v, int a, int u)
-{
-       int ret;
-       unsigned long flags;
-
-       local_irq_save(flags);
-       ret = v->counter;
-       if (ret != u)
-               v->counter += a;
-       local_irq_restore(flags);
-
-       return ret != u;
-}
-
-#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
-
-/* Atomic operations are already serializing on ARM */
-#define smp_mb__before_atomic_dec()    barrier()
-#define smp_mb__after_atomic_dec()     barrier()
-#define smp_mb__before_atomic_inc()    barrier()
-#define smp_mb__after_atomic_inc()     barrier()
-
-#include <asm-generic/atomic.h>
-#endif /* __V850_ATOMIC_H__ */
 
+++ /dev/null
-#ifndef __V850_AUXVEC_H__
-#define __V850_AUXVEC_H__
-
-#endif /* __V850_AUXVEC_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/bitops.h -- Bit operations
- *
- *  Copyright (C) 2001,02,03,04,05  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03,04,05  Miles Bader <miles@gnu.org>
- *  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.
- */
-
-#ifndef __V850_BITOPS_H__
-#define __V850_BITOPS_H__
-
-#ifndef _LINUX_BITOPS_H
-#error only <linux/bitops.h> can be included directly
-#endif
-
-#include <linux/compiler.h>    /* unlikely  */
-#include <asm/byteorder.h>     /* swab32 */
-#include <asm/system.h>                /* interrupt enable/disable */
-
-
-#ifdef __KERNEL__
-
-#include <asm-generic/bitops/ffz.h>
-
-/*
- * The __ functions are not atomic
- */
-
-/* In the following constant-bit-op macros, a "g" constraint is used when
-   we really need an integer ("i" constraint).  This is to avoid
-   warnings/errors from the compiler in the case where the associated
-   operand _isn't_ an integer, and shouldn't produce bogus assembly because
-   use of that form is protected by a guard statement that checks for
-   constants, and should otherwise be removed by the optimizer.  This
-   _usually_ works -- however, __builtin_constant_p returns true for a
-   variable with a known constant value too, and unfortunately gcc will
-   happily put the variable in a register and use the register for the "g"
-   constraint'd asm operand.  To avoid the latter problem, we add a
-   constant offset to the operand and subtract it back in the asm code;
-   forcing gcc to do arithmetic on the value is usually enough to get it
-   to use a real constant value.  This is horrible, and ultimately
-   unreliable too, but it seems to work for now (hopefully gcc will offer
-   us more control in the future, so we can do a better job).  */
-
-#define __const_bit_op(op, nr, addr)                                   \
-  ({ __asm__ (op " (%0 - 0x123), %1"                                   \
-             :: "g" (((nr) & 0x7) + 0x123),                            \
-                "m" (*((char *)(addr) + ((nr) >> 3)))                  \
-             : "memory"); })
-#define __var_bit_op(op, nr, addr)                                     \
-  ({ int __nr = (nr);                                                  \
-     __asm__ (op " %0, [%1]"                                           \
-             :: "r" (__nr & 0x7),                                      \
-                "r" ((char *)(addr) + (__nr >> 3))                     \
-             : "memory"); })
-#define __bit_op(op, nr, addr)                                         \
-  ((__builtin_constant_p (nr) && (unsigned)(nr) <= 0x7FFFF)            \
-   ? __const_bit_op (op, nr, addr)                                     \
-   : __var_bit_op (op, nr, addr))
-
-#define __set_bit(nr, addr)            __bit_op ("set1", nr, addr)
-#define __clear_bit(nr, addr)          __bit_op ("clr1", nr, addr)
-#define __change_bit(nr, addr)         __bit_op ("not1", nr, addr)
-
-/* The bit instructions used by `non-atomic' variants are actually atomic.  */
-#define set_bit __set_bit
-#define clear_bit __clear_bit
-#define change_bit __change_bit
-
-
-#define __const_tns_bit_op(op, nr, addr)                                     \
-  ({ int __tns_res;                                                          \
-     __asm__ __volatile__ (                                                  \
-            "tst1 (%1 - 0x123), %2; setf nz, %0; " op " (%1 - 0x123), %2"    \
-            : "=&r" (__tns_res)                                              \
-            : "g" (((nr) & 0x7) + 0x123),                                    \
-              "m" (*((char *)(addr) + ((nr) >> 3)))                          \
-            : "memory");                                                     \
-     __tns_res;                                                                      \
-  })
-#define __var_tns_bit_op(op, nr, addr)                                       \
-  ({ int __nr = (nr);                                                        \
-     int __tns_res;                                                          \
-     __asm__ __volatile__ (                                                  \
-            "tst1 %1, [%2]; setf nz, %0; " op " %1, [%2]"                    \
-             : "=&r" (__tns_res)                                             \
-             : "r" (__nr & 0x7),                                             \
-               "r" ((char *)(addr) + (__nr >> 3))                            \
-             : "memory");                                                    \
-     __tns_res;                                                                      \
-  })
-#define __tns_bit_op(op, nr, addr)                                     \
-  ((__builtin_constant_p (nr) && (unsigned)(nr) <= 0x7FFFF)            \
-   ? __const_tns_bit_op (op, nr, addr)                                 \
-   : __var_tns_bit_op (op, nr, addr))
-#define __tns_atomic_bit_op(op, nr, addr)                              \
-  ({ int __tns_atomic_res, __tns_atomic_flags;                         \
-     local_irq_save (__tns_atomic_flags);                              \
-     __tns_atomic_res = __tns_bit_op (op, nr, addr);                   \
-     local_irq_restore (__tns_atomic_flags);                           \
-     __tns_atomic_res;                                                 \
-  })
-
-#define __test_and_set_bit(nr, addr)   __tns_bit_op ("set1", nr, addr)
-#define test_and_set_bit(nr, addr)     __tns_atomic_bit_op ("set1", nr, addr)
-
-#define __test_and_clear_bit(nr, addr) __tns_bit_op ("clr1", nr, addr)
-#define test_and_clear_bit(nr, addr)   __tns_atomic_bit_op ("clr1", nr, addr)
-
-#define __test_and_change_bit(nr, addr)        __tns_bit_op ("not1", nr, addr)
-#define test_and_change_bit(nr, addr)  __tns_atomic_bit_op ("not1", nr, addr)
-
-
-#define __const_test_bit(nr, addr)                                           \
-  ({ int __test_bit_res;                                                     \
-     __asm__ __volatile__ ("tst1 (%1 - 0x123), %2; setf nz, %0"                      \
-                          : "=r" (__test_bit_res)                            \
-                          : "g" (((nr) & 0x7) + 0x123),                      \
-                            "m" (*((const char *)(addr) + ((nr) >> 3))));    \
-     __test_bit_res;                                                         \
-  })
-static inline int __test_bit (int nr, const void *addr)
-{
-       int res;
-       __asm__ __volatile__ ("tst1 %1, [%2]; setf nz, %0"
-                             : "=r" (res)
-                             : "r" (nr & 0x7), "r" (addr + (nr >> 3)));
-       return res;
-}
-#define test_bit(nr,addr)                                              \
-  ((__builtin_constant_p (nr) && (unsigned)(nr) <= 0x7FFFF)            \
-   ? __const_test_bit ((nr), (addr))                                   \
-   : __test_bit ((nr), (addr)))
-
-
-/* clear_bit doesn't provide any barrier for the compiler.  */
-#define smp_mb__before_clear_bit()     barrier ()
-#define smp_mb__after_clear_bit()      barrier ()
-
-#include <asm-generic/bitops/ffs.h>
-#include <asm-generic/bitops/fls.h>
-#include <asm-generic/bitops/fls64.h>
-#include <asm-generic/bitops/__ffs.h>
-#include <asm-generic/bitops/find.h>
-#include <asm-generic/bitops/sched.h>
-#include <asm-generic/bitops/hweight.h>
-#include <asm-generic/bitops/lock.h>
-
-#include <asm-generic/bitops/ext2-non-atomic.h>
-#define ext2_set_bit_atomic(l,n,a)      test_and_set_bit(n,a)
-#define ext2_clear_bit_atomic(l,n,a)    test_and_clear_bit(n,a)
-
-#include <asm-generic/bitops/minix.h>
-
-#endif /* __KERNEL__ */
-
-#endif /* __V850_BITOPS_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/bug.h -- Bug reporting
- *
- *  Copyright (C) 2003  NEC Electronics 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>
- */
-
-#ifndef __V850_BUG_H__
-#define __V850_BUG_H__
-
-#ifdef CONFIG_BUG
-extern void __bug (void) __attribute__ ((noreturn));
-#define BUG()          __bug()
-#define HAVE_ARCH_BUG
-#endif
-
-#include <asm-generic/bug.h>
-
-#endif /* __V850_BUG_H__ */
 
+++ /dev/null
-/*
- *  include/asm-v850e/bugs.h
- *
- *  Copyright (C) 1994  Linus Torvalds
- */
-
-/*
- * This is included by init/main.c to check for architecture-dependent bugs.
- *
- * Needs:
- *     void check_bugs(void);
- */
-
-static void check_bugs(void)
-{
-}
 
+++ /dev/null
-/*
- * include/asm-v850/byteorder.h -- Endian id and conversion ops
- *
- *  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>
- */
-
-#ifndef __V850_BYTEORDER_H__
-#define __V850_BYTEORDER_H__
-
-#include <asm/types.h>
-#include <linux/compiler.h>
-
-#ifdef __GNUC__
-
-static __inline__ __attribute_const__ __u32 ___arch__swab32 (__u32 word)
-{
-       __u32 res;
-       __asm__ ("bsw %1, %0" : "=r" (res) : "r" (word));
-       return res;
-}
-
-static __inline__ __attribute_const__ __u16 ___arch__swab16 (__u16 half_word)
-{
-       __u16 res;
-       __asm__ ("bsh %1, %0" : "=r" (res) : "r" (half_word));
-       return res;
-}
-
-#define __arch__swab32(x) ___arch__swab32(x)
-#define __arch__swab16(x) ___arch__swab16(x)
-
-#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
-#  define __BYTEORDER_HAS_U64__
-#  define __SWAB_64_THRU_32__
-#endif
-
-#endif /* __GNUC__ */
-
-#include <linux/byteorder/little_endian.h>
-
-#endif /* __V850_BYTEORDER_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/cache.h -- Cache operations
- *
- *  Copyright (C) 2001,05  NEC Corporation
- *  Copyright (C) 2001,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>
- */
-
-#ifndef __V850_CACHE_H__
-#define __V850_CACHE_H__
-
-/* All cache operations are machine-dependent.  */
-#include <asm/machdep.h>
-
-#ifndef L1_CACHE_BYTES
-/* This processor has no cache, so just choose an arbitrary value.  */
-#define L1_CACHE_BYTES         16
-#define L1_CACHE_SHIFT         4
-#endif
-
-#endif /* __V850_CACHE_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/cacheflush.h
- *
- *  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_CACHEFLUSH_H__
-#define __V850_CACHEFLUSH_H__
-
-/* Somebody depends on this; sigh...  */
-#include <linux/mm.h>
-
-#include <asm/machdep.h>
-
-
-/* The following are all used by the kernel in ways that only affect
-   systems with MMUs, so we don't need them.  */
-#define flush_cache_all()                      ((void)0)
-#define flush_cache_mm(mm)                     ((void)0)
-#define flush_cache_dup_mm(mm)                 ((void)0)
-#define flush_cache_range(vma, start, end)     ((void)0)
-#define flush_cache_page(vma, vmaddr, pfn)     ((void)0)
-#define flush_dcache_page(page)                        ((void)0)
-#define flush_dcache_mmap_lock(mapping)                ((void)0)
-#define flush_dcache_mmap_unlock(mapping)      ((void)0)
-#define flush_cache_vmap(start, end)           ((void)0)
-#define flush_cache_vunmap(start, end)         ((void)0)
-
-#ifdef CONFIG_NO_CACHE
-
-/* Some systems have no cache at all, in which case we don't need these
-   either.  */
-#define flush_icache()                         ((void)0)
-#define flush_icache_range(start, end)         ((void)0)
-#define flush_icache_page(vma,pg)              ((void)0)
-#define flush_icache_user_range(vma,pg,adr,len)        ((void)0)
-#define flush_cache_sigtramp(vaddr)            ((void)0)
-
-#else /* !CONFIG_NO_CACHE */
-
-struct page;
-struct mm_struct;
-struct vm_area_struct;
-
-/* Otherwise, somebody had better define them.  */
-extern void flush_icache (void);
-extern void flush_icache_range (unsigned long start, unsigned long end);
-extern void flush_icache_page (struct vm_area_struct *vma, struct page *page);
-extern void flush_icache_user_range (struct vm_area_struct *vma,
-                                    struct page *page,
-                                    unsigned long adr, int len);
-extern void flush_cache_sigtramp (unsigned long addr);
-
-#endif /* CONFIG_NO_CACHE */
-
-#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
-do { memcpy(dst, src, len); \
-     flush_icache_user_range(vma, page, vaddr, len); \
-} while (0)
-#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
-       memcpy(dst, src, len)
-
-#endif /* __V850_CACHEFLUSH_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/checksum.h -- Checksum ops
- *
- *  Copyright (C) 2001,2005  NEC Corporation
- *  Copyright (C) 2001,2005  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_CHECKSUM_H__
-#define __V850_CHECKSUM_H__
-
-/*
- * computes the checksum of a memory block at buff, length len,
- * and adds in "sum" (32-bit)
- *
- * returns a 32-bit number suitable for feeding into itself
- * or csum_tcpudp_magic
- *
- * this function must be called with even lengths, except
- * for the last fragment, which may be odd
- *
- * it's best to have buff aligned on a 32-bit boundary
- */
-extern __wsum csum_partial(const void *buff, int len, __wsum sum);
-
-/*
- * the same as csum_partial, but copies from src while it
- * checksums
- *
- * here even more important to align src and dst on a 32-bit (or even
- * better 64-bit) boundary
- */
-extern __wsum csum_partial_copy_nocheck(const void *src,
-                                  void *dst, int len, __wsum sum);
-
-
-/*
- * the same as csum_partial_copy, but copies from user space.
- *
- * here even more important to align src and dst on a 32-bit (or even
- * better 64-bit) boundary
- */
-extern __wsum csum_partial_copy_from_user (const void *src,
-                                            void *dst,
-                                            int len, __wsum sum,
-                                            int *csum_err);
-
-__sum16 ip_fast_csum(const void *iph, unsigned int ihl);
-
-/*
- *     Fold a partial checksum
- */
-static inline __sum16 csum_fold (__wsum sum)
-{
-       unsigned int result;
-       /*
-                               %0              %1
-             hsw %1, %0        H     L         L     H
-             add %1, %0        H     L         H+L+C H+L
-       */
-       asm ("hsw %1, %0; add %1, %0" : "=&r" (result) : "r" (sum));
-       return (__force __sum16)(~result >> 16);
-}
-
-
-/*
- * computes the checksum of the TCP/UDP pseudo-header
- * returns a 16-bit checksum, already complemented
- */
-static inline __wsum
-csum_tcpudp_nofold (__be32 saddr, __be32 daddr,
-                   unsigned short len,
-                   unsigned short proto, __wsum sum)
-{
-       int __carry;
-       __asm__ ("add %2, %0;"
-                "setf c, %1;"
-                "add %1, %0;"
-                "add %3, %0;"
-                "setf c, %1;"
-                "add %1, %0;"
-                "add %4, %0;"
-                "setf c, %1;"
-                "add %1, %0"
-                : "=&r" (sum), "=&r" (__carry)
-                : "r" (daddr), "r" (saddr),
-                "r" ((len + proto) << 8),
-                "0" (sum));
-       return sum;
-}
-
-static inline __sum16
-csum_tcpudp_magic (__be32 saddr, __be32 daddr,
-                  unsigned short len,
-                  unsigned short proto, __wsum sum)
-{
-       return csum_fold (csum_tcpudp_nofold (saddr, daddr, len, proto, sum));
-}
-
-/*
- * this routine is used for miscellaneous IP-like checksums, mainly
- * in icmp.c
- */
-extern __sum16 ip_compute_csum(const void *buff, int len);
-
-
-#endif /* __V850_CHECKSUM_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/clinkage.h -- Macros to reflect C symbol-naming conventions
- *
- *  Copyright (C) 2001,02  NEC Corporatione
- *  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>
- */
-
-#ifndef __V850_CLINKAGE_H__
-#define __V850_CLINKAGE_H__
-
-#include <asm/macrology.h>
-#include <asm/asm.h>
-
-#define C_SYMBOL_NAME(name)    macrology_paste(_, name)
-#define C_SYMBOL_STRING(name)  macrology_stringify(C_SYMBOL_NAME(name))
-#define C_ENTRY(name)          G_ENTRY(C_SYMBOL_NAME(name))
-#define C_DATA(name)           G_DATA(C_SYMBOL_NAME(name))
-#define C_END(name)            END(C_SYMBOL_NAME(name))
-
-#endif /* __V850_CLINKAGE_H__ */
 
+++ /dev/null
-#ifndef __V850_CPUTIME_H
-#define __V850_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __V850_CPUTIME_H */
 
+++ /dev/null
-/*
- * include/asm-v850/current.h -- Current task
- *
- *  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>
- */
-
-#ifndef __V850_CURRENT_H__
-#define __V850_CURRENT_H__
-
-#ifndef __ASSEMBLY__ /* <linux/thread_info.h> is not asm-safe.  */
-#include <linux/thread_info.h>
-#endif
-
-#include <asm/macrology.h>
-
-
-/* Register used to hold the current task pointer while in the kernel.
-   Any `call clobbered' register without a special meaning should be OK,
-   but check asm/v850/kernel/entry.S to be sure.  */
-#define CURRENT_TASK_REGNUM    16
-#define CURRENT_TASK           macrology_paste (r, CURRENT_TASK_REGNUM)
-
-
-#ifdef __ASSEMBLY__
-
-/* Put a pointer to the current task structure into REG.  */
-#define GET_CURRENT_TASK(reg)                                          \
-       GET_CURRENT_THREAD(reg);                                        \
-       ld.w    TI_TASK[reg], reg
-
-#else /* !__ASSEMBLY__ */
-
-/* A pointer to the current task.  */
-register struct task_struct *current                                   \
-   __asm__ (macrology_stringify (CURRENT_TASK));
-
-#endif /* __ASSEMBLY__ */
-
-
-#endif /* _V850_CURRENT_H */
 
+++ /dev/null
-/*
- * include/asm-v850/delay.h -- Delay routines, using a pre-computed
- *     "loops_per_second" value
- *
- *  Copyright (C) 2001,03  NEC Corporation
- *  Copyright (C) 2001,03  Miles Bader <miles@gnu.org>
- *  Copyright (C) 1994 Hamish Macdonald
- *
- * 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.
- */
-
-#ifndef __V850_DELAY_H__
-#define __V850_DELAY_H__
-
-#include <asm/param.h>
-
-static inline void __delay(unsigned long loops)
-{
-       if (loops)
-               __asm__ __volatile__ ("1: add -1, %0; bnz 1b"
-                                     : "=r" (loops) : "0" (loops));
-}
-
-/*
- * Use only for very small delays ( < 1 msec).  Should probably use a
- * lookup table, really, as the multiplications take much too long with
- * short delays.  This is a "reasonable" implementation, though (and the
- * first constant multiplications gets optimized away if the delay is
- * a constant)  
- */
-
-extern unsigned long loops_per_jiffy;
-
-static inline void udelay(unsigned long usecs)
-{
-       register unsigned long full_loops, part_loops;
-
-       full_loops = ((usecs * HZ) / 1000000) * loops_per_jiffy;
-       usecs %= (1000000 / HZ);
-       part_loops = (usecs * HZ * loops_per_jiffy) / 1000000;
-
-       __delay(full_loops + part_loops);
-}
-
-#endif /* __V850_DELAY_H__ */
 
+++ /dev/null
-/*
- * Arch specific extensions to struct device
- *
- * This file is released under the GPLv2
- */
-#include <asm-generic/device.h>
-
 
+++ /dev/null
-#include <asm-generic/div64.h>
 
+++ /dev/null
-#ifndef __V850_DMA_MAPPING_H__
-#define __V850_DMA_MAPPING_H__
-
-
-#ifdef CONFIG_PCI
-#include <asm-generic/dma-mapping.h>
-#else
-#include <asm-generic/dma-mapping-broken.h>
-#endif
-
-#endif /* __V850_DMA_MAPPING_H__ */
 
+++ /dev/null
-#ifndef __V850_DMA_H__
-#define __V850_DMA_H__
-
-/* What should this be?  */
-#define MAX_DMA_ADDRESS        0xFFFFFFFF
-
-/* reserve a DMA channel */
-extern int request_dma (unsigned int dmanr, const char * device_id);
-/* release it again */
-extern void free_dma (unsigned int dmanr);
-
-#ifdef CONFIG_PCI
-extern int isa_dma_bridge_buggy;
-#else
-#define isa_dma_bridge_buggy    (0)
-#endif
-
-#endif /* __V850_DMA_H__ */
 
+++ /dev/null
-#ifndef __V850_ELF_H__
-#define __V850_ELF_H__
-
-/*
- * ELF register definitions..
- */
-
-#include <asm/ptrace.h>
-#include <asm/user.h>
-#include <asm/byteorder.h>
-
-typedef unsigned long elf_greg_t;
-
-#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef struct user_fpu_struct elf_fpregset_t;
-
-/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(x)  \
-  ((x)->e_machine == EM_V850 || (x)->e_machine == EM_CYGNUS_V850)
-
-
-/* v850 relocation types.  */
-#define R_V850_NONE            0
-#define R_V850_9_PCREL         1
-#define R_V850_22_PCREL                2
-#define R_V850_HI16_S          3
-#define R_V850_HI16            4
-#define R_V850_LO16            5
-#define R_V850_32              6
-#define R_V850_16              7
-#define R_V850_8               8
-#define R_V850_SDA_16_16_OFFSET        9       /* For ld.b, st.b, set1, clr1,
-                                          not1, tst1, movea, movhi */
-#define R_V850_SDA_15_16_OFFSET        10      /* For ld.w, ld.h, ld.hu, st.w, st.h */
-#define R_V850_ZDA_16_16_OFFSET        11      /* For ld.b, st.b, set1, clr1,
-                                          not1, tst1, movea, movhi */
-#define R_V850_ZDA_15_16_OFFSET        12      /* For ld.w, ld.h, ld.hu, st.w, st.h */
-#define R_V850_TDA_6_8_OFFSET  13      /* For sst.w, sld.w */
-#define R_V850_TDA_7_8_OFFSET  14      /* For sst.h, sld.h */
-#define R_V850_TDA_7_7_OFFSET  15      /* For sst.b, sld.b */
-#define R_V850_TDA_16_16_OFFSET        16      /* For set1, clr1, not1, tst1,
-                                          movea, movhi */
-#define R_V850_NUM             17
-
-
-/*
- * These are used to set parameters in the core dumps.
- */
-#define ELF_CLASS      ELFCLASS32
-#ifdef __LITTLE_ENDIAN__
-#define ELF_DATA       ELFDATA2LSB
-#else
-#define ELF_DATA       ELFDATA2MSB
-#endif
-#define ELF_ARCH       EM_V850
-
-#define USE_ELF_CORE_DUMP
-#define ELF_EXEC_PAGESIZE      4096
-
-
-#define ELF_CORE_COPY_REGS(_dest,_regs)                                \
-       memcpy((char *) &_dest, (char *) _regs,                 \
-              sizeof(struct pt_regs));
-
-/* This yields a mask that user programs can use to figure out what
-   instruction set this CPU supports.  This could be done in user space,
-   but it's not easy, and we've already done it here.  */
-
-#define ELF_HWCAP      (0)
-
-/* This yields a string that ld.so will use to load implementation
-   specific libraries for optimization.  This is more specific in
-   intent than poking at uname or /proc/cpuinfo.
-
-   For the moment, we have only optimizations for the Intel generations,
-   but that could change... */
-
-#define ELF_PLATFORM  (NULL)
-
-#define ELF_PLAT_INIT(_r, load_addr)                                         \
-  do {                                                                       \
-        _r->gpr[0] =  _r->gpr[1] =  _r->gpr[2] =  _r->gpr[3] =               \
-        _r->gpr[4] =  _r->gpr[5] =  _r->gpr[6] =  _r->gpr[7] =               \
-        _r->gpr[8] =  _r->gpr[9] = _r->gpr[10] = _r->gpr[11] =               \
-       _r->gpr[12] = _r->gpr[13] = _r->gpr[14] = _r->gpr[15] =               \
-       _r->gpr[16] = _r->gpr[17] = _r->gpr[18] = _r->gpr[19] =               \
-       _r->gpr[20] = _r->gpr[21] = _r->gpr[22] = _r->gpr[23] =               \
-       _r->gpr[24] = _r->gpr[25] = _r->gpr[26] = _r->gpr[27] =               \
-       _r->gpr[28] = _r->gpr[29] = _r->gpr[30] = _r->gpr[31] =               \
-       0;                                                                    \
-  } while (0)
-
-#define SET_PERSONALITY(ex, ibcs2) set_personality(PER_LINUX_32BIT)
-
-#endif /* __V850_ELF_H__ */
 
+++ /dev/null
-#ifndef _ASM_EMERGENCY_RESTART_H
-#define _ASM_EMERGENCY_RESTART_H
-
-#include <asm-generic/emergency-restart.h>
-
-#endif /* _ASM_EMERGENCY_RESTART_H */
 
+++ /dev/null
-/*
- * include/asm-v850/entry.h -- Definitions used by low-level trap handlers
- *
- *  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_ENTRY_H__
-#define __V850_ENTRY_H__
-
-
-#include <asm/ptrace.h>
-#include <asm/machdep.h>
-
-
-/* These are special variables using by the kernel trap/interrupt code
-   to save registers in, at a time when there are no spare registers we
-   can use to do so, and we can't depend on the value of the stack
-   pointer.  This means that they must be within a signed 16-bit
-   displacement of 0x00000000.  */
-
-#define KERNEL_VAR_SPACE_ADDR  R0_RAM_ADDR
-
-#ifdef __ASSEMBLY__
-#define KERNEL_VAR(addr)       addr[r0]
-#else
-#define KERNEL_VAR(addr)       (*(volatile unsigned long *)(addr))
-#endif
-
-/* Kernel stack pointer, 4 bytes.  */
-#define KSP_ADDR               (KERNEL_VAR_SPACE_ADDR +  0)
-#define KSP                    KERNEL_VAR (KSP_ADDR)
-/* 1 if in kernel-mode, 0 if in user mode, 1 byte.  */
-#define KM_ADDR                (KERNEL_VAR_SPACE_ADDR +  4)
-#define KM                     KERNEL_VAR (KM_ADDR)
-/* Temporary storage for interrupt handlers, 4 bytes.  */
-#define INT_SCRATCH_ADDR       (KERNEL_VAR_SPACE_ADDR +  8)
-#define INT_SCRATCH            KERNEL_VAR (INT_SCRATCH_ADDR)
-/* Where the stack-pointer is saved when jumping to various sorts of
-   interrupt handlers.  ENTRY_SP is used by everything except NMIs,
-   which have their own location.  Higher-priority NMIs can clobber the
-   value written by a lower priority NMI, since they can't be disabled,
-   but that's OK, because only NMI0 (the lowest-priority one) is allowed
-   to return.  */
-#define ENTRY_SP_ADDR          (KERNEL_VAR_SPACE_ADDR + 12)
-#define ENTRY_SP               KERNEL_VAR (ENTRY_SP_ADDR)
-#define NMI_ENTRY_SP_ADDR      (KERNEL_VAR_SPACE_ADDR + 16)
-#define NMI_ENTRY_SP           KERNEL_VAR (NMI_ENTRY_SP_ADDR)
-
-#ifdef CONFIG_RESET_GUARD
-/* Used to detect unexpected resets (since the v850 has no MMU, any call
-   through a null pointer will jump to the reset vector).  We detect
-   such resets by checking for a magic value, RESET_GUARD_ACTIVE, in
-   this location.  Properly resetting the machine stores zero there, so
-   it shouldn't trigger the guard; the power-on value is uncertain, but
-   it's unlikely to be RESET_GUARD_ACTIVE.  */
-#define RESET_GUARD_ADDR       (KERNEL_VAR_SPACE_ADDR + 28)
-#define RESET_GUARD            KERNEL_VAR (RESET_GUARD_ADDR)
-#define RESET_GUARD_ACTIVE     0xFAB4BEEF
-#endif /* CONFIG_RESET_GUARD */
-
-#ifdef CONFIG_V850E_HIGHRES_TIMER
-#define HIGHRES_TIMER_SLOW_TICKS_ADDR (KERNEL_VAR_SPACE_ADDR + 32)
-#define HIGHRES_TIMER_SLOW_TICKS     KERNEL_VAR (HIGHRES_TIMER_SLOW_TICKS_ADDR)
-#endif /* CONFIG_V850E_HIGHRES_TIMER */
-
-#ifndef __ASSEMBLY__
-
-#ifdef CONFIG_RESET_GUARD
-/* Turn off reset guard, so that resetting the machine works normally.
-   This should be called in the various machine_halt, etc., functions.  */
-static inline void disable_reset_guard (void)
-{
-       RESET_GUARD = 0;
-}
-#endif /* CONFIG_RESET_GUARD */
-
-#endif /* !__ASSEMBLY__ */
-
-
-/* A `state save frame' is a struct pt_regs preceded by some extra space
-   suitable for a function call stack frame.  */
-
-/* Amount of room on the stack reserved for arguments and to satisfy the
-   C calling conventions, in addition to the space used by the struct
-   pt_regs that actually holds saved values.  */
-#define STATE_SAVE_ARG_SPACE   (6*4) /* Up to six arguments.  */
-
-
-#ifdef __ASSEMBLY__
-
-/* The size of a state save frame.  */
-#define STATE_SAVE_SIZE                (PT_SIZE + STATE_SAVE_ARG_SPACE)
-
-#else /* !__ASSEMBLY__ */
-
-/* The size of a state save frame.  */
-#define STATE_SAVE_SIZE               (sizeof (struct pt_regs) + STATE_SAVE_ARG_SPACE)
-
-#endif /* __ASSEMBLY__ */
-
-
-/* Offset of the struct pt_regs in a state save frame.  */
-#define STATE_SAVE_PT_OFFSET   STATE_SAVE_ARG_SPACE
-
-
-#endif /* __V850_ENTRY_H__ */
 
+++ /dev/null
-#ifndef __V850_ERRNO_H__
-#define __V850_ERRNO_H__
-
-#include <asm-generic/errno.h>
-
-#endif /* __V850_ERRNO_H__ */
 
+++ /dev/null
-#ifndef _ASM_FB_H_
-#define _ASM_FB_H_
-#include <linux/fb.h>
-
-#define fb_pgprotect(...) do {} while (0)
-
-static inline int fb_is_primary_device(struct fb_info *info)
-{
-       return 0;
-}
-
-#endif /* _ASM_FB_H_ */
 
+++ /dev/null
-#ifndef __V850_FCNTL_H__
-#define __V850_FCNTL_H__
-
-#define O_DIRECTORY    040000  /* must be a directory */
-#define O_NOFOLLOW     0100000 /* don't follow links */
-#define O_DIRECT       0200000 /* direct disk access hint - currently ignored */
-#define O_LARGEFILE    0400000
-
-#include <asm-generic/fcntl.h>
-
-#endif /* __V850_FCNTL_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/flat.h -- uClinux flat-format executables
- *
- *  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>
- */
-
-#ifndef __V850_FLAT_H__
-#define __V850_FLAT_H__
-
-/* The amount by which a relocation can exceed the program image limits
-   without being regarded as an error.  On the v850, the relocations of
-   some base-pointers can be offset by 0x8000 (to allow better usage of the
-   space offered by 16-bit signed offsets -- in most cases the offsets used
-   with such a base-pointer will be negative).  */
-
-#define        flat_reloc_valid(reloc, size)   ((reloc) <= (size + 0x8000))
-
-#define        flat_stack_align(sp)            /* nothing needed */
-#define        flat_argvp_envp_on_stack()      0
-#define        flat_old_ram_flag(flags)        (flags)
-#define        flat_set_persistent(relval, p)  0
-
-/* We store the type of relocation in the top 4 bits of the `relval.' */
-
-/* Convert a relocation entry into an address.  */
-static inline unsigned long
-flat_get_relocate_addr (unsigned long relval)
-{
-       return relval & 0x0fffffff; /* Mask out top 4-bits */
-}
-
-#define flat_v850_get_reloc_type(relval) ((relval) >> 28)
-
-#define FLAT_V850_R_32         0 /* Normal 32-bit reloc */
-#define FLAT_V850_R_HI16S_LO15 1 /* High 16-bits + signed 15-bit low field */
-#define FLAT_V850_R_HI16S_LO16 2 /* High 16-bits + signed 16-bit low field */
-
-/* Extract the address to be relocated from the symbol reference at RP;
-   RELVAL is the raw relocation-table entry from which RP is derived.
-   For the v850, RP should always be half-word aligned.  */
-static inline unsigned long flat_get_addr_from_rp (unsigned long *rp,
-                                                  unsigned long relval,
-                                                  unsigned long flags,
-                                                  unsigned long *persistent)
-{
-       short *srp = (short *)rp;
-
-       switch (flat_v850_get_reloc_type (relval))
-       {
-       case FLAT_V850_R_32:
-               /* Simple 32-bit address.  */
-               return srp[0] | (srp[1] << 16);
-
-       case FLAT_V850_R_HI16S_LO16:
-               /* The high and low halves of the address are in the 16
-                  bits at RP, and the 2nd word of the 32-bit instruction
-                  following that, respectively.  The low half is _signed_
-                  so we have to sign-extend it and add it to the upper
-                  half instead of simply or-ing them together.
-
-                  Unlike most relocated address, this one is stored in
-                  native (little-endian) byte-order to avoid problems with
-                  trashing the low-order bit, so we have to convert to
-                  network-byte-order before returning, as that's what the
-                  caller expects.  */
-               return htonl ((srp[0] << 16) + srp[2]);
-
-       case FLAT_V850_R_HI16S_LO15:
-               /* The high and low halves of the address are in the 16
-                  bits at RP, and the upper 15 bits of the 2nd word of the
-                  32-bit instruction following that, respectively.  The
-                  low half is _signed_ so we have to sign-extend it and
-                  add it to the upper half instead of simply or-ing them
-                  together.  The lowest bit is always zero.
-
-                  Unlike most relocated address, this one is stored in
-                  native (little-endian) byte-order to avoid problems with
-                  trashing the low-order bit, so we have to convert to
-                  network-byte-order before returning, as that's what the
-                  caller expects.  */
-               return htonl ((srp[0] << 16) + (srp[2] & ~0x1));
-
-       default:
-               return ~0;      /* bogus value */
-       }
-}
-
-/* Insert the address ADDR into the symbol reference at RP;
-   RELVAL is the raw relocation-table entry from which RP is derived.
-   For the v850, RP should always be half-word aligned.  */
-static inline void flat_put_addr_at_rp (unsigned long *rp, unsigned long addr,
-                                       unsigned long relval)
-{
-       short *srp = (short *)rp;
-
-       switch (flat_v850_get_reloc_type (relval)) {
-       case FLAT_V850_R_32:
-               /* Simple 32-bit address.  */
-               srp[0] = addr & 0xFFFF;
-               srp[1] = (addr >> 16);
-               break;
-
-       case FLAT_V850_R_HI16S_LO16:
-               /* The high and low halves of the address are in the 16
-                  bits at RP, and the 2nd word of the 32-bit instruction
-                  following that, respectively.  The low half is _signed_
-                  so we must carry its sign bit to the upper half before
-                  writing the upper half.  */
-               srp[0] = (addr >> 16) + ((addr >> 15) & 0x1);
-               srp[2] = addr & 0xFFFF;
-               break;
-
-       case FLAT_V850_R_HI16S_LO15:
-               /* The high and low halves of the address are in the 16
-                  bits at RP, and the upper 15 bits of the 2nd word of the
-                  32-bit instruction following that, respectively.  The
-                  low half is _signed_ so we must carry its sign bit to
-                  the upper half before writing the upper half.  The
-                  lowest bit we preserve from the existing instruction.  */
-               srp[0] = (addr >> 16) + ((addr >> 15) & 0x1);
-               srp[2] = (addr & 0xFFFE) | (srp[2] & 0x1);
-               break;
-       }
-}
-
-#endif /* __V850_FLAT_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/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>
- */
-
-#ifndef __V850_FPGA85E2C_H__
-#define __V850_FPGA85E2C_H__
-
-#include <asm/v850e2.h>
-#include <asm/clinkage.h>
-
-
-#define CPU_MODEL      "v850e2/fpga85e2c"
-#define CPU_MODEL_LONG "NEC V850E2/NA85E2C"
-#define PLATFORM       "fpga85e2c"
-#define PLATFORM_LONG  "NA85E2C FPGA implementation"
-
-
-/* `external ram'.  */
-#define ERAM_ADDR              0
-#define ERAM_SIZE              0x00100000 /* 1MB */
-
-
-/* FPGA specific control registers.  */
-
-/* Writing a non-zero value to FLGREG(0) will signal the controlling CPU
-   to stop execution.  */
-#define FLGREG_ADDR(n)         (0xFFE80100 + 2*(n))
-#define FLGREG(n)              (*(volatile unsigned char *)FLGREG_ADDR (n))
-#define FLGREG_NUM             2
-
-#define CSDEV_ADDR(n)          (0xFFE80110 + 2*(n))
-#define CSDEV(n)               (*(volatile unsigned char *)CSDEV_ADDR (n))
-
-
-/* Timer interrupts 0-3, interrupt at intervals from CLK/4096 to CLK/16384.  */
-#define IRQ_RPU(n)             (60 + (n))
-#define IRQ_RPU_NUM            4
-
-/* For <asm/irq.h> */
-#define NUM_CPU_IRQS           64
-
-
-/* General-purpose timer.  */
-/* control/status register (can only be read/written via bit insns) */
-#define RPU_GTMC_ADDR          0xFFFFFB00
-#define RPU_GTMC               (*(volatile unsigned char *)RPU_GTMC_ADDR)
-#define RPU_GTMC_CE_BIT                7 /* clock enable (control) */
-#define RPU_GTMC_OV_BIT                6 /* overflow (status) */
-#define RPU_GTMC_CLK_BIT       1 /* 0 = .5 MHz CLK, 1 = 1 Mhz (control) */
-/* 32-bit count (8 least-significant bits are always zero).  */
-#define RPU_GTM_ADDR           0xFFFFFB28
-#define RPU_GTM                        (*(volatile unsigned long *)RPU_GTMC_ADDR)
-
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET            ERAM_ADDR /* minimum allocatable address */
-
-
-/* For <asm/entry.h> */
-/* `R0 RAM', used for a few miscellaneous variables that must be accessible
-   using a load instruction relative to R0.  The FPGA implementation
-   actually has no on-chip RAM, so we use part of main ram just after the
-   interrupt vectors.  */
-#ifdef __ASSEMBLY__
-#define R0_RAM_ADDR            lo(C_SYMBOL_NAME(_r0_ram))
-#else
-extern char _r0_ram;
-#define R0_RAM_ADDR            ((unsigned long)&_r0_ram);
-#endif
-
-
-#endif /* __V850_FPGA85E2C_H__ */
 
+++ /dev/null
-#ifndef _ASM_FUTEX_H
-#define _ASM_FUTEX_H
-
-#include <asm-generic/futex.h>
-
-#endif
 
+++ /dev/null
-/*
- * include/asm-v850/gbus_int.h -- Midas labs GBUS interrupt support
- *
- *  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>
- */
-
-#ifndef __V850_GBUS_INT_H__
-#define __V850_GBUS_INT_H__
-
-
-/* The GBUS interrupt interface has 32 interrupts shared among 4
-   processor interrupts.  The 32 GBUS interrupts are divided into two
-   sets of 16 each, for allocating among control registers, etc (there
-   are two of each control register, with bits 0-15 controlling an
-   interrupt each).  */
-
-/* The GBUS interrupts themselves.  */
-#define IRQ_GBUS_INT(n)                (GBUS_INT_BASE_IRQ + (n))
-#define IRQ_GBUS_INT_NUM       32
-
-/* Control registers.  */
-#define GBUS_INT_STATUS_ADDR(w)        (GBUS_INT_BASE_ADDR + (w)*0x40)
-#define GBUS_INT_STATUS(w)     (*(volatile u16 *)GBUS_INT_STATUS_ADDR(w))
-#define GBUS_INT_CLEAR_ADDR(w) (GBUS_INT_BASE_ADDR + 0x10 + (w)*0x40)
-#define GBUS_INT_CLEAR(w)      (*(volatile u16 *)GBUS_INT_CLEAR_ADDR(w))
-#define GBUS_INT_EDGE_ADDR(w)  (GBUS_INT_BASE_ADDR + 0x20 + (w)*0x40)
-#define GBUS_INT_EDGE(w)       (*(volatile u16 *)GBUS_INT_EDGE_ADDR(w))
-#define GBUS_INT_POLARITY_ADDR(w)      (GBUS_INT_BASE_ADDR + 0x30 + (w)*0x40)
-#define GBUS_INT_POLARITY(w)   (*(volatile u16 *)GBUS_INT_POLARITY_ADDR(w))
-/* This allows enabling interrupt bits in word W for interrupt GINTn.  */
-#define GBUS_INT_ENABLE_ADDR(w, n) \
-   (GBUS_INT_BASE_ADDR + 0x100 + (w)*0x10 + (n)*0x20)
-#define GBUS_INT_ENABLE(w, n)  (*(volatile u16 *)GBUS_INT_ENABLE_ADDR(w, n))
-
-/* Mapping between kernel interrupt numbers and hardware control regs/bits.  */
-#define GBUS_INT_BITS_PER_WORD 16
-#define GBUS_INT_NUM_WORDS     (IRQ_GBUS_INT_NUM / GBUS_INT_BITS_PER_WORD)
-#define GBUS_INT_IRQ_WORD(irq) (((irq) - GBUS_INT_BASE_IRQ) >> 4)
-#define GBUS_INT_IRQ_BIT(irq)  (((irq) - GBUS_INT_BASE_IRQ) & 0xF)
-#define GBUS_INT_IRQ_MASK(irq) (1 << GBUS_INT_IRQ_BIT(irq))
-
-
-/* Possible priorities for GBUS interrupts.  */
-#define GBUS_INT_PRIORITY_HIGH         2
-#define GBUS_INT_PRIORITY_MEDIUM       4
-#define GBUS_INT_PRIORITY_LOW          6
-
-
-#ifndef __ASSEMBLY__
-
-/* Enable interrupt handling for interrupt IRQ.  */
-extern void gbus_int_enable_irq (unsigned 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'.  */
-extern void gbus_int_disable_irq (unsigned irq);
-/* Return true if interrupt handling for interrupt IRQ is enabled.  */
-extern int gbus_int_irq_enabled (unsigned irq);
-/* Disable all GBUS irqs.  */
-extern void gbus_int_disable_irqs (void);
-/* Clear any pending interrupts for IRQ.  */
-extern void gbus_int_clear_pending_irq (unsigned irq);
-/* Return true if interrupt IRQ is pending (but disabled).  */
-extern int gbus_int_irq_pending (unsigned irq);
-
-
-struct gbus_int_irq_init {
-       const char *name;       /* name of interrupt type */
-
-       /* Range of kernel irq numbers for this type:
-          BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM  */
-       unsigned base, num, interval;
-
-       unsigned priority;      /* interrupt priority to assign */
-};
-struct hw_interrupt_type;      /* fwd decl */
-
-/* Initialize HW_IRQ_TYPES for GBUS irqs described in array
-   INITS (which is terminated by an entry with the name field == 0).  */
-extern void gbus_int_init_irq_types (struct gbus_int_irq_init *inits,
-                                    struct hw_interrupt_type *hw_irq_types);
-
-/* Initialize GBUS interrupts.  */
-extern void gbus_int_init_irqs (void);
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_GBUS_INT_H__ */
 
+++ /dev/null
-#ifndef __V850_HARDIRQ_H__
-#define __V850_HARDIRQ_H__
-
-#include <linux/threads.h>
-#include <linux/cache.h>
-
-#include <asm/irq.h>
-
-typedef struct {
-       unsigned int __softirq_pending;
-} ____cacheline_aligned irq_cpustat_t;
-
-#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
-
-#define HARDIRQ_BITS   8
-
-/*
- * The hardirq mask has to be large enough to have
- * space for potentially all IRQ sources in the system
- * nesting on a single CPU:
- */
-#if (1 << HARDIRQ_BITS) < NR_IRQS
-# error HARDIRQ_BITS is too low!
-#endif
-
-void ack_bad_irq(unsigned int irq);
-
-#endif /* __V850_HARDIRQ_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/highres_timer.h -- High resolution timing routines
- *
- *  Copyright (C) 2001,03  NEC Electronics Corporation
- *  Copyright (C) 2001,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_HIGHRES_TIMER_H__
-#define __V850_HIGHRES_TIMER_H__
-
-#ifndef __ASSEMBLY__
-#include <linux/time.h>
-#endif
-
-#include <asm/entry.h>
-
-
-/* Frequency of the `slow ticks' (one tick each time the fast-tick
-   counter overflows).  */
-#define HIGHRES_TIMER_SLOW_TICK_RATE   25
-
-/* Which timer in the V850E `Timer D' we use.  */
-#define HIGHRES_TIMER_TIMER_D_UNIT     3
-
-
-#ifndef __ASSEMBLY__
-
-extern void highres_timer_start (void), highres_timer_stop (void);
-extern void highres_timer_reset (void);
-extern void highres_timer_read_ticks (u32 *slow_ticks, u32 *fast_ticks);
-extern void highres_timer_ticks_to_timeval (u32 slow_ticks, u32 fast_ticks,
-                                           struct timeval *tv);
-extern void highres_timer_read (struct timeval *tv);
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_HIGHRES_TIMER_H__ */
 
+++ /dev/null
-#ifndef __V850_HW_IRQ_H__
-#define __V850_HW_IRQ_H__
-
-#endif /* __V850_HW_IRQ_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/io.h -- Misc I/O operations
- *
- *  Copyright (C) 2001,02,03,04,05  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03,04,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>
- */
-
-#ifndef __V850_IO_H__
-#define __V850_IO_H__
-
-#define IO_SPACE_LIMIT 0xFFFFFFFF
-
-#define readb(addr) \
-  ({ unsigned char __v = (*(volatile unsigned char *) (addr)); __v; })
-#define readw(addr) \
-  ({ unsigned short __v = (*(volatile unsigned short *) (addr)); __v; })
-#define readl(addr) \
-  ({ unsigned long __v = (*(volatile unsigned long *) (addr)); __v; })
-
-#define readb_relaxed(a) readb(a)
-#define readw_relaxed(a) readw(a)
-#define readl_relaxed(a) readl(a)
-
-#define writeb(val, addr) \
-  (void)((*(volatile unsigned char *) (addr)) = (val))
-#define writew(val, addr) \
-  (void)((*(volatile unsigned short *) (addr)) = (val))
-#define writel(val, addr) \
-  (void)((*(volatile unsigned int *) (addr)) = (val))
-
-#define __raw_readb readb
-#define __raw_readw readw
-#define __raw_readl readl
-#define __raw_writeb writeb
-#define __raw_writew writew
-#define __raw_writel writel
-
-#define inb(addr)      readb (addr)
-#define inw(addr)      readw (addr)
-#define inl(addr)      readl (addr)
-#define outb(x, addr)  ((void) writeb (x, addr))
-#define outw(x, addr)  ((void) writew (x, addr))
-#define outl(x, addr)  ((void) writel (x, addr))
-
-#define inb_p(port)            inb((port))
-#define outb_p(val, port)      outb((val), (port))
-#define inw_p(port)            inw((port))
-#define outw_p(val, port)      outw((val), (port))
-#define inl_p(port)            inl((port))
-#define outl_p(val, port)      outl((val), (port))
-
-static inline void insb (unsigned long port, void *dst, unsigned long count)
-{
-       unsigned char *p = dst;
-       while (count--)
-               *p++ = inb (port);
-}
-static inline void insw (unsigned long port, void *dst, unsigned long count)
-{
-       unsigned short *p = dst;
-       while (count--)
-               *p++ = inw (port);
-}
-static inline void insl (unsigned long port, void *dst, unsigned long count)
-{
-       unsigned long *p = dst;
-       while (count--)
-               *p++ = inl (port);
-}
-
-static inline void
-outsb (unsigned long port, const void *src, unsigned long count)
-{
-       const unsigned char *p = src;
-       while (count--)
-               outb (*p++, port);
-}
-static inline void
-outsw (unsigned long port, const void *src, unsigned long count)
-{
-       const unsigned short *p = src;
-       while (count--)
-               outw (*p++, port);
-}
-static inline void
-outsl (unsigned long port, const void *src, unsigned long count)
-{
-       const unsigned long *p = src;
-       while (count--)
-               outl (*p++, port);
-}
-
-
-/* Some places try to pass in an loff_t for PHYSADDR (?!), so we cast it to
-   long before casting it to a pointer to avoid compiler warnings.  */
-#define ioremap(physaddr, size)        ((void __iomem *)(unsigned long)(physaddr))
-#define iounmap(addr)          ((void)0)
-
-#define ioremap_nocache(physaddr, size)                ioremap (physaddr, size)
-#define ioremap_writethrough(physaddr, size)   ioremap (physaddr, size)
-#define ioremap_fullcache(physaddr, size)      ioremap (physaddr, size)
-
-#define ioread8(addr)          readb (addr)
-#define ioread16(addr)         readw (addr)
-#define ioread32(addr)         readl (addr)
-#define iowrite8(val, addr)    writeb (val, addr)
-#define iowrite16(val, addr)   writew (val, addr)
-#define iowrite32(val, addr)   writel (val, addr)
-
-#define mmiowb()
-
-#define page_to_phys(page)      ((page - mem_map) << PAGE_SHIFT)
-#if 0
-/* This is really stupid; don't define it.  */
-#define page_to_bus(page)       page_to_phys (page)
-#endif
-
-/* Conversion between virtual and physical mappings.  */
-#define phys_to_virt(addr)     ((void *)__phys_to_virt (addr))
-#define virt_to_phys(addr)     ((unsigned long)__virt_to_phys (addr))
-
-#define memcpy_fromio(dst, src, len) memcpy (dst, (void *)src, len)
-#define memcpy_toio(dst, src, len) memcpy ((void *)dst, src, len)
-
-/*
- * Convert a physical pointer to a virtual kernel pointer for /dev/mem
- * access
- */
-#define xlate_dev_mem_ptr(p)   __va(p)
-
-/*
- * Convert a virtual cached pointer to an uncached pointer
- */
-#define xlate_dev_kmem_ptr(p)  p
-
-#endif /* __V850_IO_H__ */
 
+++ /dev/null
-#include <asm-generic/ioctl.h>
 
+++ /dev/null
-#ifndef __V850_IOCTLS_H__
-#define __V850_IOCTLS_H__
-
-#include <asm/ioctl.h>
-
-/* 0x54 is just a magic number to make these relatively unique ('T') */
-
-#define TCGETS         0x5401
-#define TCSETS         0x5402
-#define TCSETSW                0x5403
-#define TCSETSF                0x5404
-#define TCGETA         0x5405
-#define TCSETA         0x5406
-#define TCSETAW                0x5407
-#define TCSETAF                0x5408
-#define TCSBRK         0x5409
-#define TCXONC         0x540A
-#define TCFLSH         0x540B
-#define TIOCEXCL       0x540C
-#define TIOCNXCL       0x540D
-#define TIOCSCTTY      0x540E
-#define TIOCGPGRP      0x540F
-#define TIOCSPGRP      0x5410
-#define TIOCOUTQ       0x5411
-#define TIOCSTI                0x5412
-#define TIOCGWINSZ     0x5413
-#define TIOCSWINSZ     0x5414
-#define TIOCMGET       0x5415
-#define TIOCMBIS       0x5416
-#define TIOCMBIC       0x5417
-#define TIOCMSET       0x5418
-#define TIOCGSOFTCAR   0x5419
-#define TIOCSSOFTCAR   0x541A
-#define FIONREAD       0x541B
-#define TIOCINQ                FIONREAD
-#define TIOCLINUX      0x541C
-#define TIOCCONS       0x541D
-#define TIOCGSERIAL    0x541E
-#define TIOCSSERIAL    0x541F
-#define TIOCPKT                0x5420
-#define FIONBIO                0x5421
-#define TIOCNOTTY      0x5422
-#define TIOCSETD       0x5423
-#define TIOCGETD       0x5424
-#define TCSBRKP                0x5425  /* Needed for POSIX tcsendbreak() */
-#define TIOCSBRK       0x5427  /* BSD compatibility */
-#define TIOCCBRK       0x5428  /* BSD compatibility */
-#define TIOCGSID       0x5429  /* Return the session ID of FD */
-#define TCGETS2                _IOR('T',0x2A, struct termios2)
-#define TCSETS2                _IOW('T',0x2B, struct termios2)
-#define TCSETSW2       _IOW('T',0x2C, struct termios2)
-#define TCSETSF2       _IOW('T',0x2D, struct termios2)
-#define TIOCGPTN       _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
-#define TIOCSPTLCK     _IOW('T',0x31, int)  /* Lock/unlock Pty */
-
-#define FIONCLEX       0x5450  /* these numbers need to be adjusted. */
-#define FIOCLEX                0x5451
-#define FIOASYNC       0x5452
-#define TIOCSERCONFIG  0x5453
-#define TIOCSERGWILD   0x5454
-#define TIOCSERSWILD   0x5455
-#define TIOCGLCKTRMIOS 0x5456
-#define TIOCSLCKTRMIOS 0x5457
-#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
-#define TIOCSERGETLSR   0x5459 /* Get line status register */
-#define TIOCSERGETMULTI 0x545A /* Get multiport config  */
-#define TIOCSERSETMULTI 0x545B /* Set multiport config */
-
-#define TIOCMIWAIT     0x545C  /* wait for a change on serial input line(s) */
-#define TIOCGICOUNT    0x545D  /* read serial port inline interrupt counts */
-#define FIOQSIZE       0x545E
-
-/* Used for packet mode */
-#define TIOCPKT_DATA            0
-#define TIOCPKT_FLUSHREAD       1
-#define TIOCPKT_FLUSHWRITE      2
-#define TIOCPKT_STOP            4
-#define TIOCPKT_START           8
-#define TIOCPKT_NOSTOP         16
-#define TIOCPKT_DOSTOP         32
-
-#define TIOCSER_TEMT    0x01   /* Transmitter physically empty */
-
-#endif /* __V850_IOCTLS_H__ */
 
+++ /dev/null
-#ifndef __V850E_IPCBUF_H__
-#define __V850E_IPCBUF_H__
-
-/*
- * The user_ipc_perm structure for v850e architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 32-bit mode_t and seq
- * - 2 miscellaneous 32-bit values
- */
-
-struct ipc64_perm
-{
-       __kernel_key_t          key;
-       __kernel_uid32_t        uid;
-       __kernel_gid32_t        gid;
-       __kernel_uid32_t        cuid;
-       __kernel_gid32_t        cgid;
-       __kernel_mode_t         mode;
-       unsigned short          __pad1;
-       unsigned short          seq;
-       unsigned short          __pad2;
-       unsigned long           __unused1;
-       unsigned long           __unused2;
-};
-
-#endif /* __V850E_IPCBUF_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/irq.h -- Machine interrupt handling
- *
- *  Copyright (C) 2001,02,04  NEC Electronics Corporation
- *  Copyright (C) 2001,02,04  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_IRQ_H__
-#define __V850_IRQ_H__
-
-#include <asm/machdep.h>
-
-/* Default NUM_MACH_IRQS.  */
-#ifndef NUM_MACH_IRQS
-#define NUM_MACH_IRQS  NUM_CPU_IRQS
-#endif
-
-/* NMIs have IRQ numbers from FIRST_NMI to FIRST_NMI+NUM_NMIS-1.  */
-#define FIRST_NMI      NUM_MACH_IRQS
-#define IRQ_NMI(n)     (FIRST_NMI + (n))
-/* v850 processors have 3 non-maskable interrupts.  */
-#define NUM_NMIS       3
-
-/* Includes both maskable and non-maskable irqs.  */
-#define NR_IRQS                (NUM_MACH_IRQS + NUM_NMIS)
-
-
-#ifndef __ASSEMBLY__
-
-struct pt_regs;
-struct hw_interrupt_type;
-struct irqaction;
-
-#define irq_canonicalize(irq)  (irq)
-
-/* 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.  */
-extern void
-init_irq_handlers (int base_irq, int num, int interval,
-                  struct hw_interrupt_type *irq_type);
-
-/* Handle interrupt IRQ.  REGS are the registers at the time of ther
-   interrupt.  */
-extern unsigned int handle_irq (int irq, struct pt_regs *regs);
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __V850_IRQ_H__ */
 
+++ /dev/null
-#include <asm-generic/irq_regs.h>
 
+++ /dev/null
-#include <asm-generic/kdebug.h>
 
+++ /dev/null
-#ifndef __V850_KMAP_TYPES_H__
-#define __V850_KMAP_TYPES_H__
-
-enum km_type {
-       KM_BOUNCE_READ,
-       KM_SKB_SUNRPC_DATA,
-       KM_SKB_DATA_SOFTIRQ,
-       KM_USER0,
-       KM_USER1,
-       KM_BIO_SRC_IRQ,
-       KM_BIO_DST_IRQ,
-       KM_PTE0,
-       KM_PTE1,
-       KM_IRQ0,
-       KM_IRQ1,
-       KM_TYPE_NR
-};
-
-#endif /* __V850_KMAP_TYPES_H__ */
 
+++ /dev/null
-#ifndef __LINUX_KVM_V850_H
-#define __LINUX_KVM_V850_H
-
-/* v850 does not support KVM */
-
-#endif
 
+++ /dev/null
-#ifndef __ASM_LINKAGE_H
-#define __ASM_LINKAGE_H
-
-#ifdef __ASSEMBLY__
-#include <asm/asm.h>
-#endif
-
-#endif
 
+++ /dev/null
-#ifndef __V850_LOCAL_H__
-#define __V850_LOCAL_H__
-
-#include <asm-generic/local.h>
-
-#endif /* __V850_LOCAL_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/ma.h -- 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>
- */
-
-#ifndef __V850_MA_H__
-#define __V850_MA_H__
-
-/* The MA series uses the V850E cpu core.  */
-#include <asm/v850e.h>
-
-
-/* For <asm/entry.h> */
-/* We use on-chip RAM, for a few miscellaneous variables that must be
-   accessible using a load instruction relative to R0.  The amount
-   varies between chip models, but there's always at least 4K, and it
-   should always start at FFFFC000.  */
-#define R0_RAM_ADDR                    0xFFFFC000
-
-
-/* MA series UART details.  */
-#define V850E_UART_BASE_FREQ           CPU_CLOCK_FREQ
-
-/* This is a function that gets called before configuring the UART.  */
-#define V850E_UART_PRE_CONFIGURE       ma_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void ma_uart_pre_configure (unsigned chan,
-                                  unsigned cflags, unsigned baud);
-#endif
-
-
-/* MA series timer C details.  */
-#define V850E_TIMER_C_BASE_ADDR                0xFFFFF600
-
-
-/* MA series timer D details.  */
-#define V850E_TIMER_D_BASE_ADDR                0xFFFFF540
-#define V850E_TIMER_D_TMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x0)
-#define V850E_TIMER_D_CMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x2)
-#define V850E_TIMER_D_TMCD_BASE_ADDR   (V850E_TIMER_D_BASE_ADDR + 0x4)
-
-#define V850E_TIMER_D_BASE_FREQ                CPU_CLOCK_FREQ
-
-
-/* Port 0 */
-/* Direct I/O.  Bits 0-7 are pins P00-P07.  */
-#define MA_PORT0_IO_ADDR               0xFFFFF400
-#define MA_PORT0_IO                    (*(volatile u8 *)MA_PORT0_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define MA_PORT0_PM_ADDR               0xFFFFF420
-#define MA_PORT0_PM                    (*(volatile u8 *)MA_PORT0_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define MA_PORT0_PMC_ADDR              0xFFFFF440
-#define MA_PORT0_PMC                   (*(volatile u8 *)MA_PORT0_PMC_ADDR)
-/* Port function control (for P04-P07, 0 = IRQ, 1 = DMARQ).  */
-#define MA_PORT0_PFC_ADDR              0xFFFFF460
-#define MA_PORT0_PFC                   (*(volatile u8 *)MA_PORT0_PFC_ADDR)
-
-/* Port 1 */
-/* Direct I/O.  Bits 0-3 are pins P10-P13.  */
-#define MA_PORT1_IO_ADDR               0xFFFFF402
-#define MA_PORT1_IO                    (*(volatile u8 *)MA_PORT1_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define MA_PORT1_PM_ADDR               0xFFFFF420
-#define MA_PORT1_PM                    (*(volatile u8 *)MA_PORT1_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define MA_PORT1_PMC_ADDR              0xFFFFF442
-#define MA_PORT1_PMC                   (*(volatile u8 *)MA_PORT1_PMC_ADDR)
-
-/* Port 4 */
-/* Direct I/O.  Bits 0-5 are pins P40-P45.  */
-#define MA_PORT4_IO_ADDR               0xFFFFF408
-#define MA_PORT4_IO                    (*(volatile u8 *)MA_PORT4_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define MA_PORT4_PM_ADDR               0xFFFFF428
-#define MA_PORT4_PM                    (*(volatile u8 *)MA_PORT4_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define MA_PORT4_PMC_ADDR              0xFFFFF448
-#define MA_PORT4_PMC                   (*(volatile u8 *)MA_PORT4_PMC_ADDR)
-/* Port function control (for serial interfaces, 0 = CSI, 1 = UART).  */
-#define MA_PORT4_PFC_ADDR              0xFFFFF468
-#define MA_PORT4_PFC                   (*(volatile u8 *)MA_PORT4_PFC_ADDR)
-
-
-#ifndef __ASSEMBLY__
-
-/* Initialize MA chip interrupts.  */
-extern void ma_init_irqs (void);
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_MA_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/ma1.h -- V850E/MA1 cpu chip
- *
- *  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_MA1_H__
-#define __V850_MA1_H__
-
-/* Inherit more generic details from MA series.  */
-#include <asm/ma.h>
-
-
-#define CPU_MODEL      "v850e/ma1"
-#define CPU_MODEL_LONG "NEC V850E/MA1"
-
-
-/* Hardware-specific interrupt numbers (in the kernel IRQ namespace).  */
-#define IRQ_INTOV(n)   (n)     /* 0-3 */
-#define IRQ_INTOV_NUM  4
-#define IRQ_INTP(n)    (0x4  + (n)) /* Pnnn (pin) interrupts */
-#define IRQ_INTP_NUM   24
-#define IRQ_INTCMD(n)  (0x1c + (n)) /* interval timer interrupts 0-3 */
-#define IRQ_INTCMD_NUM 4
-#define IRQ_INTDMA(n)  (0x20 + (n)) /* DMA interrupts 0-3 */
-#define IRQ_INTDMA_NUM 4
-#define IRQ_INTCSI(n)  (0x24 + (n)*4)/* CSI 0-2 transmit/receive completion */
-#define IRQ_INTCSI_NUM 3
-#define IRQ_INTSER(n)  (0x25 + (n)*4) /* UART 0-2 reception error */
-#define IRQ_INTSER_NUM 3
-#define IRQ_INTSR(n)   (0x26 + (n)*4) /* UART 0-2 reception completion */
-#define IRQ_INTSR_NUM  3
-#define IRQ_INTST(n)   (0x27 + (n)*4) /* UART 0-2 transmission completion */
-#define IRQ_INTST_NUM  3
-
-#define NUM_CPU_IRQS   0x30
-
-
-/* The MA1 has a UART with 3 channels.  */
-#define V850E_UART_NUM_CHANNELS        3
-
-
-#endif /* __V850_MA1_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/machdep.h -- Machine-dependent definitions
- *
- *  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_MACHDEP_H__
-#define __V850_MACHDEP_H__
-
-
-/* chips */
-#ifdef CONFIG_V850E_MA1
-#include <asm/ma1.h>
-#endif
-#ifdef CONFIG_V850E_ME2
-#include <asm/me2.h>
-#endif
-#ifdef CONFIG_V850E_TEG
-#include <asm/teg.h>
-#endif
-
-/* These are both chips _and_ platforms, so put them in the middle... */
-#ifdef CONFIG_V850E2_ANNA
-#include <asm/anna.h>
-#endif
-#ifdef CONFIG_V850E_AS85EP1
-#include <asm/as85ep1.h>
-#endif
-
-/* platforms */
-#ifdef CONFIG_RTE_CB_MA1
-#include <asm/rte_ma1_cb.h>
-#endif
-#ifdef CONFIG_RTE_CB_ME2
-#include <asm/rte_me2_cb.h>
-#endif
-#ifdef CONFIG_RTE_CB_NB85E
-#include <asm/rte_nb85e_cb.h>
-#endif
-#ifdef CONFIG_V850E_SIM
-#include <asm/sim.h>
-#endif
-#ifdef CONFIG_V850E2_SIM85E2C
-#include <asm/sim85e2c.h>
-#endif
-#ifdef CONFIG_V850E2_SIM85E2S
-#include <asm/sim85e2s.h>
-#endif
-#ifdef CONFIG_V850E2_FPGA85E2C
-#include <asm/fpga85e2c.h>
-#endif
-
-#endif /* __V850_MACHDEP_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/macrology.h -- Various useful CPP macros
- *
- *  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>
- */
-
-#define macrology_paste(arg1, arg2)    macrology_paste_1(arg1, arg2)
-#define macrology_paste_1(arg1, arg2)  arg1 ## arg2
-#define macrology_stringify(sym)       macrology_stringify_1(sym)
-#define macrology_stringify_1(sym)     #sym
 
+++ /dev/null
-/*
- * include/asm-v850/me2.h -- V850E/ME2 cpu chip
- *
- *  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_ME2_H__
-#define __V850_ME2_H__
-
-#include <asm/v850e.h>
-#include <asm/v850e_cache.h>
-
-
-#define CPU_MODEL      "v850e/me2"
-#define CPU_MODEL_LONG "NEC V850E/ME2"
-
-
-/* Hardware-specific interrupt numbers (in the kernel IRQ namespace).  */
-#define IRQ_INTP(n)       (n) /* Pnnn (pin) interrupts */
-#define IRQ_INTP_NUM      31
-#define IRQ_INTCMD(n)     (0x31 + (n)) /* interval timer interrupts 0-3 */
-#define IRQ_INTCMD_NUM    4
-#define IRQ_INTDMA(n)     (0x41 + (n)) /* DMA interrupts 0-3 */
-#define IRQ_INTDMA_NUM    4
-#define IRQ_INTUBTIRE(n)  (0x49 + (n)*5)/* UARTB 0-1 reception error */
-#define IRQ_INTUBTIRE_NUM 2
-#define IRQ_INTUBTIR(n)   (0x4a + (n)*5) /* UARTB 0-1 reception complete */
-#define IRQ_INTUBTIR_NUM  2
-#define IRQ_INTUBTIT(n)   (0x4b + (n)*5) /* UARTB 0-1 transmission complete */
-#define IRQ_INTUBTIT_NUM  2
-#define IRQ_INTUBTIF(n)   (0x4c + (n)*5) /* UARTB 0-1 FIFO trans. complete */
-#define IRQ_INTUBTIF_NUM  2
-#define IRQ_INTUBTITO(n)  (0x4d + (n)*5) /* UARTB 0-1 reception timeout */
-#define IRQ_INTUBTITO_NUM 2
-
-/* For <asm/irq.h> */
-#define NUM_CPU_IRQS           0x59 /* V850E/ME2 */
-
-
-/* For <asm/entry.h> */
-/* We use on-chip RAM, for a few miscellaneous variables that must be
-   accessible using a load instruction relative to R0.  */
-#define R0_RAM_ADDR                    0xFFFFB000 /* V850E/ME2 */
-
-
-/* V850E/ME2 UARTB details.*/
-#define V850E_UART_NUM_CHANNELS                2
-#define V850E_UARTB_BASE_FREQ          (CPU_CLOCK_FREQ / 4)
-
-/* This is a function that gets called before configuring the UART.  */
-#define V850E_UART_PRE_CONFIGURE       me2_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void me2_uart_pre_configure (unsigned chan,
-                                   unsigned cflags, unsigned baud);
-#endif /* __ASSEMBLY__ */
-
-
-/* V850E/ME2 timer C details.  */
-#define V850E_TIMER_C_BASE_ADDR                0xFFFFF600
-
-
-/* V850E/ME2 timer D details.  */
-#define V850E_TIMER_D_BASE_ADDR                0xFFFFF540
-#define V850E_TIMER_D_TMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x0)
-#define V850E_TIMER_D_CMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x2)
-#define V850E_TIMER_D_TMCD_BASE_ADDR   (V850E_TIMER_D_BASE_ADDR + 0x4)
-
-#define V850E_TIMER_D_BASE_FREQ                (CPU_CLOCK_FREQ / 2)
-
-
-/* Select iRAM mode.  */
-#define ME2_IRAMM_ADDR                 0xFFFFF80A
-#define ME2_IRAMM                      (*(volatile u8*)ME2_IRAMM_ADDR)
-
-
-/* Interrupt edge-detection configuration.  INTF(n) and INTR(n) are only
-   valid for n == 1, 2, or 5.  */
-#define ME2_INTF_ADDR(n)               (0xFFFFFC00 + (n) * 0x2)
-#define ME2_INTF(n)                    (*(volatile u8*)ME2_INTF_ADDR(n))
-#define ME2_INTR_ADDR(n)               (0xFFFFFC20 + (n) * 0x2)
-#define ME2_INTR(n)                    (*(volatile u8*)ME2_INTR_ADDR(n))
-#define ME2_INTFAL_ADDR                        0xFFFFFC10
-#define ME2_INTFAL                     (*(volatile u8*)ME2_INTFAL_ADDR)
-#define ME2_INTRAL_ADDR                        0xFFFFFC30
-#define ME2_INTRAL                     (*(volatile u8*)ME2_INTRAL_ADDR)
-#define ME2_INTFDH_ADDR                        0xFFFFFC16
-#define ME2_INTFDH                     (*(volatile u16*)ME2_INTFDH_ADDR)
-#define ME2_INTRDH_ADDR                        0xFFFFFC36
-#define ME2_INTRDH                     (*(volatile u16*)ME2_INTRDH_ADDR)
-#define ME2_SESC_ADDR(n)               (0xFFFFF609 + (n) * 0x10)
-#define ME2_SESC(n)                    (*(volatile u8*)ME2_SESC_ADDR(n))
-#define ME2_SESA10_ADDR                        0xFFFFF5AD
-#define ME2_SESA10                     (*(volatile u8*)ME2_SESA10_ADDR)
-#define ME2_SESA11_ADDR                        0xFFFFF5DD
-#define ME2_SESA11                     (*(volatile u8*)ME2_SESA11_ADDR)
-
-
-/* Port 1 */
-/* Direct I/O.  Bits 0-3 are pins P10-P13.  */
-#define ME2_PORT1_IO_ADDR              0xFFFFF402
-#define ME2_PORT1_IO                   (*(volatile u8 *)ME2_PORT1_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define ME2_PORT1_PM_ADDR              0xFFFFF422
-#define ME2_PORT1_PM                   (*(volatile u8 *)ME2_PORT1_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define ME2_PORT1_PMC_ADDR             0xFFFFF442
-#define ME2_PORT1_PMC                  (*(volatile u8 *)ME2_PORT1_PMC_ADDR)
-/* Port function control (for serial interfaces, 0 = CSI30, 1 = UARTB0 ).  */
-#define ME2_PORT1_PFC_ADDR             0xFFFFF462
-#define ME2_PORT1_PFC                  (*(volatile u8 *)ME2_PORT1_PFC_ADDR)
-
-/* Port 2 */
-/* Direct I/O.  Bits 0-3 are pins P20-P25.  */
-#define ME2_PORT2_IO_ADDR              0xFFFFF404
-#define ME2_PORT2_IO                   (*(volatile u8 *)ME2_PORT2_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define ME2_PORT2_PM_ADDR              0xFFFFF424
-#define ME2_PORT2_PM                   (*(volatile u8 *)ME2_PORT2_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define ME2_PORT2_PMC_ADDR             0xFFFFF444
-#define ME2_PORT2_PMC                  (*(volatile u8 *)ME2_PORT2_PMC_ADDR)
-/* Port function control (for serial interfaces, 0 = INTP2x, 1 = UARTB1 ).  */
-#define ME2_PORT2_PFC_ADDR             0xFFFFF464
-#define ME2_PORT2_PFC                  (*(volatile u8 *)ME2_PORT2_PFC_ADDR)
-
-/* Port 5 */
-/* Direct I/O.  Bits 0-5 are pins P50-P55.  */
-#define ME2_PORT5_IO_ADDR              0xFFFFF40A
-#define ME2_PORT5_IO                   (*(volatile u8 *)ME2_PORT5_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define ME2_PORT5_PM_ADDR              0xFFFFF42A
-#define ME2_PORT5_PM                   (*(volatile u8 *)ME2_PORT5_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define ME2_PORT5_PMC_ADDR             0xFFFFF44A
-#define ME2_PORT5_PMC                  (*(volatile u8 *)ME2_PORT5_PMC_ADDR)
-/* Port function control ().  */
-#define ME2_PORT5_PFC_ADDR             0xFFFFF46A
-#define ME2_PORT5_PFC                  (*(volatile u8 *)ME2_PORT5_PFC_ADDR)
-
-/* Port 6 */
-/* Direct I/O.  Bits 5-7 are pins P65-P67.  */
-#define ME2_PORT6_IO_ADDR              0xFFFFF40C
-#define ME2_PORT6_IO                   (*(volatile u8 *)ME2_PORT6_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define ME2_PORT6_PM_ADDR              0xFFFFF42C
-#define ME2_PORT6_PM                   (*(volatile u8 *)ME2_PORT6_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define ME2_PORT6_PMC_ADDR             0xFFFFF44C
-#define ME2_PORT6_PMC                  (*(volatile u8 *)ME2_PORT6_PMC_ADDR)
-/* Port function control ().  */
-#define ME2_PORT6_PFC_ADDR             0xFFFFF46C
-#define ME2_PORT6_PFC                  (*(volatile u8 *)ME2_PORT6_PFC_ADDR)
-
-/* Port 7 */
-/* Direct I/O.  Bits 2-7 are pins P72-P77.  */
-#define ME2_PORT7_IO_ADDR              0xFFFFF40E
-#define ME2_PORT7_IO                   (*(volatile u8 *)ME2_PORT7_IO_ADDR)
-/* Port mode (for direct I/O, 0 = output, 1 = input).  */
-#define ME2_PORT7_PM_ADDR              0xFFFFF42E
-#define ME2_PORT7_PM                   (*(volatile u8 *)ME2_PORT7_PM_ADDR)
-/* Port mode control (0 = direct I/O mode, 1 = alternative I/O mode).  */
-#define ME2_PORT7_PMC_ADDR             0xFFFFF44E
-#define ME2_PORT7_PMC                  (*(volatile u8 *)ME2_PORT7_PMC_ADDR)
-/* Port function control ().  */
-#define ME2_PORT7_PFC_ADDR             0xFFFFF46E
-#define ME2_PORT7_PFC                  (*(volatile u8 *)ME2_PORT7_PFC_ADDR)
-
-
-#ifndef __ASSEMBLY__
-/* Initialize V850E/ME2 chip interrupts.  */
-extern void me2_init_irqs (void);
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_ME2_H__ */
 
+++ /dev/null
-#ifndef __V850_MMAN_H__
-#define __V850_MMAN_H__
-
-#include <asm-generic/mman.h>
-
-#define MAP_GROWSDOWN  0x0100          /* stack-like segment */
-#define MAP_DENYWRITE  0x0800          /* ETXTBSY */
-#define MAP_EXECUTABLE 0x1000          /* mark it as an executable */
-#define MAP_LOCKED     0x2000          /* pages are locked */
-#define MAP_NORESERVE  0x4000          /* don't check for reservations */
-
-#define MCL_CURRENT    1               /* lock all current mappings */
-#define MCL_FUTURE     2               /* lock all future mappings */
-
-#endif /* __V850_MMAN_H__ */
 
+++ /dev/null
-/* Copyright (C) 2002, 2005, David McCullough <davidm@snapgear.com> */
-
-#ifndef __V850_MMU_H__
-#define __V850_MMU_H__
-
-typedef struct {
-       struct vm_list_struct   *vmlist;
-       unsigned long           end_brk;
-} mm_context_t;
-
-#endif /* __V850_MMU_H__ */
 
+++ /dev/null
-#ifndef __V850_MMU_CONTEXT_H__
-#define __V850_MMU_CONTEXT_H__
-
-#include <asm-generic/mm_hooks.h>
-
-#define destroy_context(mm)            ((void)0)
-#define init_new_context(tsk,mm)       0
-#define switch_mm(prev,next,tsk)       ((void)0)
-#define deactivate_mm(tsk,mm)          do { } while (0)
-#define activate_mm(prev,next)         ((void)0)
-#define enter_lazy_tlb(mm,tsk)         ((void)0)
-
-#endif /* __V850_MMU_CONTEXT_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/module.h -- Architecture-specific module hooks
- *
- *  Copyright (C) 2001,02,03,04  NEC Corporation
- *  Copyright (C) 2001,02,03,04  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 include/asm-ppc/module.h
- */
-
-#ifndef __V850_MODULE_H__
-#define __V850_MODULE_H__
-
-#define MODULE_SYMBOL_PREFIX "_"
-
-struct v850_plt_entry
-{
-       /* Indirect jump instruction sequence (6-byte mov + 2-byte jr).  */
-       unsigned long tramp[2];
-};
-
-struct mod_arch_specific
-{
-       /* Indices of PLT sections within module. */
-       unsigned int core_plt_section, init_plt_section;
-};
-
-#define Elf_Shdr Elf32_Shdr
-#define Elf_Sym Elf32_Sym
-#define Elf_Ehdr Elf32_Ehdr
-
-/* Make empty sections for module_frob_arch_sections to expand. */
-#ifdef MODULE
-asm(".section .plt,\"ax\",@nobits; .align 3; .previous");
-asm(".section .init.plt,\"ax\",@nobits; .align 3; .previous");
-#endif
-
-/* We don't do exception tables.  */
-struct exception_table_entry;
-static inline const struct exception_table_entry *
-search_extable(const struct exception_table_entry *first,
-              const struct exception_table_entry *last,
-              unsigned long value)
-{
-       return 0;
-}
-#define ARCH_HAS_SEARCH_EXTABLE
-static inline void
-sort_extable(struct exception_table_entry *start,
-            struct exception_table_entry *finish)
-{
-       /* nada */
-}
-#define ARCH_HAS_SORT_EXTABLE
-
-#endif /* __V850_MODULE_H__ */
 
+++ /dev/null
-#ifndef __V850_MSGBUF_H__
-#define __V850_MSGBUF_H__
-
-/* 
- * The msqid64_ds structure for v850 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct msqid64_ds {
-       struct ipc64_perm msg_perm;
-       __kernel_time_t msg_stime;      /* last msgsnd time */
-       unsigned long   __unused1;
-       __kernel_time_t msg_rtime;      /* last msgrcv time */
-       unsigned long   __unused2;
-       __kernel_time_t msg_ctime;      /* last change time */
-       unsigned long   __unused3;
-       unsigned long  msg_cbytes;      /* current number of bytes on queue */
-       unsigned long  msg_qnum;        /* number of messages in queue */
-       unsigned long  msg_qbytes;      /* max number of bytes on queue */
-       __kernel_pid_t msg_lspid;       /* pid of last msgsnd */
-       __kernel_pid_t msg_lrpid;       /* last receive pid */
-       unsigned long  __unused4;
-       unsigned long  __unused5;
-};
-
-#endif /* __V850_MSGBUF_H__ */
 
+++ /dev/null
-/*
- * Pull in the generic implementation for the mutex fastpath.
- *
- * TODO: implement optimized primitives instead, or leave the generic
- * implementation in place, or pick the atomic_xchg() based generic
- * implementation. (see asm-generic/mutex-xchg.h for details)
- */
-
-#include <asm-generic/mutex-dec.h>
 
+++ /dev/null
-/*
- * include/asm-v850/page.h -- VM ops
- *
- *  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>
- */
-
-#ifndef __V850_PAGE_H__
-#define __V850_PAGE_H__
-
-#include <asm/machdep.h>
-
-
-#define PAGE_SHIFT     12
-#define PAGE_SIZE       (1UL << PAGE_SHIFT)
-#define PAGE_MASK       (~(PAGE_SIZE-1))
-
-
-/*
- * PAGE_OFFSET -- the first address of the first page of memory. For archs with
- * no MMU this corresponds to the first free page in physical memory (aligned
- * on a page boundary).
- */
-#ifndef PAGE_OFFSET
-#define PAGE_OFFSET  0x0000000
-#endif
-
-
-#ifndef __ASSEMBLY__
-
-#define STRICT_MM_TYPECHECKS
-
-#define clear_page(page)       memset ((void *)(page), 0, PAGE_SIZE)
-#define copy_page(to, from)    memcpy ((void *)(to), (void *)from, PAGE_SIZE)
-
-#define clear_user_page(addr, vaddr, page)     \
-       do {    clear_page(addr);               \
-               flush_dcache_page(page);        \
-       } while (0)
-#define copy_user_page(to, from, vaddr, page)  \
-       do {    copy_page(to, from);            \
-               flush_dcache_page(page);        \
-       } while (0)
-
-#ifdef STRICT_MM_TYPECHECKS
-/*
- * These are used to make use of C type-checking..
- */
-
-typedef struct { unsigned long pte; } pte_t;
-typedef struct { unsigned long pmd; } pmd_t;
-typedef struct { unsigned long pgd; } pgd_t;
-typedef struct { unsigned long pgprot; } pgprot_t;
-typedef struct page *pgtable_t;
-
-#define pte_val(x)      ((x).pte)
-#define pmd_val(x)      ((x).pmd)
-#define pgd_val(x)      ((x).pgd)
-#define pgprot_val(x)   ((x).pgprot)
-
-#define __pte(x)        ((pte_t) { (x) } )
-#define __pmd(x)        ((pmd_t) { (x) } )
-#define __pgd(x)        ((pgd_t) { (x) } )
-#define __pgprot(x)     ((pgprot_t) { (x) } )
-
-#else /* !STRICT_MM_TYPECHECKS */
-/*
- * .. while these make it easier on the compiler
- */
-
-typedef unsigned long pte_t;
-typedef unsigned long pmd_t;
-typedef unsigned long pgd_t;
-typedef unsigned long pgprot_t;
-
-#define pte_val(x)      (x)
-#define pmd_val(x)      (x)
-#define pgd_val(x)      (x)
-#define pgprot_val(x)   (x)
-
-#define __pte(x)        (x)
-#define __pmd(x)        (x)
-#define __pgd(x)        (x)
-#define __pgprot(x)     (x)
-
-#endif /* STRICT_MM_TYPECHECKS */
-
-#endif /* !__ASSEMBLY__ */
-
-
-/* No current v850 processor has virtual memory.  */
-#define __virt_to_phys(addr)   (addr)
-#define __phys_to_virt(addr)   (addr)
-
-#define virt_to_pfn(kaddr)     (__virt_to_phys (kaddr) >> PAGE_SHIFT)
-#define pfn_to_virt(pfn)       __phys_to_virt ((pfn) << PAGE_SHIFT)
-
-#define MAP_NR(kaddr) \
-  (((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT)
-#define virt_to_page(kaddr)    (mem_map + MAP_NR (kaddr))
-#define page_to_virt(page) \
-  ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
-
-#define ARCH_PFN_OFFSET                (PAGE_OFFSET >> PAGE_SHIFT)
-#define pfn_valid(pfn)         ((pfn) < max_mapnr)
-
-#define        virt_addr_valid(kaddr)                                          \
-  (((void *)(kaddr) >= (void *)PAGE_OFFSET) && MAP_NR (kaddr) < max_mapnr)
-
-
-#define __pa(x)                     __virt_to_phys ((unsigned long)(x))
-#define __va(x)                     ((void *)__phys_to_virt ((unsigned long)(x)))
-
-
-#include <asm-generic/memory_model.h>
-#include <asm-generic/page.h>
-
-#endif /* __V850_PAGE_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/param.h -- Varions kernel parameters
- *
- *  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>
- */
-
-#ifndef __V850_PARAM_H__
-#define __V850_PARAM_H__
-
-#define EXEC_PAGESIZE  4096
-
-#ifndef NOGROUP
-#define NOGROUP                (-1)
-#endif
-
-#define MAXHOSTNAMELEN 64      /* max length of hostname */
-
-#ifdef __KERNEL__
-# define HZ            CONFIG_HZ
-# define USER_HZ       100
-# define CLOCKS_PER_SEC        USER_HZ
-#else
-# define HZ            100
-#endif
-
-#endif /* __V850_PARAM_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/pci.h -- PCI support
- *
- *  Copyright (C) 2001,02,05  NEC Corporation
- *  Copyright (C) 2001,02,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>
- */
-
-#ifndef __V850_PCI_H__
-#define __V850_PCI_H__
-
-/* Get any platform-dependent definitions.  */
-#include <asm/machdep.h>
-
-#define pcibios_scan_all_fns(a, b)     0
-
-/* Generic declarations.  */
-
-struct scatterlist;
-
-extern void pcibios_set_master (struct pci_dev *dev);
-
-/* `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_for_cpu is
-   performed.  */
-extern dma_addr_t
-pci_map_single (struct pci_dev *pdev, void *cpu_addr, size_t size, int dir);
-
-/* Return to the CPU the PCI DMA memory block previously `granted' to
-   PDEV, at DMA_ADDR.  */
-extern void
-pci_unmap_single (struct pci_dev *pdev, dma_addr_t dma_addr, size_t size,
-                 int dir);
-
-/* 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.  */
-extern void
-pci_dma_sync_single_for_cpu (struct pci_dev *dev, dma_addr_t dma_addr,
-                            size_t size, int dir);
-
-extern void
-pci_dma_sync_single_for_device (struct pci_dev *dev, dma_addr_t dma_addr,
-                               size_t size, int dir);
-
-
-/* Do multiple DMA mappings at once.  */
-extern int
-pci_map_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len, int dir);
-
-/* Unmap multiple DMA mappings at once.  */
-extern void
-pci_unmap_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len,
-             int dir);
-
-/* SG-list versions of pci_dma_sync functions.  */
-extern void
-pci_dma_sync_sg_for_cpu (struct pci_dev *dev,
-                        struct scatterlist *sg, int sg_len,
-                        int dir);
-extern void
-pci_dma_sync_sg_for_device (struct pci_dev *dev,
-                           struct scatterlist *sg, int sg_len,
-                           int dir);
-
-#define pci_map_page(dev, page, offs, size, dir) \
-  pci_map_single(dev, (page_address(page) + (offs)), size, dir)
-#define pci_unmap_page(dev,addr,sz,dir) \
-  pci_unmap_single(dev, addr, sz, dir)
-
-/* Test for pci_map_single or pci_map_page having generated an error.  */
-static inline int
-pci_dma_mapping_error (dma_addr_t dma_addr)
-{
-       return dma_addr == 0;
-}
-
-/* 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.  */
-extern void *
-pci_alloc_consistent (struct pci_dev *pdev, size_t size, dma_addr_t *dma_addr);
-
-/* 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 assosciated with CPU_ADDR or DMA_ADDR past
-   this call are illegal.  */
-extern void
-pci_free_consistent (struct pci_dev *pdev, size_t size, void *cpu_addr,
-                    dma_addr_t dma_addr);
-
-#ifdef CONFIG_PCI
-static inline void pci_dma_burst_advice(struct pci_dev *pdev,
-                                       enum pci_dma_burst_strategy *strat,
-                                       unsigned long *strategy_parameter)
-{
-       *strat = PCI_DMA_BURST_INFINITY;
-       *strategy_parameter = ~0UL;
-}
-#endif
-
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
-extern void pci_iounmap (struct pci_dev *dev, void __iomem *addr);
-
-#endif /* __V850_PCI_H__ */
 
+++ /dev/null
-#ifndef __V850_PERCPU_H__
-#define __V850_PERCPU_H__
-
-#include <asm-generic/percpu.h>
-
-/* This is a stupid hack to satisfy some grotty implicit include-file
-   dependency; basically, <linux/smp.h> uses BUG_ON, which calls BUG, but
-   doesn't include the necessary headers to define it.  In the twisted
-   festering mess of includes this must all be resolved somehow on other
-   platforms, but I haven't the faintest idea how, and don't care; here will
-   do, even though doesn't actually make any sense.  */
-#include <asm/page.h>
-
-#endif /* __V850_PERCPU_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/pgalloc.h
- *
- *  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>
- */
-
-#ifndef __V850_PGALLOC_H__
-#define __V850_PGALLOC_H__
-
-#include <linux/mm.h>  /* some crap code expects this */
-
-/* ... and then, there was one.  */
-#define check_pgt_cache()      ((void)0)
-
-#endif /* __V850_PGALLOC_H__ */
 
+++ /dev/null
-#ifndef __V850_PGTABLE_H__
-#define __V850_PGTABLE_H__
-
-#include <asm-generic/4level-fixup.h>
-
-#include <asm/page.h>
-
-
-#define pgd_present(pgd)       (1) /* pages are always present on NO_MM */
-#define pgd_none(pgd)          (0)
-#define pgd_bad(pgd)           (0)
-#define pgd_clear(pgdp)                ((void)0)
-
-#define        pmd_offset(a, b)        ((void *)0)
-
-#define kern_addr_valid(addr)  (1)
-
-
-#define __swp_type(x)          (0)
-#define __swp_offset(x)                (0)
-#define __swp_entry(typ,off)   ((swp_entry_t) { ((typ) | ((off) << 7)) })
-#define __pte_to_swp_entry(pte)        ((swp_entry_t) { pte_val(pte) })
-#define __swp_entry_to_pte(x)  ((pte_t) { (x).val })
-
-static inline int pte_file (pte_t pte) { return 0; }
-
-
-/* These mean nothing to !CONFIG_MMU.  */
-#define PAGE_NONE              __pgprot(0)
-#define PAGE_SHARED            __pgprot(0)
-#define PAGE_COPY              __pgprot(0)
-#define PAGE_READONLY          __pgprot(0)
-#define PAGE_KERNEL            __pgprot(0)
-
-
-/*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc.  When CONFIG_MMU is not defined, this
- * should never actually be used, so just define it to something that's
- * will hopefully cause a bus error if it is.
- */
-#define ZERO_PAGE(vaddr)       ((void *)0x87654321)
-
-
-/* Some bogus code in procfs uses these; whatever.  */
-#define VMALLOC_START  0
-#define VMALLOC_END    (~0)
-
-
-extern void paging_init (void);
-#define swapper_pg_dir ((pgd_t *) 0)
-
-#define pgtable_cache_init()   ((void)0)
-
-
-extern unsigned int kobjsize(const void *objp);
-
-
-#endif /* __V850_PGTABLE_H__ */
 
+++ /dev/null
-#ifndef __V850_POLL_H__
-#define __V850_POLL_H__
-
-#define POLLWRNORM     POLLOUT
-#define POLLWRBAND     0x0100
-
-#include <asm-generic/poll.h>
-
-#endif /* __V850_POLL_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/posix_types.h -- Kernel versions of standard types
- *
- *  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_POSIX_TYPES_H__
-#define __V850_POSIX_TYPES_H__
-
-typedef unsigned long  __kernel_ino_t;
-typedef unsigned long long __kernel_ino64_t;
-typedef unsigned int   __kernel_mode_t;
-typedef unsigned int   __kernel_nlink_t;
-typedef long           __kernel_off_t;
-typedef long long      __kernel_loff_t;
-typedef int            __kernel_pid_t;
-typedef unsigned short __kernel_ipc_pid_t;
-typedef unsigned int   __kernel_uid_t;
-typedef unsigned int   __kernel_gid_t;
-typedef unsigned int   __kernel_size_t;
-typedef int            __kernel_ssize_t;
-typedef int            __kernel_ptrdiff_t;
-typedef long           __kernel_time_t;
-typedef long           __kernel_suseconds_t;
-typedef long           __kernel_clock_t;
-typedef int            __kernel_timer_t;
-typedef int            __kernel_clockid_t;
-typedef int            __kernel_daddr_t;
-typedef char *         __kernel_caddr_t;
-typedef unsigned short __kernel_uid16_t;
-typedef unsigned short __kernel_gid16_t;
-typedef unsigned int   __kernel_uid32_t;
-typedef unsigned int   __kernel_gid32_t;
-
-/* Some bogus code depends on this; we don't care.  */
-typedef __kernel_uid_t __kernel_old_uid_t;
-typedef unsigned int   __kernel_old_dev_t;
-
-typedef struct {
-       int     val[2];
-} __kernel_fsid_t;
-
-
-#if defined(__KERNEL__)
-
-/* We used to include <asm/bitops.h> here, which seems the right thing, but
-   it caused nasty include-file definition order problems.  Removing the
-   include seems to work, so fingers crossed...  */
-
-#undef __FD_SET
-#define __FD_SET(fd, fd_set) \
-  __set_bit (fd, (void *)&((__kernel_fd_set *)fd_set)->fds_bits)
-#undef __FD_CLR
-#define __FD_CLR(fd, fd_set) \
-  __clear_bit (fd, (void *)&((__kernel_fd_set *)fd_set)->fds_bits)
-#undef __FD_ISSET
-#define __FD_ISSET(fd, fd_set) \
-  __test_bit (fd, (void *)&((__kernel_fd_set *)fd_set)->fds_bits)
-#undef __FD_ZERO
-#define __FD_ZERO(fd_set) \
-  memset (fd_set, 0, sizeof (*(fd_set *)fd_set))
-
-#endif /* defined(__KERNEL__) */
-
-#endif /* __V850_POSIX_TYPES_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/processor.h
- *
- *  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_PROCESSOR_H__
-#define __V850_PROCESSOR_H__
-
-#ifndef __ASSEMBLY__ /* <linux/thread_info.h> is not asm-safe.  */
-#include <linux/thread_info.h>
-#endif
-
-#include <linux/compiler.h>
-#include <asm/ptrace.h>
-#include <asm/entry.h>
-
-/* Some code expects `segment' stuff to be defined here.  */
-#include <asm/segment.h>
-
-
-/*
- * The only places this is used seem to be horrible bletcherous kludges,
- * so we just define it to be as large as possible.
- */
-#define TASK_SIZE      (0xFFFFFFFF)
-
-/*
- * This decides where the kernel will search for a free chunk of vm
- * space during mmap's.  We won't be using it.
- */
-#define TASK_UNMAPPED_BASE     0
-
-
-#ifndef __ASSEMBLY__
-
-
-/*
- * Default implementation of macro that returns current
- * instruction pointer ("program counter").
- */
-#define current_text_addr()    ({ __label__ _l; _l: &&_l;})
-
-/* If you change this, you must change the associated assembly-languages
-   constants defined below, THREAD_*.  */
-struct thread_struct {
-       /* kernel stack pointer (must be first field in structure) */
-       unsigned long  ksp;
-};
-
-#define INIT_THREAD { sizeof init_stack + (unsigned long)init_stack }
-
-
-/* Do necessary setup to start up a newly executed thread.  */
-static inline void start_thread (struct pt_regs *regs,
-                                unsigned long pc, unsigned long usp)
-{
-       regs->pc = pc;
-       regs->gpr[GPR_SP] = usp;
-       regs->kernel_mode = 0;
-}
-
-/* Free all resources held by a thread. */
-static inline void release_thread (struct task_struct *dead_task)
-{
-}
-
-/* Prepare to copy thread state - unlazy all lazy status */
-#define prepare_to_copy(tsk)   do { } while (0)
-
-extern int kernel_thread (int (*fn)(void *), void * arg, unsigned long flags);
-
-/* Free current thread data structures etc.  */
-static inline void exit_thread (void)
-{
-}
-
-
-/* Return the registers saved during context-switch by the currently
-   not-running thread T.  Note that this only includes some registers!
-   See entry.S for details.  */
-#define thread_saved_regs(t) \
-   ((struct pt_regs*)((t)->thread.ksp + STATE_SAVE_PT_OFFSET))
-/* Return saved (kernel) PC of a blocked thread.  Actually, we return the
-   LP register, because the thread is actually blocked in switch_thread,
-   and we're interested in the PC it will _return_ to.  */
-#define thread_saved_pc(t)   (thread_saved_regs(t)->gpr[GPR_LP])
-
-
-unsigned long get_wchan (struct task_struct *p);
-
-
-/* Return some info about the user process TASK.  */
-#define task_tos(task) ((unsigned long)task_stack_page(task) + THREAD_SIZE)
-#define task_pt_regs(task) ((struct pt_regs *)task_tos (task) - 1)
-#define task_sp(task)  (task_pt_regs (task)->gpr[GPR_SP])
-#define task_pc(task)  (task_pt_regs (task)->pc)
-/* Grotty old names for some.  */
-#define KSTK_EIP(task) task_pc (task)
-#define KSTK_ESP(task) task_sp (task)
-
-
-#define cpu_relax()    barrier()
-
-
-#else /* __ASSEMBLY__ */
-
-#define THREAD_KSP     0
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_PROCESSOR_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/ptrace.h -- Access to CPU registers
- *
- *  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_PTRACE_H__
-#define __V850_PTRACE_H__
-
-
-/* v850 general purpose registers with special meanings.  */
-#define GPR_ZERO       0       /* constant zero */
-#define GPR_ASM                1       /* reserved for assembler */
-#define GPR_SP         3       /* stack pointer */
-#define GPR_GP         4       /* global data pointer */
-#define GPR_TP         5       /* `text pointer' */
-#define GPR_EP         30      /* `element pointer' */
-#define GPR_LP         31      /* link pointer (current return address) */
-
-/* These aren't official names, but they make some code more descriptive.  */
-#define GPR_ARG0       6
-#define GPR_ARG1       7
-#define GPR_ARG2       8
-#define GPR_ARG3       9
-#define GPR_RVAL0      10
-#define GPR_RVAL1      11
-#define GPR_RVAL       GPR_RVAL0
-
-#define NUM_GPRS       32
-
-/* v850 `system' registers.  */
-#define SR_EIPC                0
-#define SR_EIPSW       1
-#define SR_FEPC                2
-#define SR_FEPSW       3
-#define SR_ECR         4
-#define SR_PSW         5
-#define SR_CTPC                16
-#define SR_CTPSW       17
-#define SR_DBPC                18
-#define SR_DBPSW       19
-#define SR_CTBP                20
-#define SR_DIR         21
-#define SR_ASID                23
-
-
-#ifndef __ASSEMBLY__
-
-typedef unsigned long v850_reg_t;
-
-/* How processor state is stored on the stack during a syscall/signal.
-   If you change this structure, change the associated assembly-language
-   macros below too (PT_*)!  */
-struct pt_regs
-{
-       /* General purpose registers.  */
-       v850_reg_t gpr[NUM_GPRS];
-
-       v850_reg_t pc;          /* program counter */
-       v850_reg_t psw;         /* program status word */
-
-       /* Registers used by `callt' instruction:  */
-       v850_reg_t ctpc;        /* saved program counter */
-       v850_reg_t ctpsw;       /* saved psw */
-       v850_reg_t ctbp;        /* base pointer for callt table */
-
-       char kernel_mode;       /* 1 if in `kernel mode', 0 if user mode */
-};
-
-
-#define instruction_pointer(regs)      ((regs)->pc)
-#define profile_pc(regs) instruction_pointer(regs)
-#define user_mode(regs)                        (!(regs)->kernel_mode)
-
-/* When a struct pt_regs is used to save user state for a system call in
-   the kernel, the system call is stored in the space for R0 (since it's
-   never used otherwise, R0 being a constant 0).  Non-system-calls
-   simply store 0 there.  */
-#define PT_REGS_SYSCALL(regs)          (regs)->gpr[0]
-#define PT_REGS_SET_SYSCALL(regs, val) ((regs)->gpr[0] = (val))
-
-#endif /* !__ASSEMBLY__ */
-
-
-/* The number of bytes used to store each register.  */
-#define _PT_REG_SIZE   4
-
-/* Offset of a general purpose register in a struct pt_regs.  */
-#define PT_GPR(num)    ((num) * _PT_REG_SIZE)
-
-/* Offsets of various special registers & fields in a struct pt_regs.  */
-#define PT_PC          ((NUM_GPRS + 0) * _PT_REG_SIZE)
-#define PT_PSW         ((NUM_GPRS + 1) * _PT_REG_SIZE)
-#define PT_CTPC                ((NUM_GPRS + 2) * _PT_REG_SIZE)
-#define PT_CTPSW       ((NUM_GPRS + 3) * _PT_REG_SIZE)
-#define PT_CTBP                ((NUM_GPRS + 4) * _PT_REG_SIZE)
-#define PT_KERNEL_MODE ((NUM_GPRS + 5) * _PT_REG_SIZE)
-
-/* Where the current syscall number is stashed; obviously only valid in
-   the kernel!  */
-#define PT_CUR_SYSCALL PT_GPR(0)
-
-/* Size of struct pt_regs, including alignment.  */
-#define PT_SIZE                ((NUM_GPRS + 6) * _PT_REG_SIZE)
-
-
-/* These are `magic' values for PTRACE_PEEKUSR that return info about where
-   a process is located in memory.  */
-#define PT_TEXT_ADDR   (PT_SIZE + 1)
-#define PT_TEXT_LEN    (PT_SIZE + 2)
-#define PT_DATA_ADDR   (PT_SIZE + 3)
-
-
-#endif /* __V850_PTRACE_H__ */
 
+++ /dev/null
-#ifndef __V850_RESOURCE_H__
-#define __V850_RESOURCE_H__
-
-#include <asm-generic/resource.h>
-
-#endif /* __V850_RESOURCE_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/rte_cb.h -- Midas labs 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>
- */
-
-#ifndef __V850_RTE_CB_H__
-#define __V850_RTE_CB_H__
-
-
-/* The SRAM on the Mother-A motherboard.  */
-#define MB_A_SRAM_ADDR         GCS0_ADDR
-#define MB_A_SRAM_SIZE         0x00200000 /* 2MB */
-
-
-#ifdef CONFIG_RTE_GBUS_INT
-/* GBUS interrupt support.  */
-
-# include <asm/gbus_int.h>
-
-# define GBUS_INT_BASE_IRQ     NUM_RTE_CB_IRQS
-# define GBUS_INT_BASE_ADDR    (GCS2_ADDR + 0x00006000)
-
-/* Some specific interrupts.  */
-# define IRQ_MB_A_LAN          IRQ_GBUS_INT(10)
-# define IRQ_MB_A_PCI1(n)      (IRQ_GBUS_INT(16) + (n))
-# define IRQ_MB_A_PCI1_NUM     4
-# define IRQ_MB_A_PCI2(n)      (IRQ_GBUS_INT(20) + (n))
-# define IRQ_MB_A_PCI2_NUM     4
-# define IRQ_MB_A_EXT(n)       (IRQ_GBUS_INT(24) + (n))
-# define IRQ_MB_A_EXT_NUM      4
-# define IRQ_MB_A_USB_OC(n)    (IRQ_GBUS_INT(28) + (n))
-# define IRQ_MB_A_USB_OC_NUM   2
-# define IRQ_MB_A_PCMCIA_OC    IRQ_GBUS_INT(30)
-
-/* We define NUM_MACH_IRQS to include extra interrupts from the GBUS.  */
-# define NUM_MACH_IRQS         (NUM_RTE_CB_IRQS + IRQ_GBUS_INT_NUM)
-
-#else /* !CONFIG_RTE_GBUS_INT */
-
-# define NUM_MACH_IRQS         NUM_RTE_CB_IRQS
-
-#endif /* CONFIG_RTE_GBUS_INT */
-
-
-#ifdef CONFIG_RTE_MB_A_PCI
-/* Mother-A PCI bus support.  */
-
-# include <asm/rte_mb_a_pci.h>
-
-/* These are the base addresses used for allocating device address
-   space.  512K of the motherboard SRAM is in the same space, so we have
-   to be careful not to let it be allocated.  */
-# define PCIBIOS_MIN_MEM       (MB_A_PCI_MEM_ADDR + 0x80000)
-# define PCIBIOS_MIN_IO                MB_A_PCI_IO_ADDR
-
-/* As we don't really support PCI DMA to cpu memory, and use bounce-buffers
-   instead, perversely enough, this becomes always true! */
-# define pci_dma_supported(dev, mask)          1
-# define pcibios_assign_all_busses()           1
-
-#endif /* CONFIG_RTE_MB_A_PCI */
-
-
-#ifndef __ASSEMBLY__
-extern void rte_cb_early_init (void);
-extern void rte_cb_init_irqs (void);
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_RTE_CB_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/rte_ma1_cb.h -- Midas labs RTE-V850/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>
- */
-
-#ifndef __V850_RTE_MA1_CB_H__
-#define __V850_RTE_MA1_CB_H__
-
-#include <asm/rte_cb.h>                /* Common defs for Midas RTE-CB boards.  */
-
-
-#define PLATFORM               "rte-v850e/ma1-cb"
-#define PLATFORM_LONG          "Midas lab RTE-V850E/MA1-CB"
-
-#define CPU_CLOCK_FREQ         50000000 /* 50MHz */
-
-/* 1MB of onboard SRAM.  Note that the monitor ROM uses parts of this
-   for its own purposes, so care must be taken.  Some address lines are
-   not decoded, so the SRAM area is mirrored every 1MB from 0x400000 to
-   0x800000 (exclusive).  */
-#define SRAM_ADDR              0x00400000
-#define SRAM_SIZE              0x00100000 /* 1MB */
-
-/* 32MB of onbard SDRAM.  */
-#define SDRAM_ADDR             0x00800000
-#define SDRAM_SIZE             0x02000000 /* 32MB */
-
-
-/* CPU addresses of GBUS memory spaces.  */
-#define GCS0_ADDR              0x05000000 /* GCS0 - Common SRAM (2MB) */
-#define GCS0_SIZE              0x00200000 /*   2MB */
-#define GCS1_ADDR              0x06000000 /* GCS1 - Flash ROM (8MB) */
-#define GCS1_SIZE              0x00800000 /*   8MB */
-#define GCS2_ADDR              0x07900000 /* GCS2 - I/O registers */
-#define GCS2_SIZE              0x00400000 /*   4MB */
-#define GCS5_ADDR              0x04000000 /* GCS5 - PCI bus space */
-#define GCS5_SIZE              0x01000000 /*   16MB */
-#define GCS6_ADDR              0x07980000 /* GCS6 - PCI control registers */
-#define GCS6_SIZE              0x00000200 /*   512B */
-
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET            SRAM_ADDR
-
-
-/* The GBUS GINT0 - GINT3 interrupts are connected to the INTP000 - INTP011
-   pins on the CPU.  These are shared among the GBUS interrupts.  */
-#define IRQ_GINT(n)            IRQ_INTP(n)
-#define IRQ_GINT_NUM           4
-
-/* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS.  */
-#define NUM_RTE_CB_IRQS                NUM_CPU_IRQS
-
-
-#ifdef CONFIG_ROM_KERNEL
-/* Kernel is in ROM, starting at address 0.  */
-
-#define INTV_BASE              0
-
-#else /* !CONFIG_ROM_KERNEL */
-
-#ifdef CONFIG_RTE_CB_MULTI
-/* Using RAM kernel with ROM monitor for Multi debugger.  */
-
-/* The chip's real interrupt vectors are in ROM, but they jump to a
-   secondary interrupt vector table in RAM.  */
-#define INTV_BASE              0x004F8000
-
-/* Scratch memory used by the ROM monitor, which shouldn't be used by
-   linux (except for the alternate interrupt vector area, defined
-   above).  */
-#define MON_SCRATCH_ADDR       0x004F8000
-#define MON_SCRATCH_SIZE       0x00008000 /* 32KB */
-
-#else /* !CONFIG_RTE_CB_MULTI */
-/* Using RAM-kernel.  Assume some sort of boot-loader got us loaded at
-   address 0.  */
-
-#define INTV_BASE              0
-
-#endif /* CONFIG_RTE_CB_MULTI */
-
-#endif /* CONFIG_ROM_KERNEL */
-
-
-/* Some misc. on-board devices.  */
-
-/* Seven-segment LED display (two digits).  Write-only.  */
-#define LED_ADDR(n)            (0x07802000 + (n))
-#define LED(n)                 (*(volatile unsigned char *)LED_ADDR(n))
-#define LED_NUM_DIGITS         2
-
-
-/* Override the basic MA uart pre-initialization so that we can
-   initialize extra stuff.  */
-#undef V850E_UART_PRE_CONFIGURE        /* should be defined by <asm/ma.h> */
-#define V850E_UART_PRE_CONFIGURE       rte_ma1_cb_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void rte_ma1_cb_uart_pre_configure (unsigned chan,
-                                          unsigned cflags, unsigned baud);
-#endif
-
-/* This board supports RTS/CTS for the on-chip UART, but only for channel 0. */
-
-/* CTS for UART channel 0 is pin P43 (bit 3 of port 4).  */
-#define V850E_UART_CTS(chan)   ((chan) == 0 ? !(MA_PORT4_IO & 0x8) : 1)
-/* RTS for UART channel 0 is pin P42 (bit 2 of port 4).  */
-#define V850E_UART_SET_RTS(chan, val)                                        \
-   do {                                                                              \
-          if (chan == 0) {                                                   \
-                  unsigned old = MA_PORT4_IO;                                \
-                  if (val)                                                   \
-                          MA_PORT4_IO = old & ~0x4;                          \
-                  else                                                       \
-                          MA_PORT4_IO = old | 0x4;                           \
-          }                                                                  \
-   } while (0)
-
-
-#endif /* __V850_RTE_MA1_CB_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/mb_a_pci.h -- PCI support for Midas lab RTE-MOTHER-A board
- *
- *  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>
- */
-
-#ifndef __V850_MB_A_PCI_H__
-#define __V850_MB_A_PCI_H__
-
-
-#define MB_A_PCI_MEM_ADDR      GCS5_ADDR
-#define MB_A_PCI_MEM_SIZE      (GCS5_SIZE / 2)
-#define MB_A_PCI_IO_ADDR       (GCS5_ADDR + MB_A_PCI_MEM_SIZE)
-#define MB_A_PCI_IO_SIZE       (GCS5_SIZE / 2)
-#define MB_A_PCI_REG_BASE_ADDR GCS6_ADDR
-
-#define MB_A_PCI_PCICR_ADDR    (MB_A_PCI_REG_BASE_ADDR + 0x4)
-#define MB_A_PCI_PCICR         (*(volatile u16 *)MB_A_PCI_PCICR_ADDR)
-#define MB_A_PCI_PCISR_ADDR    (MB_A_PCI_REG_BASE_ADDR + 0x6)
-#define MB_A_PCI_PCISR         (*(volatile u16 *)MB_A_PCI_PCISR_ADDR)
-#define MB_A_PCI_PCILTR_ADDR   (MB_A_PCI_REG_BASE_ADDR + 0xD)
-#define MB_A_PCI_PCILTR                (*(volatile u8 *)MB_A_PCI_PCILTR_ADDR)
-#define MB_A_PCI_PCIBAR0_ADDR  (MB_A_PCI_REG_BASE_ADDR + 0x10)
-#define MB_A_PCI_PCIBAR0       (*(volatile u32 *)MB_A_PCI_PCIBAR0_ADDR)
-#define MB_A_PCI_PCIBAR1_ADDR  (MB_A_PCI_REG_BASE_ADDR + 0x14)
-#define MB_A_PCI_PCIBAR1       (*(volatile u32 *)MB_A_PCI_PCIBAR1_ADDR)
-#define MB_A_PCI_PCIBAR2_ADDR  (MB_A_PCI_REG_BASE_ADDR + 0x18)
-#define MB_A_PCI_PCIBAR2       (*(volatile u32 *)MB_A_PCI_PCIBAR2_ADDR)
-#define MB_A_PCI_VENDOR_ID_ADDR        (MB_A_PCI_REG_BASE_ADDR + 0x2C)
-#define MB_A_PCI_VENDOR_ID     (*(volatile u16 *)MB_A_PCI_VENDOR_ID_ADDR)
-#define MB_A_PCI_DEVICE_ID_ADDR        (MB_A_PCI_REG_BASE_ADDR + 0x2E)
-#define MB_A_PCI_DEVICE_ID     (*(volatile u16 *)MB_A_PCI_DEVICE_ID_ADDR)
-#define MB_A_PCI_DMRR_ADDR     (MB_A_PCI_REG_BASE_ADDR + 0x9C)
-#define MB_A_PCI_DMRR          (*(volatile u32 *)MB_A_PCI_DMRR_ADDR)
-#define MB_A_PCI_DMLBAM_ADDR   (MB_A_PCI_REG_BASE_ADDR + 0xA0)
-#define MB_A_PCI_DMLBAM                (*(volatile u32 *)MB_A_PCI_DMLBAM_ADDR)
-#define MB_A_PCI_DMLBAI_ADDR   (MB_A_PCI_REG_BASE_ADDR + 0xA4)
-#define MB_A_PCI_DMLBAI                (*(volatile u32 *)MB_A_PCI_DMLBAI_ADDR)
-#define MB_A_PCI_PCIPBAM_ADDR  (MB_A_PCI_REG_BASE_ADDR + 0xA8)
-#define MB_A_PCI_PCIPBAM       (*(volatile u32 *)MB_A_PCI_PCIPBAM_ADDR)
-/* `PCI Configuration Address Register for Direct Master to PCI IO/CFG'  */
-#define MB_A_PCI_DMCFGA_ADDR   (MB_A_PCI_REG_BASE_ADDR + 0xAC)
-#define MB_A_PCI_DMCFGA                (*(volatile u32 *)MB_A_PCI_DMCFGA_ADDR)
-/* `PCI Permanent Configuration ID Register'  */
-#define MB_A_PCI_PCIHIDR_ADDR  (MB_A_PCI_REG_BASE_ADDR + 0xF0)
-#define MB_A_PCI_PCIHIDR       (*(volatile u32 *)MB_A_PCI_PCIHIDR_ADDR)
-
-
-#endif /* __V850_MB_A_PCI_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/rte_me2_cb.h -- Midas labs RTE-V850E/ME2-CB board
- *
- *  Copyright (C) 2001,02,03  NEC 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_RTE_ME2_CB_H__
-#define __V850_RTE_ME2_CB_H__
-
-#include <asm/rte_cb.h>                /* Common defs for Midas RTE-CB boards.  */
-
-
-#define PLATFORM               "rte-v850e/me2-cb"
-#define PLATFORM_LONG          "Midas lab RTE-V850E/ME2-CB"
-
-#define CPU_CLOCK_FREQ         150000000 /* 150MHz */
-#define FIXED_BOGOMIPS         50
-
-/* 32MB of onbard SDRAM.  */
-#define SDRAM_ADDR             0x00800000
-#define SDRAM_SIZE             0x02000000 /* 32MB */
-
-
-/* CPU addresses of GBUS memory spaces.  */
-#define GCS0_ADDR              0x04000000 /* GCS0 - Common SRAM (2MB) */
-#define GCS0_SIZE              0x00800000 /*   8MB */
-#define GCS1_ADDR              0x04800000 /* GCS1 - Flash ROM (8MB) */
-#define GCS1_SIZE              0x00800000 /*   8MB */
-#define GCS2_ADDR              0x07000000 /* GCS2 - I/O registers */
-#define GCS2_SIZE              0x00800000 /*   8MB */
-#define GCS5_ADDR              0x08000000 /* GCS5 - PCI bus space */
-#define GCS5_SIZE              0x02000000 /*   32MB */
-#define GCS6_ADDR              0x07800000 /* GCS6 - PCI control registers */
-#define GCS6_SIZE              0x00800000 /*   8MB */
-
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET            SDRAM_ADDR
-
-
-#ifdef CONFIG_ROM_KERNEL
-/* Kernel is in ROM, starting at address 0.  */
-
-#define INTV_BASE              0
-#define ROOT_FS_IMAGE_RW       0
-
-#else /* !CONFIG_ROM_KERNEL */
-/* Using RAM-kernel.  Assume some sort of boot-loader got us loaded at
-   address 0.  */
-
-#define INTV_BASE              0
-#define ROOT_FS_IMAGE_RW       1
-
-#endif /* CONFIG_ROM_KERNEL */
-
-
-/* Some misc. on-board devices.  */
-
-/* Seven-segment LED display (four digits).  */
-#define LED_ADDR(n)            (0x0FE02000 + (n))
-#define LED(n)                 (*(volatile unsigned char *)LED_ADDR(n))
-#define LED_NUM_DIGITS         4
-
-
-/* On-board PIC.  */
-
-#define CB_PIC_BASE_ADDR       0x0FE04000
-
-#define CB_PIC_INT0M_ADDR      (CB_PIC_BASE_ADDR + 0x00)
-#define CB_PIC_INT0M           (*(volatile u16 *)CB_PIC_INT0M_ADDR)
-#define CB_PIC_INT1M_ADDR      (CB_PIC_BASE_ADDR + 0x10)
-#define CB_PIC_INT1M           (*(volatile u16 *)CB_PIC_INT1M_ADDR)
-#define CB_PIC_INTR_ADDR       (CB_PIC_BASE_ADDR + 0x20)
-#define CB_PIC_INTR            (*(volatile u16 *)CB_PIC_INTR_ADDR)
-#define CB_PIC_INTEN_ADDR      (CB_PIC_BASE_ADDR + 0x30)
-#define CB_PIC_INTEN           (*(volatile u16 *)CB_PIC_INTEN_ADDR)
-
-#define CB_PIC_INT0EN          0x0001
-#define CB_PIC_INT1EN          0x0002
-#define CB_PIC_INT0SEL         0x0080
-
-/* The PIC interrupts themselves.  */
-#define CB_PIC_BASE_IRQ                NUM_CPU_IRQS
-#define IRQ_CB_PIC_NUM         10
-
-/* Some specific CB_PIC interrupts. */
-#define IRQ_CB_EXTTM0          (CB_PIC_BASE_IRQ + 0)
-#define IRQ_CB_EXTSIO          (CB_PIC_BASE_IRQ + 1)
-#define IRQ_CB_TOVER           (CB_PIC_BASE_IRQ + 2)
-#define IRQ_CB_GINT0           (CB_PIC_BASE_IRQ + 3)
-#define IRQ_CB_USB             (CB_PIC_BASE_IRQ + 4)
-#define IRQ_CB_LANC            (CB_PIC_BASE_IRQ + 5)
-#define IRQ_CB_USB_VBUS_ON     (CB_PIC_BASE_IRQ + 6)
-#define IRQ_CB_USB_VBUS_OFF    (CB_PIC_BASE_IRQ + 7)
-#define IRQ_CB_EXTTM1          (CB_PIC_BASE_IRQ + 8)
-#define IRQ_CB_EXTTM2          (CB_PIC_BASE_IRQ + 9)
-
-/* The GBUS GINT1 - GINT3 (note, not GINT0!) interrupts are connected to
-   the INTP65 - INTP67 pins on the CPU.  These are shared among the GBUS
-   interrupts.  */
-#define IRQ_GINT(n)            IRQ_INTP((n) + 9)  /* 0 is unused! */
-#define IRQ_GINT_NUM           4                  /* 0 is unused! */
-
-/* The shared interrupt line from the PIC is connected to CPU pin INTP23.  */
-#define IRQ_CB_PIC             IRQ_INTP(4) /* P23 */
-
-/* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS.  */
-#define NUM_RTE_CB_IRQS                (NUM_CPU_IRQS + IRQ_CB_PIC_NUM)
-
-
-#ifndef __ASSEMBLY__
-struct cb_pic_irq_init {
-       const char *name;       /* name of interrupt type */
-
-       /* Range of kernel irq numbers for this type:
-          BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM  */
-       unsigned base, num, interval;
-
-       unsigned priority;      /* interrupt priority to assign */
-};
-struct hw_interrupt_type;      /* fwd decl */
-
-/* Enable interrupt handling for interrupt IRQ.  */
-extern void cb_pic_enable_irq (unsigned 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 `cb_pic_clear_pending_irq'.  */
-extern void cb_pic_disable_irq (unsigned irq);
-/* Initialize HW_IRQ_TYPES for PIC irqs described in array INITS (which is
-   terminated by an entry with the name field == 0).  */
-extern void cb_pic_init_irq_types (struct cb_pic_irq_init *inits,
-                                  struct hw_interrupt_type *hw_irq_types);
-/* Initialize PIC interrupts.  */
-extern void cb_pic_init_irqs (void);
-#endif /* __ASSEMBLY__ */
-
-
-/* TL16C550C on board UART see also asm/serial.h */
-#define CB_UART_BASE           0x0FE08000
-#define CB_UART_REG_GAP        0x10
-#define CB_UART_CLOCK          0x16000000
-
-/* CompactFlash setting */
-#define CB_CF_BASE                     0x0FE0C000
-#define CB_CF_CCR_ADDR                 (CB_CF_BASE+0x200)
-#define CB_CF_CCR                      (*(volatile u8 *)CB_CF_CCR_ADDR)
-#define CB_CF_REG0_ADDR                (CB_CF_BASE+0x1000)
-#define CB_CF_REG0                     (*(volatile u16 *)CB_CF_REG0_ADDR)
-#define CB_CF_STS0_ADDR                (CB_CF_BASE+0x1004)
-#define CB_CF_STS0                     (*(volatile u16 *)CB_CF_STS0_ADDR)
-#define CB_PCATA_BASE                  (CB_CF_BASE+0x800)
-#define CB_IDE_BASE                    (CB_CF_BASE+0x9F0)
-#define CB_IDE_CTRL                    (CB_CF_BASE+0xBF6)
-#define CB_IDE_REG_OFFS                0x1
-
-
-/* SMSC LAN91C111 setting */
-#if defined(CONFIG_SMC91111)
-#define CB_LANC_BASE           0x0FE10300
-#define CONFIG_SMC16BITONLY
-#define ETH0_ADDR              CB_LANC_BASE
-#define ETH0_IRQ               IRQ_CB_LANC
-#endif /* CONFIG_SMC16BITONLY */
-
-
-#undef V850E_UART_PRE_CONFIGURE
-#define V850E_UART_PRE_CONFIGURE       rte_me2_cb_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void rte_me2_cb_uart_pre_configure (unsigned chan,
-                                          unsigned cflags, unsigned baud);
-#endif /* __ASSEMBLY__ */
-
-/* This board supports RTS/CTS for the on-chip UART, but only for channel 0. */
-
-/* CTS for UART channel 0 is pin P22 (bit 2 of port 2).  */
-#define V850E_UART_CTS(chan)   ((chan) == 0 ? !(ME2_PORT2_IO & 0x4) : 1)
-/* RTS for UART channel 0 is pin P21 (bit 1 of port 2).  */
-#define V850E_UART_SET_RTS(chan, val)                                        \
-   do {                                                                              \
-          if (chan == 0) {                                                   \
-                  unsigned old = ME2_PORT2_IO;                               \
-                  if (val)                                                   \
-                          ME2_PORT2_IO = old & ~0x2;                         \
-                  else                                                       \
-                          ME2_PORT2_IO = old | 0x2;                          \
-          }                                                                  \
-   } while (0)
-
-
-#ifndef __ASSEMBLY__
-extern void rte_me2_cb_init_irqs (void);
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_RTE_ME2_CB_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/rte_nb85e_cb.h -- Midas labs RTE-V850/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>
- */
-
-#ifndef __V850_RTE_NB85E_CB_H__
-#define __V850_RTE_NB85E_CB_H__
-
-#include <asm/rte_cb.h>                /* Common defs for Midas RTE-CB boards.  */
-
-
-#define PLATFORM               "rte-v850e/nb85e-cb"
-#define PLATFORM_LONG          "Midas lab RTE-V850E/NB85E-CB"
-
-#define CPU_CLOCK_FREQ         50000000 /* 50MHz */
-
-/* 1MB of onboard SRAM.  Note that the monitor ROM uses parts of this
-   for its own purposes, so care must be taken.  */
-#define SRAM_ADDR              0x03C00000
-#define SRAM_SIZE              0x00100000 /* 1MB */
-
-/* 16MB of onbard SDRAM.  */
-#define SDRAM_ADDR             0x01000000
-#define SDRAM_SIZE             0x01000000 /* 16MB */
-
-
-/* CPU addresses of GBUS memory spaces.  */
-#define GCS0_ADDR              0x00400000 /* GCS0 - Common SRAM (2MB) */
-#define GCS0_SIZE              0x00400000 /*   4MB */
-#define GCS1_ADDR              0x02000000 /* GCS1 - Flash ROM (8MB) */
-#define GCS1_SIZE              0x00800000 /*   8MB */
-#define GCS2_ADDR              0x03900000 /* GCS2 - I/O registers */
-#define GCS2_SIZE              0x00080000 /*   512KB */
-#define GCS3_ADDR              0x02800000 /* GCS3 - EXT-bus: memory space */
-#define GCS3_SIZE              0x00800000 /*   8MB */
-#define GCS4_ADDR              0x03A00000 /* GCS4 - EXT-bus: I/O space */
-#define GCS4_SIZE              0x00200000 /*   2MB */
-#define GCS5_ADDR              0x00800000 /* GCS5 - PCI bus space */
-#define GCS5_SIZE              0x00800000 /*   8MB */
-#define GCS6_ADDR              0x03980000 /* GCS6 - PCI control registers */
-#define GCS6_SIZE              0x00010000 /*   64KB */
-
-
-/* The GBUS GINT0 - GINT3 interrupts are connected to CPU interrupts 10-12.
-   These are shared among the GBUS interrupts.  */
-#define IRQ_GINT(n)            (10 + (n))
-#define IRQ_GINT_NUM           3
-
-/* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS.  */
-#define NUM_RTE_CB_IRQS                NUM_CPU_IRQS
-
-
-#ifdef CONFIG_ROM_KERNEL
-/* Kernel is in ROM, starting at address 0.  */
-
-#define INTV_BASE      0
-
-#else /* !CONFIG_ROM_KERNEL */
-/* We're using the ROM monitor.  */
-
-/* The chip's real interrupt vectors are in ROM, but they jump to a
-   secondary interrupt vector table in RAM.  */
-#define INTV_BASE              0x03CF8000
-
-/* Scratch memory used by the ROM monitor, which shouldn't be used by
-   linux (except for the alternate interrupt vector area, defined
-   above).  */
-#define MON_SCRATCH_ADDR       0x03CE8000
-#define MON_SCRATCH_SIZE       0x00018000 /* 96KB */
-
-#endif /* CONFIG_ROM_KERNEL */
-
-
-/* Some misc. on-board devices.  */
-
-/* Seven-segment LED display (two digits).  Write-only.  */
-#define LED_ADDR(n)    (0x03802000 + (n))
-#define LED(n)         (*(volatile unsigned char *)LED_ADDR(n))
-#define LED_NUM_DIGITS 4
-
-
-/* Override the basic TEG UART pre-initialization so that we can
-   initialize extra stuff.  */
-#undef V850E_UART_PRE_CONFIGURE        /* should be defined by <asm/teg.h> */
-#define V850E_UART_PRE_CONFIGURE       rte_nb85e_cb_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void rte_nb85e_cb_uart_pre_configure (unsigned chan,
-                                            unsigned cflags, unsigned baud);
-#endif
-
-/* This board supports RTS/CTS for the on-chip UART. */
-
-/* CTS is pin P00.  */
-#define V850E_UART_CTS(chan)   (! (TEG_PORT0_IO & 0x1))
-/* RTS is pin P02.  */
-#define V850E_UART_SET_RTS(chan, val)                                        \
-   do {                                                                              \
-          unsigned old = TEG_PORT0_IO;                                       \
-          TEG_PORT0_IO = val ? (old & ~0x4) : (old | 0x4);                   \
-   } while (0)
-
-
-#endif /* __V850_RTE_NB85E_CB_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/scatterlist.h
- *
- *  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>
- */
-
-#ifndef __V850_SCATTERLIST_H__
-#define __V850_SCATTERLIST_H__
-
-#include <asm/types.h>
-
-struct scatterlist {
-#ifdef CONFIG_DEBUG_SG
-       unsigned long   sg_magic;
-#endif
-       unsigned long   page_link;
-       unsigned        offset;
-       dma_addr_t      dma_address;
-       unsigned        length;
-};
-
-#define ISA_DMA_THRESHOLD      (~0UL)
-
-#endif /* __V850_SCATTERLIST_H__ */
 
+++ /dev/null
-#ifndef __V850_SECTIONS_H__
-#define __V850_SECTIONS_H__
-
-#include <asm-generic/sections.h>
-
-#endif /* __V850_SECTIONS_H__ */
 
+++ /dev/null
-#ifndef __V850_SEGMENT_H__
-#define __V850_SEGMENT_H__
-
-
-#ifndef __ASSEMBLY__
-
-typedef unsigned long mm_segment_t;    /* domain register */
-
-#endif /* !__ASSEMBLY__ */
-
-
-#define __KERNEL_CS    0x0
-#define __KERNEL_DS    0x0
-
-#define __USER_CS      0x1
-#define __USER_DS      0x1
-
-#define KERNEL_DS      __KERNEL_DS
-#define KERNEL_CS      __KERNEL_CS
-#define USER_DS                __USER_DS
-#define USER_CS                __USER_CS
-
-#define segment_eq(a,b)        ((a) == (b))
-
-#define get_ds()       (KERNEL_DS)
-#define get_fs()       (USER_DS)
-
-#define set_fs(seg)    ((void)(seg))
-
-
-#define copy_segments(task, mm)        ((void)((void)(task), (mm)))
-#define release_segments(mm)   ((void)(mm))
-#define forget_segments()      ((void)0)
-
-
-#endif /* __V850_SEGMENT_H__ */
 
+++ /dev/null
-#include <linux/semaphore.h>
 
+++ /dev/null
-#ifndef __V850_SEMBUF_H__
-#define __V850_SEMBUF_H__
-
-/* 
- * The semid64_ds structure for v850 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct semid64_ds {
-       struct ipc64_perm sem_perm;             /* permissions .. see ipc.h */
-       __kernel_time_t sem_otime;              /* last semop time */
-       unsigned long   __unused1;
-       __kernel_time_t sem_ctime;              /* last change time */
-       unsigned long   __unused2;
-       unsigned long   sem_nsems;              /* no. of semaphores in array */
-       unsigned long   __unused3;
-       unsigned long   __unused4;
-};
-
-#endif /* __V850_SEMBUF_H__ */
 
+++ /dev/null
-/*
- * 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.
- *
- * Copyright (C) 1999 by Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */ 
-
-#ifdef CONFIG_RTE_CB_ME2
-
-#include <asm/rte_me2_cb.h>
-
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
-
-#define irq_cannonicalize(x) (x)
-#define BASE_BAUD      250000  /* (16MHz / (16 * 38400)) * 9600 */
-#define SERIAL_PORT_DFNS \
-   { 0, BASE_BAUD, CB_UART_BASE, IRQ_CB_EXTSIO, STD_COM_FLAGS },
-
-/* Redefine UART register offsets.  */
-#undef UART_RX
-#undef UART_TX
-#undef UART_DLL
-#undef UART_TRG
-#undef UART_DLM
-#undef UART_IER
-#undef UART_FCTR
-#undef UART_IIR
-#undef UART_FCR
-#undef UART_EFR
-#undef UART_LCR
-#undef UART_MCR
-#undef UART_LSR
-#undef UART_MSR
-#undef UART_SCR
-#undef UART_EMSR
-
-#define UART_RX                (0 * CB_UART_REG_GAP)
-#define UART_TX                (0 * CB_UART_REG_GAP)
-#define UART_DLL       (0 * CB_UART_REG_GAP)
-#define UART_TRG       (0 * CB_UART_REG_GAP)
-#define UART_DLM       (1 * CB_UART_REG_GAP)
-#define UART_IER       (1 * CB_UART_REG_GAP)
-#define UART_FCTR      (1 * CB_UART_REG_GAP)
-#define UART_IIR       (2 * CB_UART_REG_GAP)
-#define UART_FCR       (2 * CB_UART_REG_GAP)
-#define UART_EFR       (2 * CB_UART_REG_GAP)
-#define UART_LCR       (3 * CB_UART_REG_GAP)
-#define UART_MCR       (4 * CB_UART_REG_GAP)
-#define UART_LSR       (5 * CB_UART_REG_GAP)
-#define UART_MSR       (6 * CB_UART_REG_GAP)
-#define UART_SCR       (7 * CB_UART_REG_GAP)
-#define UART_EMSR      (7 * CB_UART_REG_GAP)
-
-#endif /* CONFIG_RTE_CB_ME2 */
 
+++ /dev/null
-#ifndef _V850_SETUP_H
-#define _V850_SETUP_H
-
-#define COMMAND_LINE_SIZE      512
-
-#endif /* __SETUP_H */
 
+++ /dev/null
-#ifndef __V850_SHMBUF_H__
-#define __V850_SHMBUF_H__
-
-/* 
- * The shmid64_ds structure for v850 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
-       struct ipc64_perm       shm_perm;       /* operation perms */
-       size_t                  shm_segsz;      /* size of segment (bytes) */
-       __kernel_time_t         shm_atime;      /* last attach time */
-       unsigned long           __unused1;
-       __kernel_time_t         shm_dtime;      /* last detach time */
-       unsigned long           __unused2;
-       __kernel_time_t         shm_ctime;      /* last change time */
-       unsigned long           __unused3;
-       __kernel_pid_t          shm_cpid;       /* pid of creator */
-       __kernel_pid_t          shm_lpid;       /* pid of last operator */
-       unsigned long           shm_nattch;     /* no. of current attaches */
-       unsigned long           __unused4;
-       unsigned long           __unused5;
-};
-
-struct shminfo64 {
-       unsigned long   shmmax;
-       unsigned long   shmmin;
-       unsigned long   shmmni;
-       unsigned long   shmseg;
-       unsigned long   shmall;
-       unsigned long   __unused1;
-       unsigned long   __unused2;
-       unsigned long   __unused3;
-       unsigned long   __unused4;
-};
-
-#endif /* __V850_SHMBUF_H__ */
 
+++ /dev/null
-#ifndef __V850_SHMPARAM_H__
-#define __V850_SHMPARAM_H__
-
-#define        SHMLBA          PAGE_SIZE       /* attach addr a multiple of this */
-
-#endif /* __V850_SHMPARAM_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/sigcontext.h -- Signal contexts
- *
- *  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>
- */
-
-#ifndef __V850_SIGCONTEXT_H__
-#define __V850_SIGCONTEXT_H__
-
-#include <asm/ptrace.h>
-
-struct sigcontext
-{
-       struct pt_regs  regs;
-       unsigned long   oldmask;
-};
-
-#endif /* __V850_SIGCONTEXT_H__ */
 
+++ /dev/null
-#ifndef __V850_SIGINFO_H__
-#define __V850_SIGINFO_H__
-
-#include <asm-generic/siginfo.h>
-
-#endif /* __V850_SIGINFO_H__ */
 
+++ /dev/null
-#ifndef __V850_SIGNAL_H__
-#define __V850_SIGNAL_H__
-
-#include <linux/types.h>
-
-/* Avoid too many header ordering problems.  */
-struct siginfo;
-
-
-#ifdef __KERNEL__
-
-/* Most things should be clean enough to redefine this at will, if care
-   is taken to make libc match.  */
-#define _NSIG          64
-#define _NSIG_BPW      32
-#define _NSIG_WORDS    (_NSIG / _NSIG_BPW)
-
-typedef unsigned long old_sigset_t;            /* at least 32 bits */
-
-typedef struct {
-       unsigned long sig[_NSIG_WORDS];
-} sigset_t;
-
-#else /* !__KERNEL__ */
-
-/* Here we must cater to libcs that poke about in kernel headers.  */
-
-#define NSIG           32
-typedef unsigned long sigset_t;
-
-#endif /* __KERNEL__ */
-
-
-#define SIGHUP          1
-#define SIGINT          2
-#define SIGQUIT                 3
-#define SIGILL          4
-#define SIGTRAP                 5
-#define SIGABRT                 6
-#define SIGIOT          6
-#define SIGBUS          7
-#define SIGFPE          8
-#define SIGKILL                 9
-#define SIGUSR1                10
-#define SIGSEGV                11
-#define SIGUSR2                12
-#define SIGPIPE                13
-#define SIGALRM                14
-#define SIGTERM                15
-#define SIGSTKFLT      16
-#define SIGCHLD                17
-#define SIGCONT                18
-#define SIGSTOP                19
-#define SIGTSTP                20
-#define SIGTTIN                21
-#define SIGTTOU                22
-#define SIGURG         23
-#define SIGXCPU                24
-#define SIGXFSZ                25
-#define SIGVTALRM      26
-#define SIGPROF                27
-#define SIGWINCH       28
-#define SIGIO          29
-#define SIGPOLL                SIGIO
-/*
-#define SIGLOST                29
-*/
-#define SIGPWR         30
-#define SIGSYS         31
-#define        SIGUNUSED       31
-
-/* These should not be considered constants from userland.  */
-#define SIGRTMIN       32
-#define SIGRTMAX       _NSIG
-
-/*
- * SA_FLAGS values:
- *
- * SA_ONSTACK indicates that a registered stack_t will be used.
- * SA_RESTART flag to get restarting signals (which were the default long ago)
- * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
- * SA_RESETHAND clears the handler when the signal is delivered.
- * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
- * SA_NODEFER prevents the current signal from being masked in the handler.
- *
- * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
- * Unix names RESETHAND and NODEFER respectively.
- */
-#define SA_NOCLDSTOP   0x00000001
-#define SA_NOCLDWAIT   0x00000002
-#define SA_SIGINFO     0x00000004
-#define SA_ONSTACK     0x08000000
-#define SA_RESTART     0x10000000
-#define SA_NODEFER     0x40000000
-#define SA_RESETHAND   0x80000000
-
-#define SA_NOMASK      SA_NODEFER
-#define SA_ONESHOT     SA_RESETHAND
-
-#define SA_RESTORER    0x04000000
-
-/* 
- * sigaltstack controls
- */
-#define SS_ONSTACK     1
-#define SS_DISABLE     2
-
-#define MINSIGSTKSZ    2048
-#define SIGSTKSZ       8192
-
-#include <asm-generic/signal.h>
-
-#ifdef __KERNEL__
-
-struct old_sigaction {
-       __sighandler_t sa_handler;
-       old_sigset_t sa_mask;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-};
-
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
-
-struct k_sigaction {
-       struct sigaction sa;
-};
-
-#else /* !__KERNEL__ */
-
-/* Here we must cater to libcs that poke about in kernel headers.  */
-
-struct sigaction {
-       union {
-         __sighandler_t _sa_handler;
-         void (*_sa_sigaction)(int, struct siginfo *, void *);
-       } _u;
-       sigset_t sa_mask;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-};
-
-#define sa_handler     _u._sa_handler
-#define sa_sigaction   _u._sa_sigaction
-
-#endif /* __KERNEL__ */
-
-
-typedef struct sigaltstack {
-       void *ss_sp;
-       int ss_flags;
-       size_t ss_size;
-} stack_t;
-
-#ifdef __KERNEL__
-
-#include <asm/sigcontext.h>
-#undef __HAVE_ARCH_SIG_BITOPS
-
-#define ptrace_signal_deliver(regs, cookie) do { } while (0)
-
-#endif /* __KERNEL__ */
-
-#endif /* __V850_SIGNAL_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/sim.h -- Machine-dependent defs for GDB v850e simulator
- *
- *  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_SIM_H__
-#define __V850_SIM_H__
-
-
-#define CPU_ARCH               "v850e"
-#define CPU_MODEL              "v850e"
-#define CPU_MODEL_LONG         "NEC V850E"
-#define PLATFORM               "gdb/v850e"
-#define PLATFORM_LONG          "GDB V850E simulator"
-
-
-/* We use a weird value for RAM, not just 0, for testing purposes.
-   These must match the values used in the linker script.  */
-#define RAM_ADDR               0x8F000000
-#define RAM_SIZE               0x03000000
-
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET            RAM_ADDR
-
-
-/* For <asm/entry.h> */
-/* `R0 RAM', used for a few miscellaneous variables that must be
-   accessible using a load instruction relative to R0.  On real
-   processors, this usually is on-chip RAM, but here we just
-   choose an arbitrary address that meets the above constraint.  */
-#define R0_RAM_ADDR            0xFFFFF000
-
-
-/* For <asm/irq.h> */
-#define NUM_CPU_IRQS           6
-
-
-#endif /* __V850_SIM_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/sim85e2.h -- Machine-dependent defs for
- *     V850E2 RTL simulator
- *
- *  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>
- */
-
-#ifndef __V850_SIM85E2_H__
-#define __V850_SIM85E2_H__
-
-
-#include <asm/v850e2.h>                /* Based on V850E2 core.  */
-
-
-/* Various memory areas supported by the simulator.
-   These should match the corresponding definitions in the linker script.  */
-
-/* `instruction RAM'; instruction fetches are much faster from IRAM than
-   from DRAM.  */
-#define IRAM_ADDR              0
-#define IRAM_SIZE              0x00100000 /* 1MB */
-/* `data RAM', below and contiguous with the I/O space.
-   Data fetches are much faster from DRAM than from IRAM.  */
-#define DRAM_ADDR              0xfff00000
-#define DRAM_SIZE              0x000ff000 /* 1020KB */
-/* `external ram'.  Unlike the above RAM areas, this memory is cached,
-   so both instruction and data fetches should be (mostly) fast --
-   however, currently only write-through caching is supported, so writes
-   to ERAM will be slow.  */
-#define ERAM_ADDR              0x00100000
-#define ERAM_SIZE              0x07f00000 /* 127MB (max) */
-/* Dynamic RAM; uses memory controller.  */
-#define SDRAM_ADDR             0x10000000
-#define SDRAM_SIZE             0x01000000 /* 16MB */
-
-
-/* Simulator specific control registers.  */
-/* NOTHAL controls whether the simulator will stop at a `halt' insn.  */
-#define SIM85E2_NOTHAL_ADDR    0xffffff22
-#define SIM85E2_NOTHAL         (*(volatile u8 *)SIM85E2_NOTHAL_ADDR)
-/* The simulator will stop N cycles after N is written to SIMFIN.  */
-#define SIM85E2_SIMFIN_ADDR    0xffffff24
-#define SIM85E2_SIMFIN         (*(volatile u16 *)SIM85E2_SIMFIN_ADDR)
-
-
-/* For <asm/irq.h> */
-#define NUM_CPU_IRQS           64
-
-
-/* For <asm/page.h> */
-#define PAGE_OFFSET            SDRAM_ADDR
-
-
-/* For <asm/entry.h> */
-/* `R0 RAM', used for a few miscellaneous variables that must be accessible
-   using a load instruction relative to R0.  The sim85e2 simulator
-   actually puts 1020K of RAM from FFF00000 to FFFFF000, so we arbitarily
-   choose a small portion at the end of that.  */
-#define R0_RAM_ADDR            0xFFFFE000
-
-
-#endif /* __V850_SIM85E2_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/sim85e2c.h -- Machine-dependent defs for
- *     V850E2 RTL simulator
- *
- *  Copyright (C) 2002  NEC Corporation
- *  Copyright (C) 2002  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_SIM85E2C_H__
-#define __V850_SIM85E2C_H__
-
-/* Use generic sim85e2 settings, other than the various names.  */
-#include <asm/sim85e2.h>
-
-#define CPU_MODEL      "v850e2"
-#define CPU_MODEL_LONG "NEC V850E2"
-#define PLATFORM       "sim85e2c"
-#define PLATFORM_LONG  "SIM85E2C V850E2 simulator"
-
-#endif /* __V850_SIM85E2C_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/sim85e2s.h -- Machine-dependent defs for
- *     V850E2 RTL simulator
- *
- *  Copyright (C) 2003  NEC Electronics 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>
- */
-
-#ifndef __V850_SIM85E2S_H__
-#define __V850_SIM85E2S_H__
-
-#include <asm/sim85e2.h>       /* Use generic sim85e2 settings.  */
-#if 0
-#include <asm/v850e2_cache.h>  /* + cache */
-#endif
-
-#define CPU_MODEL      "v850e2"
-#define CPU_MODEL_LONG "NEC V850E2"
-#define PLATFORM       "sim85e2s"
-#define PLATFORM_LONG  "SIM85E2S V850E2 simulator"
-
-#endif /* __V850_SIM85E2S_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/simsyscall.h -- `System calls' under the v850e emulator
- *
- *  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>
- */
-
-#ifndef __V850_SIMSYSCALL_H__
-#define __V850_SIMSYSCALL_H__
-
-#define V850_SIM_SYS_exit(a...)                V850_SIM_SYSCALL_1 (1   , ##a)
-#define V850_SIM_SYS_fork(a...)                V850_SIM_SYSCALL_0 (2   , ##a)
-#define V850_SIM_SYS_read(a...)                V850_SIM_SYSCALL_3 (3   , ##a)
-#define V850_SIM_SYS_write(a...)       V850_SIM_SYSCALL_3 (4   , ##a)
-#define V850_SIM_SYS_open(a...)                V850_SIM_SYSCALL_2 (5   , ##a)
-#define V850_SIM_SYS_close(a...)       V850_SIM_SYSCALL_1 (6   , ##a)
-#define V850_SIM_SYS_wait4(a...)       V850_SIM_SYSCALL_4 (7   , ##a)
-/* #define V850_SIM_SYS_creat(a...)    V850_SIM_SYSCALL_1 (8   , ##a) */
-/* #define V850_SIM_SYS_link(a...)     V850_SIM_SYSCALL_1 (9   , ##a) */
-/* #define V850_SIM_SYS_unlink(a...)   V850_SIM_SYSCALL_1 (10  , ##a) */
-#define V850_SIM_SYS_execv(a...)       V850_SIM_SYSCALL_2 (11  , ##a)
-/* #define V850_SIM_SYS_chdir(a...)    V850_SIM_SYSCALL_1 (12  , ##a) */
-/* #define V850_SIM_SYS_mknod(a...)    V850_SIM_SYSCALL_1 (14  , ##a) */
-#define V850_SIM_SYS_chmod(a...)       V850_SIM_SYSCALL_2 (15  , ##a)
-#define V850_SIM_SYS_chown(a...)       V850_SIM_SYSCALL_2 (16  , ##a)
-#define V850_SIM_SYS_lseek(a...)       V850_SIM_SYSCALL_3 (19  , ##a)
-/* #define V850_SIM_SYS_getpid(a...)   V850_SIM_SYSCALL_1 (20  , ##a) */
-/* #define V850_SIM_SYS_isatty(a...)   V850_SIM_SYSCALL_1 (21  , ##a) */
-/* #define V850_SIM_SYS_fstat(a...)    V850_SIM_SYSCALL_1 (22  , ##a) */
-#define V850_SIM_SYS_time(a...)                V850_SIM_SYSCALL_1 (23  , ##a)
-#define V850_SIM_SYS_poll(a...)                V850_SIM_SYSCALL_3 (24  , ##a)
-#define V850_SIM_SYS_stat(a...)                V850_SIM_SYSCALL_2 (38  , ##a)
-#define V850_SIM_SYS_pipe(a...)                V850_SIM_SYSCALL_1 (42  , ##a)
-#define V850_SIM_SYS_times(a...)       V850_SIM_SYSCALL_1 (43  , ##a)
-#define V850_SIM_SYS_execve(a...)      V850_SIM_SYSCALL_3 (59  , ##a)
-#define V850_SIM_SYS_gettimeofday(a...)        V850_SIM_SYSCALL_2 (116 , ##a)
-/* #define V850_SIM_SYS_utime(a...)    V850_SIM_SYSCALL_2 (201 , ##a) */
-/* #define V850_SIM_SYS_wait(a...)     V850_SIM_SYSCALL_1 (202 , ##a) */
-
-#define V850_SIM_SYS_make_raw(a...)    V850_SIM_SYSCALL_1 (1024 , ##a)
-
-
-#define V850_SIM_SYSCALL_0(_call)                                            \
-({                                                                           \
-       register int call __asm__ ("r6") = _call;                             \
-       register int rval __asm__ ("r10");                                    \
-       __asm__ __volatile__ ("trap 31"                                       \
-                             : "=r" (rval)                                   \
-                             : "r" (call)                                    \
-                             : "r11", "memory");                             \
-       rval;                                                                 \
-})
-#define V850_SIM_SYSCALL_1(_call, _arg0)                                     \
-({                                                                           \
-       register int call __asm__ ("r6") = _call;                             \
-       register long arg0 __asm__ ("r7") = (long)_arg0;                      \
-       register int rval __asm__ ("r10");                                    \
-       __asm__ __volatile__ ("trap 31"                                       \
-                             : "=r" (rval)                                   \
-                             : "r" (call), "r" (arg0)                        \
-                             : "r11", "memory");                             \
-       rval;                                                                 \
-})
-#define V850_SIM_SYSCALL_2(_call, _arg0, _arg1)                                      \
-({                                                                           \
-       register int call __asm__ ("r6") = _call;                             \
-       register long arg0 __asm__ ("r7") = (long)_arg0;                      \
-       register long arg1 __asm__ ("r8") = (long)_arg1;                      \
-       register int rval __asm__ ("r10");                                    \
-       __asm__ __volatile__ ("trap 31"                                       \
-                             : "=r" (rval)                                   \
-                             : "r" (call), "r" (arg0), "r" (arg1)            \
-                             : "r11", "memory");                             \
-       rval;                                                                 \
-})
-#define V850_SIM_SYSCALL_3(_call, _arg0, _arg1, _arg2)                       \
-({                                                                           \
-       register int call __asm__ ("r6") = _call;                             \
-       register long arg0 __asm__ ("r7") = (long)_arg0;                      \
-       register long arg1 __asm__ ("r8") = (long)_arg1;                      \
-       register long arg2 __asm__ ("r9") = (long)_arg2;                      \
-       register int rval __asm__ ("r10");                                    \
-       __asm__ __volatile__ ("trap 31"                                       \
-                             : "=r" (rval)                                   \
-                             : "r" (call), "r" (arg0), "r" (arg1), "r" (arg2)\
-                             : "r11", "memory");                             \
-       rval;                                                                 \
-})
-
-#define V850_SIM_SYSCALL(call, args...) \
-   V850_SIM_SYS_##call (args)
-
-#endif /* __V850_SIMSYSCALL_H__ */
 
+++ /dev/null
-#ifndef __V850_SOCKET_H__
-#define __V850_SOCKET_H__
-
-#include <asm/sockios.h>
-
-/* For setsockoptions(2) */
-#define SOL_SOCKET     1
-
-#define SO_DEBUG       1
-#define SO_REUSEADDR   2
-#define SO_TYPE                3
-#define SO_ERROR       4
-#define SO_DONTROUTE   5
-#define SO_BROADCAST   6
-#define SO_SNDBUF      7
-#define SO_RCVBUF      8
-#define SO_SNDBUFFORCE 32
-#define SO_RCVBUFFORCE 33
-#define SO_KEEPALIVE   9
-#define SO_OOBINLINE   10
-#define SO_NO_CHECK    11
-#define SO_PRIORITY    12
-#define SO_LINGER      13
-#define SO_BSDCOMPAT   14
-/* To add :#define SO_REUSEPORT 15 */
-#define SO_PASSCRED    16
-#define SO_PEERCRED    17
-#define SO_RCVLOWAT    18
-#define SO_SNDLOWAT    19
-#define SO_RCVTIMEO    20
-#define SO_SNDTIMEO    21
-
-/* Security levels - as per NRL IPv6 - don't actually do anything */
-#define SO_SECURITY_AUTHENTICATION             22
-#define SO_SECURITY_ENCRYPTION_TRANSPORT       23
-#define SO_SECURITY_ENCRYPTION_NETWORK         24
-
-#define SO_BINDTODEVICE        25
-
-/* Socket filtering */
-#define SO_ATTACH_FILTER        26
-#define SO_DETACH_FILTER        27
-
-#define SO_PEERNAME             28
-#define SO_TIMESTAMP           29
-#define SCM_TIMESTAMP          SO_TIMESTAMP
-
-#define SO_ACCEPTCONN          30
-
-#define SO_PEERSEC             31
-#define SO_PASSSEC             34
-#define SO_TIMESTAMPNS         35
-#define SCM_TIMESTAMPNS                SO_TIMESTAMPNS
-
-#define SO_MARK                        36
-
-#endif /* __V850_SOCKET_H__ */
 
+++ /dev/null
-#ifndef __V850_SOCKIOS_H__
-#define __V850_SOCKIOS_H__
-
-/* Socket-level I/O control calls. */
-#define FIOSETOWN      0x8901
-#define SIOCSPGRP      0x8902
-#define FIOGETOWN      0x8903
-#define SIOCGPGRP      0x8904
-#define SIOCATMARK     0x8905
-#define SIOCGSTAMP     0x8906          /* Get stamp (timeval) */
-#define SIOCGSTAMPNS   0x8907          /* Get stamp (timespec) */
-
-#endif /* __V850_SOCKIOS_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/stat.h -- v850 stat structure
- *
- *  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_STAT_H__
-#define __V850_STAT_H__
-
-#include <asm/posix_types.h>
-
-struct stat {
-       unsigned int    st_dev;
-       unsigned long   st_ino;
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-       unsigned int    st_rdev;
-       long            st_size;
-       unsigned long   st_blksize;
-       unsigned long   st_blocks;
-       unsigned long   st_atime;
-       unsigned long   __unused1;
-       unsigned long   st_mtime;
-       unsigned long   __unused2;
-       unsigned long   st_ctime;
-       unsigned long   __unused3;
-       unsigned long   __unused4;
-       unsigned long   __unused5;
-};
-
-struct stat64 {
-       unsigned long long      st_dev;
-       unsigned long   __unused1;
-
-       unsigned long long      st_ino;
-
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-
-       unsigned long long      st_rdev;
-       unsigned long   __unused3;
-
-       long long       st_size;
-       unsigned long   st_blksize;
-
-       unsigned long   st_blocks; /* No. of 512-byte blocks allocated */
-       unsigned long   __unused4; /* future possible st_blocks high bits */
-
-       unsigned long   st_atime;
-       unsigned long   st_atime_nsec;
-
-       unsigned long   st_mtime;
-       unsigned long   st_mtime_nsec;
-
-       unsigned long   st_ctime;
-       unsigned long   st_ctime_nsec;
-
-       unsigned long   __unused8;
-};
-
-#endif /* __V850_STAT_H__ */
 
+++ /dev/null
-#ifndef __V850_STATFS_H__
-#define __V850_STATFS_H__
-
-#include <asm-generic/statfs.h>
-
-#endif /* __V850_STATFS_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/string.h -- Architecture specific string routines
- *
- *  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>
- */
-
-#ifndef __V850_STRING_H__
-#define __V850_STRING_H__
-
-#define __HAVE_ARCH_MEMCPY
-#define __HAVE_ARCH_MEMSET
-#define __HAVE_ARCH_MEMMOVE
-
-extern void *memcpy (void *, const void *, __kernel_size_t);
-extern void *memset (void *, int, __kernel_size_t);
-extern void *memmove (void *, const void *, __kernel_size_t);
-
-#endif /* __V850_STRING_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/system.h -- Low-level interrupt/thread ops
- *
- *  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_SYSTEM_H__
-#define __V850_SYSTEM_H__
-
-#include <linux/linkage.h>
-#include <asm/ptrace.h>
-
-
-/*
- * switch_to(n) should switch tasks to task ptr, first checking that
- * ptr isn't the current task, in which case it does nothing.
- */
-struct thread_struct;
-extern void *switch_thread (struct thread_struct *last,
-                           struct thread_struct *next);
-#define switch_to(prev,next,last)                                            \
-  do {                                                                       \
-        if (prev != next) {                                                  \
-               (last) = switch_thread (&prev->thread, &next->thread);        \
-       }                                                                     \
-  } while (0)
-
-
-/* Enable/disable interrupts.  */
-#define local_irq_enable()     __asm__ __volatile__ ("ei")
-#define local_irq_disable()    __asm__ __volatile__ ("di")
-
-#define local_save_flags(flags) \
-  __asm__ __volatile__ ("stsr %1, %0" : "=r" (flags) : "i" (SR_PSW))
-#define local_restore_flags(flags) \
-  __asm__ __volatile__ ("ldsr %0, %1" :: "r" (flags), "i" (SR_PSW))
-
-/* For spinlocks etc */
-#define        local_irq_save(flags) \
-  do { local_save_flags (flags); local_irq_disable (); } while (0) 
-#define local_irq_restore(flags) \
-  local_restore_flags (flags);
-
-
-static inline int irqs_disabled (void)
-{
-       unsigned flags;
-       local_save_flags (flags);
-       return !!(flags & 0x20);
-}
-
-
-/*
- * Force strict CPU ordering.
- * Not really required on v850...
- */
-#define nop()                  __asm__ __volatile__ ("nop")
-#define mb()                   __asm__ __volatile__ ("" ::: "memory")
-#define rmb()                  mb ()
-#define wmb()                  mb ()
-#define read_barrier_depends() ((void)0)
-#define set_mb(var, value)     do { xchg (&var, value); } while (0)
-
-#define smp_mb()       mb ()
-#define smp_rmb()      rmb ()
-#define smp_wmb()      wmb ()
-#define smp_read_barrier_depends()     read_barrier_depends()
-
-#define xchg(ptr, with) \
-  ((__typeof__ (*(ptr)))__xchg ((unsigned long)(with), (ptr), sizeof (*(ptr))))
-
-static inline unsigned long __xchg (unsigned long with,
-                                   __volatile__ void *ptr, int size)
-{
-       unsigned long tmp, flags;
-
-       local_irq_save (flags);
-
-       switch (size) {
-       case 1:
-               tmp = *(unsigned char *)ptr;
-               *(unsigned char *)ptr = with;
-               break;
-       case 2:
-               tmp = *(unsigned short *)ptr;
-               *(unsigned short *)ptr = with;
-               break;
-       case 4:
-               tmp = *(unsigned long *)ptr;
-               *(unsigned long *)ptr = with;
-               break;
-       }
-
-       local_irq_restore (flags);
-
-       return tmp;
-}
-
-#include <asm-generic/cmpxchg-local.h>
-
-/*
- * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
- * them available.
- */
-#define cmpxchg_local(ptr, o, n)                                              \
-       ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
-                       (unsigned long)(n), sizeof(*(ptr))))
-#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
-
-#ifndef CONFIG_SMP
-#include <asm-generic/cmpxchg.h>
-#endif
-
-#define arch_align_stack(x) (x)
-
-#endif /* __V850_SYSTEM_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/teg.h -- NB85E-TEG cpu chip
- *
- *  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_TEG_H__
-#define __V850_TEG_H__
-
-
-/* The TEG uses the V850E cpu core.  */
-#include <asm/v850e.h>
-#include <asm/v850e_cache.h>
-
-
-#define CPU_MODEL      "v850e/nb85e-teg"
-#define CPU_MODEL_LONG "NEC V850E/NB85E TEG"
-
-
-/* For <asm/entry.h> */
-/* We use on-chip RAM, for a few miscellaneous variables that must be
-   accessible using a load instruction relative to R0.  On the NB85E/TEG,
-   There's 60KB of iRAM starting at 0xFFFF0000, however we need the base
-   address to be addressable by a 16-bit signed offset, so we only use the
-   second half of it starting from 0xFFFF8000.  */
-#define R0_RAM_ADDR                    0xFFFF8000
-
-
-/* Hardware-specific interrupt numbers (in the kernel IRQ namespace).
-   Some of these are parameterized even though there's only a single
-   interrupt, for compatibility with some generic code that works on other
-   processor models.  */
-#define IRQ_INTCMD(n)  6       /* interval timer interrupt */
-#define IRQ_INTCMD_NUM 1
-#define IRQ_INTSER(n)  16      /* UART reception error */
-#define IRQ_INTSER_NUM 1
-#define IRQ_INTSR(n)   17      /* UART reception completion */
-#define IRQ_INTSR_NUM  1
-#define IRQ_INTST(n)   18      /* UART transmission completion */
-#define IRQ_INTST_NUM  1
-
-/* For <asm/irq.h> */
-#define NUM_CPU_IRQS   64
-
-
-/* TEG UART details.  */
-#define V850E_UART_BASE_ADDR(n)                (0xFFFFF600 + 0x10 * (n))
-#define V850E_UART_ASIM_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x0)
-#define V850E_UART_ASIS_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x2)
-#define V850E_UART_ASIF_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x4)
-#define V850E_UART_CKSR_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x6)
-#define V850E_UART_BRGC_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x8)
-#define V850E_UART_TXB_ADDR(n)         (V850E_UART_BASE_ADDR(n) + 0xA)
-#define V850E_UART_RXB_ADDR(n)         (V850E_UART_BASE_ADDR(n) + 0xC)
-#define V850E_UART_NUM_CHANNELS                1
-#define V850E_UART_BASE_FREQ           CPU_CLOCK_FREQ
-/* This is a function that gets called before configuring the UART.  */
-#define V850E_UART_PRE_CONFIGURE       teg_uart_pre_configure
-#ifndef __ASSEMBLY__
-extern void teg_uart_pre_configure (unsigned chan,
-                                   unsigned cflags, unsigned baud);
-#endif
-
-
-/* The TEG RTPU.  */
-#define V850E_RTPU_BASE_ADDR           0xFFFFF210
-
-
-/* TEG series timer D details.  */
-#define V850E_TIMER_D_BASE_ADDR                0xFFFFF210
-#define V850E_TIMER_D_TMCD_BASE_ADDR   (V850E_TIMER_D_BASE_ADDR + 0x0)
-#define V850E_TIMER_D_TMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x4)
-#define V850E_TIMER_D_CMD_BASE_ADDR    (V850E_TIMER_D_BASE_ADDR + 0x8)
-#define V850E_TIMER_D_BASE_FREQ                CPU_CLOCK_FREQ
-
-
-/* `Interrupt Source Select' control register.  */
-#define TEG_ISS_ADDR                   0xFFFFF7FA
-#define TEG_ISS                                (*(volatile u8 *)TEG_ISS_ADDR)
-
-/* Port 0 I/O register (bits 0-3 used).  */
-#define TEG_PORT0_IO_ADDR              0xFFFFF7F2
-#define TEG_PORT0_IO                   (*(volatile u8 *)TEG_PORT0_IO_ADDR)
-/* Port 0 control register (bits 0-3 control mode, 0 = output, 1 = input).  */
-#define TEG_PORT0_PM_ADDR              0xFFFFF7F4
-#define TEG_PORT0_PM                   (*(volatile u8 *)TEG_PORT0_PM_ADDR)
-
-
-#ifndef __ASSEMBLY__
-extern void teg_init_irqs (void);
-#endif
-
-
-#endif /* __V850_TEG_H__ */
 
+++ /dev/null
-#ifndef __V850_TERMBITS_H__
-#define __V850_TERMBITS_H__
-
-#include <linux/posix_types.h>
-
-typedef unsigned char  cc_t;
-typedef unsigned int   speed_t;
-typedef unsigned int   tcflag_t;
-
-#define NCCS 19
-struct termios {
-       tcflag_t c_iflag;               /* input mode flags */
-       tcflag_t c_oflag;               /* output mode flags */
-       tcflag_t c_cflag;               /* control mode flags */
-       tcflag_t c_lflag;               /* local mode flags */
-       cc_t c_line;                    /* line discipline */
-       cc_t c_cc[NCCS];                /* control characters */
-};
-
-struct termios2 {
-       tcflag_t c_iflag;               /* input mode flags */
-       tcflag_t c_oflag;               /* output mode flags */
-       tcflag_t c_cflag;               /* control mode flags */
-       tcflag_t c_lflag;               /* local mode flags */
-       cc_t c_line;                    /* line discipline */
-       cc_t c_cc[NCCS];                /* control characters */
-       speed_t c_ispeed;               /* input speed */
-       speed_t c_ospeed;               /* output speed */
-};
-
-struct ktermios {
-       tcflag_t c_iflag;               /* input mode flags */
-       tcflag_t c_oflag;               /* output mode flags */
-       tcflag_t c_cflag;               /* control mode flags */
-       tcflag_t c_lflag;               /* local mode flags */
-       cc_t c_line;                    /* line discipline */
-       cc_t c_cc[NCCS];                /* control characters */
-       speed_t c_ispeed;               /* input speed */
-       speed_t c_ospeed;               /* output speed */
-};
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-
-/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK  0000020
-#define ISTRIP 0000040
-#define INLCR  0000100
-#define IGNCR  0000200
-#define ICRNL  0000400
-#define IUCLC  0001000
-#define IXON   0002000
-#define IXANY  0004000
-#define IXOFF  0010000
-#define IMAXBEL        0020000
-#define IUTF8  0040000
-
-/* c_oflag bits */
-#define OPOST  0000001
-#define OLCUC  0000002
-#define ONLCR  0000004
-#define OCRNL  0000010
-#define ONOCR  0000020
-#define ONLRET 0000040
-#define OFILL  0000100
-#define OFDEL  0000200
-#define NLDLY  0000400
-#define   NL0  0000000
-#define   NL1  0000400
-#define CRDLY  0003000
-#define   CR0  0000000
-#define   CR1  0001000
-#define   CR2  0002000
-#define   CR3  0003000
-#define TABDLY 0014000
-#define   TAB0 0000000
-#define   TAB1 0004000
-#define   TAB2 0010000
-#define   TAB3 0014000
-#define   XTABS        0014000
-#define BSDLY  0020000
-#define   BS0  0000000
-#define   BS1  0020000
-#define VTDLY  0040000
-#define   VT0  0000000
-#define   VT1  0040000
-#define FFDLY  0100000
-#define   FF0  0000000
-#define   FF1  0100000
-
-/* c_cflag bit meaning */
-#define CBAUD  0010017
-#define  B0    0000000         /* hang up */
-#define  B50   0000001
-#define  B75   0000002
-#define  B110  0000003
-#define  B134  0000004
-#define  B150  0000005
-#define  B200  0000006
-#define  B300  0000007
-#define  B600  0000010
-#define  B1200 0000011
-#define  B1800 0000012
-#define  B2400 0000013
-#define  B4800 0000014
-#define  B9600 0000015
-#define  B19200        0000016
-#define  B38400        0000017
-#define EXTA B19200
-#define EXTB B38400
-#define CSIZE  0000060
-#define   CS5  0000000
-#define   CS6  0000020
-#define   CS7  0000040
-#define   CS8  0000060
-#define CSTOPB 0000100
-#define CREAD  0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL  0002000
-#define CLOCAL 0004000
-#define CBAUDEX 0010000
-#define    BOTHER 0010000
-#define    B57600 0010001
-#define   B115200 0010002
-#define   B230400 0010003
-#define   B460800 0010004
-#define   B500000 0010005
-#define   B576000 0010006
-#define   B921600 0010007
-#define  B1000000 0010010
-#define  B1152000 0010011
-#define  B1500000 0010012
-#define  B2000000 0010013
-#define  B2500000 0010014
-#define  B3000000 0010015
-#define  B3500000 0010016
-#define  B4000000 0010017
-#define CIBAUD   002003600000          /* input baud rate */
-#define CMSPAR   010000000000          /* mark or space (stick) parity */
-#define CRTSCTS          020000000000          /* flow control */
-
-#define        IBSHIFT 16              /* Shifr from CBAUD to CIBAUD */
-
-/* c_lflag bits */
-#define ISIG   0000001
-#define ICANON 0000002
-#define XCASE  0000004
-#define ECHO   0000010
-#define ECHOE  0000020
-#define ECHOK  0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define ECHOCTL        0001000
-#define ECHOPRT        0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
-#define IEXTEN 0100000
-
-
-/* tcflow() and TCXONC use these */
-#define        TCOOFF          0
-#define        TCOON           1
-#define        TCIOFF          2
-#define        TCION           3
-
-/* tcflush() and TCFLSH use these */
-#define        TCIFLUSH        0
-#define        TCOFLUSH        1
-#define        TCIOFLUSH       2
-
-/* tcsetattr uses these */
-#define        TCSANOW         0
-#define        TCSADRAIN       1
-#define        TCSAFLUSH       2
-
-#endif /* __V850_TERMBITS_H__ */
 
+++ /dev/null
-#ifndef __V850_TERMIOS_H__
-#define __V850_TERMIOS_H__
-
-#include <asm/termbits.h>
-#include <asm/ioctls.h>
-
-struct winsize {
-       unsigned short ws_row;
-       unsigned short ws_col;
-       unsigned short ws_xpixel;
-       unsigned short ws_ypixel;
-};
-
-#define NCC 8
-struct termio {
-       unsigned short c_iflag;         /* input mode flags */
-       unsigned short c_oflag;         /* output mode flags */
-       unsigned short c_cflag;         /* control mode flags */
-       unsigned short c_lflag;         /* local mode flags */
-       unsigned char c_line;           /* line discipline */
-       unsigned char c_cc[NCC];        /* control characters */
-};
-
-/* modem lines */
-#define TIOCM_LE       0x001
-#define TIOCM_DTR      0x002
-#define TIOCM_RTS      0x004
-#define TIOCM_ST       0x008
-#define TIOCM_SR       0x010
-#define TIOCM_CTS      0x020
-#define TIOCM_CAR      0x040
-#define TIOCM_RNG      0x080
-#define TIOCM_DSR      0x100
-#define TIOCM_CD       TIOCM_CAR
-#define TIOCM_RI       TIOCM_RNG
-#define TIOCM_OUT1     0x2000
-#define TIOCM_OUT2     0x4000
-#define TIOCM_LOOP     0x8000
-
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-
-#ifdef __KERNEL__
-
-/*     intr=^C         quit=^\         erase=del       kill=^U
-       eof=^D          vtime=\0        vmin=\1         sxtc=\0
-       start=^Q        stop=^S         susp=^Z         eol=\0
-       reprint=^R      discard=^U      werase=^W       lnext=^V
-       eol2=\0
-*/
-#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
-
-/*
- * Translate a "termio" structure into a "termios". Ugh.
- */
-#define SET_LOW_TERMIOS_BITS(termios, termio, x) { \
-       unsigned short __tmp; \
-       get_user(__tmp,&(termio)->x); \
-       *(unsigned short *) &(termios)->x = __tmp; \
-}
-
-#define user_termio_to_kernel_termios(termios, termio) \
-({ \
-       SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); \
-       SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); \
-       SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); \
-       SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); \
-       copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
-})
-
-/*
- * Translate a "termios" structure into a "termio". Ugh.
- */
-#define kernel_termios_to_user_termio(termio, termios) \
-({ \
-       put_user((termios)->c_iflag, &(termio)->c_iflag); \
-       put_user((termios)->c_oflag, &(termio)->c_oflag); \
-       put_user((termios)->c_cflag, &(termio)->c_cflag); \
-       put_user((termios)->c_lflag, &(termio)->c_lflag); \
-       put_user((termios)->c_line,  &(termio)->c_line); \
-       copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
-})
-
-#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2))
-#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2))
-#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
-#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
-
-#endif /* __KERNEL__ */
-
-#endif /* __V850_TERMIOS_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/thread_info.h -- v850 low-level thread information
- *
- *  Copyright (C) 2002  NEC Corporation
- *  Copyright (C) 2002  Miles Bader <miles@gnu.org>
- *  Copyright (C) 2002  David Howells (dhowells@redhat.com)
- *    - Incorporating suggestions made by Linus Torvalds and Dave Miller
- *
- * 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 derived from the PPC version, include/asm-ppc/thread_info.h
- * which was adapted from the i386 version by Paul Mackerras
- */
-
-#ifndef __V850_THREAD_INFO_H__
-#define __V850_THREAD_INFO_H__
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-/*
- * low level task data.
- * If you change this, change the TI_* offsets below to match.
- */
-struct thread_info {
-       struct task_struct      *task;          /* main task structure */
-       struct exec_domain      *exec_domain;   /* execution domain */
-       unsigned long           flags;          /* low level flags */
-       int                     cpu;            /* cpu we're on */
-       int                     preempt_count;  /* 0 => preemptable,
-                                                  <0 => BUG */
-       struct restart_block    restart_block;
-};
-
-#define INIT_THREAD_INFO(tsk)                                                \
-{                                                                            \
-       .task =         &tsk,                                                 \
-       .exec_domain =  &default_exec_domain,                                 \
-       .flags =        0,                                                    \
-       .cpu =          0,                                                    \
-       .preempt_count = 1,                                                   \
-       .restart_block = {                                                    \
-               .fn = do_no_restart_syscall,                                  \
-       },                                                                    \
-}
-
-#define init_thread_info       (init_thread_union.thread_info)
-#define init_stack             (init_thread_union.stack)
-
-/*
- * macros/functions for gaining access to the thread information structure
- */
-
-/* thread information allocation */
-#define alloc_thread_info(tsk) ((struct thread_info *) \
-                               __get_free_pages(GFP_KERNEL, 1))
-#define free_thread_info(ti)   free_pages((unsigned long) (ti), 1)
-
-#endif /* __ASSEMBLY__ */
-
-
-/*
- * Offsets in thread_info structure, used in assembly code
- */
-#define TI_TASK                0
-#define TI_EXECDOMAIN  4
-#define TI_FLAGS       8
-#define TI_CPU         12
-#define TI_PREEMPT     16
-
-#define PREEMPT_ACTIVE         0x4000000
-
-/*
- * thread information flag bit numbers
- */
-#define TIF_SYSCALL_TRACE      0       /* syscall trace active */
-#define TIF_SIGPENDING         1       /* signal pending */
-#define TIF_NEED_RESCHED       2       /* rescheduling necessary */
-#define TIF_POLLING_NRFLAG     3       /* true if poll_idle() is polling
-                                          TIF_NEED_RESCHED */
-#define TIF_MEMDIE             4
-
-/* as above, but as bit values */
-#define _TIF_SYSCALL_TRACE     (1<<TIF_SYSCALL_TRACE)
-#define _TIF_SIGPENDING                (1<<TIF_SIGPENDING)
-#define _TIF_NEED_RESCHED      (1<<TIF_NEED_RESCHED)
-#define _TIF_POLLING_NRFLAG    (1<<TIF_POLLING_NRFLAG)
-
-
-/* Size of kernel stack for each process.  */
-#define THREAD_SIZE            0x2000
-
-/* The alignment of kernel threads, with thread_info structures at their
-   base.  Thus, a pointer for a task's task structure can be derived from
-   its kernel stack pointer.  */
-#define THREAD_ALIGNMENT       THREAD_SIZE
-#define THREAD_MASK            (-THREAD_ALIGNMENT)
-
-
-#ifdef __ASSEMBLY__
-
-/* Put a pointer to the current thread_info structure into REG.  Note that
-   this definition requires THREAD_MASK to be representable as a signed
-   16-bit value.  */
-#define GET_CURRENT_THREAD(reg)                                                \
-        /* Use `addi' and then `and' instead of just `andi', because   \
-          `addi' sign-extends the immediate value, whereas `andi'      \
-          zero-extends it.  */                                         \
-       addi    THREAD_MASK, r0, reg;                                   \
-       and     sp, reg
-
-#else
-
-/* Return a pointer to the current thread_info structure.  */
-static inline struct thread_info *current_thread_info (void)
-{
-       register unsigned long sp __asm__ ("sp");
-       return (struct thread_info *)(sp & THREAD_MASK);
-}
-
-#endif /* __ASSEMBLY__ */
-
-
-#endif /* __KERNEL__ */
-
-#endif /* __V850_THREAD_INFO_H__ */
 
+++ /dev/null
-/*
- * linux/include/asm-v850/timex.h
- *
- * v850 architecture timex specifications
- */
-#ifndef __V850_TIMEX_H__
-#define __V850_TIMEX_H__
-
-#define CLOCK_TICK_RATE        1193180 /* Underlying HZ */
-
-typedef unsigned long cycles_t;
-
-static inline cycles_t get_cycles(void)
-{
-       return 0;
-}
-
-#endif /* __V850_TIMEX_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/tlb.h
- *
- *  Copyright (C) 2002  NEC Corporation
- *  Copyright (C) 2002  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_TLB_H__
-#define __V850_TLB_H__
-
-#define tlb_flush(tlb) ((void)0)
-
-#include <asm-generic/tlb.h>
-
-#endif /* __V850_TLB_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/tlbflush.h
- *
- *  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_TLBFLUSH_H__
-#define __V850_TLBFLUSH_H__
-
-#include <asm/machdep.h>
-
-
-/*
- * flush all user-space atc entries.
- */
-static inline void __flush_tlb(void)
-{
-       BUG ();
-}
-
-static inline void __flush_tlb_one(unsigned long addr)
-{
-       BUG ();
-}
-
-#define flush_tlb() __flush_tlb()
-
-/*
- * flush all atc entries (both kernel and user-space entries).
- */
-static inline void flush_tlb_all(void)
-{
-       BUG ();
-}
-
-static inline void flush_tlb_mm(struct mm_struct *mm)
-{
-       BUG ();
-}
-
-static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
-{
-       BUG ();
-}
-
-static inline void flush_tlb_range(struct vm_area_struct *vma,
-                                  unsigned long start, unsigned long end)
-{
-       BUG ();
-}
-
-static inline void flush_tlb_kernel_page(unsigned long addr)
-{
-       BUG ();
-}
-
-#endif /* __V850_TLBFLUSH_H__ */
 
+++ /dev/null
-#ifndef __V850_TOPOLOGY_H__
-#define __V850_TOPOLOGY_H__
-
-#include <asm-generic/topology.h>
-
-#endif /* __V850_TOPOLOGY_H__ */
 
+++ /dev/null
-#ifndef __V850_TYPES_H__
-#define __V850_TYPES_H__
-
-#ifndef __ASSEMBLY__
-
-/*
- * This file is never included by application software unless
- * explicitly requested (e.g., via linux/types.h) in which case the
- * application is Linux specific so (user-) name space pollution is
- * not a major issue.  However, for interoperability, libraries still
- * need to be careful to avoid a name clashes.
- */
-#include <asm-generic/int-ll64.h>
-
-typedef unsigned short umode_t;
-
-#endif /* !__ASSEMBLY__ */
-
-/*
- * These aren't exported outside the kernel to avoid name space clashes
- */
-#ifdef __KERNEL__
-
-#define BITS_PER_LONG 32
-
-#ifndef __ASSEMBLY__
-
-/* Dma addresses are 32-bits wide.  */
-
-typedef u32 dma_addr_t;
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* __V850_TYPES_H__ */
 
+++ /dev/null
-#ifndef __V850_UACCESS_H__
-#define __V850_UACCESS_H__
-
-/*
- * User space memory access functions
- */
-
-#include <linux/errno.h>
-#include <linux/string.h>
-
-#include <asm/segment.h>
-#include <asm/machdep.h>
-
-#define VERIFY_READ    0
-#define VERIFY_WRITE   1
-
-static inline int access_ok (int type, const void *addr, unsigned long size)
-{
-       /* XXX I guess we should check against real ram bounds at least, and
-          possibly make sure ADDR is not within the kernel.
-          For now we just check to make sure it's not a small positive
-          or negative value, as that will at least catch some kinds of
-          error.  In particular, we make sure that ADDR's not within the
-          interrupt vector area, which we know starts at zero, or within the
-          peripheral-I/O area, which is located just _before_ zero.  */
-       unsigned long val = (unsigned long)addr;
-       return val >= (0x80 + NUM_CPU_IRQS*16) && val < 0xFFFFF000;
-}
-
-/*
- * The exception table consists of pairs of addresses: the first is the
- * address of an instruction that is allowed to fault, and the second is
- * the address at which the program should continue.  No registers are
- * modified, so it is entirely up to the continuation code to figure out
- * what to do.
- *
- * All the routines below use bits of fixup code that are out of line
- * with the main instruction path.  This means when everything is well,
- * we don't even have to jump over them.  Further, they do not intrude
- * on our cache or tlb entries.
- */
-
-struct exception_table_entry
-{
-       unsigned long insn, fixup;
-};
-
-/* Returns 0 if exception not found and fixup otherwise.  */
-extern unsigned long search_exception_table (unsigned long);
-
-
-/*
- * These are the main single-value transfer routines.  They automatically
- * use the right size if we just have the right pointer type.
- */
-
-extern int bad_user_access_length (void);
-
-#define __get_user(var, ptr)                                                 \
-  ({                                                                         \
-         int __gu_err = 0;                                                   \
-         typeof(*(ptr)) __gu_val = 0;                                        \
-         switch (sizeof (*(ptr))) {                                          \
-         case 1:                                                             \
-         case 2:                                                             \
-         case 4:                                                             \
-                 __gu_val = *(ptr);                                          \
-                 break;                                                      \
-         case 8:                                                             \
-                 memcpy(&__gu_val, ptr, sizeof(__gu_val));                   \
-                 break;                                                      \
-         default:                                                            \
-                 __gu_val = 0;                                               \
-                 __gu_err = __get_user_bad ();                               \
-                 break;                                                      \
-         }                                                                   \
-         (var) = __gu_val;                                                   \
-         __gu_err;                                                           \
-  })
-#define __get_user_bad()       (bad_user_access_length (), (-EFAULT))
-
-#define __put_user(var, ptr)                                                 \
-  ({                                                                         \
-         int __pu_err = 0;                                                   \
-         switch (sizeof (*(ptr))) {                                          \
-         case 1:                                                             \
-         case 2:                                                             \
-         case 4:                                                             \
-                 *(ptr) = (var);                                             \
-                 break;                                                      \
-         case 8: {                                                           \
-                 typeof(*(ptr)) __pu_val = 0;                                \
-                 memcpy(ptr, &__pu_val, sizeof(__pu_val));                   \
-                 }                                                           \
-                 break;                                                      \
-         default:                                                            \
-                 __pu_err = __put_user_bad ();                               \
-                 break;                                                      \
-         }                                                                   \
-         __pu_err;                                                           \
-  })
-#define __put_user_bad()       (bad_user_access_length (), (-EFAULT))
-
-#define put_user(x, ptr)       __put_user(x, ptr)
-#define get_user(x, ptr)       __get_user(x, ptr)
-
-#define __copy_from_user(to, from, n)  (memcpy (to, from, n), 0)
-#define __copy_to_user(to, from, n)    (memcpy(to, from, n), 0)
-
-#define __copy_to_user_inatomic __copy_to_user
-#define __copy_from_user_inatomic __copy_from_user
-
-#define copy_from_user(to, from, n)    __copy_from_user (to, from, n)
-#define copy_to_user(to, from, n)      __copy_to_user(to, from, n)
-
-#define copy_to_user_ret(to,from,n,retval) \
-  ({ if (copy_to_user (to,from,n)) return retval; })
-
-#define copy_from_user_ret(to,from,n,retval) \
-  ({ if (copy_from_user (to,from,n)) return retval; })
-
-/*
- * Copy a null terminated string from userspace.
- */
-
-static inline long
-strncpy_from_user (char *dst, const char *src, long count)
-{
-       char *tmp;
-       strncpy (dst, src, count);
-       for (tmp = dst; *tmp && count > 0; tmp++, count--)
-               ;
-       return tmp - dst;
-}
-
-/*
- * Return the size of a string (including the ending 0)
- *
- * Return 0 on exception, a value greater than N if too long
- */
-static inline long strnlen_user (const char *src, long n)
-{
-       return strlen (src) + 1;
-}
-
-#define strlen_user(str)       strnlen_user (str, 32767)
-
-/*
- * Zero Userspace
- */
-
-static inline unsigned long
-clear_user (void *to, unsigned long n)
-{
-       memset (to, 0, n);
-       return 0;
-}
-
-#endif /* __V850_UACCESS_H__ */
 
+++ /dev/null
-#ifndef __V850_UCONTEXT_H__
-#define __V850_UCONTEXT_H__
-
-#include <asm/sigcontext.h>
-
-struct ucontext {
-       unsigned long     uc_flags;
-       struct ucontext  *uc_link;
-       stack_t           uc_stack;
-       struct sigcontext uc_mcontext;
-       sigset_t          uc_sigmask;   /* mask last for extensibility */
-};
-
-#endif /* __V850_UCONTEXT_H__ */
 
+++ /dev/null
-/*
- *  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.
- *
- * Note that some v850 chips support unaligned access, but it seems too
- * annoying to use.
- */
-#ifndef _ASM_V850_UNALIGNED_H
-#define _ASM_V850_UNALIGNED_H
-
-#include <linux/unaligned/be_byteshift.h>
-#include <linux/unaligned/le_byteshift.h>
-#include <linux/unaligned/generic.h>
-
-#define get_unaligned  __get_unaligned_le
-#define put_unaligned  __put_unaligned_le
-
-#endif /* _ASM_V850_UNALIGNED_H */
 
+++ /dev/null
-/*
- * include/asm-v850/unistd.h -- System call numbers and invocation mechanism
- *
- *  Copyright (C) 2001,02,03,04  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03,04  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_UNISTD_H__
-#define __V850_UNISTD_H__
-
-#define __NR_restart_syscall     0
-#define __NR_exit                1
-#define __NR_fork                2
-#define __NR_read                3
-#define __NR_write               4
-#define __NR_open                5
-#define __NR_close               6
-#define __NR_waitpid             7
-#define __NR_creat               8
-#define __NR_link                9
-#define __NR_unlink             10
-#define __NR_execve             11
-#define __NR_chdir              12
-#define __NR_time               13
-#define __NR_mknod              14
-#define __NR_chmod              15
-#define __NR_chown              16
-#define __NR_break              17
-#define __NR_lseek              19
-#define __NR_getpid             20
-#define __NR_mount              21
-#define __NR_umount             22
-#define __NR_setuid             23
-#define __NR_getuid             24
-#define __NR_stime              25
-#define __NR_ptrace             26
-#define __NR_alarm              27
-#define __NR_pause              29
-#define __NR_utime              30
-#define __NR_stty               31
-#define __NR_gtty               32
-#define __NR_access             33
-#define __NR_nice               34
-#define __NR_ftime              35
-#define __NR_sync               36
-#define __NR_kill               37
-#define __NR_rename             38
-#define __NR_mkdir              39
-#define __NR_rmdir              40
-#define __NR_dup                41
-#define __NR_pipe               42
-#define __NR_times              43
-#define __NR_prof               44
-#define __NR_brk                45
-#define __NR_setgid             46
-#define __NR_getgid             47
-#define __NR_signal             48
-#define __NR_geteuid            49
-#define __NR_getegid            50
-#define __NR_acct               51
-#define __NR_umount2            52
-#define __NR_lock               53
-#define __NR_ioctl              54
-#define __NR_fcntl              55
-#define __NR_setpgid            57
-#define __NR_umask              60
-#define __NR_chroot             61
-#define __NR_ustat              62
-#define __NR_dup2               63
-#define __NR_getppid            64
-#define __NR_getpgrp            65
-#define __NR_setsid             66
-#define __NR_sigaction          67
-#define __NR_sgetmask           68
-#define __NR_ssetmask           69
-#define __NR_setreuid           70
-#define __NR_setregid           71
-#define __NR_sigsuspend                 72
-#define __NR_sigpending                 73
-#define __NR_sethostname        74
-#define __NR_setrlimit          75
-#define __NR_ugetrlimit                 76
-#define __NR_getrusage          77
-#define __NR_gettimeofday       78
-#define __NR_settimeofday       79
-#define __NR_getgroups          80
-#define __NR_setgroups          81
-#define __NR_select             82
-#define __NR_symlink            83
-#define __NR_readlink           85
-#define __NR_uselib             86
-#define __NR_swapon             87
-#define __NR_reboot             88
-#define __NR_readdir            89
-#define __NR_mmap               90
-#define __NR_munmap             91
-#define __NR_truncate           92
-#define __NR_ftruncate          93
-#define __NR_fchmod             94
-#define __NR_fchown             95
-#define __NR_getpriority        96
-#define __NR_setpriority        97
-#define __NR_profil             98
-#define __NR_statfs             99
-#define __NR_fstatfs           100
-#define __NR_socketcall                102
-#define __NR_syslog            103
-#define __NR_setitimer         104
-#define __NR_getitimer         105
-#define __NR_stat              106
-#define __NR_lstat             107
-#define __NR_fstat             108
-#define __NR_vhangup           111
-#define __NR_wait4             114
-#define __NR_swapoff           115
-#define __NR_sysinfo           116
-#define __NR_ipc               117
-#define __NR_fsync             118
-#define __NR_sigreturn         119
-#define __NR_clone             120
-#define __NR_setdomainname     121
-#define __NR_uname             122
-#define __NR_cacheflush                123
-#define __NR_adjtimex          124
-#define __NR_mprotect          125
-#define __NR_sigprocmask       126
-#define __NR_create_module     127
-#define __NR_init_module       128
-#define __NR_delete_module     129
-#define __NR_get_kernel_syms   130
-#define __NR_quotactl          131
-#define __NR_getpgid           132
-#define __NR_fchdir            133
-#define __NR_bdflush           134
-#define __NR_sysfs             135
-#define __NR_personality       136
-#define __NR_afs_syscall       137 /* Syscall for Andrew File System */
-#define __NR_setfsuid          138
-#define __NR_setfsgid          139
-#define __NR__llseek           140
-#define __NR_getdents          141
-#define __NR_flock             143
-#define __NR_msync             144
-#define __NR_readv             145
-#define __NR_writev            146
-#define __NR_getsid            147
-#define __NR_fdatasync         148
-#define __NR__sysctl           149
-#define __NR_mlock             150
-#define __NR_munlock           151
-#define __NR_mlockall          152
-#define __NR_munlockall                153
-#define __NR_sched_setparam            154
-#define __NR_sched_getparam            155
-#define __NR_sched_setscheduler                156
-#define __NR_sched_getscheduler                157
-#define __NR_sched_yield               158
-#define __NR_sched_get_priority_max    159
-#define __NR_sched_get_priority_min    160
-#define __NR_sched_rr_get_interval     161
-#define __NR_nanosleep         162
-#define __NR_mremap            163
-#define __NR_setresuid         164
-#define __NR_getresuid         165
-#define __NR_query_module      167
-#define __NR_poll              168
-#define __NR_nfsservctl                169
-#define __NR_setresgid         170
-#define __NR_getresgid         171
-#define __NR_prctl             172
-#define __NR_rt_sigreturn      173
-#define __NR_rt_sigaction      174
-#define __NR_rt_sigprocmask    175
-#define __NR_rt_sigpending     176
-#define __NR_rt_sigtimedwait   177
-#define __NR_rt_sigqueueinfo   178
-#define __NR_rt_sigsuspend     179
-#define __NR_pread             180
-#define __NR_pwrite            181
-#define __NR_lchown            182
-#define __NR_getcwd            183
-#define __NR_capget            184
-#define __NR_capset            185
-#define __NR_sigaltstack       186
-#define __NR_sendfile          187
-#define __NR_getpmsg           188     /* some people actually want streams */
-#define __NR_putpmsg           189     /* some people actually want streams */
-#define __NR_vfork             190
-#define __NR_mmap2             192
-#define __NR_truncate64                193
-#define __NR_ftruncate64       194
-#define __NR_stat64            195
-#define __NR_lstat64           196
-#define __NR_fstat64           197
-#define __NR_fcntl64           198
-#define __NR_getdents64                199
-#define __NR_pivot_root                200
-#define __NR_gettid            201
-#define __NR_tkill             202
-
-#ifdef __KERNEL__
-
-#define __ARCH_WANT_IPC_PARSE_VERSION
-#define __ARCH_WANT_OLD_READDIR
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_SYS_ALARM
-#define __ARCH_WANT_SYS_GETHOSTNAME
-#define __ARCH_WANT_SYS_PAUSE
-#define __ARCH_WANT_SYS_SGETMASK
-#define __ARCH_WANT_SYS_SIGNAL
-#define __ARCH_WANT_SYS_TIME
-#define __ARCH_WANT_SYS_UTIME
-#define __ARCH_WANT_SYS_WAITPID
-#define __ARCH_WANT_SYS_SOCKETCALL
-#define __ARCH_WANT_SYS_FADVISE64
-#define __ARCH_WANT_SYS_GETPGRP
-#define __ARCH_WANT_SYS_LLSEEK
-#define __ARCH_WANT_SYS_NICE
-#define __ARCH_WANT_SYS_OLDUMOUNT
-#define __ARCH_WANT_SYS_SIGPENDING
-#define __ARCH_WANT_SYS_SIGPROCMASK
-#define __ARCH_WANT_SYS_RT_SIGACTION
-
-/*
- * "Conditional" syscalls
- */
-#define cond_syscall(name)                                                   \
-  asm (".weak\t" C_SYMBOL_STRING(name) ";"                                   \
-       ".set\t" C_SYMBOL_STRING(name) "," C_SYMBOL_STRING(sys_ni_syscall))
-#if 0
-/* This doesn't work if there's a function prototype for NAME visible,
-   because the argument types probably won't match.  */
-#define cond_syscall(name)  \
-  void name (void) __attribute__ ((weak, alias ("sys_ni_syscall")));
-#endif
-
-#endif /* __KERNEL__ */
-#endif /* __V850_UNISTD_H__ */
 
+++ /dev/null
-#ifndef __V850_USER_H__
-#define __V850_USER_H__
-
-/* Adapted from <asm-ppc/user.h>.  */
-
-#include <linux/ptrace.h>
-#include <asm/page.h>
-
-/*
- * Core file format: The core file is written in such a way that gdb
- * can understand it and provide useful information to the user (under
- * linux we use the `trad-core' bfd, NOT the osf-core).  The file contents
- * are as follows:
- *
- *  upage: 1 page consisting of a user struct that tells gdb
- *     what is present in the file.  Directly after this is a
- *     copy of the task_struct, which is currently not used by gdb,
- *     but it may come in handy at some point.  All of the registers
- *     are stored as part of the upage.  The upage should always be
- *     only one page long.
- *  data: The data segment follows next.  We use current->end_text to
- *     current->brk to pick up all of the user variables, plus any memory
- *     that may have been sbrk'ed.  No attempt is made to determine if a
- *     page is demand-zero or if a page is totally unused, we just cover
- *     the entire range.  All of the addresses are rounded in such a way
- *     that an integral number of pages is written.
- *  stack: We need the stack information in order to get a meaningful
- *     backtrace.  We need to write the data from usp to
- *     current->start_stack, so we round each of these in order to be able
- *     to write an integer number of pages.
- */
-struct user {
-       struct pt_regs  regs;                   /* entire machine state */
-       size_t          u_tsize;                /* text size (pages) */
-       size_t          u_dsize;                /* data size (pages) */
-       size_t          u_ssize;                /* stack size (pages) */
-       unsigned long   start_code;             /* text starting address */
-       unsigned long   start_data;             /* data starting address */
-       unsigned long   start_stack;            /* stack starting address */
-       long int        signal;                 /* signal causing core dump */
-       unsigned long   u_ar0;                  /* help gdb find registers */
-       unsigned long   magic;                  /* identifies a core file */
-       char            u_comm[32];             /* user command name */
-};
-
-#define NBPG                   PAGE_SIZE
-#define UPAGES                 1
-#define HOST_TEXT_START_ADDR   (u.start_code)
-#define HOST_DATA_START_ADDR   (u.start_data)
-#define HOST_STACK_END_ADDR    (u.start_stack + u.u_ssize * NBPG)
-
-#endif /* __V850_USER_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e.h -- V850E CPU
- *
- *  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_V850E_H__
-#define __V850_V850E_H__
-
-#include <asm/v850e_intc.h>
-
-#define CPU_ARCH "v850e"
-
-#endif /* __V850_V850E_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e2.h -- Machine-dependent defs for V850E2 CPUs
- *
- *  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>
- */
-
-#ifndef __V850_V850E2_H__
-#define __V850_V850E2_H__
-
-#include <asm/v850e_intc.h>    /* v850e-style interrupt system.  */
-
-
-#define CPU_ARCH "v850e2"
-
-
-/* Control registers.  */
-
-/* Chip area select control */ 
-#define V850E2_CSC_ADDR(n)     (0xFFFFF060 + (n) * 2)
-#define V850E2_CSC(n)          (*(volatile u16 *)V850E2_CSC_ADDR(n))
-/* I/O area select control */
-#define V850E2_BPC_ADDR                0xFFFFF064
-#define V850E2_BPC             (*(volatile u16 *)V850E2_BPC_ADDR)
-/* Bus size configuration */
-#define V850E2_BSC_ADDR                0xFFFFF066
-#define V850E2_BSC             (*(volatile u16 *)V850E2_BSC_ADDR)
-/* Endian configuration */
-#define V850E2_BEC_ADDR                0xFFFFF068
-#define V850E2_BEC             (*(volatile u16 *)V850E2_BEC_ADDR)
-/* Cache configuration */
-#define V850E2_BHC_ADDR                0xFFFFF06A
-#define V850E2_BHC             (*(volatile u16 *)V850E2_BHC_ADDR)
-/* NPB strobe-wait configuration */
-#define V850E2_VSWC_ADDR       0xFFFFF06E
-#define V850E2_VSWC            (*(volatile u16 *)V850E2_VSWC_ADDR)
-/* Bus cycle type */
-#define V850E2_BCT_ADDR(n)     (0xFFFFF480 + (n) * 2)
-#define V850E2_BCT(n)          (*(volatile u16 *)V850E2_BCT_ADDR(n))
-/* Data wait control */
-#define V850E2_DWC_ADDR(n)     (0xFFFFF484 + (n) * 2)
-#define V850E2_DWC(n)          (*(volatile u16 *)V850E2_DWC_ADDR(n))
-/* Bus cycle control */
-#define V850E2_BCC_ADDR                0xFFFFF488
-#define V850E2_BCC             (*(volatile u16 *)V850E2_BCC_ADDR)
-/* Address wait control */
-#define V850E2_ASC_ADDR                0xFFFFF48A
-#define V850E2_ASC             (*(volatile u16 *)V850E2_ASC_ADDR)
-/* Local bus sizing control */
-#define V850E2_LBS_ADDR                0xFFFFF48E
-#define V850E2_LBS             (*(volatile u16 *)V850E2_LBS_ADDR)
-/* Line buffer control */
-#define V850E2_LBC_ADDR(n)     (0xFFFFF490 + (n) * 2)
-#define V850E2_LBC(n)          (*(volatile u16 *)V850E2_LBC_ADDR(n))
-/* SDRAM configuration */
-#define V850E2_SCR_ADDR(n)     (0xFFFFF4A0 + (n) * 4)
-#define V850E2_SCR(n)          (*(volatile u16 *)V850E2_SCR_ADDR(n))
-/* SDRAM refresh cycle control */
-#define V850E2_RFS_ADDR(n)     (0xFFFFF4A2 + (n) * 4)
-#define V850E2_RFS(n)          (*(volatile u16 *)V850E2_RFS_ADDR(n))
-
-
-#endif /* __V850_V850E2_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e2_cache_cache.h -- Cache control for V850E2
- *     cache memories
- *
- *  Copyright (C) 2003,05  NEC Electronics Corporation
- *  Copyright (C) 2003,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>
- */
-
-#ifndef __V850_V850E2_CACHE_H__
-#define __V850_V850E2_CACHE_H__
-
-#include <asm/types.h>
-
-
-/* Cache control registers.  */
-
-/* Bus Transaction Control */
-#define V850E2_CACHE_BTSC_ADDR 0xFFFFF070
-#define V850E2_CACHE_BTSC      (*(volatile u16 *)V850E2_CACHE_BTSC_ADDR)
-#define V850E2_CACHE_BTSC_ICM  0x0001 /* icache enable */
-#define V850E2_CACHE_BTSC_DCM0 0x0004 /* dcache enable, bit 0 */
-#define V850E2_CACHE_BTSC_DCM1 0x0008 /* dcache enable, bit 1 */
-#define V850E2_CACHE_BTSC_DCM_WT                     /* write-through */ \
-                       V850E2_CACHE_BTSC_DCM0
-#ifdef CONFIG_V850E2_V850E2S
-# define V850E2_CACHE_BTSC_DCM_WB_NO_ALLOC    /* write-back, non-alloc */ \
-                       V850E2_CACHE_BTSC_DCM1  
-# define V850E2_CACHE_BTSC_DCM_WB_ALLOC              /* write-back, non-alloc */ \
-                       (V850E2_CACHE_BTSC_DCM1 | V850E2_CACHE_BTSC_DCM0)
-# define V850E2_CACHE_BTSC_ISEQ        0x0010 /* icache `address sequence mode' */
-# define V850E2_CACHE_BTSC_DSEQ        0x0020 /* dcache `address sequence mode' */
-# define V850E2_CACHE_BTSC_IRFC        0x0030
-# define V850E2_CACHE_BTSC_ILCD        0x4000
-# define V850E2_CACHE_BTSC_VABE        0x8000
-#endif /* CONFIG_V850E2_V850E2S */
-
-/* Cache operation start address register (low-bits).  */
-#define V850E2_CACHE_CADL_ADDR 0xFFFFF074
-#define V850E2_CACHE_CADL      (*(volatile u16 *)V850E2_CACHE_CADL_ADDR)
-/* Cache operation start address register (high-bits).  */
-#define V850E2_CACHE_CADH_ADDR 0xFFFFF076
-#define V850E2_CACHE_CADH      (*(volatile u16 *)V850E2_CACHE_CADH_ADDR)
-/* Cache operation count register.  */
-#define V850E2_CACHE_CCNT_ADDR 0xFFFFF078
-#define V850E2_CACHE_CCNT      (*(volatile u16 *)V850E2_CACHE_CCNT_ADDR)
-/* Cache operation specification register.  */
-#define V850E2_CACHE_COPR_ADDR 0xFFFFF07A
-#define V850E2_CACHE_COPR      (*(volatile u16 *)V850E2_CACHE_COPR_ADDR)
-#define V850E2_CACHE_COPR_STRT 0x0001 /* start cache operation */
-#define V850E2_CACHE_COPR_LBSL 0x0100 /* 0 = icache, 1 = dcache */
-#define V850E2_CACHE_COPR_WSLE 0x0200 /* operate on cache way */
-#define V850E2_CACHE_COPR_WSL(way) ((way) * 0x0400) /* way select */
-#define V850E2_CACHE_COPR_CFC(op)  ((op)  * 0x1000) /* cache function code */
-
-
-/* Size of a cache line in bytes.  */
-#define V850E2_CACHE_LINE_SIZE_BITS    4
-#define V850E2_CACHE_LINE_SIZE         (1 << V850E2_CACHE_LINE_SIZE_BITS)
-
-/* The size of each cache `way' in lines.  */
-#define V850E2_CACHE_WAY_SIZE          256
-
-
-/* For <asm/cache.h> */
-#define L1_CACHE_BYTES                 V850E2_CACHE_LINE_SIZE
-#define L1_CACHE_SHIFT                 V850E2_CACHE_LINE_SIZE_BITS
-
-
-#endif /* __V850_V850E2_CACHE_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_cache.h -- Cache control for V850E cache memories
- *
- *  Copyright (C) 2001,03  NEC Electronics Corporation
- *  Copyright (C) 2001,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>
- */
-
-/* This file implements cache control for the rather simple cache used on
-   some V850E CPUs, specifically the NB85E/TEG CPU-core and the V850E/ME2
-   CPU.  V850E2 processors have their own (better) cache
-   implementation.  */
-
-#ifndef __V850_V850E_CACHE_H__
-#define __V850_V850E_CACHE_H__
-
-#include <asm/types.h>
-
-
-/* Cache control registers.  */
-#define V850E_CACHE_BHC_ADDR   0xFFFFF06A
-#define V850E_CACHE_BHC                (*(volatile u16 *)V850E_CACHE_BHC_ADDR)
-#define V850E_CACHE_ICC_ADDR   0xFFFFF070
-#define V850E_CACHE_ICC                (*(volatile u16 *)V850E_CACHE_ICC_ADDR)
-#define V850E_CACHE_ISI_ADDR   0xFFFFF072
-#define V850E_CACHE_ISI                (*(volatile u16 *)V850E_CACHE_ISI_ADDR)
-#define V850E_CACHE_DCC_ADDR   0xFFFFF078
-#define V850E_CACHE_DCC                (*(volatile u16 *)V850E_CACHE_DCC_ADDR)
-
-/* Size of a cache line in bytes.  */
-#define V850E_CACHE_LINE_SIZE  16
-
-/* For <asm/cache.h> */
-#define L1_CACHE_BYTES         V850E_CACHE_LINE_SIZE
-
-
-#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
-/* Set caching params via the BHC, ICC, and DCC registers.  */
-void v850e_cache_enable (u16 bhc, u16 icc, u16 dcc);
-#endif /* __KERNEL__ && !__ASSEMBLY__ */
-
-
-#endif /* __V850_V850E_CACHE_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_intc.h -- V850E CPU interrupt controller (INTC)
- *
- *  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_V850E_INTC_H__
-#define __V850_V850E_INTC_H__
-
-
-/* There are 4 16-bit `Interrupt Mask Registers' located contiguously
-   starting from this base.  Each interrupt uses a single bit to
-   indicated enabled/disabled status.  */
-#define V850E_INTC_IMR_BASE_ADDR  0xFFFFF100
-#define V850E_INTC_IMR_ADDR(irq)  (V850E_INTC_IMR_BASE_ADDR + ((irq) >> 3))
-#define V850E_INTC_IMR_BIT(irq)          ((irq) & 0x7)
-
-/* Each maskable interrupt has a single-byte control register at this
-   address.  */
-#define V850E_INTC_IC_BASE_ADDR          0xFFFFF110
-#define V850E_INTC_IC_ADDR(irq)          (V850E_INTC_IC_BASE_ADDR + ((irq) << 1))
-#define V850E_INTC_IC(irq)       (*(volatile u8 *)V850E_INTC_IC_ADDR(irq))
-/* Encode priority PR for storing in an interrupt control register.  */
-#define V850E_INTC_IC_PR(pr)     (pr)
-/* Interrupt disable bit in an interrupt control register.  */
-#define V850E_INTC_IC_MK_BIT     6
-#define V850E_INTC_IC_MK         (1 << V850E_INTC_IC_MK_BIT)
-/* Interrupt pending flag in an interrupt control register.  */
-#define V850E_INTC_IC_IF_BIT     7
-#define V850E_INTC_IC_IF         (1 << V850E_INTC_IC_IF_BIT)
-
-/* The ISPR (In-service priority register) contains one bit for each interrupt
-   priority level, which is set to one when that level is currently being
-   serviced (and thus blocking any interrupts of equal or lesser level).  */
-#define V850E_INTC_ISPR_ADDR     0xFFFFF1FA
-#define V850E_INTC_ISPR                  (*(volatile u8 *)V850E_INTC_ISPR_ADDR)
-
-
-#ifndef __ASSEMBLY__
-
-/* Enable interrupt handling for interrupt IRQ.  */
-static inline void v850e_intc_enable_irq (unsigned irq)
-{
-       __asm__ __volatile__ ("clr1 %0, [%1]"
-                             :: "r" (V850E_INTC_IMR_BIT (irq)),
-                                "r" (V850E_INTC_IMR_ADDR (irq))
-                             : "memory");
-}
-
-/* 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
-   `v850e_intc_clear_pending_irq'.  */
-static inline void v850e_intc_disable_irq (unsigned irq)
-{
-       __asm__ __volatile__ ("set1 %0, [%1]"
-                             :: "r" (V850E_INTC_IMR_BIT (irq)),
-                                "r" (V850E_INTC_IMR_ADDR (irq))
-                             : "memory");
-}
-
-/* Return true if interrupt handling for interrupt IRQ is enabled.  */
-static inline int v850e_intc_irq_enabled (unsigned irq)
-{
-       int rval;
-       __asm__ __volatile__ ("tst1 %1, [%2]; setf z, %0"
-                             : "=r" (rval)
-                             : "r" (V850E_INTC_IMR_BIT (irq)),
-                               "r" (V850E_INTC_IMR_ADDR (irq)));
-       return rval;
-}
-
-/* Disable irqs from 0 until LIMIT.  LIMIT must be a multiple of 8.  */
-static inline void _v850e_intc_disable_irqs (unsigned limit)
-{
-       unsigned long addr;
-       for (addr = V850E_INTC_IMR_BASE_ADDR; limit >= 8; addr++, limit -= 8)
-               *(char *)addr = 0xFF;
-}
-
-/* Disable all irqs.  This is purposely a macro, because NUM_MACH_IRQS
-   will be only be defined later.  */
-#define v850e_intc_disable_irqs()   _v850e_intc_disable_irqs (NUM_MACH_IRQS)
-
-/* Clear any pending interrupts for IRQ.  */
-static inline void v850e_intc_clear_pending_irq (unsigned irq)
-{
-       __asm__ __volatile__ ("clr1 %0, 0[%1]"
-                             :: "i" (V850E_INTC_IC_IF_BIT),
-                                "r" (V850E_INTC_IC_ADDR (irq))
-                             : "memory");
-}
-
-/* Return true if interrupt IRQ is pending (but disabled).  */
-static inline int v850e_intc_irq_pending (unsigned irq)
-{
-       int rval;
-       __asm__ __volatile__ ("tst1 %1, 0[%2]; setf nz, %0"
-                             : "=r" (rval)
-                             : "i" (V850E_INTC_IC_IF_BIT),
-                               "r" (V850E_INTC_IC_ADDR (irq)));
-       return rval;
-}
-
-
-struct v850e_intc_irq_init {
-       const char *name;       /* name of interrupt type */
-
-       /* Range of kernel irq numbers for this type:
-          BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM  */
-       unsigned base, num, interval;
-
-       unsigned priority;      /* interrupt priority to assign */
-};
-struct hw_interrupt_type;      /* fwd decl */
-
-/* Initialize HW_IRQ_TYPES for INTC-controlled irqs described in array
-   INITS (which is terminated by an entry with the name field == 0).  */
-extern void v850e_intc_init_irq_types (struct v850e_intc_irq_init *inits,
-                                      struct hw_interrupt_type *hw_irq_types);
-
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_V850E_INTC_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_timer_c.h -- `Timer C' component often used
- *     with the V850E cpu core
- *
- *  Copyright (C) 2001,03  NEC Electronics Corporation
- *  Copyright (C) 2001,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>
- */
-
-/* NOTE: this include file currently contains only enough to allow us to
-   use timer C as an interrupt pass-through.  */
-
-#ifndef __V850_V850E_TIMER_C_H__
-#define __V850_V850E_TIMER_C_H__
-
-#include <asm/types.h>
-#include <asm/machdep.h>       /* Pick up chip-specific defs.  */
-
-
-/* Timer C (16-bit interval timers).  */
-
-/* Control register 0 for timer C.  */
-#define V850E_TIMER_C_TMCC0_ADDR(n) (V850E_TIMER_C_BASE_ADDR + 0x6 + 0x10 *(n))
-#define V850E_TIMER_C_TMCC0(n)   (*(volatile u8 *)V850E_TIMER_C_TMCC0_ADDR(n))
-#define V850E_TIMER_C_TMCC0_CAE          0x01 /* clock action enable */
-#define V850E_TIMER_C_TMCC0_CE   0x02 /* count enable */
-/* ... */
-
-/* Control register 1 for timer C.  */
-#define V850E_TIMER_C_TMCC1_ADDR(n) (V850E_TIMER_C_BASE_ADDR + 0x8 + 0x10 *(n))
-#define V850E_TIMER_C_TMCC1(n)   (*(volatile u8 *)V850E_TIMER_C_TMCC1_ADDR(n))
-#define V850E_TIMER_C_TMCC1_CMS0  0x01 /* capture/compare mode select (ccc0) */
-#define V850E_TIMER_C_TMCC1_CMS1  0x02 /* capture/compare mode select (ccc1) */
-/* ... */
-
-/* Interrupt edge-sensitivity control for timer C.  */
-#define V850E_TIMER_C_SESC_ADDR(n) (V850E_TIMER_C_BASE_ADDR + 0x9 + 0x10 *(n))
-#define V850E_TIMER_C_SESC(n)    (*(volatile u8 *)V850E_TIMER_C_SESC_ADDR(n))
-
-/* ...etc... */
-
-
-#endif /* __V850_V850E_TIMER_C_H__  */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_timer_d.h -- `Timer D' component often used
- *     with the V850E cpu core
- *
- *  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_V850E_TIMER_D_H__
-#define __V850_V850E_TIMER_D_H__
-
-#include <asm/types.h>
-#include <asm/machdep.h>       /* Pick up chip-specific defs.  */
-
-
-/* Timer D (16-bit interval timers).  */
-
-/* Count registers for timer D.  */
-#define V850E_TIMER_D_TMD_ADDR(n) (V850E_TIMER_D_TMD_BASE_ADDR + 0x10 * (n))
-#define V850E_TIMER_D_TMD(n)     (*(volatile u16 *)V850E_TIMER_D_TMD_ADDR(n))
-
-/* Count compare registers for timer D.  */
-#define V850E_TIMER_D_CMD_ADDR(n) (V850E_TIMER_D_CMD_BASE_ADDR + 0x10 * (n))
-#define V850E_TIMER_D_CMD(n)     (*(volatile u16 *)V850E_TIMER_D_CMD_ADDR(n))
-
-/* Control registers for timer D.  */
-#define V850E_TIMER_D_TMCD_ADDR(n) (V850E_TIMER_D_TMCD_BASE_ADDR + 0x10 * (n))
-#define V850E_TIMER_D_TMCD(n)     (*(volatile u8 *)V850E_TIMER_D_TMCD_ADDR(n))
-/* Control bits for timer D.  */
-#define V850E_TIMER_D_TMCD_CE             0x2 /* count enable */
-#define V850E_TIMER_D_TMCD_CAE    0x1 /* clock action enable */
-/* Clock divider setting (log2).  */
-#define V850E_TIMER_D_TMCD_CS(divlog2) (((divlog2) - V850E_TIMER_D_TMCD_CS_MIN) << 4)
-/* Minimum clock divider setting (log2).  */
-#ifndef V850E_TIMER_D_TMCD_CS_MIN /* Can be overridden by mach-specific hdrs */
-#define V850E_TIMER_D_TMCD_CS_MIN  2 /* Default is correct for the v850e/ma1 */
-#endif
-/* Maximum clock divider setting (log2).  */
-#define V850E_TIMER_D_TMCD_CS_MAX  (V850E_TIMER_D_TMCD_CS_MIN + 7)
-
-/* Return the clock-divider (log2) of timer D unit N.  */
-#define V850E_TIMER_D_DIVLOG2(n) \
-  (((V850E_TIMER_D_TMCD(n) >> 4) & 0x7) + V850E_TIMER_D_TMCD_CS_MIN)
-
-
-#ifndef __ASSEMBLY__
-
-/* Start interval timer TIMER (0-3).  The timer will issue the
-   corresponding INTCMD interrupt RATE times per second.  This function
-   does not enable the interrupt.  */
-extern void v850e_timer_d_configure (unsigned timer, unsigned rate);
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_V850E_TIMER_D_H__  */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_uart.h -- common V850E on-chip UART driver
- *
- *  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>
- */
-
-/* There's not actually a single UART implementation used by V850E CPUs,
-   but rather a series of implementations that are all `close' to one
-   another.  This file corresponds to the single driver which handles all
-   of them.  */
-
-#ifndef __V850_V850E_UART_H__
-#define __V850_V850E_UART_H__
-
-#include <linux/termios.h>
-
-#include <asm/v850e_utils.h>
-#include <asm/types.h>
-#include <asm/machdep.h>       /* Pick up chip-specific defs.  */
-
-
-/* Include model-specific definitions.  */
-#ifdef CONFIG_V850E_UART
-# ifdef CONFIG_V850E_UARTB
-#  include <asm-v850/v850e_uartb.h>
-# else
-#  include <asm-v850/v850e_uarta.h> /* original V850E UART */
-# endif
-#endif
-
-
-/* Optional capabilities some hardware provides.  */
-
-/* This UART doesn't implement RTS/CTS by default, but some platforms
-   implement them externally, so check to see if <asm/machdep.h> defined
-   anything.  */
-#ifdef V850E_UART_CTS
-#define v850e_uart_cts(n)              V850E_UART_CTS(n)
-#else
-#define v850e_uart_cts(n)              (1)
-#endif
-
-/* Do the same for RTS.  */
-#ifdef V850E_UART_SET_RTS
-#define v850e_uart_set_rts(n,v)                V850E_UART_SET_RTS(n,v)
-#else
-#define v850e_uart_set_rts(n,v)                ((void)0)
-#endif
-
-
-/* This is the serial channel to use for the boot console (if desired).  */
-#ifndef V850E_UART_CONSOLE_CHANNEL
-# define V850E_UART_CONSOLE_CHANNEL 0
-#endif
-
-
-#ifndef __ASSEMBLY__
-
-/* Setup a console using channel 0 of the builtin uart.  */
-extern void v850e_uart_cons_init (unsigned chan);
-
-/* Configure and turn on uart channel CHAN, using the termios `control
-   modes' bits in CFLAGS, and a baud-rate of BAUD.  */
-void v850e_uart_configure (unsigned chan, unsigned cflags, unsigned baud);
-
-#endif /* !__ASSEMBLY__ */
-
-
-#endif /* __V850_V850E_UART_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_uarta.h -- original V850E on-chip UART
- *
- *  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>
- */
-
-/* This is the original V850E UART implementation is called just `UART' in
-   the docs, but we name this header file <asm/v850e_uarta.h> because the
-   name <asm/v850e_uart.h> is used for the common driver that handles both
-   `UART' and `UARTB' implementations.  */
-
-#ifndef __V850_V850E_UARTA_H__
-#define __V850_V850E_UARTA_H__
-
-\f
-/* Raw hardware interface.  */
-
-/* The base address of the UART control registers for channel N.
-   The default is the address used on the V850E/MA1.  */
-#ifndef V850E_UART_BASE_ADDR
-#define V850E_UART_BASE_ADDR(n)                (0xFFFFFA00 + 0x10 * (n))
-#endif 
-
-/* Addresses of specific UART control registers for channel N.
-   The defaults are the addresses used on the V850E/MA1; if a platform
-   wants to redefine any of these, it must redefine them all.  */
-#ifndef V850E_UART_ASIM_ADDR
-#define V850E_UART_ASIM_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x0)
-#define V850E_UART_RXB_ADDR(n)         (V850E_UART_BASE_ADDR(n) + 0x2)
-#define V850E_UART_ASIS_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x3)
-#define V850E_UART_TXB_ADDR(n)         (V850E_UART_BASE_ADDR(n) + 0x4)
-#define V850E_UART_ASIF_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x5)
-#define V850E_UART_CKSR_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x6)
-#define V850E_UART_BRGC_ADDR(n)                (V850E_UART_BASE_ADDR(n) + 0x7)
-#endif
-
-/* UART config registers.  */
-#define V850E_UART_ASIM(n)     (*(volatile u8 *)V850E_UART_ASIM_ADDR(n))
-/* Control bits for config registers.  */
-#define V850E_UART_ASIM_CAE    0x80 /* clock enable */
-#define V850E_UART_ASIM_TXE    0x40 /* transmit enable */
-#define V850E_UART_ASIM_RXE    0x20 /* receive enable */
-#define V850E_UART_ASIM_PS_MASK        0x18 /* mask covering parity-select bits */
-#define V850E_UART_ASIM_PS_NONE        0x00 /* no parity */
-#define V850E_UART_ASIM_PS_ZERO        0x08 /* zero parity */
-#define V850E_UART_ASIM_PS_ODD 0x10 /* odd parity */
-#define V850E_UART_ASIM_PS_EVEN        0x18 /* even parity */
-#define V850E_UART_ASIM_CL_8   0x04 /* char len is 8 bits (otherwise, 7) */
-#define V850E_UART_ASIM_SL_2   0x02 /* 2 stop bits (otherwise, 1) */
-#define V850E_UART_ASIM_ISRM   0x01 /* generate INTSR interrupt on errors
-                                       (otherwise, generate INTSER) */
-
-/* UART serial interface status registers.  */
-#define V850E_UART_ASIS(n)     (*(volatile u8 *)V850E_UART_ASIS_ADDR(n))
-/* Control bits for status registers.  */
-#define V850E_UART_ASIS_PE     0x04 /* parity error */
-#define V850E_UART_ASIS_FE     0x02 /* framing error */
-#define V850E_UART_ASIS_OVE    0x01 /* overrun error */
-
-/* UART serial interface transmission status registers.  */
-#define V850E_UART_ASIF(n)     (*(volatile u8 *)V850E_UART_ASIF_ADDR(n))
-#define V850E_UART_ASIF_TXBF   0x02 /* transmit buffer flag (data in TXB) */
-#define V850E_UART_ASIF_TXSF   0x01 /* transmit shift flag (sending data) */
-
-/* UART receive buffer register.  */
-#define V850E_UART_RXB(n)      (*(volatile u8 *)V850E_UART_RXB_ADDR(n))
-
-/* UART transmit buffer register.  */
-#define V850E_UART_TXB(n)      (*(volatile u8 *)V850E_UART_TXB_ADDR(n))
-
-/* UART baud-rate generator control registers.  */
-#define V850E_UART_CKSR(n)     (*(volatile u8 *)V850E_UART_CKSR_ADDR(n))
-#define V850E_UART_CKSR_MAX    11
-#define V850E_UART_BRGC(n)     (*(volatile u8 *)V850E_UART_BRGC_ADDR(n))
-#define V850E_UART_BRGC_MIN    8
-
-
-#ifndef V850E_UART_CKSR_MAX_FREQ
-#define V850E_UART_CKSR_MAX_FREQ (25*1000*1000)
-#endif
-
-/* Calculate the minimum value for CKSR on this processor.  */
-static inline unsigned v850e_uart_cksr_min (void)
-{
-       int min = 0;
-       unsigned freq = V850E_UART_BASE_FREQ;
-       while (freq > V850E_UART_CKSR_MAX_FREQ) {
-               freq >>= 1;
-               min++;
-       }
-       return min;
-}
-
-\f
-/* Slightly abstract interface used by driver.  */
-
-
-/* Interrupts used by the UART.  */
-
-/* Received when the most recently transmitted character has been sent.  */
-#define V850E_UART_TX_IRQ(chan)                IRQ_INTST (chan)
-/* Received when a new character has been received.  */
-#define V850E_UART_RX_IRQ(chan)                IRQ_INTSR (chan)
-
-
-/* UART clock generator interface.  */
-
-/* This type encapsulates a particular uart frequency.  */
-typedef struct {
-       unsigned clk_divlog2;
-       unsigned brgen_count;
-} v850e_uart_speed_t;
-
-/* Calculate a uart speed from BAUD for this uart.  */
-static inline v850e_uart_speed_t v850e_uart_calc_speed (unsigned baud)
-{
-       v850e_uart_speed_t speed;
-
-       /* Calculate the log2 clock divider and baud-rate counter values
-          (note that the UART divides the resulting clock by 2, so
-          multiply BAUD by 2 here to compensate).  */
-       calc_counter_params (V850E_UART_BASE_FREQ, baud * 2,
-                            v850e_uart_cksr_min(),
-                            V850E_UART_CKSR_MAX, 8/*bits*/,
-                            &speed.clk_divlog2, &speed.brgen_count);
-
-       return speed;
-}
-
-/* Return the current speed of uart channel CHAN.  */
-static inline v850e_uart_speed_t v850e_uart_speed (unsigned chan)
-{
-       v850e_uart_speed_t speed;
-       speed.clk_divlog2 = V850E_UART_CKSR (chan);
-       speed.brgen_count = V850E_UART_BRGC (chan);
-       return speed;
-}
-
-/* Set the current speed of uart channel CHAN.  */
-static inline void v850e_uart_set_speed(unsigned chan,v850e_uart_speed_t speed)
-{
-       V850E_UART_CKSR (chan) = speed.clk_divlog2;
-       V850E_UART_BRGC (chan) = speed.brgen_count;
-}
-
-static inline int
-v850e_uart_speed_eq (v850e_uart_speed_t speed1, v850e_uart_speed_t speed2)
-{
-       return speed1.clk_divlog2 == speed2.clk_divlog2
-               && speed1.brgen_count == speed2.brgen_count;
-}
-
-/* Minimum baud rate possible.  */
-#define v850e_uart_min_baud() \
-   ((V850E_UART_BASE_FREQ >> V850E_UART_CKSR_MAX) / (2 * 255) + 1)
-
-/* Maximum baud rate possible.  The error is quite high at max, though.  */
-#define v850e_uart_max_baud() \
-   ((V850E_UART_BASE_FREQ >> v850e_uart_cksr_min()) / (2 *V850E_UART_BRGC_MIN))
-
-/* The `maximum' clock rate the uart can used, which is wanted (though not
-   really used in any useful way) by the serial framework.  */
-#define v850e_uart_max_clock() \
-   ((V850E_UART_BASE_FREQ >> v850e_uart_cksr_min()) / 2)
-
-
-/* UART configuration interface.  */
-
-/* Type of the uart config register; must be a scalar.  */
-typedef u16 v850e_uart_config_t;
-
-/* The uart hardware config register for channel CHAN.  */
-#define V850E_UART_CONFIG(chan)                V850E_UART_ASIM (chan)
-
-/* This config bit set if the uart is enabled.  */
-#define V850E_UART_CONFIG_ENABLED      V850E_UART_ASIM_CAE
-/* If the uart _isn't_ enabled, store this value to it to do so.  */
-#define V850E_UART_CONFIG_INIT         V850E_UART_ASIM_CAE
-/* Store this config value to disable the uart channel completely.  */
-#define V850E_UART_CONFIG_FINI         0
-
-/* Setting/clearing these bits enable/disable TX/RX, respectively (but
-   otherwise generally leave things running).  */
-#define V850E_UART_CONFIG_RX_ENABLE    V850E_UART_ASIM_RXE
-#define V850E_UART_CONFIG_TX_ENABLE    V850E_UART_ASIM_TXE
-
-/* These masks define which config bits affect TX/RX modes, respectively.  */
-#define V850E_UART_CONFIG_RX_BITS \
-  (V850E_UART_ASIM_PS_MASK | V850E_UART_ASIM_CL_8 | V850E_UART_ASIM_ISRM)
-#define V850E_UART_CONFIG_TX_BITS \
-  (V850E_UART_ASIM_PS_MASK | V850E_UART_ASIM_CL_8 | V850E_UART_ASIM_SL_2)
-
-static inline v850e_uart_config_t v850e_uart_calc_config (unsigned cflags)
-{
-       v850e_uart_config_t config = 0;
-
-       /* Figure out new configuration of control register.  */
-       if (cflags & CSTOPB)
-               /* Number of stop bits, 1 or 2.  */
-               config |= V850E_UART_ASIM_SL_2;
-       if ((cflags & CSIZE) == CS8)
-               /* Number of data bits, 7 or 8.  */
-               config |= V850E_UART_ASIM_CL_8;
-       if (! (cflags & PARENB))
-               /* No parity check/generation.  */
-               config |= V850E_UART_ASIM_PS_NONE;
-       else if (cflags & PARODD)
-               /* Odd parity check/generation.  */
-               config |= V850E_UART_ASIM_PS_ODD;
-       else
-               /* Even parity check/generation.  */
-               config |= V850E_UART_ASIM_PS_EVEN;
-       if (cflags & CREAD)
-               /* Reading enabled.  */
-               config |= V850E_UART_ASIM_RXE;
-
-       config |= V850E_UART_ASIM_CAE;
-       config |= V850E_UART_ASIM_TXE; /* Writing is always enabled.  */
-       config |= V850E_UART_ASIM_ISRM; /* Errors generate a read-irq.  */
-
-       return config;
-}
-
-/* This should delay as long as necessary for a recently written config
-   setting to settle, before we turn the uart back on.  */
-static inline void
-v850e_uart_config_delay (v850e_uart_config_t config, v850e_uart_speed_t speed)
-{
-       /* The UART may not be reset properly unless we wait at least 2
-          `basic-clocks' until turning on the TXE/RXE bits again.
-          A `basic clock' is the clock used by the baud-rate generator,
-          i.e., the cpu clock divided by the 2^new_clk_divlog2.
-          The loop takes 2 insns, so loop CYCLES / 2 times.  */
-       register unsigned count = 1 << speed.clk_divlog2;
-       while (--count != 0)
-               /* nothing */;
-}
-
-
-/* RX/TX interface.  */
-
-/* Return true if all characters awaiting transmission on uart channel N
-   have been transmitted.  */
-#define v850e_uart_xmit_done(n)                                                      \
-   (! (V850E_UART_ASIF(n) & V850E_UART_ASIF_TXBF))
-/* Wait for this to be true.  */
-#define v850e_uart_wait_for_xmit_done(n)                                     \
-   do { } while (! v850e_uart_xmit_done (n))
-
-/* Return true if uart channel N is ready to transmit a character.  */
-#define v850e_uart_xmit_ok(n)                                                \
-   (v850e_uart_xmit_done(n) && v850e_uart_cts(n))
-/* Wait for this to be true.  */
-#define v850e_uart_wait_for_xmit_ok(n)                                       \
-   do { } while (! v850e_uart_xmit_ok (n))
-
-/* Write character CH to uart channel CHAN.  */
-#define v850e_uart_putc(chan, ch)      (V850E_UART_TXB(chan) = (ch))
-
-/* Return latest character read on channel CHAN.  */
-#define v850e_uart_getc(chan)          V850E_UART_RXB (chan)
-
-/* Return bit-mask of uart error status.  */
-#define v850e_uart_err(chan)           V850E_UART_ASIS (chan)
-/* Various error bits set in the error result.  */
-#define V850E_UART_ERR_OVERRUN         V850E_UART_ASIS_OVE
-#define V850E_UART_ERR_FRAME           V850E_UART_ASIS_FE
-#define V850E_UART_ERR_PARITY          V850E_UART_ASIS_PE
-
-
-#endif /* __V850_V850E_UARTA_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_uartb.h -- V850E on-chip `UARTB' UART
- *
- *  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>
- */
-
-/* The V850E UARTB is basically a superset of the original V850E UART, but
-   even where it's the same, the names and details have changed a bit.
-   It's similar enough to use the same driver (v850e_uart.c), but the
-   details have been abstracted slightly to do so.  */
-
-#ifndef __V850_V850E_UARTB_H__
-#define __V850_V850E_UARTB_H__
-
-\f
-/* Raw hardware interface.  */
-
-#define V850E_UARTB_BASE_ADDR(n)       (0xFFFFFA00 + 0x10 * (n))
-
-/* Addresses of specific UART control registers for channel N.  */
-#define V850E_UARTB_CTL0_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0x0)
-#define V850E_UARTB_CTL2_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0x2)
-#define V850E_UARTB_STR_ADDR(n)                (V850E_UARTB_BASE_ADDR(n) + 0x4)
-#define V850E_UARTB_RX_ADDR(n)         (V850E_UARTB_BASE_ADDR(n) + 0x6)
-#define V850E_UARTB_RXAP_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0x6)
-#define V850E_UARTB_TX_ADDR(n)         (V850E_UARTB_BASE_ADDR(n) + 0x8)
-#define V850E_UARTB_FIC0_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0xA)
-#define V850E_UARTB_FIC1_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0xB)
-#define V850E_UARTB_FIC2_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0xC)
-#define V850E_UARTB_FIS0_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0xE)
-#define V850E_UARTB_FIS1_ADDR(n)       (V850E_UARTB_BASE_ADDR(n) + 0xF)
-
-/* UARTB control register 0 (general config).  */
-#define V850E_UARTB_CTL0(n)    (*(volatile u8 *)V850E_UARTB_CTL0_ADDR(n))
-/* Control bits for config registers.  */
-#define V850E_UARTB_CTL0_PWR           0x80    /* clock enable */
-#define V850E_UARTB_CTL0_TXE           0x40    /* transmit enable */
-#define V850E_UARTB_CTL0_RXE           0x20    /* receive enable */
-#define V850E_UARTB_CTL0_DIR           0x10    /*  */
-#define V850E_UARTB_CTL0_PS1           0x08    /* parity */
-#define V850E_UARTB_CTL0_PS0           0x04    /* parity */
-#define V850E_UARTB_CTL0_CL            0x02    /* char len 1:8bit, 0:7bit */
-#define V850E_UARTB_CTL0_SL            0x01    /* stop bit 1:2bit, 0:1bit */
-#define V850E_UARTB_CTL0_PS_MASK       0x0C    /* mask covering parity bits */
-#define V850E_UARTB_CTL0_PS_NONE       0x00    /* no parity */
-#define V850E_UARTB_CTL0_PS_ZERO       0x04    /* zero parity */
-#define V850E_UARTB_CTL0_PS_ODD                0x08    /* odd parity */
-#define V850E_UARTB_CTL0_PS_EVEN       0x0C    /* even parity */
-#define V850E_UARTB_CTL0_CL_8          0x02    /* char len 1:8bit, 0:7bit */
-#define V850E_UARTB_CTL0_SL_2          0x01    /* stop bit 1:2bit, 0:1bit */
-
-/* UARTB control register 2 (clock divider).  */
-#define V850E_UARTB_CTL2(n)    (*(volatile u16 *)V850E_UARTB_CTL2_ADDR(n))
-#define V850E_UARTB_CTL2_MIN   4
-#define V850E_UARTB_CTL2_MAX   0xFFFF
-
-/* UARTB serial interface status register.  */
-#define V850E_UARTB_STR(n)     (*(volatile u8 *)V850E_UARTB_STR_ADDR(n))
-/* Control bits for status registers.  */
-#define V850E_UARTB_STR_TSF    0x80    /* UBTX or FIFO exist data  */
-#define V850E_UARTB_STR_OVF    0x08    /* overflow error */
-#define V850E_UARTB_STR_PE     0x04    /* parity error */
-#define V850E_UARTB_STR_FE     0x02    /* framing error */
-#define V850E_UARTB_STR_OVE    0x01    /* overrun error */
-
-/* UARTB receive data register.  */
-#define V850E_UARTB_RX(n)      (*(volatile u8 *)V850E_UARTB_RX_ADDR(n))
-#define V850E_UARTB_RXAP(n)    (*(volatile u16 *)V850E_UARTB_RXAP_ADDR(n))
-/* Control bits for status registers.  */
-#define V850E_UARTB_RXAP_PEF   0x0200 /* parity error */
-#define V850E_UARTB_RXAP_FEF   0x0100 /* framing error */
-
-/* UARTB transmit data register.  */
-#define V850E_UARTB_TX(n)      (*(volatile u8 *)V850E_UARTB_TX_ADDR(n))
-
-/* UARTB FIFO control register 0.  */
-#define V850E_UARTB_FIC0(n)    (*(volatile u8 *)V850E_UARTB_FIC0_ADDR(n))
-
-/* UARTB FIFO control register 1.  */
-#define V850E_UARTB_FIC1(n)    (*(volatile u8 *)V850E_UARTB_FIC1_ADDR(n))
-
-/* UARTB FIFO control register 2.  */
-#define V850E_UARTB_FIC2(n)    (*(volatile u16 *)V850E_UARTB_FIC2_ADDR(n))
-
-/* UARTB FIFO status register 0.  */
-#define V850E_UARTB_FIS0(n)    (*(volatile u8 *)V850E_UARTB_FIS0_ADDR(n))
-
-/* UARTB FIFO status register 1.  */
-#define V850E_UARTB_FIS1(n)    (*(volatile u8 *)V850E_UARTB_FIS1_ADDR(n))
-
-\f
-/* Slightly abstract interface used by driver.  */
-
-
-/* Interrupts used by the UART.  */
-
-/* Received when the most recently transmitted character has been sent.  */
-#define V850E_UART_TX_IRQ(chan)                IRQ_INTUBTIT (chan)
-/* Received when a new character has been received.  */
-#define V850E_UART_RX_IRQ(chan)                IRQ_INTUBTIR (chan)
-
-/* Use by serial driver for information purposes.  */
-#define V850E_UART_BASE_ADDR(chan)     V850E_UARTB_BASE_ADDR(chan)
-
-
-/* UART clock generator interface.  */
-
-/* This type encapsulates a particular uart frequency.  */
-typedef u16 v850e_uart_speed_t;
-
-/* Calculate a uart speed from BAUD for this uart.  */
-static inline v850e_uart_speed_t v850e_uart_calc_speed (unsigned baud)
-{
-       v850e_uart_speed_t speed;
-
-       /*
-        * V850E/ME2 UARTB baud rate is determined by the value of UBCTL2
-        * fx = V850E_UARTB_BASE_FREQ = CPU_CLOCK_FREQ/4
-        * baud = fx / 2*speed   [ speed >= 4 ]
-        */
-       speed = V850E_UARTB_CTL2_MIN;
-       while (((V850E_UARTB_BASE_FREQ / 2) / speed ) > baud)
-               speed++;
-
-       return speed;
-}
-
-/* Return the current speed of uart channel CHAN.  */
-#define v850e_uart_speed(chan)             V850E_UARTB_CTL2 (chan)
-
-/* Set the current speed of uart channel CHAN.  */
-#define v850e_uart_set_speed(chan, speed)   (V850E_UARTB_CTL2 (chan) = (speed))
-
-/* Return true if SPEED1 and SPEED2 are the same.  */
-#define v850e_uart_speed_eq(speed1, speed2) ((speed1) == (speed2))
-
-/* Minimum baud rate possible.  */
-#define v850e_uart_min_baud() \
-   ((V850E_UARTB_BASE_FREQ / 2) / V850E_UARTB_CTL2_MAX)
-
-/* Maximum baud rate possible.  The error is quite high at max, though.  */
-#define v850e_uart_max_baud() \
-   ((V850E_UARTB_BASE_FREQ / 2) / V850E_UARTB_CTL2_MIN)
-
-/* The `maximum' clock rate the uart can used, which is wanted (though not
-   really used in any useful way) by the serial framework.  */
-#define v850e_uart_max_clock() \
-   (V850E_UARTB_BASE_FREQ / 2)
-
-
-/* UART configuration interface.  */
-
-/* Type of the uart config register; must be a scalar.  */
-typedef u16 v850e_uart_config_t;
-
-/* The uart hardware config register for channel CHAN.  */
-#define V850E_UART_CONFIG(chan)                V850E_UARTB_CTL0 (chan)
-
-/* This config bit set if the uart is enabled.  */
-#define V850E_UART_CONFIG_ENABLED      V850E_UARTB_CTL0_PWR
-/* If the uart _isn't_ enabled, store this value to it to do so.  */
-#define V850E_UART_CONFIG_INIT         V850E_UARTB_CTL0_PWR
-/* Store this config value to disable the uart channel completely.  */
-#define V850E_UART_CONFIG_FINI         0
-
-/* Setting/clearing these bits enable/disable TX/RX, respectively (but
-   otherwise generally leave things running).  */
-#define V850E_UART_CONFIG_RX_ENABLE    V850E_UARTB_CTL0_RXE
-#define V850E_UART_CONFIG_TX_ENABLE    V850E_UARTB_CTL0_TXE
-
-/* These masks define which config bits affect TX/RX modes, respectively.  */
-#define V850E_UART_CONFIG_RX_BITS \
-  (V850E_UARTB_CTL0_PS_MASK | V850E_UARTB_CTL0_CL_8)
-#define V850E_UART_CONFIG_TX_BITS \
-  (V850E_UARTB_CTL0_PS_MASK | V850E_UARTB_CTL0_CL_8 | V850E_UARTB_CTL0_SL_2)
-
-static inline v850e_uart_config_t v850e_uart_calc_config (unsigned cflags)
-{
-       v850e_uart_config_t config = 0;
-
-       /* Figure out new configuration of control register.  */
-       if (cflags & CSTOPB)
-               /* Number of stop bits, 1 or 2.  */
-               config |= V850E_UARTB_CTL0_SL_2;
-       if ((cflags & CSIZE) == CS8)
-               /* Number of data bits, 7 or 8.  */
-               config |= V850E_UARTB_CTL0_CL_8;
-       if (! (cflags & PARENB))
-               /* No parity check/generation.  */
-               config |= V850E_UARTB_CTL0_PS_NONE;
-       else if (cflags & PARODD)
-               /* Odd parity check/generation.  */
-               config |= V850E_UARTB_CTL0_PS_ODD;
-       else
-               /* Even parity check/generation.  */
-               config |= V850E_UARTB_CTL0_PS_EVEN;
-       if (cflags & CREAD)
-               /* Reading enabled.  */
-               config |= V850E_UARTB_CTL0_RXE;
-
-       config |= V850E_UARTB_CTL0_PWR;
-       config |= V850E_UARTB_CTL0_TXE; /* Writing is always enabled.  */
-       config |= V850E_UARTB_CTL0_DIR; /* LSB first.  */
-
-       return config;
-}
-
-/* This should delay as long as necessary for a recently written config
-   setting to settle, before we turn the uart back on.  */
-static inline void
-v850e_uart_config_delay (v850e_uart_config_t config, v850e_uart_speed_t speed)
-{
-       /* The UART may not be reset properly unless we wait at least 2
-          `basic-clocks' until turning on the TXE/RXE bits again.
-          A `basic clock' is the clock used by the baud-rate generator,
-          i.e., the cpu clock divided by the 2^new_clk_divlog2.
-          The loop takes 2 insns, so loop CYCLES / 2 times.  */
-       register unsigned count = 1 << speed;
-       while (--count != 0)
-               /* nothing */;
-}
-
-
-/* RX/TX interface.  */
-
-/* Return true if all characters awaiting transmission on uart channel N
-   have been transmitted.  */
-#define v850e_uart_xmit_done(n)                                                      \
-   (! (V850E_UARTB_STR(n) & V850E_UARTB_STR_TSF))
-/* Wait for this to be true.  */
-#define v850e_uart_wait_for_xmit_done(n)                                     \
-   do { } while (! v850e_uart_xmit_done (n))
-
-/* Return true if uart channel N is ready to transmit a character.  */
-#define v850e_uart_xmit_ok(n)                                                \
-   (v850e_uart_xmit_done(n) && v850e_uart_cts(n))
-/* Wait for this to be true.  */
-#define v850e_uart_wait_for_xmit_ok(n)                                       \
-   do { } while (! v850e_uart_xmit_ok (n))
-
-/* Write character CH to uart channel CHAN.  */
-#define v850e_uart_putc(chan, ch)      (V850E_UARTB_TX(chan) = (ch))
-
-/* Return latest character read on channel CHAN.  */
-#define v850e_uart_getc(chan)          V850E_UARTB_RX (chan)
-
-/* Return bit-mask of uart error status.  */
-#define v850e_uart_err(chan)           V850E_UARTB_STR (chan)
-/* Various error bits set in the error result.  */
-#define V850E_UART_ERR_OVERRUN         V850E_UARTB_STR_OVE
-#define V850E_UART_ERR_FRAME           V850E_UARTB_STR_FE
-#define V850E_UART_ERR_PARITY          V850E_UARTB_STR_PE
-
-
-#endif /* __V850_V850E_UARTB_H__ */
 
+++ /dev/null
-/*
- * include/asm-v850/v850e_utils.h -- Utility functions associated with
- *     V850E CPUs
- *
- *  Copyright (C) 2001,03  NEC Electronics Corporation
- *  Copyright (C) 2001,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_V850E_UTILS_H__
-#define __V850_V850E_UTILS_H__
-
-/* Calculate counter clock-divider and count values to attain the
-   desired frequency RATE from the base frequency BASE_FREQ.  The
-   counter is expected to have a clock-divider, which can divide the
-   system cpu clock by a power of two value from MIN_DIVLOG2 to
-   MAX_DIV_LOG2, and a word-size of COUNTER_SIZE bits (the counter
-   counts up and resets whenever it's equal to the compare register,
-   generating an interrupt or whatever when it does so).  The returned
-   values are: *DIVLOG2 -- log2 of the desired clock divider and *COUNT
-   -- the counter compare value to use.  Returns true if it was possible
-   to find a reasonable value, otherwise false (and the other return
-   values will be set to be as good as possible).  */
-extern int calc_counter_params (unsigned long base_freq,
-                               unsigned long rate,
-                               unsigned min_divlog2, unsigned max_divlog2,
-                               unsigned counter_size,
-                               unsigned *divlog2, unsigned *count);
-
-#endif /* __V850_V850E_UTILS_H__ */
 
 #define AUDIT_ARCH_SHEL64      (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
 #define AUDIT_ARCH_SPARC       (EM_SPARC)
 #define AUDIT_ARCH_SPARC64     (EM_SPARCV9|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_V850                (EM_V850|__AUDIT_ARCH_LE)
 #define AUDIT_ARCH_X86_64      (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
 
 #define AUDIT_PERM_EXEC                1
 
 /* Not Yet Implemented */
 #define MODULE_SUPPORTED_DEVICE(name)
 
-/* v850 toolchain uses a `_' prefix for all user symbols */
+/* some toolchains uses a `_' prefix for all user symbols */
 #ifndef MODULE_SYMBOL_PREFIX
 #define MODULE_SYMBOL_PREFIX ""
 #endif
 
 #define PORT_SUNZILOG  38
 #define PORT_SUNSAB    39
 
-/* NEC v850.  */
-#define PORT_V850E_UART        40
-
 /* DEC */
 #define PORT_DZ                46
 #define PORT_ZS                47
 
 
 asmlinkage long sys_getrlimit(unsigned int resource,
                                struct rlimit __user *rlim);
-#if defined(COMPAT_RLIM_OLD_INFINITY) || !(defined(CONFIG_IA64) || defined(CONFIG_V850))
+#if defined(COMPAT_RLIM_OLD_INFINITY) || !(defined(CONFIG_IA64))
 asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim);
 #endif
 asmlinkage long sys_setrlimit(unsigned int resource,
 
                        genksyms_usage();
                        return 1;
                }
-       if ((strcmp(arch, "v850") == 0) || (strcmp(arch, "h8300") == 0)
-           || (strcmp(arch, "blackfin") == 0))
+       if ((strcmp(arch, "h8300") == 0) || (strcmp(arch, "blackfin") == 0))
                mod_prefix = "_";
        {
                extern int yydebug;
 
        return 1;
 }
 
-/* Ignore any prefix, eg. v850 prepends _ */
+/* Ignore any prefix, eg. some architectures prepend _ */
 static inline int sym_is(const char *symbol, const char *name)
 {
        const char *match;
 
        else
                exit(1);
 
-       if ((strcmp(argv[1], "v850") == 0) || (strcmp(argv[1], "h8300") == 0)
+       if ((strcmp(argv[1], "h8300") == 0)
            || (strcmp(argv[1], "blackfin") == 0))
                printf("#define MODULE_SYMBOL_PREFIX \"_\"\n");
        else