]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] MIPS update
authorAndrew Morton <akpm@osdl.org>
Tue, 20 Apr 2004 00:59:56 +0000 (17:59 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 20 Apr 2004 00:59:56 +0000 (17:59 -0700)
From: Ralf Baechle <ralf@linux-mips.org>

- more work on resurrecting AMD Alchemy platforms
- cleanup of unnecessary <asm/pgalloc.h> inclusions
- update default config files
- cleanup 32-bit compat ioctl code
- support for Montum Jaguar ATX
- workarounds for early revs of the RM9000
- fixes for RM5000 and RM7000 cache handling
- add support for PMC-Sierra Yosemite eval board
- further cleanup and bugfixes for SGI IP27
- make LASAT and VR41xx build and work in 2.6
- improved SGI IP32 support
- plenty of small fixes

264 files changed:
arch/mips/Kconfig
arch/mips/Makefile
arch/mips/au1000/common/Makefile
arch/mips/au1000/common/au1xxx_irqmap.c [new file with mode: 0644]
arch/mips/au1000/common/dbdma.c [new file with mode: 0644]
arch/mips/au1000/common/dma.c
arch/mips/au1000/common/irq.c
arch/mips/au1000/common/pci.c
arch/mips/au1000/common/power.c
arch/mips/au1000/common/reset.c
arch/mips/au1000/common/setup.c
arch/mips/au1000/csb250/Makefile
arch/mips/au1000/csb250/irqmap.c
arch/mips/au1000/db1x00/Makefile
arch/mips/au1000/db1x00/board_setup.c
arch/mips/au1000/db1x00/irqmap.c
arch/mips/au1000/db1x00/mirage_ts.c [new file with mode: 0644]
arch/mips/au1000/hydrogen3/Makefile
arch/mips/au1000/hydrogen3/board_setup.c
arch/mips/au1000/hydrogen3/irqmap.c
arch/mips/au1000/mtx-1/irqmap.c
arch/mips/au1000/pb1000/irqmap.c
arch/mips/au1000/pb1100/irqmap.c
arch/mips/au1000/pb1500/irqmap.c
arch/mips/au1000/pb1550/Makefile
arch/mips/au1000/pb1550/board_setup.c
arch/mips/au1000/pb1550/init.c
arch/mips/au1000/pb1550/irqmap.c
arch/mips/au1000/xxs1500/irqmap.c
arch/mips/baget/baget.c
arch/mips/configs/atlas_defconfig
arch/mips/configs/bosporus_defconfig
arch/mips/configs/capcella_defconfig
arch/mips/configs/cobalt_defconfig
arch/mips/configs/db1000_defconfig
arch/mips/configs/db1100_defconfig
arch/mips/configs/db1500_defconfig
arch/mips/configs/ddb5476_defconfig
arch/mips/configs/ddb5477_defconfig
arch/mips/configs/decstation_defconfig
arch/mips/configs/e55_defconfig
arch/mips/configs/eagle_defconfig
arch/mips/configs/ev64120_defconfig
arch/mips/configs/ev96100_defconfig
arch/mips/configs/hp-lj_defconfig [deleted file]
arch/mips/configs/ip22_defconfig
arch/mips/configs/ip27_defconfig
arch/mips/configs/ip32_defconfig
arch/mips/configs/it8172_defconfig
arch/mips/configs/ivr_defconfig
arch/mips/configs/jaguar-atx_defconfig
arch/mips/configs/jmr3927_defconfig
arch/mips/configs/lasat200_defconfig
arch/mips/configs/malta_defconfig
arch/mips/configs/mirage_defconfig
arch/mips/configs/mpc30x_defconfig
arch/mips/configs/mtx1_defconfig
arch/mips/configs/ocelot_c_defconfig [new file with mode: 0644]
arch/mips/configs/ocelot_defconfig
arch/mips/configs/osprey_defconfig
arch/mips/configs/pb1000_defconfig
arch/mips/configs/pb1100_defconfig
arch/mips/configs/pb1500_defconfig
arch/mips/configs/pb1550_defconfig [new file with mode: 0644]
arch/mips/configs/rm200_defconfig
arch/mips/configs/sb1250-swarm_defconfig
arch/mips/configs/sead_defconfig
arch/mips/configs/tb0226_defconfig
arch/mips/configs/tb0229_defconfig
arch/mips/configs/workpad_defconfig
arch/mips/configs/xxs1500_defconfig
arch/mips/configs/yosemite_defconfig
arch/mips/ddb5xxx/common/irq.c
arch/mips/defconfig
arch/mips/jaguar-atx_defconfig [deleted file]
arch/mips/kernel/Makefile
arch/mips/kernel/cpu-probe.c
arch/mips/kernel/entry.S
arch/mips/kernel/ioctl32.c
arch/mips/kernel/irixelf.c
arch/mips/kernel/irq-mv6434x.c [new file with mode: 0644]
arch/mips/kernel/irq-rm7000.c
arch/mips/kernel/linux32.c
arch/mips/kernel/module-elf64.c
arch/mips/kernel/proc.c
arch/mips/kernel/r2300_switch.S
arch/mips/kernel/r4k_fpu.S
arch/mips/kernel/r4k_switch.S
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/signal.c
arch/mips/kernel/signal32.c
arch/mips/kernel/signal_n32.c
arch/mips/kernel/syscall.c
arch/mips/kernel/sysirix.c
arch/mips/kernel/traps.c
arch/mips/lasat/Makefile
arch/mips/lasat/at93c.c
arch/mips/lasat/ds1603.c
arch/mips/lasat/image/Makefile
arch/mips/lasat/interrupt.c
arch/mips/lasat/lasatIRQ.S
arch/mips/lasat/pci.c [deleted file]
arch/mips/lasat/prom.c
arch/mips/lasat/setup.c
arch/mips/mm-32/tlbex-r4k.S
arch/mips/mm-64/tlbex-r4k.S
arch/mips/mm/Makefile
arch/mips/mm/c-r3k.c
arch/mips/mm/c-r4k.c
arch/mips/mm/c-sb1.c
arch/mips/mm/c-tx39.c
arch/mips/mm/cache.c
arch/mips/mm/cex-sb1.S
arch/mips/mm/dma-coherent.c
arch/mips/mm/dma-ip27.c
arch/mips/mm/dma-noncoherent.c
arch/mips/mm/fault.c
arch/mips/mm/highmem.c
arch/mips/mm/init.c
arch/mips/mm/ioremap.c
arch/mips/mm/pg-r4k.c
arch/mips/mm/pgtable-64.c
arch/mips/mm/sc-ip22.c
arch/mips/mm/sc-r5k.c
arch/mips/mm/sc-rm7k.c
arch/mips/mm/tlb-andes.c
arch/mips/mm/tlb-r4k.c
arch/mips/momentum/jaguar_atx/Makefile
arch/mips/momentum/jaguar_atx/int-handler.S
arch/mips/momentum/jaguar_atx/irq.c
arch/mips/momentum/jaguar_atx/ja-console.c [new file with mode: 0644]
arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h
arch/mips/momentum/jaguar_atx/mv-irq.c [deleted file]
arch/mips/momentum/jaguar_atx/pci-irq.c [deleted file]
arch/mips/momentum/jaguar_atx/pci.c [deleted file]
arch/mips/momentum/jaguar_atx/prom.c
arch/mips/momentum/jaguar_atx/setup.c
arch/mips/momentum/ocelot_c/Makefile
arch/mips/momentum/ocelot_c/irq.c
arch/mips/momentum/ocelot_c/mv-irq.c [deleted file]
arch/mips/momentum/ocelot_c/setup.c
arch/mips/momentum/ocelot_g/setup.c
arch/mips/pci/Makefile
arch/mips/pci/fixup-au1000.c
arch/mips/pci/fixup-lasat.c [new file with mode: 0644]
arch/mips/pci/fixup-mv64340.c [new file with mode: 0644]
arch/mips/pci/ops-au1000.c
arch/mips/pci/ops-mv64340.c
arch/mips/pci/pci-ip27.c
arch/mips/pci/pci-lasat.c [new file with mode: 0644]
arch/mips/pci/pci-sb1250.c
arch/mips/pci/pci-vr41xx.c
arch/mips/pmc-sierra/yosemite/Makefile
arch/mips/pmc-sierra/yosemite/ht.c
arch/mips/pmc-sierra/yosemite/i2c-yosemite.c [deleted file]
arch/mips/pmc-sierra/yosemite/irq.c
arch/mips/pmc-sierra/yosemite/prom.c
arch/mips/pmc-sierra/yosemite/setup.c
arch/mips/pmc-sierra/yosemite/smp.c
arch/mips/sgi-ip27/Makefile
arch/mips/sgi-ip27/ip27-hubio.c [new file with mode: 0644]
arch/mips/sgi-ip27/ip27-init.c
arch/mips/sgi-ip27/ip27-irq.c
arch/mips/sgi-ip27/ip27-memory.c
arch/mips/sgi-ip27/ip27-nmi.c
arch/mips/sgi-ip27/ip27-setup.c [deleted file]
arch/mips/sgi-ip27/ip27-smp.c
arch/mips/sgi-ip27/ip27-timer.c
arch/mips/sgi-ip27/ip27-xtalk.c [new file with mode: 0644]
arch/mips/sgi-ip32/Makefile
arch/mips/sgi-ip32/ip32-irq.c
arch/mips/sgi-ip32/ip32-setup.c
arch/mips/sgi-ip32/ip32-timer.c [deleted file]
arch/mips/sibyte/sb1250/smp.c
arch/mips/sibyte/swarm/setup.c
arch/mips/tx4927/common/Makefile
arch/mips/vr41xx/casio-e55/Makefile
arch/mips/vr41xx/casio-e55/init.c [deleted file]
arch/mips/vr41xx/casio-e55/setup.c
arch/mips/vr41xx/common/Makefile
arch/mips/vr41xx/common/cmu.c
arch/mips/vr41xx/common/giu.c
arch/mips/vr41xx/common/init.c [new file with mode: 0644]
arch/mips/vr41xx/common/rtc.c
arch/mips/vr41xx/common/serial.c
arch/mips/vr41xx/ibm-workpad/Makefile
arch/mips/vr41xx/ibm-workpad/init.c [deleted file]
arch/mips/vr41xx/ibm-workpad/setup.c
arch/mips/vr41xx/nec-eagle/Makefile
arch/mips/vr41xx/nec-eagle/init.c [deleted file]
arch/mips/vr41xx/nec-eagle/irq.c
arch/mips/vr41xx/nec-eagle/setup.c
arch/mips/vr41xx/tanbac-tb0226/Makefile
arch/mips/vr41xx/tanbac-tb0226/init.c [deleted file]
arch/mips/vr41xx/tanbac-tb0226/setup.c
arch/mips/vr41xx/tanbac-tb0229/Makefile
arch/mips/vr41xx/tanbac-tb0229/init.c [deleted file]
arch/mips/vr41xx/tanbac-tb0229/setup.c
arch/mips/vr41xx/victor-mpc30x/Makefile
arch/mips/vr41xx/victor-mpc30x/init.c [deleted file]
arch/mips/vr41xx/victor-mpc30x/setup.c
arch/mips/vr41xx/zao-capcella/Makefile
arch/mips/vr41xx/zao-capcella/init.c [deleted file]
arch/mips/vr41xx/zao-capcella/setup.c
include/asm-mips/asm.h
include/asm-mips/bootinfo.h
include/asm-mips/cacheflush.h
include/asm-mips/dma-mapping.h
include/asm-mips/hardirq.h
include/asm-mips/hazards.h
include/asm-mips/highmem.h
include/asm-mips/ip32/ip32_ints.h
include/asm-mips/ip32/mace.h
include/asm-mips/lasat/lasat.h
include/asm-mips/mach-atlas/mc146818rtc.h
include/asm-mips/mach-au1x00/au1000.h
include/asm-mips/mach-au1x00/au1000_dma.h
include/asm-mips/mach-au1x00/au1000_pcmcia.h [deleted file]
include/asm-mips/mach-au1x00/au1100_mmc.h [new file with mode: 0644]
include/asm-mips/mach-au1x00/au1xxx_dbdma.h [new file with mode: 0644]
include/asm-mips/mach-au1x00/au1xxx_psc.h [new file with mode: 0644]
include/asm-mips/mach-db1x00/db1x00.h
include/asm-mips/mach-generic/spaces.h
include/asm-mips/mach-generic/topology.h [new file with mode: 0644]
include/asm-mips/mach-ip27/mmzone.h
include/asm-mips/mach-ip27/spaces.h
include/asm-mips/mach-ip27/topology.h [new file with mode: 0644]
include/asm-mips/mach-ip32/mc146818rtc.h
include/asm-mips/mach-ja/cpu-feature-overrides.h [new file with mode: 0644]
include/asm-mips/mach-ja/spaces.h [new file with mode: 0644]
include/asm-mips/mach-mips/mc146818rtc.h
include/asm-mips/mach-pb1x00/pb1550.h [new file with mode: 0644]
include/asm-mips/mc146818-time.h
include/asm-mips/mipsregs.h
include/asm-mips/mmu_context.h
include/asm-mips/module.h
include/asm-mips/mv64340.h
include/asm-mips/mv64340_dep.h [deleted file]
include/asm-mips/page-32.h [deleted file]
include/asm-mips/page-64.h [deleted file]
include/asm-mips/page.h
include/asm-mips/pgalloc.h
include/asm-mips/pgtable-64.h
include/asm-mips/prefetch.h
include/asm-mips/processor.h
include/asm-mips/serial.h
include/asm-mips/sibyte/board.h
include/asm-mips/smp.h
include/asm-mips/sn/agent.h
include/asm-mips/sn/arch.h
include/asm-mips/sn/hub.h
include/asm-mips/sn/intr_public.h [deleted file]
include/asm-mips/sn/io.h
include/asm-mips/sn/sn0/arch.h
include/asm-mips/sn/sn_private.h
include/asm-mips/spinlock.h
include/asm-mips/stackframe.h
include/asm-mips/topology.h
include/asm-mips/uaccess.h
include/asm-mips/unistd.h
include/asm-mips/vr41xx/e55.h
include/asm-mips/vr41xx/vr41xx.h
include/asm-mips/vr41xx/workpad.h
include/asm-mips/war.h

index 2207df6a0a88fa78fbc9baef011a22ccbefa94ea..61fa43fa45ccea537090fd670ea2cc315eb6bdee 100644 (file)
@@ -29,6 +29,7 @@ menu "Machine selection"
 
 config MACH_JAZZ
        bool "Support for the Jazz family of machines"
+       select ISA
        help
         This a family of machines based on the MIPS R4030 chipset which was
         used by several vendors to build RISC/os and Windows NT workstations.
@@ -76,18 +77,24 @@ config MACH_VR41XX
 config CASIO_E55
        bool "Support for CASIO CASSIOPEIA E-10/15/55/65"
        depends on MACH_VR41XX
+       select IRQ_CPU
+       select ISA
 
 config IBM_WORKPAD
        bool "Support for IBM WorkPad z50"
        depends on MACH_VR41XX
+       select IRQ_CPU
+       select ISA
 
 config NEC_EAGLE
        bool "Support for NEC Eagle/Hawk board"
+       select IRQ_CPU
        depends on MACH_VR41XX
 
 config TANBAC_TB0226
        bool "Support for TANBAC TB0226 (Mbase)"
        depends on MACH_VR41XX
+       select IRQ_CPU
        help
          The TANBAC TB0226 (Mbase) is a MIPS-based platform manufactured by TANBAC.
          Please refer to <http://www.tanbac.co.jp/> about Mbase.
@@ -95,17 +102,20 @@ config TANBAC_TB0226
 config TANBAC_TB0229
        bool "Support for TANBAC TB0229 (VR4131DIMM)"
        depends on MACH_VR41XX
+       select IRQ_CPU
        help
          The TANBAC TB0229 (VR4131DIMM) is a MIPS-based platform manufactured by TANBAC.
          Please refer to <http://www.tanbac.co.jp/> about VR4131DIMM.
 
 config VICTOR_MPC30X
        bool "Support for Victor MP-C303/304"
+       select IRQ_CPU
        depends on MACH_VR41XX
 
 config ZAO_CAPCELLA
        bool "Support for ZAO Networks Capcella"
        depends on MACH_VR41XX
+       select IRQ_CPU
 
 config TOSHIBA_JMR3927
        bool "Support for Toshiba JMR-TX3927 board"
@@ -114,9 +124,11 @@ config TOSHIBA_JMR3927
 config MIPS_COBALT
        bool "Support for Cobalt Server (EXPERIMENTAL)"
        depends on EXPERIMENTAL
+       select IRQ_CPU
 
 config MACH_DECSTATION
        bool "Support for DECstations"
+       select IRQ_CPU
        depends on MIPS32 || EXPERIMENTAL
        ---help---
          This enables support for DEC's MIPS based workstations.  For details
@@ -150,7 +162,9 @@ config EVB_PCI1
 config MIPS_EV96100
        bool "Support for Galileo EV96100 Evaluation board (EXPERIMENTAL)"
        depends on EXPERIMENTAL
+       select IRQ_CPU
        select MIPS_GT96100
+       select RM7000_CPU_SCACHE
        help
          This is an evaluation board based on the Galileo GT-96100 LAN/WAN
          communications controllers containing a MIPS R5000 compatible core
@@ -168,6 +182,7 @@ config MIPS_IVR
 
 config LASAT
        bool "Support for LASAT Networks platforms"
+       select R5000_CPU_SCACHE
 
 config PICVUE
        tristate "PICVUE LCD display driver"
@@ -187,6 +202,8 @@ config LASAT_SYSCTL
 
 config HP_LASERJET
        bool "Support for Hewlett Packard LaserJet board"
+       depends on BROKEN
+       select IRQ_CPU
 
 config MIPS_ITE8172
        bool "Support for ITE 8172G board"
@@ -214,40 +231,61 @@ config MIPS_ATLAS
 
 config MIPS_MALTA
        bool "Support for MIPS Malta board"
+       select HAVE_STD_PC_SERIAL_PORT
        help
          This enables support for the VR5000-based MIPS Malta evaluation
          board.
 
 config MIPS_SEAD
        bool "Support for MIPS SEAD board (EXPERIMENTAL)"
+       select IRQ_CPU
        depends on EXPERIMENTAL
 
 config MOMENCO_OCELOT
        bool "Support for Momentum Ocelot board"
+       select IRQ_CPU
+       select IRQ_CPU_RM7K
+       select RM7000_CPU_SCACHE
        help
          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
 
 config MOMENCO_OCELOT_G
        bool "Support for Momentum Ocelot-G board"
+       select IRQ_CPU
+       select IRQ_CPU_RM7K
+       select RM7000_CPU_SCACHE
        help
          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
 
 config MOMENCO_OCELOT_C
        bool "Support for Momentum Ocelot-C board"
+       select IRQ_CPU
+       select RM7000_CPU_SCACHE
        help
          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
 
 config MOMENCO_JAGUAR_ATX
        bool "Support for Momentum Jaguar board"
+       select IRQ_CPU
+       select IRQ_CPU_RM7K
+       select LIMITED_DMA
+       select RM7000_CPU_SCACHE
        help
          The Jaguar ATX is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
 
+config JAGUAR_DMALOW
+       bool "Low DMA Mode"
+       depends on MOMENCO_JAGUAR_ATX
+       help
+         Select to Y if jump JP5 is set on your board, N otherwise.  Normally
+         the jumper is set, so if you feel unsafe, just say Y.
+
 config PMC_YOSEMITE
-       bool "Support for PMC-Siera Yosemite eval board"
+       bool "Support for PMC-Sierra Yosemite eval board"
        help
          Yosemite is an evaluation board for the RM9000x2 processor
          manufactured by PMC-Sierra
@@ -259,12 +297,18 @@ config HYPERTRANSPORT
 config DDB5074
        bool "Support for NEC DDB Vrc-5074 (EXPERIMENTAL)"
        depends on EXPERIMENTAL
+       select HAVE_STD_PC_SERIAL_PORT
+       select IRQ_CPU
+       select ISA
        help
          This enables support for the VR5000-based NEC DDB Vrc-5074
          evaluation board.
 
 config DDB5476
        bool "Support for NEC DDB Vrc-5476"
+       select HAVE_STD_PC_SERIAL_PORT
+       select IRQ_CPU
+       select ISA
        help
          This enables support for the R5432-based NEC DDB Vrc-5476
          evaluation board.
@@ -275,6 +319,7 @@ config DDB5476
 
 config DDB5477
        bool "Support for NEC DDB Vrc-5477"
+       select IRQ_CPU
        help
          This enables support for the R5432-based NEC DDB Vrc-5477,
          or Rockhopper/SolutionGear boards with R5432/R5500 CPUs.
@@ -289,9 +334,12 @@ config DDB5477_BUS_FREQUENCY
        
 config NEC_OSPREY
        bool "Support for NEC Osprey board"
+       select IRQ_CPU
 
 config SGI_IP22
        bool "Support for SGI IP22 (Indy/Indigo2)"
+       select IP22_CPU_SCACHE
+       select IRQ_CPU
        help
          This are the SGI Indy, Challenge S and Indigo2, as well as certain
          OEM variants like the Tandem CMN B006S. To compile a Linux kernel
@@ -363,6 +411,8 @@ config REPLICATE_EXHANDLERS
 config SGI_IP32
        bool "Support for SGI IP32 (O2) (EXPERIMENTAL)"
        depends on EXPERIMENTAL
+       select R5000_CPU_SCACHE
+       select RM7000_CPU_SCACHE
        help
          If you want this kernel to run on SGI O2 workstation, say Y here.
 
@@ -383,6 +433,8 @@ config SOC_AU1100
         bool "SOC_AU1100"
 config SOC_AU1500
         bool "SOC_AU1500"
+config SOC_AU1550
+        bool "SOC_AU1550"
 
 endchoice
 
@@ -409,6 +461,10 @@ config MIPS_PB1500
        bool "PB1500 board"
        depends on SOC_AU1500
 
+config MIPS_PB1550
+       bool "PB1550 board"
+       depends on SOC_AU1550
+
 config MIPS_DB1000
        bool "DB1000 board"
        depends on SOC_AU1000
@@ -421,6 +477,10 @@ config MIPS_DB1500
        bool "DB1500 board"
        depends on SOC_AU1500
 
+config MIPS_DB1550
+       bool "DB1550 board"
+       depends on SOC_AU1550
+
 config MIPS_BOSPORUS
        bool "Bosporus board"
        depends on SOC_AU1500
@@ -650,6 +710,8 @@ config SIBYTE_TBPROF
 
 config SNI_RM200_PCI
        bool "Support for SNI RM200 PCI"
+       select HAVE_STD_PC_SERIAL_PORT
+       select ISA
        help
          The SNI RM200 PCI was a MIPS-based platform manufactured by Siemens
          Nixdorf Informationssysteme (SNI), parent company of Pyramid
@@ -658,6 +720,7 @@ config SNI_RM200_PCI
 
 config TOSHIBA_RBTX4927
        bool "Support for Toshiba TBTX49[23]7 board"
+       select ISA
        depends on MIPS32
 
 config RWSEM_GENERIC_SPINLOCK
@@ -691,7 +754,7 @@ config      DMA_IP27
 
 config DMA_NONCOHERENT
        bool
-       depends on ZAO_CAPCELLA || VICTOR_MPC30X || TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || SNI_RM200_PCI || SGI_IP32 || SGI_IP22 || NEC_EAGLE || NEC_OSPREY || DDB5477 || DDB5476 || DDB5074 || MOMENCO_OCELOT || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_JAGUAR_ATX || MIPS_BOSPORUS || MIPS_DB1000 || MIPS_DB1100 || MIPS_DB1500 || MIPS_SEAD || MIPS_MALTA || MIPS_MAGNUM_4000 || MIPS_MIRAGE || MIPS_MTX1 || MIPS_XXS1500 || OLIVETTI_M700 || MIPS_ATLAS || LASAT || MIPS_ITE8172 || IBM_WORKPAD || HP_LASERJET || MIPS_IVR || MIPS_EV96100 || MIPS_EV64120 || MACH_DECSTATION || MIPS_COBALT || MIPS_PB1500 || MIPS_PB1100 || MIPS_PB1000 || CASIO_E55 || ACER_PICA_61 || TANBAC_TB0226 || TANBAC_TB0229
+       depends on ZAO_CAPCELLA || VICTOR_MPC30X || TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || SNI_RM200_PCI || SGI_IP32 || SGI_IP22 || NEC_EAGLE || NEC_OSPREY || DDB5477 || DDB5476 || DDB5074 || MOMENCO_OCELOT || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_JAGUAR_ATX || MIPS_BOSPORUS || MIPS_DB1000 || MIPS_DB1100 || MIPS_DB1500 || MIPS_SEAD || MIPS_MALTA || MIPS_MAGNUM_4000 || MIPS_MIRAGE || MIPS_MTX1 || MIPS_XXS1500 || OLIVETTI_M700 || MIPS_ATLAS || LASAT || MIPS_ITE8172 || IBM_WORKPAD || HP_LASERJET || MIPS_IVR || MIPS_EV96100 || MIPS_EV64120 || MACH_DECSTATION || MIPS_COBALT || MIPS_PB1500 || MIPS_PB1100 || MIPS_PB1000 || MIPS_PB1550 || CASIO_E55 || ACER_PICA_61 || TANBAC_TB0226 || TANBAC_TB0229
        default y
 
 config EARLY_PRINTK
@@ -709,6 +772,10 @@ config I8259
        depends on SNI_RM200_PCI || DDB5477 || DDB5476 || DDB5074 || MACH_JAZZ || MIPS_MALTA || MIPS_COBALT
        default y
 
+config LIMITED_DMA
+       bool
+       select HIGHMEM
+
 config MIPS_BONITO64
        bool
        depends on MIPS_ATLAS || MIPS_MALTA
@@ -726,7 +793,7 @@ config MIPS_NILE4
 
 config CPU_LITTLE_ENDIAN
        bool "Generate little endian code"
-       default y if ACER_PICA_61 || CASIO_E55 || DDB5074 || DDB5476 || DDB5477 || MACH_DECSTATION || HP_LASERJET || IBM_WORKPAD || LASAT || MIPS_COBALT || MIPS_ITE8172 || MIPS_IVR || MIPS_PB1000 || MIPS_PB1100 || MIPS_PB1500 || NEC_OSPREY || NEC_EAGLE || OLIVETTI_M700 || SNI_RM200_PCI || VICTOR_MPC30X || ZAO_CAPCELLA
+       default y if ACER_PICA_61 || CASIO_E55 || DDB5074 || DDB5476 || DDB5477 || MACH_DECSTATION || HP_LASERJET || IBM_WORKPAD || LASAT || MIPS_COBALT || MIPS_ITE8172 || MIPS_IVR || SOC_AU1X00 || NEC_OSPREY || NEC_EAGLE || OLIVETTI_M700 || SNI_RM200_PCI || VICTOR_MPC30X || ZAO_CAPCELLA
        default n if BAGET_MIPS || MIPS_EV64120 || MIPS_EV96100 || MOMENCO_OCELOT || MOMENCO_OCELOT_G || SGI_IP22 || SGI_IP27 || SGI_IP32 || TOSHIBA_JMR3927
        help
          Some MIPS machines can be configured for either little or big endian
@@ -735,13 +802,9 @@ config CPU_LITTLE_ENDIAN
 
 config IRQ_CPU
        bool
-       depends on CASIO_E55 || DDB5074 || DDB5476 || DDB5477 || MACH_DECSTATION || HP_LASERJET || IBM_WORKPAD || MIPS_COBALT || MIPS_EV96100 || MOMENCO_OCELOT || MIPS_SEAD || MOMENCO_OCELOT_G || NEC_EAGLE || NEC_OSPREY || SGI_IP22 || VICTOR_MPC30X || TANBAC_TB0226 || TANBAC_TB0229 || ZAO_CAPCELLA
-       default y
 
 config IRQ_CPU_RM7K
        bool
-       depends on MOMENCO_JAGUAR_ATX || MOMENCO_OCELOT || MOMENCO_OCELOT_G
-       default y
 
 config DUMMY_KEYB
        bool
@@ -904,8 +967,6 @@ config FB_G364
 
 config HAVE_STD_PC_SERIAL_PORT
        bool
-       depends on DDB5476 || DDB5074 || MIPS_MALTA
-       default y
 
 config VR4181
        bool
@@ -926,11 +987,6 @@ config ARC_PROMLIB
        depends on MACH_JAZZ || SNI_RM200_PCI || SGI_IP22 || SGI_IP32
        default y
 
-config BOARD_SCACHE
-       bool
-       depends on CPU_RM9000 || MIPS_EV96100 || MOMENCO_OCELOT || SGI_IP22
-       default y
-
 config ARC64
        bool
        depends on SGI_IP27
@@ -1089,15 +1145,20 @@ config PAGE_SIZE_64KB
 
 endchoice
 
+config BOARD_SCACHE
+       bool
+
+config IP22_CPU_SCACHE
+       bool
+       select BOARD_SCACHE
+
 config R5000_CPU_SCACHE
        bool
-       depends on CPU_NEVADA || CPU_R5000
-       default y if SGI_IP22 || SGI_IP32 || LASAT
+       select BOARD_SCACHE
 
-config BOARD_SCACHE
+config RM7000_CPU_SCACHE
        bool
-       depends on CPU_NEVADA || CPU_R4X00 || CPU_R5000
-       default y if SGI_IP22 || (SGI_IP32 && CPU_R5000) || R5000_CPU_SCACHE
+       select BOARD_SCACHE
 
 config SIBYTE_DMA_PAGEOPS
        bool "Use DMA to clear/copy pages"
@@ -1190,7 +1251,7 @@ config CPU_HAS_SYNC
 #
 config HIGHMEM
        bool "High Memory Support"
-       depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_R10000) && !(BAGET_MIPS || MACH_DECSTATION)
+       depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(BAGET_MIPS || MACH_DECSTATION || MOMENCO_JAGUAR_ATX)
 
 config SMP
        bool "Multi-Processing support"
@@ -1277,7 +1338,7 @@ menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
 
 config PCI
        bool "Support for PCI controller"
-       depends on MIPS_DB1000 || DDB5074 || DDB5476 || DDB5477 || HP_LASERJET || LASAT || MIPS_IVR || MIPS_ATLAS || MIPS_COBALT || MIPS_EV64120 || MIPS_EV96100 || MIPS_ITE8172 || MIPS_MALTA || MOMENCO_OCELOT || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_JAGUAR_ATX || MIPS_PB1000 || MIPS_PB1100 || SOC_AU1500 || NEC_EAGLE || SGI_IP27 || SGI_IP32 || SIBYTE_HAS_PCI || SNI_RM200_PCI || TANBAC_TB0226 || TANBAC_TB0229 || TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || VICTOR_MPC30X || ZAO_CAPCELLA
+       depends on MIPS_DB1000 || DDB5074 || DDB5476 || DDB5477 || HP_LASERJET || LASAT || MIPS_IVR || MIPS_ATLAS || MIPS_COBALT || MIPS_EV64120 || MIPS_EV96100 || MIPS_ITE8172 || MIPS_MALTA || MOMENCO_OCELOT || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_JAGUAR_ATX || MIPS_PB1000 || MIPS_PB1100 || SOC_AU1500 || SOC_AU1550 || NEC_EAGLE || SGI_IP27 || SGI_IP32 || SIBYTE_HAS_PCI || SNI_RM200_PCI || TANBAC_TB0226 || TANBAC_TB0229 || TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || VICTOR_MPC30X || ZAO_CAPCELLA
        help
          Find out whether you have a PCI motherboard. PCI is the name of a
          bus system, i.e. the way the CPU talks to the other stuff inside
@@ -1291,20 +1352,18 @@ config PCI
 
 source "drivers/pci/Kconfig"
 
+#
+# ISA support is now enabled via select.  Too many systems still have the one
+# or other ISA chip on the board that users don't know about so don't expect
+# users to choose the right thing ...
+#
 config ISA
-       bool "ISA bus support"
-       depends on ACER_PICA_61 || SGI_IP22 || MIPS_MAGNUM_4000 || OLIVETTI_M700 || SNI_RM200_PCI
-       default y if TOSHIBA_RBTX4927 || DDB5476 || DDB5074 || IBM_WORKPAD || CASIO_E55
-       help
-         Find out whether you have ISA slots on your motherboard.  ISA is the
-         name of a bus system, i.e. the way the CPU talks to the other stuff
-         inside your box.  Other bus systems are PCI, EISA, or VESA.  ISA is
-         an older system, now being displaced by PCI; newer boards don't
-         support it.  If you have ISA, say Y, otherwise N.
+       bool
 
 config EISA
        bool "EISA support"
-       depends on ISA && (SGI_IP22 || SNI_RM200_PCI)
+       depends on SGI_IP22 || SNI_RM200_PCI
+       select ISA
        ---help---
          The Extended Industry Standard Architecture (EISA) bus was
          developed as an open alternative to the IBM MicroChannel bus.
@@ -1448,7 +1507,7 @@ config CMDLINE
 config DEBUG_KERNEL
        bool "Kernel debugging"
 
-       config DEBUG_STACK_USAGE
+config DEBUG_STACK_USAGE
        bool "Enable stack utilization instrumentation"
        depends on DEBUG_KERNEL
        help
@@ -1457,6 +1516,14 @@ config DEBUG_KERNEL
 
          This option will slow down process creation somewhat.
 
+config DEBUG_SLAB
+       bool "Debug memory allocations"
+       depends on DEBUG_KERNEL && !CPU_HAS_LLDSCD
+       help
+         Say Y here to have the kernel do limited verification on memory
+         allocation as well as poisoning memory on free to catch use of freed
+         memory.
+
 config KGDB
        bool "Remote GDB kernel debugging"
        depends on DEBUG_KERNEL
@@ -1478,8 +1545,7 @@ config GDB_CONSOLE
 
 config DEBUG_INFO
        bool "Compile the kernel with debug info"
-       depends on DEBUG_KERNEL && !KGDB
-       default y if KGDB
+       depends on DEBUG_KERNEL
        help
          If you say Y here the resulting kernel image will include
          debugging info resulting in a larger kernel image.
@@ -1488,7 +1554,8 @@ config DEBUG_INFO
 
 config SB1XXX_CORELIS
        bool "Corelis Debugger"
-       depends on SIBYTE_SB1xxx_SOC && DEBUG_INFO
+       depends on SIBYTE_SB1xxx_SOC
+       select DEBUG_INFO
        help
          Select compile flags that produce code that can be processed by the
          Corelis mksym utility and UDB Emulator.
index 84c1da442927aad00338d518e983b1efe85aee42..51b0add5a2cb417fd4ed757a26006dd4908b6146 100644 (file)
@@ -57,7 +57,7 @@ endif
 cflags-y                       := -I $(TOPDIR)/include/asm/gcc
 cflags-y                       += -G 0 -mno-abicalls -fno-pic -pipe
 cflags-y                       += $(call check_gcc, -finline-limit=100000,)
-LDFLAGS_vmlinux                        += -G 0 -static # -N
+LDFLAGS_vmlinux                        += -G 0 -static -n
 MODFLAGS                       += -mlong-calls
 
 cflags-$(CONFIG_SB1XXX_CORELIS)        += -mno-sched-prolog -fno-omit-frame-pointer
@@ -108,9 +108,14 @@ while :; do \
        gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \
        break; \
 done; \
-if test x$(gcc-abi) != x$(gas-abi); then \
+if test "$(gcc-abi)" != "$(gas-abi)"; then \
        gas_abi="-Wa,-$(gas-abi) -Wa,-mgp$(gcc-abi)"; \
 fi; \
+if test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \
+       $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \
+               -xc /dev/null > /dev/null 2>&1 && \
+               gcc_isa=; \
+fi; \
 echo $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa)
 
 #
@@ -237,6 +242,13 @@ libs-$(CONFIG_MIPS_PB1500) += arch/mips/au1000/pb1500/
 cflags-$(CONFIG_MIPS_PB1500)   += -Iinclude/asm-mips/mach-pb1x00
 load-$(CONFIG_MIPS_PB1500)     += 0x80100000
 
+#
+# AMD Alchemy Pb1550 eval board
+#
+libs-$(CONFIG_MIPS_PB1550)     += arch/mips/au1000/pb1550/
+cflags-$(CONFIG_MIPS_PB1550)   += -Iinclude/asm-mips/mach-pb1x00
+load-$(CONFIG_MIPS_PB1550)     += 0x80100000
+
 #
 # AMD Alchemy Db1000 eval board
 #
@@ -397,11 +409,12 @@ load-$(CONFIG_MOMENCO_OCELOT_C)   += 0x80100000
 # Momentum Jaguar ATX
 #
 core-$(CONFIG_MOMENCO_JAGUAR_ATX)      += arch/mips/momentum/jaguar_atx/
-ifdef CONFIG_JAGUAR_DMALOW
-load-$(CONFIG_MOMENCO_JAGUAR_ATX)      += 0x88000000
-else
+cflags-$(CONFIG_MOMENCO_JAGUAR_ATX)    += -Iinclude/asm-mips/mach-ja
+#ifdef CONFIG_JAGUAR_DMALOW
+#load-$(CONFIG_MOMENCO_JAGUAR_ATX)     += 0x88000000
+#else
 load-$(CONFIG_MOMENCO_JAGUAR_ATX)      += 0x80100000
-endif
+#endif
 
 #
 # NEC DDB
@@ -523,7 +536,7 @@ endif
 #
 # SGI-IP32 (O2)
 #
-# Set the load address to >= 0x????????? if you want to leave space for symmon,
+# Set the load address to >= 80069000 if you want to leave space for symmon,
 # 0x80002000 for production kernels.  Note that the value must be aligned to
 # a multiple of the kernel stack size or the handling of the current variable
 # will break so for 64-bit kernels we have to raise the start address by 8kb.
index b75d65cc15ac3860e41e5fbeac89d990856c7fd4..627a6a1b8217d7e6e635bb1e72b4646857168f9b 100644 (file)
@@ -6,10 +6,15 @@
 # Makefile for the Alchemy Au1000 CPU, generic files.
 #
 
-obj-y                          += prom.o int-handler.o dma.o irq.o puts.o \
-                                  time.o reset.o clocks.o power.o setup.o \
-                                  sleeper.o
+obj-y += prom.o int-handler.o irq.o puts.o time.o reset.o \
+       au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o
 
 obj-$(CONFIG_AU1X00_USB_DEVICE)        += usbdev.o
 obj-$(CONFIG_KGDB)             += dbg_io.o
 obj-$(CONFIG_PCI)              += pci.o
+
+ifdef CONFIG_SOC_AU1550
+obj-y += dbdma.o
+else
+obj-y += dma.o
+endif
diff --git a/arch/mips/au1000/common/au1xxx_irqmap.c b/arch/mips/au1000/common/au1xxx_irqmap.c
new file mode 100644 (file)
index 0000000..afac7ed
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *     Au1xxx processor specific IRQ tables
+ *
+ * Copyright 2004 Embedded Edge, LLC
+ *     dan@embeddededge.com
+ *
+ *  This program is free software; you can redistribute         it and/or modify it
+ *  under  the terms of         the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED          ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,          INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED          TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN         CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/kernel_stat.h>
+#include <linux/module.h>
+#include <linux/signal.h>
+#include <linux/sched.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/timex.h>
+#include <linux/slab.h>
+#include <linux/random.h>
+#include <linux/delay.h>
+
+#include <asm/bitops.h>
+#include <asm/bootinfo.h>
+#include <asm/io.h>
+#include <asm/mipsregs.h>
+#include <asm/system.h>
+#include <asm/mach-au1x00/au1000.h>
+
+/* The IC0 interrupt table.  This is processor, rather than
+ * board dependent, so no reason to keep this info in the board
+ * dependent files.
+ *
+ * Careful if you change match 2 request!
+ * The interrupt handler is called directly from the low level dispatch code.
+ */
+au1xxx_irq_map_t au1xxx_ic0_map[] = {
+
+#if defined(CONFIG_SOC_AU1000)
+       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_UART2_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_SSI0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_SSI1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
+
+#elif defined(CONFIG_SOC_AU1500)
+
+       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
+
+#elif defined(CONFIG_SOC_AU1100)
+
+       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { 2/*AU1000_SD_INT*/, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_SSI0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_SSI1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1000_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       /*{ AU1000_GPIO215_208_INT, INTC_INT_HIGH_LEVEL, 0},*/
+       /*{ AU1000_LCD_INT, INTC_INT_HIGH_LEVEL, 0 },*/
+       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
+
+#elif defined(CONFIG_SOC_AU1550)
+
+       { AU1550_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
+       { AU1550_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
+       { AU1550_DDMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_CRYPTO_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
+       { AU1550_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
+       { AU1550_PCI_RST_INT, INTC_INT_LOW_LEVEL, 0 },
+       { AU1550_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_PSC0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_PSC1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_PSC2_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_PSC3_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_TOY_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       { AU1550_RTC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_NAND_INT, INTC_INT_RISE_EDGE, 0},
+       { AU1550_USB_DEV_REQ_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1550_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1550_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
+       { AU1550_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1550_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+
+#else
+#error "Error: Unknown Alchemy SOC"
+#endif
+
+};
+
+int au1xxx_ic0_nr_irqs = sizeof(au1xxx_ic0_map)/sizeof(au1xxx_irq_map_t);
+
diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c
new file mode 100644 (file)
index 0000000..9f6c61c
--- /dev/null
@@ -0,0 +1,775 @@
+/*
+ *
+ * BRIEF MODULE DESCRIPTION
+ *      The Descriptor Based DMA channel manager that first appeared
+ *     on the Au1550.  I started with dma.c, but I think all that is
+ *     left is this initial comment :-)
+ *
+ * Copyright 2004 Embedded Edge, LLC
+ *     dan@embeddededge.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/string.h>
+#include <linux/delay.h>
+#include <asm/mach-au1x00/au1000.h>
+#include <asm/mach-au1x00/au1xxx_dbdma.h>
+#include <asm/system.h>
+
+/*
+ * The Descriptor Based DMA supports up to 16 channels.
+ *
+ * There are 32 devices defined. We keep an internal structure
+ * of devices using these channels, along with additional
+ * information.
+ *
+ * We allocate the descriptors and allow access to them through various
+ * functions.  The drivers allocate the data buffers and assign them
+ * to the descriptors.
+ */
+static spinlock_t au1xxx_dbdma_spin_lock = SPIN_LOCK_UNLOCKED;
+
+/* I couldn't find a macro that did this......
+*/
+#define ALIGN_ADDR(x, a)       ((((u32)(x)) + (a-1)) & ~(a-1))
+
+static volatile dbdma_global_t *dbdma_gptr = (dbdma_global_t *)DDMA_GLOBAL_BASE;
+static int dbdma_initialized;
+static void au1xxx_dbdma_init(void);
+
+typedef struct dbdma_device_table {
+       u32             dev_flags;
+       u32             dev_tsize;
+       u32             dev_devwidth;
+       u32             dev_physaddr;           /* If FIFO */
+       u32             dev_intlevel;
+       u32             dev_intpolarity;
+} dbdev_tab_t;
+
+typedef struct dbdma_chan_config {
+       u32                     chan_flags;
+       u32                     chan_index;
+       dbdev_tab_t             *chan_src;
+       dbdev_tab_t             *chan_dest;
+       au1x_dma_chan_t         *chan_ptr;
+       au1x_ddma_desc_t        *chan_desc_base;
+       au1x_ddma_desc_t        *get_ptr, *put_ptr, *cur_ptr;
+       void                    *chan_callparam;
+       void (*chan_callback)(int, void *, struct pt_regs *);
+} chan_tab_t;
+
+#define        DEV_FLAGS_INUSE         (1 << 0)
+#define        DEV_FLAGS_ANYUSE        (1 << 1)
+#define DEV_FLAGS_OUT          (1 << 2)
+#define DEV_FLAGS_IN           (1 << 3)
+
+static dbdev_tab_t dbdev_tab[] = {
+       /* UARTS */
+       { DEV_FLAGS_OUT, 0, 8, 0x11100004, 0, 0 },
+       { DEV_FLAGS_IN, 0, 8, 0x11100000, 0, 0 },
+       { DEV_FLAGS_OUT, 0, 8, 0x11400004, 0, 0 },
+       { DEV_FLAGS_IN, 0, 8, 0x11400000, 0, 0 },
+
+       /* EXT DMA */
+       { 0, 0, 0, 0x00000000, 0, 0 },
+       { 0, 0, 0, 0x00000000, 0, 0 },
+       { 0, 0, 0, 0x00000000, 0, 0 },
+       { 0, 0, 0, 0x00000000, 0, 0 },
+
+       /* USB DEV */
+       { DEV_FLAGS_IN, 4, 8, 0x10200000, 0, 0 },
+       { DEV_FLAGS_OUT, 4, 8, 0x10200004, 0, 0 },
+       { DEV_FLAGS_OUT, 4, 8, 0x10200008, 0, 0 },
+       { DEV_FLAGS_OUT, 4, 8, 0x1020000c, 0, 0 },
+       { DEV_FLAGS_IN, 4, 8, 0x10200010, 0, 0 },
+       { DEV_FLAGS_IN, 4, 8, 0x10200014, 0, 0 },
+
+       /* PSC 0 */
+       { DEV_FLAGS_OUT, 0, 0, 0x11a0001c, 0, 0 },
+       { DEV_FLAGS_IN, 0, 0, 0x11a0001c, 0, 0 },
+
+       /* PSC 1 */
+       { DEV_FLAGS_OUT, 0, 0, 0x11b0001c, 0, 0 },
+       { DEV_FLAGS_IN, 0, 0, 0x11b0001c, 0, 0 },
+
+       /* PSC 2 */
+       { DEV_FLAGS_OUT, 0, 0, 0x10a0001c, 0, 0 },
+       { DEV_FLAGS_IN, 0, 0, 0x10a0001c, 0, 0 },
+
+       /* PSC 3 */
+       { DEV_FLAGS_OUT, 0, 0, 0x10b0001c, 0, 0 },
+       { DEV_FLAGS_IN, 0, 0, 0x10b0001c, 0, 0 },
+
+       { 0, 0, 0, 0x00000000, 0, 0 },  /* PCI */
+       { 0, 0, 0, 0x00000000, 0, 0 },  /* NAND */
+
+       /* MAC 0 */
+       { DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DEV_FLAGS_OUT, 0, 0, 0x00000000, 0, 0 },
+
+       /* MAC 1 */
+       { DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DEV_FLAGS_OUT, 0, 0, 0x00000000, 0, 0 },
+
+       /* reserved */
+       { DEV_FLAGS_INUSE, 0, 0, 0x00000000, 0, 0 },
+       { DEV_FLAGS_INUSE, 0, 0, 0x00000000, 0, 0 },
+
+       /* Memory */
+       { DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },   /* throttle */
+       { DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },   /* always */
+};
+
+static chan_tab_t *chan_tab_ptr[NUM_DBDMA_CHANS];
+
+/* Allocate a channel and return a non-zero descriptor if successful.
+*/
+u32
+au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
+       void (*callback)(int, void *, struct pt_regs *), void *callparam)
+{
+       unsigned long   flags;
+       u32             used, chan, rv;
+       u32             dcp;
+       int             i;
+       dbdev_tab_t     *stp, *dtp;
+       chan_tab_t      *ctp;
+       volatile au1x_dma_chan_t *cp;
+
+       /* We do the intialization on the first channel allocation.
+        * We have to wait because of the interrupt handler initialization
+        * which can't be done successfully during board set up.
+        */
+       if (!dbdma_initialized)
+               au1xxx_dbdma_init();
+       dbdma_initialized = 1;
+
+       if ((srcid > DSCR_NDEV_IDS) || (destid > DSCR_NDEV_IDS))
+               return 0;
+
+       stp = &dbdev_tab[srcid];
+       dtp = &dbdev_tab[destid];
+       used = 0;
+       rv = 0;
+
+       /* Check to see if we can get both channels.
+       */
+       spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
+       if (!(stp->dev_flags & DEV_FLAGS_INUSE) ||
+            (stp->dev_flags & DEV_FLAGS_ANYUSE)) {
+               /* Got source */
+               stp->dev_flags |= DEV_FLAGS_INUSE;
+               if (!(dtp->dev_flags & DEV_FLAGS_INUSE) ||
+                    (dtp->dev_flags & DEV_FLAGS_ANYUSE)) {
+                       /* Got destination */
+                       dtp->dev_flags |= DEV_FLAGS_INUSE;
+               }
+               else {
+                       /* Can't get dest.  Release src.
+                       */
+                       stp->dev_flags &= ~DEV_FLAGS_INUSE;
+                       used++;
+               }
+       }
+       else {
+               used++;
+       }
+       spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
+
+       if (!used) {
+               /* Let's see if we can allocate a channel for it.
+               */
+               ctp = NULL;
+               chan = 0;
+               spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
+               for (i=0; i<NUM_DBDMA_CHANS; i++) {
+                       if (chan_tab_ptr[i] == NULL) {
+                               /* If kmalloc fails, it is caught below same
+                                * as a channel not available.
+                                */
+                               ctp = (chan_tab_t *)kmalloc(sizeof(chan_tab_t), GFP_KERNEL);
+                               chan_tab_ptr[i] = ctp;
+                               ctp->chan_index = chan = i;
+                               break;
+                       }
+               }
+               spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
+
+               if (ctp != NULL) {
+                       memset(ctp, 0, sizeof(chan_tab_t));
+                       dcp = DDMA_CHANNEL_BASE;
+                       dcp += (0x0100 * chan);
+                       ctp->chan_ptr = (au1x_dma_chan_t *)dcp;
+                       cp = (volatile au1x_dma_chan_t *)dcp;
+                       ctp->chan_src = stp;
+                       ctp->chan_dest = dtp;
+                       ctp->chan_callback = callback;
+                       ctp->chan_callparam = callparam;
+
+                       /* Initialize channel configuration.
+                       */
+                       i = 0;
+                       if (stp->dev_intlevel)
+                               i |= DDMA_CFG_SED;
+                       if (stp->dev_intpolarity)
+                               i |= DDMA_CFG_SP;
+                       if (dtp->dev_intlevel)
+                               i |= DDMA_CFG_DED;
+                       if (dtp->dev_intpolarity)
+                               i |= DDMA_CFG_DP;
+                       cp->ddma_cfg = i;
+                       au_sync();
+
+                       /* Return a non-zero value that can be used to
+                        * find the channel information in subsequent
+                        * operations.
+                        */
+                       rv = (u32)(&chan_tab_ptr[chan]);
+               }
+               else {
+                       /* Release devices.
+                       */
+                       stp->dev_flags &= ~DEV_FLAGS_INUSE;
+                       dtp->dev_flags &= ~DEV_FLAGS_INUSE;
+               }
+       }
+       return rv;
+}
+
+/* Set the device width if source or destination is a FIFO.
+ * Should be 8, 16, or 32 bits.
+ */
+u32
+au1xxx_dbdma_set_devwidth(u32 chanid, int bits)
+{
+       u32             rv;
+       chan_tab_t      *ctp;
+       dbdev_tab_t     *stp, *dtp;
+
+       ctp = *((chan_tab_t **)chanid);
+       stp = ctp->chan_src;
+       dtp = ctp->chan_dest;
+       rv = 0;
+
+       if (stp->dev_flags & DEV_FLAGS_IN) {    /* Source in fifo */
+               rv = stp->dev_devwidth;
+               stp->dev_devwidth = bits;
+       }
+       if (dtp->dev_flags & DEV_FLAGS_OUT) {   /* Destination out fifo */
+               rv = dtp->dev_devwidth;
+               dtp->dev_devwidth = bits;
+       }
+
+       return rv;
+}
+
+/* Allocate a descriptor ring, initializing as much as possible.
+*/
+u32
+au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
+{
+       int                     i;
+       u32                     desc_base, srcid, destid;
+       u32                     cmd0, cmd1, src1, dest1;
+       u32                     src0, dest0;
+       chan_tab_t              *ctp;
+       dbdev_tab_t             *stp, *dtp;
+       au1x_ddma_desc_t        *dp;
+
+       /* I guess we could check this to be within the
+        * range of the table......
+        */
+       ctp = *((chan_tab_t **)chanid);
+       stp = ctp->chan_src;
+       dtp = ctp->chan_dest;
+
+       /* The descriptors must be 32-byte aligned.  There is a
+        * possibility the allocation will give us such an address,
+        * and if we try that first we are likely to not waste larger
+        * slabs of memory.
+        */
+       desc_base = (u32)kmalloc(entries * sizeof(au1x_ddma_desc_t), GFP_KERNEL);
+       if (desc_base == 0)
+               return 0;
+
+       if (desc_base & 0x1f) {
+               /* Lost....do it again, allocate extra, and round
+                * the address base.
+                */
+               kfree((const void *)desc_base);
+               i = entries * sizeof(au1x_ddma_desc_t);
+               i += (sizeof(au1x_ddma_desc_t) - 1);
+               if ((desc_base = (u32)kmalloc(i, GFP_KERNEL)) == 0)
+                       return 0;
+
+               desc_base = ALIGN_ADDR(desc_base, sizeof(au1x_ddma_desc_t));
+       }
+       dp = (au1x_ddma_desc_t *)desc_base;
+
+       /* Keep track of the base descriptor.
+       */
+       ctp->chan_desc_base = dp;
+
+       /* Initialize the rings with as much information as we know.
+        */
+       srcid = stp - dbdev_tab;        /* Index is channel device ID */
+       destid = dtp - dbdev_tab;
+
+       cmd0 = cmd1 = src1 = dest1 = 0;
+       src0 = dest0 = 0;
+
+       cmd0 |= DSCR_CMD0_SID(srcid);
+       cmd0 |= DSCR_CMD0_DID(destid);
+       cmd0 |= DSCR_CMD0_IE | DSCR_CMD0_CV;
+       cmd0 |= DSCR_CMD0_ST(DSCR_CMD0_ST_CURRENT);
+
+       switch (stp->dev_devwidth) {
+       case 8:
+               cmd0 |= DSCR_CMD0_SW(DSCR_CMD0_BYTE);
+               break;
+       case 16:
+               cmd0 |= DSCR_CMD0_SW(DSCR_CMD0_HALFWORD);
+               break;
+       case 32:
+       default:
+               cmd0 |= DSCR_CMD0_SW(DSCR_CMD0_WORD);
+               break;
+       }
+
+       switch (dtp->dev_devwidth) {
+       case 8:
+               cmd0 |= DSCR_CMD0_DW(DSCR_CMD0_BYTE);
+               break;
+       case 16:
+               cmd0 |= DSCR_CMD0_DW(DSCR_CMD0_HALFWORD);
+               break;
+       case 32:
+       default:
+               cmd0 |= DSCR_CMD0_DW(DSCR_CMD0_WORD);
+               break;
+       }
+
+       /* If the device is marked as an in/out FIFO, ensure it is
+        * set non-coherent.
+        */
+       if (stp->dev_flags & DEV_FLAGS_IN)
+               cmd0 |= DSCR_CMD0_SN;           /* Source in fifo */
+       if (dtp->dev_flags & DEV_FLAGS_OUT)
+               cmd0 |= DSCR_CMD0_DN;           /* Destination out fifo */
+
+       /* Set up source1.  For now, assume no stride and increment.
+        * A channel attribute update can change this later.
+        */
+       switch (stp->dev_tsize) {
+       case 1:
+               src1 |= DSCR_SRC1_STS(DSCR_xTS_SIZE1);
+               break;
+       case 2:
+               src1 |= DSCR_SRC1_STS(DSCR_xTS_SIZE2);
+               break;
+       case 4:
+               src1 |= DSCR_SRC1_STS(DSCR_xTS_SIZE4);
+               break;
+       case 8:
+       default:
+               src1 |= DSCR_SRC1_STS(DSCR_xTS_SIZE8);
+               break;
+       }
+
+       /* If source input is fifo, set static address.
+       */
+       if (stp->dev_flags & DEV_FLAGS_IN) {
+               src0 = stp->dev_physaddr;
+               src1 |= DSCR_SRC1_SAM(DSCR_xAM_STATIC);
+       }
+
+       /* Set up dest1.  For now, assume no stride and increment.
+        * A channel attribute update can change this later.
+        */
+       switch (dtp->dev_tsize) {
+       case 1:
+               dest1 |= DSCR_DEST1_DTS(DSCR_xTS_SIZE1);
+               break;
+       case 2:
+               dest1 |= DSCR_DEST1_DTS(DSCR_xTS_SIZE2);
+               break;
+       case 4:
+               dest1 |= DSCR_DEST1_DTS(DSCR_xTS_SIZE4);
+               break;
+       case 8:
+       default:
+               dest1 |= DSCR_DEST1_DTS(DSCR_xTS_SIZE8);
+               break;
+       }
+
+       /* If destination output is fifo, set static address.
+       */
+       if (dtp->dev_flags & DEV_FLAGS_OUT) {
+               dest0 = dtp->dev_physaddr;
+               dest1 |= DSCR_DEST1_DAM(DSCR_xAM_STATIC);
+       }
+
+       for (i=0; i<entries; i++) {
+               dp->dscr_cmd0 = cmd0;
+               dp->dscr_cmd1 = cmd1;
+               dp->dscr_source0 = src0;
+               dp->dscr_source1 = src1;
+               dp->dscr_dest0 = dest0;
+               dp->dscr_dest1 = dest1;
+               dp->dscr_stat = 0;
+               dp->dscr_nxtptr = DSCR_NXTPTR(virt_to_phys(dp + 1));
+               dp++;
+       }
+
+       /* Make last descrptor point to the first.
+       */
+       dp--;
+       dp->dscr_nxtptr = DSCR_NXTPTR(virt_to_phys(ctp->chan_desc_base));
+       ctp->get_ptr = ctp->put_ptr = ctp->cur_ptr = ctp->chan_desc_base;
+
+       return (u32)(ctp->chan_desc_base);
+}
+
+/* Put a source buffer into the DMA ring.
+ * This updates the source pointer and byte count.  Normally used
+ * for memory to fifo transfers.
+ */
+u32
+au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes)
+{
+       chan_tab_t              *ctp;
+       au1x_ddma_desc_t        *dp;
+
+       /* I guess we could check this to be within the
+        * range of the table......
+        */
+       ctp = *((chan_tab_t **)chanid);
+
+       /* We should have multiple callers for a particular channel,
+        * an interrupt doesn't affect this pointer nor the descriptor,
+        * so no locking should be needed.
+        */
+       dp = ctp->put_ptr;
+
+       /* If the descriptor is valid, we are way ahead of the DMA
+        * engine, so just return an error condition.
+        */
+       if (dp->dscr_cmd0 & DSCR_CMD0_V) {
+               return 0;
+       }
+
+       /* Load up buffer address and byte count.
+       */
+       dp->dscr_source0 = virt_to_phys(buf);
+       dp->dscr_cmd1 = nbytes;
+       dp->dscr_cmd0 |= DSCR_CMD0_V;   /* Let it rip */
+       ctp->chan_ptr->ddma_dbell = 0xffffffff; /* Make it go */
+
+       /* Get next descriptor pointer.
+       */
+       ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
+
+       /* return something not zero.
+       */
+       return nbytes;
+}
+
+/* Put a destination buffer into the DMA ring.
+ * This updates the destination pointer and byte count.  Normally used
+ * to place an empty buffer into the ring for fifo to memory transfers.
+ */
+u32
+au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes)
+{
+       chan_tab_t              *ctp;
+       au1x_ddma_desc_t        *dp;
+
+       /* I guess we could check this to be within the
+        * range of the table......
+        */
+       ctp = *((chan_tab_t **)chanid);
+
+       /* We should have multiple callers for a particular channel,
+        * an interrupt doesn't affect this pointer nor the descriptor,
+        * so no locking should be needed.
+        */
+       dp = ctp->put_ptr;
+
+       /* If the descriptor is valid, we are way ahead of the DMA
+        * engine, so just return an error condition.
+        */
+       if (dp->dscr_cmd0 & DSCR_CMD0_V)
+               return 0;
+
+       /* Load up buffer address and byte count.
+       */
+       dp->dscr_dest0 = virt_to_phys(buf);
+       dp->dscr_cmd1 = nbytes;
+       dp->dscr_cmd0 |= DSCR_CMD0_V;   /* Let it rip */
+
+       /* Get next descriptor pointer.
+       */
+       ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
+
+       /* return something not zero.
+       */
+       return nbytes;
+}
+
+/* Get a destination buffer into the DMA ring.
+ * Normally used to get a full buffer from the ring during fifo
+ * to memory transfers.  This does not set the valid bit, you will
+ * have to put another destination buffer to keep the DMA going.
+ */
+u32
+au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes)
+{
+       chan_tab_t              *ctp;
+       au1x_ddma_desc_t        *dp;
+       u32                     rv;
+
+       /* I guess we could check this to be within the
+        * range of the table......
+        */
+       ctp = *((chan_tab_t **)chanid);
+
+       /* We should have multiple callers for a particular channel,
+        * an interrupt doesn't affect this pointer nor the descriptor,
+        * so no locking should be needed.
+        */
+       dp = ctp->get_ptr;
+
+       /* If the descriptor is valid, we are way ahead of the DMA
+        * engine, so just return an error condition.
+        */
+       if (dp->dscr_cmd0 & DSCR_CMD0_V)
+               return 0;
+
+       /* Return buffer address and byte count.
+       */
+       *buf = (void *)(phys_to_virt(dp->dscr_dest0));
+       *nbytes = dp->dscr_cmd1;
+       rv = dp->dscr_stat;
+
+       /* Get next descriptor pointer.
+       */
+       ctp->get_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
+
+       /* return something not zero.
+       */
+       return rv;
+}
+
+void
+au1xxx_dbdma_stop(u32 chanid)
+{
+       chan_tab_t      *ctp;
+       volatile au1x_dma_chan_t *cp;
+       int halt_timeout = 0;
+
+       ctp = *((chan_tab_t **)chanid);
+
+       cp = ctp->chan_ptr;
+       cp->ddma_cfg &= ~DDMA_CFG_EN;   /* Disable channel */
+       au_sync();
+       while (!(cp->ddma_stat & DDMA_STAT_H)) {
+               udelay(1);
+               halt_timeout++;
+               if (halt_timeout > 100) {
+                       printk("warning: DMA channel won't halt\n");
+                       break;
+               }
+       }
+       /* clear current desc valid and doorbell */
+       cp->ddma_stat |= (DDMA_STAT_DB | DDMA_STAT_V);
+       au_sync();
+}
+
+/* Start using the current descriptor pointer.  If the dbdma encounters
+ * a not valid descriptor, it will stop.  In this case, we can just
+ * continue by adding a buffer to the list and starting again.
+ */
+void
+au1xxx_dbdma_start(u32 chanid)
+{
+       chan_tab_t      *ctp;
+       volatile au1x_dma_chan_t *cp;
+
+       ctp = *((chan_tab_t **)chanid);
+
+       cp = ctp->chan_ptr;
+       cp->ddma_desptr = virt_to_phys(ctp->cur_ptr);
+       cp->ddma_cfg |= DDMA_CFG_EN;    /* Enable channel */
+       au_sync();
+       cp->ddma_dbell = 0xffffffff;    /* Make it go */
+       au_sync();
+}
+
+void
+au1xxx_dbdma_reset(u32 chanid)
+{
+       chan_tab_t              *ctp;
+       au1x_ddma_desc_t        *dp;
+
+       au1xxx_dbdma_stop(chanid);
+
+       ctp = *((chan_tab_t **)chanid);
+       ctp->get_ptr = ctp->put_ptr = ctp->cur_ptr = ctp->chan_desc_base;
+
+       /* Run through the descriptors and reset the valid indicator.
+       */
+       dp = ctp->chan_desc_base;
+
+       do {
+               dp->dscr_cmd0 &= ~DSCR_CMD0_V;
+               dp = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
+       } while (dp != ctp->chan_desc_base);
+}
+
+u32
+au1xxx_get_dma_residue(u32 chanid)
+{
+       chan_tab_t      *ctp;
+       volatile au1x_dma_chan_t *cp;
+       u32             rv;
+
+       ctp = *((chan_tab_t **)chanid);
+       cp = ctp->chan_ptr;
+
+       /* This is only valid if the channel is stopped.
+       */
+       rv = cp->ddma_bytecnt;
+       au_sync();
+
+       return rv;
+}
+
+void
+au1xxx_dbdma_chan_free(u32 chanid)
+{
+       chan_tab_t      *ctp;
+       dbdev_tab_t     *stp, *dtp;
+
+       ctp = *((chan_tab_t **)chanid);
+       stp = ctp->chan_src;
+       dtp = ctp->chan_dest;
+
+       au1xxx_dbdma_stop(chanid);
+
+       if (ctp->chan_desc_base != NULL)
+               kfree(ctp->chan_desc_base);
+
+       stp->dev_flags &= ~DEV_FLAGS_INUSE;
+       dtp->dev_flags &= ~DEV_FLAGS_INUSE;
+       chan_tab_ptr[ctp->chan_index] = NULL;
+
+       kfree(ctp);
+}
+
+static void
+dbdma_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+{
+       u32     intstat;
+       u32     chan_index;
+       chan_tab_t              *ctp;
+       au1x_ddma_desc_t        *dp;
+       volatile au1x_dma_chan_t *cp;
+
+       intstat = dbdma_gptr->ddma_intstat;
+       au_sync();
+       chan_index = au_ffs(intstat) - 1;
+
+       ctp = chan_tab_ptr[chan_index];
+       cp = ctp->chan_ptr;
+       dp = ctp->cur_ptr;
+
+       /* Reset interrupt.
+       */
+       cp->ddma_irq = 0;
+       au_sync();
+
+       if (ctp->chan_callback)
+               (ctp->chan_callback)(irq, ctp->chan_callparam, regs);
+
+       ctp->cur_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
+
+}
+
+static void
+au1xxx_dbdma_init(void)
+{
+       dbdma_gptr->ddma_config = 0;
+       dbdma_gptr->ddma_throttle = 0;
+       dbdma_gptr->ddma_inten = 0xffff;
+       au_sync();
+
+       if (request_irq(AU1550_DDMA_INT, dbdma_interrupt, SA_INTERRUPT,
+                       "Au1xxx dbdma", (void *)dbdma_gptr))
+               printk("Can't get 1550 dbdma irq");
+}
+
+void
+au1xxx_dbdma_dump(u32 chanid)
+{
+       chan_tab_t              *ctp;
+       au1x_ddma_desc_t        *dp;
+       dbdev_tab_t             *stp, *dtp;
+       volatile au1x_dma_chan_t *cp;
+
+       ctp = *((chan_tab_t **)chanid);
+       stp = ctp->chan_src;
+       dtp = ctp->chan_dest;
+       cp = ctp->chan_ptr;
+
+       printk("Chan %x, stp %x (dev %d)  dtp %x (dev %d) \n",
+               (u32)ctp, (u32)stp, stp - dbdev_tab, (u32)dtp, dtp - dbdev_tab);
+       printk("desc base %x, get %x, put %x, cur %x\n",
+               (u32)(ctp->chan_desc_base), (u32)(ctp->get_ptr),
+               (u32)(ctp->put_ptr), (u32)(ctp->cur_ptr));
+
+       printk("dbdma chan %x\n", (u32)cp);
+       printk("cfg %08x, desptr %08x, statptr %08x\n",
+               cp->ddma_cfg, cp->ddma_desptr, cp->ddma_statptr);
+       printk("dbell %08x, irq %08x, stat %08x, bytecnt %08x\n",
+               cp->ddma_dbell, cp->ddma_irq, cp->ddma_stat, cp->ddma_bytecnt);
+
+
+       /* Run through the descriptors
+       */
+       dp = ctp->chan_desc_base;
+
+       do {
+               printk("dp %08x, cmd0 %08x, cmd1 %08x\n",
+                       (u32)dp, dp->dscr_cmd0, dp->dscr_cmd1);
+               printk("src0 %08x, src1 %08x, dest0 %08x\n",
+                       dp->dscr_source0, dp->dscr_source1, dp->dscr_dest0);
+               printk("dest1 %08x, stat %08x, nxtptr %08x\n",
+                       dp->dscr_dest1, dp->dscr_stat, dp->dscr_nxtptr);
+               dp = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
+       } while (dp != ctp->chan_desc_base);
+}
index 8fb9d5fd8de52f4512bad55b9314b2e7bccedfea..f364091d0d13f2fda9e5e21bc3abc064009cf0d9 100644 (file)
@@ -73,7 +73,7 @@ struct dma_chan au1000_dma_table[NUM_AU1000_DMA_CHANNELS] = {
 };
 
 // Device FIFO addresses and default DMA modes
-static const struct {
+static const struct dma_dev {
        unsigned int fifo_addr;
        unsigned int dma_mode;
 } dma_dev_table[DMA_NUM_DEV] = {
@@ -120,12 +120,19 @@ int au1000_dma_read_proc(char *buf, char **start, off_t fpos,
        return len;
 }
 
+// Device FIFO addresses and default DMA modes - 2nd bank
+static const struct dma_dev dma_dev_table_bank2[DMA_NUM_DEV_BANK2] = {
+       {SD0_XMIT_FIFO, DMA_DS | DMA_DW8},              // coherent
+       {SD0_RECV_FIFO, DMA_DS | DMA_DR | DMA_DW8},     // coherent
+       {SD1_XMIT_FIFO, DMA_DS | DMA_DW8},              // coherent
+       {SD1_RECV_FIFO, DMA_DS | DMA_DR | DMA_DW8}      // coherent
+};
 
 void dump_au1000_dma_channel(unsigned int dmanr)
 {
        struct dma_chan *chan;
 
-       if (dmanr > NUM_AU1000_DMA_CHANNELS)
+       if (dmanr >= NUM_AU1000_DMA_CHANNELS)
                return;
        chan = &au1000_dma_table[dmanr];
 
@@ -156,10 +163,16 @@ int request_au1000_dma(int dev_id, const char *dev_str,
                       void *irq_dev_id)
 {
        struct dma_chan *chan;
+       const struct dma_dev *dev;
        int i, ret;
 
-       if (dev_id < 0 || dev_id >= DMA_NUM_DEV)
+#if defined(CONFIG_SOC_AU1100)
+       if (dev_id < 0 || dev_id >= (DMA_NUM_DEV + DMA_NUM_DEV_BANK2))
                return -EINVAL;
+#else
+       if (dev_id < 0 || dev_id >= DMA_NUM_DEV)
+               return -EINVAL;
+#endif
 
        for (i = 0; i < NUM_AU1000_DMA_CHANNELS; i++) {
                if (au1000_dma_table[i].dev_id < 0)
@@ -170,6 +183,13 @@ int request_au1000_dma(int dev_id, const char *dev_str,
 
        chan = &au1000_dma_table[i];
 
+       if (dev_id >= DMA_NUM_DEV) {
+               dev_id -= DMA_NUM_DEV;
+               dev = &dma_dev_table_bank2[dev_id];
+       } else {
+               dev = &dma_dev_table[dev_id];
+       }
+
        if (irqhandler) {
                chan->irq = AU1000_DMA_INT_BASE + i;
                chan->irq_dev = irq_dev_id;
@@ -188,8 +208,8 @@ int request_au1000_dma(int dev_id, const char *dev_str,
        chan->io = DMA_CHANNEL_BASE + i * DMA_CHANNEL_LEN;
        chan->dev_id = dev_id;
        chan->dev_str = dev_str;
-       chan->fifo_addr = dma_dev_table[dev_id].fifo_addr;
-       chan->mode = dma_dev_table[dev_id].dma_mode;
+       chan->fifo_addr = dev->fifo_addr;
+       chan->mode = dev->dma_mode;
 
        /* initialize the channel before returning */
        init_dma(i);
index f9a358b03587230d08c78ff92e75857c63433bcb..5104328f7d7480da3ffb76610ad051440d23b834 100644 (file)
@@ -93,107 +93,6 @@ extern void counter0_irq(int irq, void *dev_id, struct pt_regs *regs);
 
 static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;
 
-static void setup_local_irq(unsigned int irq_nr, int type, int int_req)
-{
-       if (irq_nr > AU1000_MAX_INTR) return;
-       /* Config2[n], Config1[n], Config0[n] */
-       if (irq_nr > AU1000_LAST_INTC0_INT) {
-               switch (type) {
-                       case INTC_INT_RISE_EDGE: /* 0:0:1 */
-                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG0SET);
-                               break;
-                       case INTC_INT_FALL_EDGE: /* 0:1:0 */
-                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1SET);
-                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
-                               break;
-                       case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */
-                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1SET);
-                               au_writel(1<<(irq_nr-32), IC1_CFG0SET);
-                               break;
-                       case INTC_INT_HIGH_LEVEL: /* 1:0:1 */
-                               au_writel(1<<(irq_nr-32), IC1_CFG2SET);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG0SET);
-                               break;
-                       case INTC_INT_LOW_LEVEL: /* 1:1:0 */
-                               au_writel(1<<(irq_nr-32), IC1_CFG2SET);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1SET);
-                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
-                               break;
-                       case INTC_INT_DISABLED: /* 0:0:0 */
-                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
-                               break;
-                       default: /* disable the interrupt */
-                               printk("unexpected int type %d (irq %d)\n", type, irq_nr);
-                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
-                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
-                               return;
-               }
-               if (int_req) /* assign to interrupt request 1 */
-                       au_writel(1<<(irq_nr-32), IC1_ASSIGNCLR);
-               else         /* assign to interrupt request 0 */
-                       au_writel(1<<(irq_nr-32), IC1_ASSIGNSET);
-               au_writel(1<<(irq_nr-32), IC1_SRCSET);
-               au_writel(1<<(irq_nr-32), IC1_MASKCLR);
-               au_writel(1<<(irq_nr-32), IC1_WAKECLR);
-       }
-       else {
-               switch (type) {
-                       case INTC_INT_RISE_EDGE: /* 0:0:1 */
-                               au_writel(1<<irq_nr, IC0_CFG2CLR);
-                               au_writel(1<<irq_nr, IC0_CFG1CLR);
-                               au_writel(1<<irq_nr, IC0_CFG0SET);
-                               break;
-                       case INTC_INT_FALL_EDGE: /* 0:1:0 */
-                               au_writel(1<<irq_nr, IC0_CFG2CLR);
-                               au_writel(1<<irq_nr, IC0_CFG1SET);
-                               au_writel(1<<irq_nr, IC0_CFG0CLR);
-                               break;
-                       case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */
-                               au_writel(1<<irq_nr, IC0_CFG2CLR);
-                               au_writel(1<<irq_nr, IC0_CFG1SET);
-                               au_writel(1<<irq_nr, IC0_CFG0SET);
-                               break;
-                       case INTC_INT_HIGH_LEVEL: /* 1:0:1 */
-                               au_writel(1<<irq_nr, IC0_CFG2SET);
-                               au_writel(1<<irq_nr, IC0_CFG1CLR);
-                               au_writel(1<<irq_nr, IC0_CFG0SET);
-                               break;
-                       case INTC_INT_LOW_LEVEL: /* 1:1:0 */
-                               au_writel(1<<irq_nr, IC0_CFG2SET);
-                               au_writel(1<<irq_nr, IC0_CFG1SET);
-                               au_writel(1<<irq_nr, IC0_CFG0CLR);
-                               break;
-                       case INTC_INT_DISABLED: /* 0:0:0 */
-                               au_writel(1<<irq_nr, IC0_CFG0CLR);
-                               au_writel(1<<irq_nr, IC0_CFG1CLR);
-                               au_writel(1<<irq_nr, IC0_CFG2CLR);
-                               break;
-                       default: /* disable the interrupt */
-                               printk("unexpected int type %d (irq %d)\n", type, irq_nr);
-                               au_writel(1<<irq_nr, IC0_CFG0CLR);
-                               au_writel(1<<irq_nr, IC0_CFG1CLR);
-                               au_writel(1<<irq_nr, IC0_CFG2CLR);
-                               return;
-               }
-               if (int_req) /* assign to interrupt request 1 */
-                       au_writel(1<<irq_nr, IC0_ASSIGNCLR);
-               else         /* assign to interrupt request 0 */
-                       au_writel(1<<irq_nr, IC0_ASSIGNSET);
-               au_writel(1<<irq_nr, IC0_SRCSET);
-               au_writel(1<<irq_nr, IC0_MASKCLR);
-               au_writel(1<<irq_nr, IC0_WAKECLR);
-       }
-       au_sync();
-}
-
 
 static unsigned int startup_irq(unsigned int irq_nr)
 {
@@ -409,6 +308,117 @@ void startup_match20_interrupt(void)
 }
 #endif
 
+static void setup_local_irq(unsigned int irq_nr, int type, int int_req)
+{
+       if (irq_nr > AU1000_MAX_INTR) return;
+       /* Config2[n], Config1[n], Config0[n] */
+       if (irq_nr > AU1000_LAST_INTC0_INT) {
+               switch (type) {
+                       case INTC_INT_RISE_EDGE: /* 0:0:1 */
+                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG0SET);
+                               irq_desc[irq_nr].handler = &rise_edge_irq_type;
+                               break;
+                       case INTC_INT_FALL_EDGE: /* 0:1:0 */
+                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1SET);
+                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
+                               irq_desc[irq_nr].handler = &fall_edge_irq_type;
+                               break;
+                       case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */
+                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1SET);
+                               au_writel(1<<(irq_nr-32), IC1_CFG0SET);
+                               irq_desc[irq_nr].handler = &either_edge_irq_type;
+                               break;
+                       case INTC_INT_HIGH_LEVEL: /* 1:0:1 */
+                               au_writel(1<<(irq_nr-32), IC1_CFG2SET);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG0SET);
+                               irq_desc[irq_nr].handler = &level_irq_type;
+                               break;
+                       case INTC_INT_LOW_LEVEL: /* 1:1:0 */
+                               au_writel(1<<(irq_nr-32), IC1_CFG2SET);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1SET);
+                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
+                               irq_desc[irq_nr].handler = &level_irq_type;
+                               break;
+                       case INTC_INT_DISABLED: /* 0:0:0 */
+                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
+                               break;
+                       default: /* disable the interrupt */
+                               printk("unexpected int type %d (irq %d)\n", type, irq_nr);
+                               au_writel(1<<(irq_nr-32), IC1_CFG0CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG1CLR);
+                               au_writel(1<<(irq_nr-32), IC1_CFG2CLR);
+                               return;
+               }
+               if (int_req) /* assign to interrupt request 1 */
+                       au_writel(1<<(irq_nr-32), IC1_ASSIGNCLR);
+               else         /* assign to interrupt request 0 */
+                       au_writel(1<<(irq_nr-32), IC1_ASSIGNSET);
+               au_writel(1<<(irq_nr-32), IC1_SRCSET);
+               au_writel(1<<(irq_nr-32), IC1_MASKCLR);
+               au_writel(1<<(irq_nr-32), IC1_WAKECLR);
+       }
+       else {
+               switch (type) {
+                       case INTC_INT_RISE_EDGE: /* 0:0:1 */
+                               au_writel(1<<irq_nr, IC0_CFG2CLR);
+                               au_writel(1<<irq_nr, IC0_CFG1CLR);
+                               au_writel(1<<irq_nr, IC0_CFG0SET);
+                               irq_desc[irq_nr].handler = &rise_edge_irq_type;
+                               break;
+                       case INTC_INT_FALL_EDGE: /* 0:1:0 */
+                               au_writel(1<<irq_nr, IC0_CFG2CLR);
+                               au_writel(1<<irq_nr, IC0_CFG1SET);
+                               au_writel(1<<irq_nr, IC0_CFG0CLR);
+                               irq_desc[irq_nr].handler = &fall_edge_irq_type;
+                               break;
+                       case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */
+                               au_writel(1<<irq_nr, IC0_CFG2CLR);
+                               au_writel(1<<irq_nr, IC0_CFG1SET);
+                               au_writel(1<<irq_nr, IC0_CFG0SET);
+                               irq_desc[irq_nr].handler = &either_edge_irq_type;
+                               break;
+                       case INTC_INT_HIGH_LEVEL: /* 1:0:1 */
+                               au_writel(1<<irq_nr, IC0_CFG2SET);
+                               au_writel(1<<irq_nr, IC0_CFG1CLR);
+                               au_writel(1<<irq_nr, IC0_CFG0SET);
+                               irq_desc[irq_nr].handler = &level_irq_type;
+                               break;
+                       case INTC_INT_LOW_LEVEL: /* 1:1:0 */
+                               au_writel(1<<irq_nr, IC0_CFG2SET);
+                               au_writel(1<<irq_nr, IC0_CFG1SET);
+                               au_writel(1<<irq_nr, IC0_CFG0CLR);
+                               irq_desc[irq_nr].handler = &level_irq_type;
+                               break;
+                       case INTC_INT_DISABLED: /* 0:0:0 */
+                               au_writel(1<<irq_nr, IC0_CFG0CLR);
+                               au_writel(1<<irq_nr, IC0_CFG1CLR);
+                               au_writel(1<<irq_nr, IC0_CFG2CLR);
+                               break;
+                       default: /* disable the interrupt */
+                               printk("unexpected int type %d (irq %d)\n", type, irq_nr);
+                               au_writel(1<<irq_nr, IC0_CFG0CLR);
+                               au_writel(1<<irq_nr, IC0_CFG1CLR);
+                               au_writel(1<<irq_nr, IC0_CFG2CLR);
+                               return;
+               }
+               if (int_req) /* assign to interrupt request 1 */
+                       au_writel(1<<irq_nr, IC0_ASSIGNCLR);
+               else         /* assign to interrupt request 0 */
+                       au_writel(1<<irq_nr, IC0_ASSIGNSET);
+               au_writel(1<<irq_nr, IC0_SRCSET);
+               au_writel(1<<irq_nr, IC0_MASKCLR);
+               au_writel(1<<irq_nr, IC0_WAKECLR);
+       }
+       au_sync();
+}
+
 
 void __init init_IRQ(void)
 {
@@ -416,7 +426,9 @@ void __init init_IRQ(void)
        unsigned long cp0_status;
        au1xxx_irq_map_t *imp;
        extern au1xxx_irq_map_t au1xxx_irq_map[];
+       extern au1xxx_irq_map_t au1xxx_ic0_map[];
        extern int au1xxx_nr_irqs;
+       extern int au1xxx_ic0_nr_irqs;
 
        cp0_status = read_c0_status();
        memset(irq_desc, 0, sizeof(irq_desc));
@@ -424,45 +436,43 @@ void __init init_IRQ(void)
 
        init_generic_irq();
 
-       for (i = 0; i <= AU1000_MAX_INTR; i++) {
-               /* default is active high, level interrupt */
-               setup_local_irq(i, INTC_INT_HIGH_LEVEL, 0);
-               irq_desc[i].handler = &level_irq_type;
+       /* Initialize interrupt controllers to a safe state.
+       */
+       au_writel(0xffffffff, IC0_CFG0CLR);
+       au_writel(0xffffffff, IC0_CFG1CLR);
+       au_writel(0xffffffff, IC0_CFG2CLR);
+       au_writel(0xffffffff, IC0_MASKCLR);
+       au_writel(0xffffffff, IC0_ASSIGNSET);
+       au_writel(0xffffffff, IC0_WAKECLR);
+       au_writel(0xffffffff, IC0_SRCSET);
+       au_writel(0xffffffff, IC0_FALLINGCLR);
+       au_writel(0xffffffff, IC0_RISINGCLR);
+       au_writel(0x00000000, IC0_TESTBIT);
+
+       au_writel(0xffffffff, IC1_CFG0CLR);
+       au_writel(0xffffffff, IC1_CFG1CLR);
+       au_writel(0xffffffff, IC1_CFG2CLR);
+       au_writel(0xffffffff, IC1_MASKCLR);
+       au_writel(0xffffffff, IC1_ASSIGNSET);
+       au_writel(0xffffffff, IC1_WAKECLR);
+       au_writel(0xffffffff, IC1_SRCSET);
+       au_writel(0xffffffff, IC1_FALLINGCLR);
+       au_writel(0xffffffff, IC1_RISINGCLR);
+       au_writel(0x00000000, IC1_TESTBIT);
+
+       /* Initialize IC0, which is fixed per processor.
+       */
+       imp = au1xxx_ic0_map;
+       for (i=0; i<au1xxx_ic0_nr_irqs; i++) {
+               setup_local_irq(imp->im_irq, imp->im_type, imp->im_request);
+               imp++;
        }
 
        /* Now set up the irq mapping for the board.
        */
        imp = au1xxx_irq_map;
        for (i=0; i<au1xxx_nr_irqs; i++) {
-
                setup_local_irq(imp->im_irq, imp->im_type, imp->im_request);
-
-               switch (imp->im_type) {
-
-               case INTC_INT_HIGH_LEVEL:
-                       irq_desc[imp->im_irq].handler = &level_irq_type;
-                       break;
-
-               case INTC_INT_LOW_LEVEL:
-                       irq_desc[imp->im_irq].handler = &level_irq_type;
-                       break;
-
-               case INTC_INT_RISE_EDGE:
-                       irq_desc[imp->im_irq].handler = &rise_edge_irq_type;
-                       break;
-
-               case INTC_INT_FALL_EDGE:
-                       irq_desc[imp->im_irq].handler = &fall_edge_irq_type;
-                       break;
-
-               case INTC_INT_RISE_AND_FALL_EDGE:
-                       irq_desc[imp->im_irq].handler = &either_edge_irq_type;
-                       break;
-
-               default:
-                       panic("Unknown au1xxx irq map");
-                       break;
-               }
                imp++;
        }
 
index d1eac2f6731adb5ce5d87ad9661a25f185cc17b0..d5ccbd221f4a61c1dc2c0f8fb518a30dd283e506 100644 (file)
 #include <linux/init.h>
 
 #include <asm/mach-au1x00/au1000.h>
-//#include <asm/pb1500.h>
-#ifdef CONFIG_MIPS_PB1000
-#include <asm/mach-pb1x00/pb1000.h>
-#endif
 #include <asm/pci_channel.h>
 
 /* TBD */
@@ -64,13 +60,13 @@ static struct pci_controller au1x_controller = {
        .mem_resource   = &pci_mem_resource,
 };
 
-#ifdef CONFIG_SOC_AU1500
+#if defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550)
 static unsigned long virt_io_addr;
 #endif
 
 static int __init au1x_pci_setup(void)
 {
-#ifdef CONFIG_SOC_AU1500
+#if defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550)
        int i;
        struct pci_dev *dev;
        
@@ -93,20 +89,8 @@ static int __init au1x_pci_setup(void)
        set_io_port_base(virt_io_addr);
 #endif
 
-#ifdef CONFIG_MIPS_PB1000 /* This is truly board specific */
-       unsigned long pci_mem_start = (unsigned long) PCI_MEM_START;
-
-       au_writel(0, PCI_BRIDGE_CONFIG); // set extend byte to 0
-       au_writel(0, SDRAM_MBAR);        // set mbar to 0
-       au_writel(0x2, SDRAM_CMD);       // enable memory accesses
-       au_sync_delay(1);
-
-       // set extend byte to mbar of ext slot
-       au_writel(((pci_mem_start >> 24) & 0xff) |
-              (1 << 8 | 1 << 9 | 1 << 10 | 1 << 27), PCI_BRIDGE_CONFIG);
-#endif
-
        register_pci_controller(&au1x_controller);
+       return 0;
 }
 
 arch_initcall(au1x_pci_setup);
index 532e7dbae35b02b9a8c80f7748c5a2eae35c447b..d9af49ff20c211713cf39bfc8e3e7e3ff1459234 100644 (file)
@@ -358,7 +358,7 @@ static int pm_do_freq(ctl_table * ctl, int write, struct file *file,
                old_cpu_freq = get_au1x00_speed();
 
                new_cpu_freq = pll * 12 * 1000000;
-               new_baud_base = (new_cpu_freq / 4) / 16;
+               new_baud_base =  (new_cpu_freq / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
                set_au1x00_speed(new_cpu_freq);
                set_au1x00_uart_baud_base(new_baud_base);
 
index e18fa8309fd458d2d57d06b9f08e3c29676e2a53..5bbc6cf059f16dfa0c19e7354cfcb68bb7f75c5a 100644 (file)
@@ -121,6 +121,29 @@ void au1000_restart(char *command)
                au_writel(0x00, 0xb1900064); /* sys_auxpll */
                au_writel(0x00, 0xb1900100); /* sys_pininputen */
                break;
+       case 0x03000000: /* Au1550 */
+               au_writel(0x00, 0xb1a00004); /* psc 0 */
+               au_writel(0x00, 0xb1b00004); /* psc 1 */
+               au_writel(0x00, 0xb0a00004); /* psc 2 */
+               au_writel(0x00, 0xb0b00004); /* psc 3 */
+               au_writel(0x00, 0xb017fffc); /* usbh_enable */
+               au_writel(0x00, 0xb0200058); /* usbd_enable */
+               au_writel(0x00, 0xb4004104); /* mac dma */
+               au_writel(0x00, 0xb4004114); /* mac dma */
+               au_writel(0x00, 0xb4004124); /* mac dma */
+               au_writel(0x00, 0xb4004134); /* mac dma */
+               au_writel(0x00, 0xb1520000); /* macen0 */
+               au_writel(0x00, 0xb1520004); /* macen1 */
+               au_writel(0x00, 0xb1100100); /* uart0_enable */
+               au_writel(0x00, 0xb1200100); /* uart1_enable */
+               au_writel(0x00, 0xb1400100); /* uart3_enable */
+               au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
+               au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
+               au_writel(0x00, 0xb1900028); /* sys_clksrc */
+               au_writel(0x10, 0xb1900060); /* sys_cpupll */
+               au_writel(0x00, 0xb1900064); /* sys_auxpll */
+               au_writel(0x00, 0xb1900100); /* sys_pininputen */
+               break;
 
        default:
                break;
@@ -137,12 +160,28 @@ void au1000_restart(char *command)
        au_writel(0x00000000, 0xAE00001C);
 #endif
 
+#if defined(CONFIG_MIPS_PB1550)
+        /* reset entire system */
+       au_writew(au_readw(0xAF00001C) & ~(1<<15), 0xAF00001C);
+       au_sync();
+#endif
+
        __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
 void au1000_halt(void)
 {
+#if defined(CONFIG_MIPS_PB1550)
+       /* power off system */
+       printk("\n** Powering off Pb1550\n");
+       au_writew(au_readw(0xAF00001C) | (3<<14), 0xAF00001C);
+       au_sync();
+       while(1); /* should not get here */
+#endif
        printk(KERN_NOTICE "\n** You can safely turn off the power\n");
+#ifdef CONFIG_MIPS_MIRAGE
+       au_writel((1 << 26) | (1 << 10), GPIO2_OUTPUT);
+#endif
 #ifdef CONFIG_PM
        au_sleep();
 
index 7988c8272e0898b6db95eea6d47c7465f26f3148..b45c2142e55b944a3b3b39fdae574681db25d3a4 100644 (file)
@@ -56,7 +56,7 @@ extern void (*board_time_init)(void);
 extern void au1x_time_init(void);
 extern void (*board_timer_setup)(struct irqaction *irq);
 extern void au1x_timer_setup(struct irqaction *irq);
-#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_SOC_AU1500)
+#if defined(CONFIG_64BIT_PHYS_ADDR) && (defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550))
 extern phys_t (*fixup_bigphys_addr)(phys_t phys_addr, phys_t size);
 static phys_t au1500_fixup_bigphys_addr(phys_t phys_addr, phys_t size);
 #endif
@@ -66,12 +66,47 @@ extern void au1xxx_timer_setup(struct irqaction *irq);
 static int __init au1x00_setup(void)
 {
        char *argptr;
+       unsigned long prid, cpupll, bclk = 1;
 
        /* Various early Au1000 Errata corrected by this */
        set_c0_config(1<<19); /* Config[OD] */
 
        board_setup();  /* board specific setup */
 
+       prid = read_c0_prid();
+       switch (prid)
+       {
+               case 0x00030100: printk("Au1000 DA "); bclk = 0; break;
+               case 0x00030201: printk("Au1000 HA "); bclk = 0; break;
+               case 0x00030202: printk("Au1000 HB "); bclk = 0; break;
+               case 0x00030203: printk("Au1000 HC "); break;
+               case 0x00030204: printk("Au1000 HD "); break;
+
+               case 0x01030200: printk("Au1500 AB "); break;
+               case 0x01030201: printk("Au1500 AC "); break;
+               case 0x01030202: printk("Au1500 AD "); break;
+
+               case 0x02030200: printk("Au1100 AB "); break;
+               case 0x02030201: printk("Au1100 BA "); break;
+               case 0x02030202: printk("Au1100 BC "); break;
+               case 0x02030203: printk("Au1100 BD "); break;
+               case 0x02030204: printk("Au1100 BE "); break;
+
+               case 0x03030200: printk("Au1550 AA "); break;
+
+               default: printk("Unknown Au1x00! "); bclk = 0; break;
+       }
+       cpupll = (au_readl(0xB1900060) & 0x3F) * 12;
+       printk("(PRId %08X) @ %dMHZ\n", prid, cpupll);
+
+       if (bclk)
+       {
+               /* Enable BCLK switching */
+               bclk = au_readl(0xB190003C);
+               au_writel(bclk | 0x60, 0xB190003C);
+               printk("BCLK switching enabled!\n");
+       }
+
        argptr = prom_getcmdline();
 
 #ifdef CONFIG_SERIAL_AU1X00_CONSOLE
@@ -122,7 +157,7 @@ static int __init au1x00_setup(void)
        _machine_power_off = au1000_power_off;
        board_time_init = au1xxx_time_init;
        board_timer_setup = au1xxx_timer_setup;
-#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_SOC_AU1500)
+#if defined(CONFIG_64BIT_PHYS_ADDR) && (defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550))
        fixup_bigphys_addr = au1500_fixup_bigphys_addr;
 #endif
 
@@ -173,7 +208,7 @@ static int __init au1x00_setup(void)
 
 early_initcall(au1x00_setup);
 
-#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_SOC_AU1500)
+#if defined(CONFIG_64BIT_PHYS_ADDR) && (defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550))
 /* This routine should be valid for all Au1500 based boards */
 static phys_t au1500_fixup_bigphys_addr(phys_t phys_addr, phys_t size)
 {
index eccf46cbac096bb23f2ad4266b06fd043cd8b345..c0c4dcdccae8de505a18c3e72bd7f95b3fe9077a 100644 (file)
@@ -5,10 +5,4 @@
 # Makefile for the Cogent CSB250 Au1500 board.  Copied from Pb1500.
 #
 
-USE_STANDARD_AS_RULE := true
-
-O_TARGET := csb250.o
-
 obj-y := init.o board_setup.o irqmap.o
-
-include $(TOPDIR)/Rules.make
index 67aabf3d28965a1cc6674756cf93b317e17d1b59..d7fbda4921bb6458cbfada2a0c901d1bb84f2f83 100644 (file)
 #include <asm/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
 
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
        { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index 51d62bd5d900f93ad5408e71a3df031e027ea840..4c7d763f21134f34f6a38c439208549cd7eb31ce 100644 (file)
@@ -6,3 +6,4 @@
 # Makefile for the Alchemy Semiconductor Db1x00 board.
 
 lib-y := init.o board_setup.o irqmap.o
+obj-$(CONFIG_WM97XX_COMODULE) += mirage_ts.o
index e3c6d6aa4a2194dd47c9e9debb4b6f7fd7732b76..541837dba3581ba934b6a98227794d544c426d6d 100644 (file)
@@ -45,6 +45,7 @@
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-db1x00/db1x00.h>
 
+/* not correct for db1550 */
 static BCSR * const bcsr = (BCSR *)0xAE000000;
 
 void __init board_setup(void)
@@ -52,6 +53,7 @@ void __init board_setup(void)
        u32 pin_func;
 
        pin_func = 0;
+       /* not valid for 1550 */
 #ifdef CONFIG_AU1X00_USB_DEVICE
        // 2nd USB port is USB device
        pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
@@ -69,6 +71,35 @@ void __init board_setup(void)
 #endif
        au_writel(0, 0xAE000010); /* turn off pcmcia power */
 
+#ifdef CONFIG_MIPS_MIRAGE
+       /* enable GPIO[31:0] inputs */
+       au_writel(0, SYS_PININPUTEN);
+
+       /* GPIO[20] is output, tristate the other input primary GPIO's */
+       au_writel((u32)(~(1<<20)), SYS_TRIOUTCLR);
+
+       /* set GPIO[210:208] instead of SSI_0 */
+       pin_func = au_readl(SYS_PINFUNC) | (u32)(1);
+
+       /* set GPIO[215:211] for LED's */
+       pin_func |= (u32)((5<<2));
+
+       /* set GPIO[214:213] for more LED's */
+       pin_func |= (u32)((5<<12));
+
+       /* set GPIO[207:200] instead of PCMCIA/LCD */
+       pin_func |= (u32)((3<<17));
+       au_writel(pin_func, SYS_PINFUNC);
+
+       /* Enable speaker amplifier.  This should
+        * be part of the audio driver.
+        */
+       au_writel(au_readl(GPIO2_DIR) | 0x200, GPIO2_DIR);
+       au_writel(0x02000200, GPIO2_OUTPUT);
+#endif
+
+       au_sync();
+
 #ifdef CONFIG_MIPS_DB1000
     printk("AMD Alchemy Au1000/Db1000 Board\n");
 #endif
@@ -84,4 +115,7 @@ void __init board_setup(void)
 #ifdef CONFIG_MIPS_MIRAGE
     printk("AMD Alchemy Mirage Board\n");
 #endif
+#ifdef CONFIG_MIPS_DB1550
+    printk("AMD Alchemy Au1550/Db1550 Board\n");
+#endif
 }
index 58c33043add73c439751a9c886dceea08555aa58..cbae591f022a5c5b94a2e844cc6aaf49ea2dc503 100644 (file)
 #include <asm/mach-au1x00/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
 
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1500) || defined(CONFIG_MIPS_MIRAGE)
-       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-#endif
 #ifndef CONFIG_MIPS_MIRAGE
-       { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
-#endif
+#ifdef CONFIG_MIPS_DB1550
+       { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */
+       { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */
+#else
+       { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 Fully_Interted# */
+       { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 STSCHG# */
+       { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */
 
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-
-#ifdef CONFIG_SOC_AU1500
-       { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 Fully_Interted# */
+       { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 STSCHG# */
+       { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */
 #endif
-
-#ifdef CONFIG_MIPS_DB1500
-       { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 },
-       { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
-       { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
-       { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
-       { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 },
+#else
+       { AU1000_GPIO_7, INTC_INT_RISE_EDGE, 0 }, /* touchscreen pen down */
 #endif
 
-#ifndef CONFIG_MIPS_MIRAGE
-       { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 Fully_Interted#
-       { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 STSCHG#
-       { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 IRQ#
-
-       { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 1 Fully_Interted#
-       { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 1 STSCHG#
-       { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 1 IRQ#
-#endif
-
-       { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 IRQ#
-       { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 1 IRQ#
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
diff --git a/arch/mips/au1000/db1x00/mirage_ts.c b/arch/mips/au1000/db1x00/mirage_ts.c
new file mode 100644 (file)
index 0000000..585861e
--- /dev/null
@@ -0,0 +1,263 @@
+/*
+ * linux/arch/mips/au1000/db1x00/mirage_ts.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *     Glue between Mirage board-specific touchscreen pieces
+ *     and generic Wolfson Codec touchscreen support.
+ *
+ *     Based on pb1100_ts.c used in Hydrogen II.
+ *
+ * Copyright (c) 2003 Embedded Edge, LLC
+ *             dan@embeddededge.com
+ *
+ *  This program is free software; you can redistribute         it and/or modify it
+ *  under  the terms of         the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED          ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,          INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED          TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN         CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/config.h>
+#include <linux/types.h>
+#include <linux/module.h>
+#include <linux/sched.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include <linux/proc_fs.h>
+#include <linux/smp.h>
+#include <linux/smp_lock.h>
+
+#include <asm/segment.h>
+#include <asm/irq.h>
+#include <asm/uaccess.h>
+#include <asm/delay.h>
+#include <asm/au1000.h>
+
+/*
+ *  Imported interface to Wolfson Codec driver.
+ */
+extern void *wm97xx_ts_get_handle(int which);
+extern int wm97xx_ts_ready(void* ts_handle);
+extern void wm97xx_ts_set_cal(void* ts_handle, int xscale, int xtrans, int yscale, int ytrans);
+extern u16 wm97xx_ts_get_ac97(void* ts_handle, u8 reg);
+extern void wm97xx_ts_set_ac97(void* ts_handle, u8 reg, u16 val);
+extern int wm97xx_ts_read_data(void* ts_handle, long* x, long* y, long* pressure);
+extern void wm97xx_ts_send_data(void* ts_handle, long x, long y, long z);
+
+int wm97xx_comodule_present = 1;
+
+
+#define TS_NAME "mirage_ts"
+
+#define err(format, arg...) printk(KERN_ERR TS_NAME ": " format "\n" , ## arg)
+#define info(format, arg...) printk(KERN_INFO TS_NAME ": " format "\n" , ## arg)
+#define warn(format, arg...) printk(KERN_WARNING TS_NAME ": " format "\n" , ## arg)
+#define DPRINTK(format, arg...) printk(__FUNCTION__ ": " format "\n" , ## arg)
+
+
+#define PEN_DOWN_IRQ   AU1000_GPIO_7
+
+static struct task_struct *ts_task = 0;
+static DECLARE_COMPLETION(ts_complete);
+static DECLARE_WAIT_QUEUE_HEAD(pendown_wait);
+
+#ifdef CONFIG_WM97XX_FIVEWIRETS
+static int release_pressure = 1;
+#else
+static int release_pressure = 50;
+#endif
+
+typedef struct {
+   long x;
+   long y;
+} DOWN_EVENT;
+
+#define SAMPLE_RATE    50      /* samples per second */
+#define PEN_DEBOUNCE   5       /* samples for settling - fn of SAMPLE_RATE */
+#define PEN_UP_TIMEOUT 10      /* in seconds */
+#define PEN_UP_SETTLE  5       /* samples per second */
+
+static struct {
+       int xscale;
+       int xtrans;
+       int yscale;
+       int ytrans;
+} mirage_ts_cal =
+{
+#if 0
+       xscale:   84,
+       xtrans: -157,
+       yscale:   66,
+       ytrans: -150,
+#else
+       xscale:   84,
+       xtrans: -150,
+       yscale:   66,
+       ytrans: -146,
+#endif
+};
+
+
+static void pendown_irq(int irqnr, void *devid, struct pt_regs *regs)
+{
+//DPRINTK("got one 0x%x", au_readl(SYS_PINSTATERD));
+       wake_up(&pendown_wait);
+}
+
+static int ts_thread(void *id)
+{
+       static int pen_was_down = 0;
+       static DOWN_EVENT pen_xy;
+       long x, y, z;
+       void *ts;       /* handle */
+       struct task_struct *tsk = current;
+       int timeout = HZ / SAMPLE_RATE;
+
+       ts_task = tsk;
+
+       daemonize();
+       tsk->tty = NULL;
+       tsk->policy = SCHED_FIFO;
+       tsk->rt_priority = 1;
+       strcpy(tsk->comm, "touchscreen");
+
+       /* only want to receive SIGKILL */
+       spin_lock_irq(&tsk->sigmask_lock);
+       siginitsetinv(&tsk->blocked, sigmask(SIGKILL));
+       recalc_sigpending(tsk);
+       spin_unlock_irq(&tsk->sigmask_lock);
+
+       /* get handle for codec */
+       ts = wm97xx_ts_get_handle(0);
+
+       /* proceed only after everybody is ready */
+       while ( ! wm97xx_ts_ready(ts) ) {
+               /* give a little time for initializations to complete */
+               interruptible_sleep_on_timeout(&pendown_wait, HZ / 4);
+       }
+
+       /* board-specific calibration */
+       wm97xx_ts_set_cal(ts,
+                       mirage_ts_cal.xscale,
+                       mirage_ts_cal.xtrans,
+                       mirage_ts_cal.yscale,
+                       mirage_ts_cal.ytrans);
+
+       /* route Wolfson pendown interrupts to our GPIO */
+       au_sync();
+       wm97xx_ts_set_ac97(ts, 0x4c, wm97xx_ts_get_ac97(ts, 0x4c) & ~0x0008);
+       au_sync();
+       wm97xx_ts_set_ac97(ts, 0x56, wm97xx_ts_get_ac97(ts, 0x56) & ~0x0008);
+       au_sync();
+       wm97xx_ts_set_ac97(ts, 0x52, wm97xx_ts_get_ac97(ts, 0x52) | 0x2008);
+       au_sync();
+
+       for (;;) {
+               interruptible_sleep_on_timeout(&pendown_wait, timeout);
+               disable_irq(PEN_DOWN_IRQ);
+               if (signal_pending(tsk)) {
+                       break;
+               }
+
+               /* read codec */
+               if (!wm97xx_ts_read_data(ts, &x, &y, &z))
+                       z = 0;  /* treat no-data and pen-up the same */
+
+               if (signal_pending(tsk)) {
+                       break;
+               }
+
+               if (z >= release_pressure) {
+                       y = ~y; /* top to bottom */
+                       if (pen_was_down > 1 /*&& pen_was_down < PEN_DEBOUNCE*/) {//THXXX
+                               /* bounce ? */
+                               x = pen_xy.x;
+                               y = pen_xy.y;
+                               --pen_was_down;
+                       } else if (pen_was_down <= 1) {
+                               pen_xy.x = x;
+                               pen_xy.y = y;
+                               if (pen_was_down)
+                                       wm97xx_ts_send_data(ts, x, y, z);
+                               pen_was_down = PEN_DEBOUNCE;
+                       }
+                       //wm97xx_ts_send_data(ts, x, y, z);
+                       timeout = HZ / SAMPLE_RATE;
+               } else {
+                       if (pen_was_down) {
+                               if (--pen_was_down)
+                                       z = release_pressure;
+                               else //THXXX
+                               wm97xx_ts_send_data(ts, pen_xy.x, pen_xy.y, z);
+                       }
+                       /* The pendown signal takes some time to settle after
+                        * reading the pen pressure so wait a little
+                        * before enabling the pen.
+                        */
+                       if (! pen_was_down) {
+//                             interruptible_sleep_on_timeout(&pendown_wait, HZ / PEN_UP_SETTLE);
+                               timeout = HZ * PEN_UP_TIMEOUT;
+                       }
+               }
+               enable_irq(PEN_DOWN_IRQ);
+       }
+       enable_irq(PEN_DOWN_IRQ);
+       ts_task = NULL;
+       complete(&ts_complete);
+       return 0;
+}
+
+static int __init ts_mirage_init(void)
+{
+       int ret;
+
+       /* pen down signal is connected to GPIO 7 */
+
+       ret = request_irq(PEN_DOWN_IRQ, pendown_irq, 0, "ts-pendown", NULL);
+       if (ret) {
+               err("unable to get pendown irq%d: [%d]", PEN_DOWN_IRQ, ret);
+               return ret;
+       }
+
+       lock_kernel();
+       ret = kernel_thread(ts_thread, NULL, CLONE_FS | CLONE_FILES);
+       if (ret < 0) {
+               unlock_kernel();
+               return ret;
+       }
+       unlock_kernel();
+
+       info("Mirage touchscreen IRQ initialized.");
+
+       return 0;
+}
+
+static void __exit ts_mirage_exit(void)
+{
+       if (ts_task) {
+               send_sig(SIGKILL, ts_task, 1);
+               wait_for_completion(&ts_complete);
+       }
+
+       free_irq(PEN_DOWN_IRQ, NULL);
+}
+
+module_init(ts_mirage_init);
+module_exit(ts_mirage_exit);
+
index c3be4db4b6d567f4fe628d1ba74c6da9a3df2335..974f79256bb33eaec635c69b9007b4622e180072 100644 (file)
@@ -6,13 +6,4 @@
 # Makefile for the Alchemy Semiconductor PB1000 board.
 #
 
-.S.s:
-       $(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-       $(CC) $(CFLAGS) -c $< -o $*.o
-
-O_TARGET := hydrogen3.o
-
 obj-y := init.o board_setup.o irqmap.o
-
-include $(TOPDIR)/Rules.make
index f2e70f687799ccb9b292046b94ad1eb3eb4a2c7f..84e1e41191bab6c0c6e618b36edf452d184de505 100644 (file)
@@ -44,7 +44,6 @@
 #include <asm/reboot.h>
 #include <asm/pgtable.h>
 #include <asm/au1000.h>
-#include <asm/db1x00.h>
 
 extern struct rtc_ops no_rtc_ops;
 
index 385356386071738cbf8bdc56a61a41dbe3847f01..a335c90bdec5688b127c9c7486b692f4751376f8 100644 (file)
 #include <asm/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
 
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-
-//     { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       /* { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, */
+       { AU1000_GPIO_21, INTC_INT_LOW_LEVEL, 0 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index c0a38d480986880adf61175a00ae84ff545e95d4..720bc759d62de8a835820421e8ad4c264b506189 100644 (file)
 #include <asm/system.h>
 #include <asm/au1000.h>
 
+/* Need to define this.
+*/
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       { 0. 0. 0}
 };
 
-int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
+int au1xxx_nr_irqs = 0;
index 3319fbf604a5e4203e0158c0ccc7e7e505a60486..215b07a6d0d96de18ace3f2ee52657fb560eea42 100644 (file)
 #include <asm/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART2_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_SSI0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_SSI1_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
-
        { AU1000_GPIO_15, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index 7c181cc43f9576bce4c1f023c30dfb30e381008d..6333deb601e1d3ed58efaa344ddaf7fa17928e0e 100644 (file)
 #include <asm/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_SSI0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_SSI1_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
        { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card Fully_Interted#
        { AU1000_GPIO_10, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card STSCHG#
        { AU1000_GPIO_11, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card IRQ#
        { AU1000_GPIO_13, INTC_INT_LOW_LEVEL, 0 }, // DC_IRQ#
-       { AU1000_GPIO_23, INTC_INT_LOW_LEVEL, 0 }, // 2-wire SCL
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index 197a58acf6211e34459d9e5b102a21eb331db238..79c4e0fd6ef553b161939224f139fcf3da4b6b44 100644 (file)
 #include <asm/mach-au1x00/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
        { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
-       { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index f544420c5cf3e6d3dc3cd180155ab124fd1b294e..aa35bc6cb8cf7b9da7569327ea3b2cc8bae50ed3 100644 (file)
@@ -6,13 +6,4 @@
 # Makefile for the Alchemy Semiconductor PB1000 board.
 #
 
-.S.s:
-       $(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-       $(CC) $(CFLAGS) -c $< -o $*.o
-
-O_TARGET := pb1550.o
-
-obj-y := init.o board_setup.o irqmap.o
-
-include $(TOPDIR)/Rules.make
+lib-y := init.o board_setup.o irqmap.o
index 54387de02ee5af42cdc2619d98b41d9fd6299bb4..6cd5cc801c973c0688559b5028591d54360b2c9b 100644 (file)
 #include <asm/cpu.h>
 #include <asm/bootinfo.h>
 #include <asm/irq.h>
-#include <asm/keyboard.h>
 #include <asm/mipsregs.h>
 #include <asm/reboot.h>
 #include <asm/pgtable.h>
-#include <asm/au1000.h>
-#include <asm/db1x00.h>
-
-extern struct rtc_ops no_rtc_ops;
-
-static BCSR * const bcsr = (BCSR *)0xB3000000;
+#include <asm/mach-au1x00/au1000.h>
+#include <asm/mach-pb1x00/pb1550.h>
 
 void __init board_setup(void)
 {
        u32 pin_func;
-       rtc_ops = &no_rtc_ops;
 
-#ifdef CONFIG_AU1X00_USB_DEVICE
-       // 2nd USB port is USB device
-       pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
+       /* Enable PSC1 SYNC for AC97.  Normaly done in audio driver,
+        * but it is board specific code, so put it here.
+        */
+       pin_func = au_readl(SYS_PINFUNC);
+       au_sync();
+       pin_func |= SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1;
        au_writel(pin_func, SYS_PINFUNC);
-#endif
 
        au_writel(0, (u32)bcsr|0x10); /* turn off pcmcia power */
+       au_sync();
 
-    printk("AMD Alchemy Pb1550 Board\n");
+       printk("AMD Alchemy Pb1550 Board\n");
 }
index d45a106e3b8a19192031435e9d25b20ddcfbd2bb..41daa3371be3c9d0e29a7bd2748332957473b4dd 100644 (file)
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/bootmem.h>
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
-#include <linux/sched.h>
 
 int prom_argc;
 char **prom_argv, **prom_envp;
@@ -46,28 +43,27 @@ extern char *prom_getenv(char *envname);
 
 const char *get_system_type(void)
 {
-       return "AMD Alchemy PbAu1550";
+       return "Alchemy Pb1550";
 }
 
-int __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
+void __init prom_init(void)
 {
        unsigned char *memsize_str;
        unsigned long memsize;
 
-       prom_argc = argc;
-       prom_argv = argv;
-       prom_envp = envp;
+       prom_argc = (int) fw_arg0;
+       prom_argv = (char **) fw_arg1;
+       prom_envp = (char **) fw_arg2;
 
        mips_machgroup = MACH_GROUP_ALCHEMY;
-       mips_machtype = MACH_PB1000;    /* set the platform # */   
-       prom_init_cmdline();
+       mips_machtype = MACH_PB1550;
 
+       prom_init_cmdline();
        memsize_str = prom_getenv("memsize");
        if (!memsize_str) {
-               memsize = 0x04000000;
+               memsize = 0x08000000;
        } else {
                memsize = simple_strtol(memsize_str, NULL, 0);
        }
        add_memory_region(0, memsize, BOOT_MEM_RAM);
-       return 0;
 }
index 7e0c642a263c55353265a5de1fa3ff4eaf73a191..4f692163b9c99561d5b80e9a049f4c9d4e10e532 100644 (file)
 #include <asm/io.h>
 #include <asm/mipsregs.h>
 #include <asm/system.h>
-#include <asm/au1000.h>
+#include <asm/mach-au1x00/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1550_UART0_INT,     INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_PCI_INTA,              INTC_INT_LOW_LEVEL, 0 },
-       { AU1550_PCI_INTB,              INTC_INT_LOW_LEVEL, 0 },
-       { AU1550_DDMA_INT,              INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_CRYPTO_INT,    INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_PCI_INTC,              INTC_INT_LOW_LEVEL, 0 },
-       { AU1550_PCI_INTD,              INTC_INT_LOW_LEVEL, 0 },
-       { AU1550_PCI_RST_INT,   INTC_INT_LOW_LEVEL, 0 },
-       { AU1550_UART1_INT,     INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_UART3_INT,     INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_PSC0_INT,              INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_PSC1_INT,              INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_PSC2_INT,              INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_PSC3_INT,              INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_TOY_INT,               INTC_INT_RISE_EDGE, 0 },
-       { AU1550_TOY_MATCH0_INT,INTC_INT_RISE_EDGE, 0 },
-       { AU1550_TOY_MATCH1_INT,INTC_INT_RISE_EDGE, 0 },
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1550_TOY_MATCH2_INT,INTC_INT_RISE_EDGE, 0 },
-       { AU1550_RTC_INT,               INTC_INT_RISE_EDGE, 0 },
-       { AU1550_RTC_MATCH0_INT,INTC_INT_RISE_EDGE, 0 },
-       { AU1550_RTC_MATCH1_INT,INTC_INT_RISE_EDGE, 0 },
-       { AU1550_RTC_MATCH2_INT,INTC_INT_RISE_EDGE, 0 },
-       { AU1550_RTC_MATCH2_INT,INTC_INT_RISE_EDGE, 0 },
-       { AU1550_NAND_INT,              INTC_INT_RISE_EDGE, 0 },
-       { AU1550_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1550_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1550_USB_HOST_INT,  INTC_INT_LOW_LEVEL, 0 },
-       { AU1550_MAC0_DMA_INT,  INTC_INT_HIGH_LEVEL, 0},
-       { AU1550_MAC1_DMA_INT,  INTC_INT_HIGH_LEVEL, 0},
-
-
-       /*
-        *  Need to define platform dependant GPIO ints here
-        */
-       #warning PbAu1550 needs GPIO Interrupts defined
-
+       { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 },
+       { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index 74999ca1664aef462a39386579a79aeb3b00c27f..d751f48a69d95da43e9a1c3c4dfd1bb7d9e0e073 100644 (file)
 #include <asm/au1000.h>
 
 au1xxx_irq_map_t au1xxx_irq_map[] = {
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_UART3_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+1, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+2, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+3, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+4, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+5, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+6, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_DMA_INT_BASE+7, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_IRDA_TX_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_IRDA_RX_INT, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
-       { AU1000_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
        { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
-
-       { AU1000_USB_HOST_INT, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTA, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTB, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTC, INTC_INT_LOW_LEVEL, 0 },
-       { AU1000_PCI_INTD, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
        { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
@@ -83,24 +61,6 @@ au1xxx_irq_map_t au1xxx_irq_map[] = {
        { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 },
        { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* CF interrupt */
        { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 },
-
-       { AU1000_ACSYNC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_SUS_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_USB_DEV_REQ_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
-       { AU1000_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
-
-       /* Careful if you change match 2 request!
-        * The interrupt handler is called directly
-        * from the low level dispatch code.
-        */
-       { AU1000_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
 };
 
 int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
index c1b64a99d773c785fc8e74c472dbcd332a28107b..76da72360faf99d59c297afcb1fe631790cc25be 100644 (file)
@@ -12,7 +12,6 @@
 #include <asm/bootinfo.h>
 #include <asm/mipsregs.h>
 #include <asm/pgtable.h>
-#include <asm/pgalloc.h>
 
 #include <asm/baget/baget.h>
 
index 71fc4018a53eded3a9e223ccfb9a3440634b6678..9519ed93c9d92705c7d07242d4d37da2493a459e 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 CONFIG_MIPS_ATLAS=y
 # CONFIG_MIPS_MALTA is not set
@@ -122,7 +122,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -165,6 +164,7 @@ CONFIG_TRAD_SIGNALS=y
 CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 # CONFIG_BLK_DEV_INITRD is not set
@@ -198,6 +198,12 @@ CONFIG_BLK_DEV_SD=y
 # CONFIG_SCSI_CONSTANTS is not set
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -246,7 +252,7 @@ CONFIG_SCSI_QLA2XXX=y
 # CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -255,10 +261,6 @@ CONFIG_SCSI_QLA2XXX=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -282,7 +284,6 @@ CONFIG_IP_PNP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -297,7 +298,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -384,6 +384,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_NET_FC is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -404,11 +405,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -474,12 +477,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -491,7 +490,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -511,6 +509,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -581,7 +583,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -594,6 +595,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -617,7 +619,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 626aee333cb6f20a14be620c6e437ab694243cb0..63b54f9957b440c1703fab348954e1c119b7ccf7 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,12 +117,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 
 #
@@ -167,7 +167,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -190,7 +189,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -198,10 +197,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +221,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -257,7 +251,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -320,6 +313,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -353,11 +347,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -417,12 +413,8 @@ CONFIG_HW_CONSOLE=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -434,7 +426,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -458,6 +449,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +532,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -550,6 +544,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +569,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -662,7 +657,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index 59e065f1ae97a463275fe1419355bddef2712e28..6671d5ad100ef08ec75d03a597a4edb9e54a9a4a 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_ZAO_CAPCELLA=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -126,7 +126,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -167,8 +166,8 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -211,9 +210,10 @@ CONFIG_IDE_GENERIC=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -222,10 +222,6 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -250,7 +246,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -265,7 +260,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -351,6 +345,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -371,11 +366,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -441,12 +438,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -470,7 +463,6 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_PCIPCWATCHDOG is not set
 # CONFIG_WDTPCI is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -490,6 +482,10 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -560,7 +556,6 @@ CONFIG_AUTOFS4_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -573,6 +568,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -597,7 +593,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 91f58b9930e31bf77de59ad666a72f8e6d5ca12c..87350624409dbe1ef2a552526a14396c720a8d9a 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_MIPS_COBALT=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -118,7 +118,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -160,8 +159,8 @@ CONFIG_TRAD_SIGNALS=y
 CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -204,9 +203,10 @@ CONFIG_IDE_GENERIC=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -215,10 +215,6 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -239,7 +235,6 @@ CONFIG_INET=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -254,7 +249,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -340,6 +334,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -360,11 +355,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -430,12 +427,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=16
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -447,7 +440,6 @@ CONFIG_UNIX98_PTY_COUNT=16
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -466,6 +458,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -540,7 +536,6 @@ CONFIG_FS_POSIX_ACL=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -553,6 +548,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +570,7 @@ CONFIG_NFS_FS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index f0ac489410075979fe24f88d022e9a5cbb9cf54c..df61181aaf0fd1b9fcfe416c10fdcbef0ed36032 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -75,12 +75,15 @@ CONFIG_SOC_AU1X00=y
 CONFIG_SOC_AU1000=y
 # CONFIG_SOC_AU1100 is not set
 # CONFIG_SOC_AU1500 is not set
+# CONFIG_SOC_AU1550 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
 CONFIG_MIPS_DB1000=y
 # CONFIG_MIPS_DB1100 is not set
 # CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
 # CONFIG_MIPS_BOSPORUS is not set
 # CONFIG_MIPS_MIRAGE is not set
 # CONFIG_MIPS_XXS1500 is not set
@@ -132,12 +135,12 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 # CONFIG_PCMCIA_AU1X00 is not set
 
@@ -183,7 +186,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -206,7 +208,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -214,10 +216,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -242,7 +240,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -273,7 +270,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -337,6 +333,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -370,11 +367,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -440,12 +439,8 @@ CONFIG_SERIAL_AU1X00_CONSOLE=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -457,7 +452,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -481,6 +475,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -560,7 +558,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -573,6 +570,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -597,7 +595,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -685,7 +683,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index fd0a9d0731df113c877e9a16840f2ee80463b6a3..897591b90ede4f4c620c7b23d18c2c9d0e0efd7d 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -75,12 +75,15 @@ CONFIG_SOC_AU1X00=y
 # CONFIG_SOC_AU1000 is not set
 CONFIG_SOC_AU1100=y
 # CONFIG_SOC_AU1500 is not set
+# CONFIG_SOC_AU1550 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
 # CONFIG_MIPS_DB1000 is not set
 CONFIG_MIPS_DB1100=y
 # CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
 # CONFIG_MIPS_BOSPORUS is not set
 # CONFIG_MIPS_MIRAGE is not set
 # CONFIG_MIPS_XXS1500 is not set
@@ -131,12 +134,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 # CONFIG_PCMCIA_AU1X00 is not set
 
@@ -182,7 +185,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -205,7 +207,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -213,10 +215,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -241,7 +239,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -272,7 +269,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -336,6 +332,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -369,11 +366,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -436,12 +435,8 @@ CONFIG_HW_CONSOLE=y
 #
 # CONFIG_SERIAL_AU1X00 is not set
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -453,7 +448,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -477,6 +471,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -556,7 +554,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -569,6 +566,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -593,7 +591,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -681,7 +679,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index 0e890d112b9d29c95b427a2bc61f166abade0f57..525c637ae701c9901434b40602c210cdc5fe6859 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -75,12 +75,15 @@ CONFIG_SOC_AU1X00=y
 # CONFIG_SOC_AU1000 is not set
 # CONFIG_SOC_AU1100 is not set
 CONFIG_SOC_AU1500=y
+# CONFIG_SOC_AU1550 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
 # CONFIG_MIPS_DB1000 is not set
 # CONFIG_MIPS_DB1100 is not set
 CONFIG_MIPS_DB1500=y
+# CONFIG_MIPS_DB1550 is not set
 # CONFIG_MIPS_BOSPORUS is not set
 # CONFIG_MIPS_MIRAGE is not set
 # CONFIG_MIPS_XXS1500 is not set
@@ -132,12 +135,12 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 # CONFIG_PCMCIA_AU1X00 is not set
 
@@ -240,7 +243,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -285,7 +287,7 @@ CONFIG_IDE_GENERIC=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -293,10 +295,6 @@ CONFIG_IDE_GENERIC=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -321,7 +319,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -352,7 +349,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -416,6 +412,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -449,11 +446,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -517,12 +516,8 @@ CONFIG_SERIAL_AU1X00_CONSOLE=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -534,7 +529,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -558,6 +552,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -630,7 +628,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -643,6 +640,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -669,7 +667,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -757,7 +755,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index e6e3879f4f96789f3c0fee77d49d7b9ece4721ff..baa0a7d25339f8a05a6b63e4f12580898e318a02 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,8 +117,8 @@ CONFIG_CPU_HAS_SYNC=y
 CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
+CONFIG_ISA=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -148,19 +148,21 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Plug and Play support
 #
+# CONFIG_PNP is not set
 
 #
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD 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_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -186,6 +188,7 @@ CONFIG_IDE_TASKFILE_IO=y
 #
 CONFIG_IDE_GENERIC=y
 # CONFIG_BLK_DEV_IDEPCI is not set
+# CONFIG_IDE_CHIPSETS is not set
 # CONFIG_BLK_DEV_IDEDMA is not set
 # CONFIG_IDEDMA_AUTO is not set
 # CONFIG_BLK_DEV_HD is not set
@@ -195,6 +198,11 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_SCSI is not set
 
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
 #
 # Multi-device support (RAID and LVM)
 #
@@ -203,9 +211,10 @@ CONFIG_IDE_GENERIC=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -214,10 +223,6 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -241,7 +246,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -256,7 +260,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -300,13 +303,20 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
 # CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
 
 #
 # Tulip family network device support
 #
 # CONFIG_NET_TULIP is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
 # CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
 # CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
 
 #
 # Ethernet (1000 Mbit)
@@ -342,6 +352,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -362,11 +373,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -432,12 +445,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -449,7 +458,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -469,6 +477,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -482,6 +494,7 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # Graphics support
 #
+# CONFIG_FB_PM2 is not set
 # CONFIG_FB_CYBER2000 is not set
 # CONFIG_FB_IMSTT is not set
 # CONFIG_FB_RIVA is not set
@@ -561,7 +574,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -574,6 +586,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -596,7 +609,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index ead22da34f04fcb2d2726761f019b7b30fdfff04..73d11f5971a86d348aee19a8f53ed9ba22b1413e 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -119,7 +119,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -160,8 +159,8 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -182,9 +181,10 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -193,10 +193,6 @@ CONFIG_TRAD_SIGNALS=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -220,7 +216,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -235,7 +230,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -340,6 +334,7 @@ CONFIG_PCNET32=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -360,11 +355,13 @@ CONFIG_PCNET32=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -430,12 +427,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -447,7 +440,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -467,6 +459,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +533,6 @@ CONFIG_AUTOFS4_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -550,6 +545,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +570,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index a08e415cef2aff262fdaed21c5a8fd1c6f1cca14..a0e5edb30c9c4244ded94405a20fd83d4800598c 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_MACH_DECSTATION=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -118,7 +118,6 @@ CONFIG_CPU_HAS_WB=y
 #
 CONFIG_TC=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -156,7 +155,6 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -187,6 +185,12 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -205,10 +209,9 @@ CONFIG_SCSI_DECNCR=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -216,10 +219,6 @@ CONFIG_SCSI_DECNCR=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -243,7 +242,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -258,7 +256,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -315,6 +312,7 @@ CONFIG_DECLANCE=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -335,11 +333,13 @@ CONFIG_DECLANCE=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -403,12 +403,8 @@ CONFIG_SERIAL_DZ_CONSOLE=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -420,7 +416,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -440,6 +435,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -513,7 +512,6 @@ CONFIG_FS_POSIX_ACL=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -526,6 +524,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
index 3e9f7e82a4177ddd3579def7facaf4b0f9c864f1..4b0c15d01f31d98ae58dec4990db63b5eef3fc9e 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_CASIO_E55=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -122,8 +122,8 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
+CONFIG_ISA=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -153,15 +153,16 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Plug and Play support
 #
+# CONFIG_PNP is not set
 
 #
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -186,6 +187,7 @@ CONFIG_IDE_TASKFILE_IO=y
 # IDE chipset support/bugfixes
 #
 CONFIG_IDE_GENERIC=y
+# CONFIG_IDE_CHIPSETS is not set
 # CONFIG_BLK_DEV_IDEDMA is not set
 # CONFIG_IDEDMA_AUTO is not set
 # CONFIG_BLK_DEV_HD is not set
@@ -195,6 +197,11 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_SCSI is not set
 
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
 #
 # Multi-device support (RAID and LVM)
 #
@@ -205,7 +212,7 @@ CONFIG_IDE_GENERIC=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -213,10 +220,6 @@ CONFIG_IDE_GENERIC=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -238,7 +241,6 @@ CONFIG_IP_MULTICAST=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -253,7 +255,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -278,6 +279,11 @@ CONFIG_IPV6_SCTP__=y
 #
 # CONFIG_NET_PKTGEN is not set
 CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
 # CONFIG_DUMMY is not set
 # CONFIG_BONDING is not set
 # CONFIG_EQUALIZER is not set
@@ -289,6 +295,16 @@ CONFIG_NETDEVICES=y
 #
 CONFIG_NET_ETHERNET=y
 # CONFIG_MII is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
 
 #
 # Ethernet (1000 Mbit)
@@ -308,7 +324,9 @@ CONFIG_NET_ETHERNET=y
 #
 # Token Ring devices
 #
+# CONFIG_TR is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -329,11 +347,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -398,12 +418,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -421,7 +437,13 @@ CONFIG_WATCHDOG=y
 # Watchdog Device Drivers
 #
 # CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_NVRAM is not set
+
+#
+# ISA-based Watchdog Cards
+#
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_WDT is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -441,6 +463,10 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -510,7 +536,6 @@ CONFIG_AUTOFS4_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -523,6 +548,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -546,7 +572,7 @@ CONFIG_NFSD=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 0bb084e091b3dff3c5016f8df9bd3c5910480efb..5f89bba7b68e345df5301cd6462494be5c2efc8d 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_NEC_EAGLE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -127,12 +127,12 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=y
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_YENTA is not set
 # CONFIG_I82092 is not set
 # CONFIG_TCIC is not set
@@ -243,8 +243,8 @@ CONFIG_MTD_PHYSMAP_BUSWIDTH=4
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -288,9 +288,10 @@ CONFIG_IDE_GENERIC=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -299,10 +300,6 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -327,7 +324,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -342,7 +338,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -428,6 +423,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -461,11 +457,13 @@ CONFIG_PCMCIA_PCNET=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -532,12 +530,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -561,7 +555,6 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_PCIPCWATCHDOG is not set
 # CONFIG_WDTPCI is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -586,6 +579,10 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -656,7 +653,6 @@ CONFIG_AUTOFS4_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -669,6 +665,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -698,7 +695,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -747,7 +744,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index bc1f3d0b770241820c86b86773c38b98cbb33d1c..adea411d032a6d732ed5b065144df0f5c9235efa 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -56,7 +57,6 @@ CONFIG_MIPS_EV64120=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -125,7 +125,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -167,8 +166,8 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -189,9 +188,10 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -200,10 +200,6 @@ CONFIG_TRAD_SIGNALS=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +222,6 @@ CONFIG_IP_PNP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -241,7 +236,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -334,6 +328,7 @@ CONFIG_PPP_ASYNC=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -354,11 +349,13 @@ CONFIG_PPP_ASYNC=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -424,12 +421,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -441,7 +434,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -461,6 +453,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -531,7 +527,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -544,6 +539,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -566,7 +562,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index d371beeabb08a95637243bdf0467627d6ca90e02..6e5626ee2482d3893cc46b52dba5d3ffad053eef 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_MODVERSIONS=y
 CONFIG_MIPS_EV96100=y
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -85,7 +85,6 @@ CONFIG_SWAP_IO_SPACE=y
 CONFIG_MIPS_GT96100=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -110,6 +109,8 @@ CONFIG_CPU_RM7000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_BOARD_SCACHE=y
+CONFIG_RM7000_CPU_SCACHE=y
 CONFIG_CPU_HAS_PREFETCH=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
@@ -124,7 +125,6 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -163,7 +163,6 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -186,7 +185,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -194,10 +193,6 @@ CONFIG_TRAD_SIGNALS=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -220,7 +215,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -235,7 +229,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -292,6 +285,7 @@ CONFIG_MIPS_GT96100ETH=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -312,11 +306,13 @@ CONFIG_MIPS_GT96100ETH=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -381,12 +377,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -398,7 +390,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -418,6 +409,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -487,7 +482,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -500,6 +494,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -522,7 +517,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
diff --git a/arch/mips/configs/hp-lj_defconfig b/arch/mips/configs/hp-lj_defconfig
deleted file mode 100644 (file)
index 9b7e7b7..0000000
+++ /dev/null
@@ -1,649 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-CONFIG_MIPS=y
-# CONFIG_MIPS64 is not set
-# CONFIG_64BIT is not set
-CONFIG_MIPS32=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
-CONFIG_BROKEN_ON_SMP=y
-
-#
-# General setup
-#
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-CONFIG_MODVERSIONS=y
-CONFIG_KMOD=y
-
-#
-# Machine selection
-#
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MIPS_EV64120 is not set
-# CONFIG_MIPS_EV96100 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_LASAT is not set
-CONFIG_HP_LASERJET=y
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_MOMENCO_OCELOT_C is not set
-# CONFIG_MOMENCO_JAGUAR_ATX is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_DDB5074 is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_NEC_OSPREY is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SOC_AU1X00 is not set
-# CONFIG_SIBYTE_SB1xxx_SOC is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_IRQ_CPU=y
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_FB is not set
-
-#
-# CPU selection
-#
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-CONFIG_CPU_R5000=y
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-# CONFIG_64BIT_PHYS_ADDR is not set
-# CONFIG_CPU_ADVANCED is not set
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_LLDSCD=y
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-# CONFIG_PCI is not set
-CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-CONFIG_MTD_DEBUG=y
-CONFIG_MTD_DEBUG_VERBOSE=3
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-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=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-# CONFIG_MTD_CFI_STAA is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_OBSOLETE_CHIPS is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_START=0x10040000
-CONFIG_MTD_PHYSMAP_LEN=0x00fc0000
-CONFIG_MTD_PHYSMAP_BUSWIDTH=4
-# CONFIG_MTD_CSTM_MIPS_IXX is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_SLRAM 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=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-CONFIG_MTD_NAND_IDS=y
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_LBD is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_IDEDISK_STROKE is not set
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_TASKFILE_IO=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_BLK_DEV_HD 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
-#
-
-#
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-
-#
-# Macintosh device drivers
-#
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_NETLINK_DEV=y
-CONFIG_UNIX=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_INET_ECN 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_IPV6 is not set
-# CONFIG_DECNET is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NETFILTER is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-CONFIG_IPV6_SCTP__=y
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_FASTROUTE is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_ETHERTAP is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-# CONFIG_ATMEL is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_SHAPER is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-
-#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
-#
-# CONFIG_IRDA is not set
-
-#
-# Bluetooth support
-#
-# CONFIG_BT is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN_BOOL is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# 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 I/O drivers
-#
-# CONFIG_GAMEPORT is not set
-CONFIG_SOUND_GAMEPORT=y
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_CT82C710 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
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_UNIX98_PTYS is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
-# CONFIG_QIC02_TAPE is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM 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_FTAPE is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# Graphics support
-#
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR 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_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-# 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_FAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-# CONFIG_DEVFS_FS is not set
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=3
-# CONFIG_JFFS2_FS_NAND 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_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-# CONFIG_NFSD is not set
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-# CONFIG_EXPORTFS is not set
-CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_INTERMEZZO_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-# CONFIG_NLS is not set
-
-#
-# Kernel hacking
-#
-CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
-
-#
-# Security options
-#
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Library routines
-#
-CONFIG_CRC32=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
index 678a8c0bed704b5fd2cbcdfe7eb708fa1775eb5a..c2e797233b49dc34d495803f136eeea6a8d1e3a1 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -56,7 +57,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -89,7 +89,6 @@ CONFIG_ARC32=y
 # CONFIG_FB is not set
 CONFIG_ARC_CONSOLE=y
 CONFIG_ARC_PROMLIB=y
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -114,7 +113,8 @@ CONFIG_CPU_R5000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_R5000_CPU_SCACHE=y
+CONFIG_BOARD_SCACHE=y
+CONFIG_IP22_CPU_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -126,9 +126,8 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
-# CONFIG_ISA is not set
+# CONFIG_EISA is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -167,7 +166,6 @@ CONFIG_BINFMT_IRIX=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -199,6 +197,12 @@ CONFIG_BLK_DEV_SR=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -216,10 +220,9 @@ CONFIG_SGIWD93_SCSI=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -227,10 +230,6 @@ CONFIG_SGIWD93_SCSI=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -255,7 +254,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-CONFIG_INET_ECN=y
 # CONFIG_SYN_COOKIES is not set
 CONFIG_INET_AH=m
 CONFIG_INET_ESP=m
@@ -390,7 +388,6 @@ CONFIG_XFRM_USER=m
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=m
 CONFIG_IP_SCTP=m
 # CONFIG_SCTP_DBG_MSG is not set
 # CONFIG_SCTP_DBG_OBJCNT is not set
@@ -425,6 +422,7 @@ CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
 CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_DELAY=m
 CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
@@ -475,6 +473,7 @@ CONFIG_SGISEEQ=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -495,11 +494,13 @@ CONFIG_SGISEEQ=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -539,6 +540,7 @@ CONFIG_SERIO_SERPORT=y
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_INPUT_MOUSE is not set
@@ -565,12 +567,8 @@ CONFIG_HW_CONSOLE=y
 CONFIG_SERIAL_IP22_ZILOG=m
 CONFIG_SERIAL_CORE=m
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -589,7 +587,6 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_SOFT_WATCHDOG is not set
 CONFIG_INDYDOG=m
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 CONFIG_SGI_DS1286=y
@@ -611,6 +608,10 @@ CONFIG_MAX_RAW_DEVS=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -709,7 +710,6 @@ CONFIG_VFAT_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -722,6 +722,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 CONFIG_EFS_FS=m
@@ -748,7 +749,8 @@ CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=m
-# CONFIG_SUNRPC_GSS is not set
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -850,7 +852,9 @@ CONFIG_CRYPTO_SERPENT=y
 CONFIG_CRYPTO_AES=y
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
 # CONFIG_CRYPTO_TEST is not set
 
 #
index 77b279f13e9295bf4d36001d7f05f9123f89e7bb..68619109f0ac3209b960d4736244cde172a1b7d6 100644 (file)
@@ -11,7 +11,6 @@ CONFIG_64BIT=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
 CONFIG_STANDALONE=y
-CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
@@ -20,7 +19,8 @@ CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_HOTPLUG is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -35,7 +35,13 @@ CONFIG_IOSCHED_DEADLINE=y
 #
 # Loadable module support
 #
-# CONFIG_MODULES is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
 
 #
 # Machine selection
@@ -48,7 +54,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -110,7 +115,8 @@ CONFIG_PAGE_SIZE_4KB=y
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 CONFIG_CPU_HAS_SYNC=y
-# CONFIG_SMP is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=64
 # CONFIG_PREEMPT is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_MIPS_INSANE_LARGE is not set
@@ -122,7 +128,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -167,8 +172,8 @@ CONFIG_BINFMT_ELF32=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -198,6 +203,12 @@ CONFIG_CHR_DEV_ST=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
 
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -245,7 +256,7 @@ CONFIG_SCSI_QLA2XXX=y
 # CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -253,10 +264,6 @@ CONFIG_SCSI_QLA2XXX=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -281,7 +288,6 @@ CONFIG_IP_PNP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -296,7 +302,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -314,7 +319,30 @@ CONFIG_IPV6_SCTP__=y
 #
 # QoS and/or fair queueing
 #
-# CONFIG_NET_SCHED is not set
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_DELAY=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
 
 #
 # Network testing
@@ -336,8 +364,10 @@ CONFIG_NETDEVICES=y
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
+CONFIG_MII=y
 CONFIG_SGI_IOC3_ETH=y
+CONFIG_SGI_IOC3_ETH_HW_RX_CSUM=y
+CONFIG_SGI_IOC3_ETH_HW_TX_CSUM=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
 # CONFIG_NET_VENDOR_3COM is not set
@@ -383,6 +413,7 @@ CONFIG_SGI_IOC3_ETH=y
 # CONFIG_TR is not set
 # CONFIG_NET_FC is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -403,11 +434,13 @@ CONFIG_SGI_IOC3_ETH=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -463,12 +496,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -480,7 +509,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 CONFIG_SGI_IP27_RTC=y
@@ -491,7 +519,6 @@ CONFIG_SGI_IP27_RTC=y
 #
 # Ftape, the floppy tape device driver
 #
-# CONFIG_FTAPE is not set
 # CONFIG_AGP is not set
 # CONFIG_DRM is not set
 # CONFIG_RAW_DRIVER is not set
@@ -501,6 +528,10 @@ CONFIG_SGI_IP27_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -572,7 +603,6 @@ CONFIG_AUTOFS_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -585,6 +615,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -608,7 +639,8 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -657,9 +689,29 @@ CONFIG_CMDLINE=""
 #
 # Cryptographic options
 #
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_TEST is not set
 
 #
 # Library routines
 #
 CONFIG_CRC32=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
index 2c1b246aa416d59960cc5fc0d7dba3b30bd3de9d..ad767e800b69cd0233c48e02ba8a67d5c2f8d38b 100644 (file)
@@ -21,6 +21,7 @@ CONFIG_SYSVIPC=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -47,7 +48,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -77,7 +77,6 @@ CONFIG_ARC32=y
 # CONFIG_FB is not set
 CONFIG_ARC_MEMORY=y
 CONFIG_ARC_PROMLIB=y
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -102,7 +101,9 @@ CONFIG_CPU_R5000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_BOARD_SCACHE=y
 CONFIG_R5000_CPU_SCACHE=y
+CONFIG_RM7000_CPU_SCACHE=y
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 CONFIG_CPU_HAS_SYNC=y
@@ -116,7 +117,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -162,8 +162,8 @@ CONFIG_BINFMT_ELF32=y
 CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -194,6 +194,12 @@ CONFIG_SCSI_MULTI_LUN=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
 
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -247,7 +253,7 @@ CONFIG_SCSI_QLA2XXX=y
 # CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -255,10 +261,6 @@ CONFIG_SCSI_QLA2XXX=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -282,7 +284,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -297,7 +298,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -384,6 +384,7 @@ CONFIG_SGI_O2MACE_ETH=y
 # CONFIG_TR is not set
 # CONFIG_NET_FC is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -404,11 +405,13 @@ CONFIG_SGI_O2MACE_ETH=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -475,12 +478,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -492,7 +491,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -512,6 +510,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -582,7 +584,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -595,6 +596,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -618,7 +620,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 79a7ab581bc3a90fd48bf14bbdf7b338240d3f7c..00fe90087846b5b11e3ed9fc464f77ea906ff07f 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 CONFIG_MIPS_ITE8172=y
 # CONFIG_IT8172_REVC is not set
 # CONFIG_MIPS_ATLAS is not set
@@ -121,7 +121,6 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -216,7 +215,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -260,7 +258,7 @@ CONFIG_IDE_GENERIC=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -268,10 +266,6 @@ CONFIG_IDE_GENERIC=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -295,7 +289,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -310,7 +303,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -366,6 +358,7 @@ CONFIG_NET_ETHERNET=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -386,11 +379,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -459,12 +454,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -476,7 +467,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -496,6 +486,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -587,7 +581,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -600,6 +593,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -624,7 +618,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 63c6c168e021a4fe643cda569dc690661fcd8569..906332cacecc3e9b3fa57cca681e9f9ab13f0f93 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 CONFIG_MIPS_IVR=y
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -121,7 +121,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -162,8 +161,8 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -206,9 +205,10 @@ CONFIG_IDE_GENERIC=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -217,10 +217,6 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -244,7 +240,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -259,7 +254,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -345,6 +339,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -365,11 +360,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -437,12 +434,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -454,7 +447,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -473,6 +465,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -543,7 +539,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -556,6 +551,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -578,7 +574,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 2f27a17ed7c0df92d636e171bbe74b08ad9e2e12..ae4e50e97edcd387f49c9b90bdd6363931fd01f1 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -47,7 +48,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MACH_DECSTATION is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -55,6 +55,7 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
 CONFIG_MOMENCO_JAGUAR_ATX=y
+CONFIG_JAGUAR_DMALOW=y
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
@@ -66,14 +67,15 @@ CONFIG_MOMENCO_JAGUAR_ATX=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 CONFIG_HAVE_DEC_LOCK=y
 CONFIG_DMA_NONCOHERENT=y
+CONFIG_LIMITED_DMA=y
 # CONFIG_CPU_LITTLE_ENDIAN is not set
+CONFIG_IRQ_CPU=y
 CONFIG_IRQ_CPU_RM7K=y
 CONFIG_MIPS_MV64340=y
 CONFIG_SWAP_IO_SPACE=y
 CONFIG_BOOT_ELF32=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -98,12 +100,15 @@ CONFIG_CPU_RM9000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_BOARD_SCACHE=y
+CONFIG_RM7000_CPU_SCACHE=y
 CONFIG_CPU_HAS_PREFETCH=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 CONFIG_CPU_HAS_SYNC=y
+CONFIG_HIGHMEM=y
 # CONFIG_SMP is not set
 # CONFIG_PREEMPT is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
@@ -115,7 +120,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -156,8 +160,8 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_DAC960 is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -178,15 +182,17 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# I2O device support
+# IEEE 1394 (FireWire) support
 #
-# CONFIG_I2O is not set
+# CONFIG_IEEE1394 is not set
 
 #
-# Macintosh device drivers
+# I2O device support
 #
+# CONFIG_I2O is not set
 
 #
 # Networking support
@@ -209,7 +215,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_IP_PNP_RARP is not set
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -287,8 +292,8 @@ CONFIG_EEPRO100=y
 # CONFIG_TIGON3 is not set
 CONFIG_MV64340_ETH=y
 CONFIG_MV64340_ETH_0=y
-# CONFIG_MV64340_ETH_1 is not set
-# CONFIG_MV64340_ETH_2 is not set
+CONFIG_MV64340_ETH_1=y
+CONFIG_MV64340_ETH_2=y
 
 #
 # Ethernet (10000 Mbit)
@@ -327,11 +332,13 @@ CONFIG_MV64340_ETH_0=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -352,11 +359,8 @@ CONFIG_MV64340_ETH_0=y
 #
 # CONFIG_GAMEPORT is not set
 CONFIG_SOUND_GAMEPORT=y
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PCIPS2 is not set
+# CONFIG_SERIO is not set
+# CONFIG_SERIO_I8042 is not set
 
 #
 # Input Device Drivers
@@ -371,18 +375,19 @@ CONFIG_SERIO_SERPORT=y
 #
 # Serial drivers
 #
-# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
 
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -394,7 +399,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -414,6 +418,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -475,7 +483,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
-CONFIG_DEVPTS_FS=y
 # CONFIG_DEVPTS_FS_XATTR is not set
 # CONFIG_TMPFS is not set
 # CONFIG_HUGETLB_PAGE is not set
@@ -484,6 +491,7 @@ CONFIG_RAMFS=y
 #
 # Miscellaneous filesystems
 #
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_HPFS_FS is not set
index fcc4ab8ebd8869f1cda667f60261d90a8e1b1d3c..1a31fff82fbe9dccac8449c5c9d4df5198263c08 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_TOSHIBA_JMR3927=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -116,7 +116,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -158,8 +157,8 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -180,9 +179,10 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -191,10 +191,6 @@ CONFIG_TRAD_SIGNALS=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -218,7 +214,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -233,7 +228,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -319,6 +313,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -339,11 +334,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -423,11 +420,8 @@ CONFIG_TXX927_SERIAL_CONSOLE=y
 # Non-8250 serial port support
 #
 # CONFIG_UNIX98_PTYS is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -439,7 +433,6 @@ CONFIG_TXX927_SERIAL_CONSOLE=y
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -459,6 +452,10 @@ CONFIG_TXX927_SERIAL_CONSOLE=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -472,6 +469,7 @@ CONFIG_TXX927_SERIAL_CONSOLE=y
 #
 # Graphics support
 #
+# CONFIG_FB_PM2 is not set
 # CONFIG_FB_CYBER2000 is not set
 # CONFIG_FB_IMSTT is not set
 # CONFIG_FB_RIVA is not set
@@ -560,6 +558,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -582,7 +581,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 24a0e49b7c36d2eaeab6dd834a0354ce06e01aac..55171546c18e506d3098c9cb6fb56148ec0a728a 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -59,7 +60,6 @@ CONFIG_PICVUE=y
 CONFIG_PICVUE_PROC=y
 CONFIG_DS1603=y
 CONFIG_LASAT_SYSCTL=y
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -87,7 +87,6 @@ CONFIG_CPU_LITTLE_ENDIAN=y
 CONFIG_MIPS_GT64120=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -112,6 +111,7 @@ CONFIG_CPU_R5000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_BOARD_SCACHE=y
 CONFIG_R5000_CPU_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
@@ -128,7 +128,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 # CONFIG_PCI_NAMES is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -225,8 +224,8 @@ CONFIG_MTD_LASAT=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -299,9 +298,10 @@ CONFIG_IDEDMA_AUTO=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -310,10 +310,6 @@ CONFIG_IDEDMA_AUTO=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -333,7 +329,6 @@ CONFIG_INET=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -348,7 +343,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -433,6 +427,7 @@ CONFIG_NET_ETHERNET=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -453,11 +448,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -523,12 +520,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -540,7 +533,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -560,6 +552,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -635,7 +631,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -648,6 +643,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -672,7 +668,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 1870c2d2c3cf3f08da63b12d8cda99de84397ca1..577096e7406fd4afc47ff70d224a770c55e34152 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 CONFIG_MIPS_MALTA=y
@@ -130,7 +130,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -171,6 +170,7 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 # CONFIG_BLK_DEV_INITRD is not set
@@ -194,9 +194,10 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -205,10 +206,6 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -231,7 +228,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -246,7 +242,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -351,6 +346,7 @@ CONFIG_PCNET32=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -371,11 +367,13 @@ CONFIG_PCNET32=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -441,12 +439,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -458,7 +452,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -477,6 +470,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -547,7 +544,6 @@ CONFIG_AUTOFS_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -560,6 +556,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 CONFIG_EFS_FS=y
@@ -586,7 +583,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 626aee333cb6f20a14be620c6e437ab694243cb0..63b54f9957b440c1703fab348954e1c119b7ccf7 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,12 +117,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 
 #
@@ -167,7 +167,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -190,7 +189,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -198,10 +197,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +221,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -257,7 +251,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -320,6 +313,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -353,11 +347,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -417,12 +413,8 @@ CONFIG_HW_CONSOLE=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -434,7 +426,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -458,6 +449,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +532,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -550,6 +544,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +569,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -662,7 +657,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index 27972ca132cf3e695a076b41120796571e1d2f38..382c271da0cdd4cf4bc173d747be3c41641b1c45 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_VICTOR_MPC30X=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -125,7 +125,6 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -163,7 +162,6 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -186,7 +184,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -194,10 +192,6 @@ CONFIG_TRAD_SIGNALS=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -222,7 +216,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -237,7 +230,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -293,6 +285,7 @@ CONFIG_NET_ETHERNET=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -313,11 +306,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -382,12 +377,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -399,7 +390,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -419,6 +409,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -488,7 +482,6 @@ CONFIG_AUTOFS4_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -501,6 +494,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -523,7 +517,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -572,7 +566,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index 626aee333cb6f20a14be620c6e437ab694243cb0..63b54f9957b440c1703fab348954e1c119b7ccf7 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,12 +117,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 
 #
@@ -167,7 +167,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -190,7 +189,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -198,10 +197,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +221,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -257,7 +251,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -320,6 +313,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -353,11 +347,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -417,12 +413,8 @@ CONFIG_HW_CONSOLE=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -434,7 +426,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -458,6 +449,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +532,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -550,6 +544,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +569,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -662,7 +657,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
new file mode 100644 (file)
index 0000000..9b6587f
--- /dev/null
@@ -0,0 +1,554 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS64=y
+CONFIG_64BIT=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_STANDALONE=y
+CONFIG_BROKEN_ON_SMP=y
+
+#
+# General setup
+#
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+
+#
+# Loadable module support
+#
+# CONFIG_MODULES is not set
+
+#
+# Machine selection
+#
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+CONFIG_MOMENCO_OCELOT_C=y
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+# CONFIG_CPU_LITTLE_ENDIAN is not set
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_MV64340=y
+CONFIG_SWAP_IO_SPACE=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+# CONFIG_FB is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+CONFIG_CPU_RM7000=y
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_BOARD_SCACHE=y
+CONFIG_RM7000_CPU_SCACHE=y
+CONFIG_CPU_HAS_PREFETCH=y
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_LLDSCD=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_PREEMPT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+# CONFIG_PCI is not set
+CONFIG_MMU=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_MIPS32_COMPAT=y
+CONFIG_COMPAT=y
+CONFIG_MIPS32_O32=y
+CONFIG_MIPS32_N32=y
+CONFIG_BINFMT_ELF32=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+
+#
+# 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
+#
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+CONFIG_NETLINK_DEV=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD 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_IPV6 is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NETFILTER is not set
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_MII is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_MV64340_ETH=y
+CONFIG_MV64340_ETH_0=y
+# CONFIG_MV64340_ETH_1 is not set
+# CONFIG_MV64340_ETH_2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# 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 I/O drivers
+#
+# CONFIG_GAMEPORT is not set
+CONFIG_SOUND_GAMEPORT=y
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_CT82C710 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
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_QIC02_TAPE 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_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR 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_XFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+# 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_FAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+# CONFIG_DEVFS_FS is not set
+CONFIG_DEVPTS_FS_XATTR=y
+CONFIG_DEVPTS_FS_SECURITY=y
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_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 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=y
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_EXPORTFS=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+# CONFIG_NLS is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE=""
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Security options
+#
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC32 is not set
index 18a7c90cd065c173d9722deb9f8f6cdaf3198963..cf51c39987f92593677052d6278bb3c24f740b4c 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -83,7 +83,6 @@ CONFIG_SWAP_IO_SPACE=y
 CONFIG_SYSCLK_100=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -108,6 +107,8 @@ CONFIG_CPU_RM7000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_BOARD_SCACHE=y
+CONFIG_RM7000_CPU_SCACHE=y
 CONFIG_CPU_HAS_PREFETCH=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
@@ -122,7 +123,6 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -161,7 +161,6 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -184,7 +183,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -192,10 +191,6 @@ CONFIG_TRAD_SIGNALS=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -218,7 +213,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -233,7 +227,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -289,6 +282,7 @@ CONFIG_NET_ETHERNET=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -309,11 +303,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -378,12 +374,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -395,7 +387,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -415,6 +406,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -484,7 +479,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -497,6 +491,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -521,7 +516,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 43e4828b437a94465678ab048cbaf3508d6a4b12..91d09df5489d76bff396eaa6cdebef2ab4bee29e 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,7 +117,6 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -155,7 +154,6 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -178,7 +176,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -186,10 +184,6 @@ CONFIG_TRAD_SIGNALS=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -213,7 +207,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -228,7 +221,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -284,6 +276,7 @@ CONFIG_NET_ETHERNET=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -304,11 +297,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -373,12 +368,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -390,7 +381,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -410,6 +400,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -479,7 +473,6 @@ CONFIG_EXT2_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -492,6 +485,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -516,7 +510,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 626aee333cb6f20a14be620c6e437ab694243cb0..63b54f9957b440c1703fab348954e1c119b7ccf7 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,12 +117,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 
 #
@@ -167,7 +167,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -190,7 +189,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -198,10 +197,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +221,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -257,7 +251,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -320,6 +313,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -353,11 +347,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -417,12 +413,8 @@ CONFIG_HW_CONSOLE=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -434,7 +426,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -458,6 +449,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +532,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -550,6 +544,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +569,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -662,7 +657,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index 626aee333cb6f20a14be620c6e437ab694243cb0..63b54f9957b440c1703fab348954e1c119b7ccf7 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,12 +117,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 
 #
@@ -167,7 +167,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -190,7 +189,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -198,10 +197,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +221,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -257,7 +251,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -320,6 +313,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -353,11 +347,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -417,12 +413,8 @@ CONFIG_HW_CONSOLE=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -434,7 +426,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -458,6 +449,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +532,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -550,6 +544,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +569,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -662,7 +657,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index b0de946cf71df18f00684d507900b750a102f4f9..11a13305118f81652166037d9ebb15b194ba9699 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -75,12 +75,15 @@ CONFIG_SOC_AU1X00=y
 # CONFIG_SOC_AU1000 is not set
 # CONFIG_SOC_AU1100 is not set
 CONFIG_SOC_AU1500=y
+# CONFIG_SOC_AU1550 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 CONFIG_MIPS_PB1500=y
+# CONFIG_MIPS_PB1550 is not set
 # CONFIG_MIPS_DB1000 is not set
 # CONFIG_MIPS_DB1100 is not set
 # CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
 # CONFIG_MIPS_BOSPORUS is not set
 # CONFIG_MIPS_MIRAGE is not set
 # CONFIG_MIPS_XXS1500 is not set
@@ -135,12 +138,12 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_YENTA is not set
 # CONFIG_I82092 is not set
 # CONFIG_TCIC is not set
@@ -192,8 +195,8 @@ CONFIG_TRAD_SIGNALS=y
 CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -266,9 +269,10 @@ CONFIG_BLK_DEV_IDEDMA=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -277,10 +281,6 @@ CONFIG_BLK_DEV_IDEDMA=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -305,7 +305,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -336,7 +335,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -430,6 +428,7 @@ CONFIG_PPPOE=m
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -463,11 +462,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -532,12 +533,8 @@ CONFIG_SERIAL_AU1X00_CONSOLE=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -549,7 +546,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -574,6 +570,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -647,7 +647,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -660,6 +659,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -684,7 +684,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -772,7 +772,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
new file mode 100644 (file)
index 0000000..4d6eed1
--- /dev/null
@@ -0,0 +1,784 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+# CONFIG_MIPS64 is not set
+# CONFIG_64BIT is not set
+CONFIG_MIPS32=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_STANDALONE=y
+CONFIG_BROKEN_ON_SMP=y
+
+#
+# General setup
+#
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP32 is not set
+CONFIG_SOC_AU1X00=y
+# CONFIG_SOC_AU1000 is not set
+# CONFIG_SOC_AU1100 is not set
+# CONFIG_SOC_AU1500 is not set
+CONFIG_SOC_AU1550=y
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+CONFIG_MIPS_PB1550=y
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
+# CONFIG_MIPS_BOSPORUS is not set
+# CONFIG_MIPS_MIRAGE is not set
+# CONFIG_MIPS_XXS1500 is not set
+# CONFIG_MIPS_MTX1 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TOSHIBA_RBTX4927 is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+# CONFIG_FB is not set
+
+#
+# CPU selection
+#
+CONFIG_CPU_MIPS32=y
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_VTAG_ICACHE is not set
+CONFIG_64BIT_PHYS_ADDR=y
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_PREEMPT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+CONFIG_MMU=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_YENTA is not set
+# CONFIG_I82092 is not set
+# CONFIG_TCIC is not set
+CONFIG_PCMCIA_AU1X00=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+# CONFIG_FW_LOADER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# 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_UMEM is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_LBD is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+# CONFIG_IDE_TASKFILE_IO is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+# CONFIG_IDEDMA_PCI_AUTO is not set
+CONFIG_BLK_DEV_ADMA=y
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+CONFIG_BLK_DEV_HPT366=y
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD 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
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_NETLINK_DEV=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD 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
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_CONNTRACK is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_MII is not set
+CONFIG_MIPS_AU1X00_ENET=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_PCI 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_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=m
+# CONFIG_PPP_BSDCOMP is not set
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+# CONFIG_PCMCIA_3C574 is not set
+# CONFIG_PCMCIA_FMVJ18X is not set
+# CONFIG_PCMCIA_PCNET is not set
+# CONFIG_PCMCIA_NMCLAN is not set
+# CONFIG_PCMCIA_SMC91C92 is not set
+# CONFIG_PCMCIA_XIRC2PS is not set
+# CONFIG_PCMCIA_AXNET is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input I/O drivers
+#
+# CONFIG_GAMEPORT is not set
+CONFIG_SOUND_GAMEPORT=y
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 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
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_AU1X00=y
+CONFIG_SERIAL_AU1X00_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_QIC02_TAPE 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_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+# CONFIG_EXT2_FS_SECURITY is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_FAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+# CONFIG_DEVFS_FS is not set
+CONFIG_DEVPTS_FS_XATTR=y
+CONFIG_DEVPTS_FS_SECURITY=y
+CONFIG_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=m
+# 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 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=m
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE=""
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Security options
+#
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=y
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+CONFIG_CRYPTO_SHA512=y
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+CONFIG_CRYPTO_TWOFISH=y
+# CONFIG_CRYPTO_SERPENT is not set
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+CONFIG_CRC32=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
index 37b62c4bcf564caacf66352e4b67f4f3f0ec3b83..00fa01d80d1fada3703842d66375aaa1841b8132 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -56,7 +57,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -87,6 +87,7 @@ CONFIG_BOOT_ELF32=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 CONFIG_ARC32=y
 # CONFIG_FB is not set
+CONFIG_HAVE_STD_PC_SERIAL_PORT=y
 CONFIG_ARC_CONSOLE=y
 CONFIG_ARC_MEMORY=y
 CONFIG_ARC_PROMLIB=y
@@ -131,7 +132,6 @@ CONFIG_PCI_LEGACY_PROC=y
 CONFIG_ISA=y
 # CONFIG_EISA is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -213,9 +213,9 @@ CONFIG_PARIDE_ON26=m
 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_CRYPTOLOOP=m
 CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_CARMEL is not set
 CONFIG_BLK_DEV_RAM=m
 CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -247,6 +247,12 @@ CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -323,6 +329,7 @@ CONFIG_MD_RAID5=m
 # CONFIG_MD_RAID6 is not set
 CONFIG_MD_MULTIPATH=m
 CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_CRYPT is not set
 
 #
 # Fusion MPT device support
@@ -330,7 +337,7 @@ CONFIG_BLK_DEV_DM=m
 # CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -339,10 +346,6 @@ CONFIG_BLK_DEV_DM=m
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -367,7 +370,6 @@ CONFIG_IP_MROUTE=y
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 # CONFIG_ARPD is not set
-CONFIG_INET_ECN=y
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -505,7 +507,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=m
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -535,6 +536,7 @@ CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
 CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_DELAY=m
 CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
@@ -657,6 +659,7 @@ CONFIG_PLIP=m
 # CONFIG_NET_FC is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -666,7 +669,29 @@ CONFIG_PLIP=m
 #
 # Amateur Radio support
 #
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+# CONFIG_MKISS is not set
+# CONFIG_6PACK is not set
+CONFIG_BPQETHER=m
+# CONFIG_DMASCC is not set
+# CONFIG_SCC is not set
+# CONFIG_BAYCOM_SER_FDX is not set
+# CONFIG_BAYCOM_SER_HDX is not set
+# CONFIG_BAYCOM_PAR is not set
+# CONFIG_BAYCOM_EPP is not set
+# CONFIG_YAM is not set
 
 #
 # IrDA (infrared) support
@@ -677,11 +702,13 @@ CONFIG_PLIP=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -723,6 +750,7 @@ CONFIG_SERIO_PARKBD=m
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
 CONFIG_INPUT_MOUSE=y
@@ -731,6 +759,7 @@ CONFIG_MOUSE_PS2=y
 # CONFIG_MOUSE_INPORT is not set
 # CONFIG_MOUSE_LOGIBM is not set
 # CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 # CONFIG_INPUT_MISC is not set
@@ -760,16 +789,12 @@ CONFIG_SERIAL_8250_RSA=y
 #
 CONFIG_SERIAL_CORE=m
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
 CONFIG_TIPAR=m
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -781,7 +806,6 @@ CONFIG_TIPAR=m
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=m
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -801,6 +825,10 @@ CONFIG_RTC=m
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -844,6 +872,7 @@ CONFIG_USB_DEVICEFS=y
 # USB Host Controller Drivers
 #
 CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
 CONFIG_USB_OHCI_HCD=m
 CONFIG_USB_UHCI_HCD=m
 
@@ -883,7 +912,9 @@ CONFIG_USB_AIPTEK=m
 CONFIG_USB_WACOM=m
 CONFIG_USB_KBTAB=m
 CONFIG_USB_POWERMATE=m
+# CONFIG_USB_MTOUCH is not set
 CONFIG_USB_XPAD=m
+# CONFIG_USB_ATI_REMOTE is not set
 
 #
 # USB Imaging devices
@@ -913,6 +944,7 @@ CONFIG_USB_USBNET=m
 #
 # USB Host-to-Host Cables
 #
+CONFIG_USB_ALI_M5632=y
 CONFIG_USB_AN2720=y
 CONFIG_USB_BELKIN=y
 CONFIG_USB_GENESYS=y
@@ -999,6 +1031,7 @@ CONFIG_USB_NET2280=m
 # CONFIG_USB_GADGET_PXA2XX is not set
 # CONFIG_USB_GADGET_GOKU is not set
 # CONFIG_USB_GADGET_SA1100 is not set
+CONFIG_USB_GADGET_DUALSPEED=y
 CONFIG_USB_ZERO=m
 CONFIG_USB_ETH=m
 CONFIG_USB_GADGETFS=m
@@ -1061,7 +1094,6 @@ CONFIG_NTFS_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -1075,6 +1107,7 @@ CONFIG_ADFS_FS=m
 # CONFIG_ADFS_FS_RW is not set
 CONFIG_AFFS_FS=m
 CONFIG_HFS_FS=m
+# CONFIG_HFSPLUS_FS is not set
 CONFIG_BEFS_FS=m
 # CONFIG_BEFS_DEBUG is not set
 CONFIG_BFS_FS=m
@@ -1217,7 +1250,9 @@ CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_TEST=m
 
 #
index 160c1116214b8a687013366a94b4f9abe4632171..dca18e189bad5266d9d4f8d8218bf458cc97cae1 100644 (file)
@@ -21,6 +21,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -40,6 +41,7 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
 CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
 
 #
 # Machine selection
@@ -54,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -154,7 +155,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -201,6 +201,7 @@ CONFIG_TRAD_SIGNALS=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_CARMEL is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=9220
 CONFIG_BLK_DEV_INITRD=y
@@ -224,9 +225,10 @@ CONFIG_BLK_DEV_INITRD=y
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -235,10 +237,6 @@ CONFIG_BLK_DEV_INITRD=y
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -262,7 +260,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -277,7 +274,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -317,7 +313,7 @@ CONFIG_NETDEVICES=y
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
+CONFIG_MII=y
 CONFIG_NET_SB1250_MAC=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
@@ -364,6 +360,7 @@ CONFIG_NET_SB1250_MAC=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -384,11 +381,13 @@ CONFIG_NET_SB1250_MAC=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -410,7 +409,7 @@ CONFIG_NET_SB1250_MAC=y
 # CONFIG_GAMEPORT is not set
 CONFIG_SOUND_GAMEPORT=y
 CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
+# CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
@@ -440,12 +439,9 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
 #
 # Non-8250 serial port support
 #
-# CONFIG_UNIX98_PTYS is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -457,7 +453,6 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -476,6 +471,10 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -543,6 +542,7 @@ CONFIG_FS_POSIX_ACL=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
 # CONFIG_TMPFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
@@ -553,6 +553,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -576,7 +577,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -601,6 +602,7 @@ CONFIG_MSDOS_PARTITION=y
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
 # CONFIG_DEBUG_KERNEL is not set
+# CONFIG_SB1XXX_CORELIS is not set
 
 #
 # Security options
@@ -625,12 +627,14 @@ CONFIG_CRYPTO_SERPENT=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
 # Library routines
 #
-# CONFIG_CRC32 is not set
+CONFIG_CRC32=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
index d31f3189d7a67e035017a2311c902559fc059f18..d6de04f90ec3fa83166f4c25f7e23525a3f48d46 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SWAP=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -50,7 +51,6 @@ CONFIG_IOSCHED_DEADLINE=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -115,7 +115,6 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -183,7 +182,7 @@ CONFIG_BLK_DEV_INITRD=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -191,10 +190,6 @@ CONFIG_BLK_DEV_INITRD=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -204,6 +199,8 @@ CONFIG_BLK_DEV_INITRD=y
 # Amateur Radio support
 #
 # CONFIG_HAMRADIO is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
@@ -272,11 +269,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_UNIX98_PTYS is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -288,7 +282,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -308,6 +301,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -390,6 +387,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
index a2b34f8d0ee82fe98968b917ad0dcb3798e619e8..ce327a8c0bf5c8b3f110d6abe1c1a3f4d64be7d3 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_TANBAC_TB0226=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -124,7 +124,6 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # CONFIG_PCI is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -164,7 +163,6 @@ CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_RAM=m
 CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -218,6 +216,12 @@ CONFIG_SCSI_MULTI_LUN=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -234,10 +238,9 @@ CONFIG_SCSI_CONSTANTS=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -245,10 +248,6 @@ CONFIG_SCSI_CONSTANTS=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -278,7 +277,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 CONFIG_SYN_COOKIES=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -291,7 +289,6 @@ CONFIG_SYN_COOKIES=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -354,6 +351,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -374,11 +372,13 @@ CONFIG_PPPOE=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -443,12 +443,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -460,7 +456,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -480,6 +475,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -571,7 +570,6 @@ CONFIG_VFAT_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -584,6 +582,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -610,7 +609,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 CONFIG_SMB_NLS_DEFAULT=y
 CONFIG_SMB_NLS_REMOTE="cp932"
index 3a8046a18d45163328fb06da45eaa7f6463efb05..21d4f52efe58f50d5c92a4f609abb7f583f1c55e 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_TANBAC_TB0229=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -127,7 +127,6 @@ CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -169,6 +168,7 @@ CONFIG_TRAD_SIGNALS=y
 CONFIG_BLK_DEV_LOOP=m
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_CARMEL is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 # CONFIG_BLK_DEV_INITRD is not set
@@ -192,9 +192,10 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
 #
 # Fusion MPT device support
 #
+# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -203,10 +204,6 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
 #
 # CONFIG_I2O is not set
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -237,7 +234,6 @@ CONFIG_NET_IPGRE=m
 # CONFIG_NET_IPGRE_BROADCAST is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 CONFIG_SYN_COOKIES=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -252,7 +248,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -348,6 +343,7 @@ CONFIG_SLIP_MODE_SLIP6=y
 # CONFIG_TR is not set
 # CONFIG_RCPCI is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -368,11 +364,13 @@ CONFIG_SLIP_MODE_SLIP6=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -438,12 +436,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -455,7 +449,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -475,6 +468,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -563,7 +560,6 @@ CONFIG_VFAT_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -576,6 +572,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -602,7 +599,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 CONFIG_SMB_NLS_DEFAULT=y
 CONFIG_SMB_NLS_REMOTE="cp932"
index 6c55146cb69c1ca045f29fab7de494eeed8bc9b3..1113fb0bd0539801b9e7dd39bc7760d25c3d9f09 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -62,7 +63,6 @@ CONFIG_IBM_WORKPAD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -122,8 +122,8 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
+CONFIG_ISA=y
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -153,15 +153,16 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Plug and Play support
 #
+# CONFIG_PNP is not set
 
 #
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -186,6 +187,7 @@ CONFIG_IDE_TASKFILE_IO=y
 # IDE chipset support/bugfixes
 #
 CONFIG_IDE_GENERIC=y
+# CONFIG_IDE_CHIPSETS is not set
 # CONFIG_BLK_DEV_IDEDMA is not set
 # CONFIG_IDEDMA_AUTO is not set
 # CONFIG_BLK_DEV_HD is not set
@@ -195,6 +197,11 @@ CONFIG_IDE_GENERIC=y
 #
 # CONFIG_SCSI is not set
 
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
 #
 # Multi-device support (RAID and LVM)
 #
@@ -205,7 +212,7 @@ CONFIG_IDE_GENERIC=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -213,10 +220,6 @@ CONFIG_IDE_GENERIC=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -238,7 +241,6 @@ CONFIG_IP_MULTICAST=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -253,7 +255,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -278,6 +279,11 @@ CONFIG_IPV6_SCTP__=y
 #
 # CONFIG_NET_PKTGEN is not set
 CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
 # CONFIG_DUMMY is not set
 # CONFIG_BONDING is not set
 # CONFIG_EQUALIZER is not set
@@ -289,6 +295,16 @@ CONFIG_NETDEVICES=y
 #
 CONFIG_NET_ETHERNET=y
 # CONFIG_MII is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
 
 #
 # Ethernet (1000 Mbit)
@@ -308,7 +324,9 @@ CONFIG_NET_ETHERNET=y
 #
 # Token Ring devices
 #
+# CONFIG_TR is not set
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -329,11 +347,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -398,12 +418,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -421,7 +437,13 @@ CONFIG_WATCHDOG=y
 # Watchdog Device Drivers
 #
 # CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_NVRAM is not set
+
+#
+# ISA-based Watchdog Cards
+#
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_WDT is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -441,6 +463,10 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -514,7 +540,6 @@ CONFIG_AUTOFS4_FS=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -527,6 +552,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -550,7 +576,7 @@ CONFIG_NFSD=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index 626aee333cb6f20a14be620c6e437ab694243cb0..63b54f9957b440c1703fab348954e1c119b7ccf7 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
@@ -55,7 +56,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -117,12 +117,12 @@ CONFIG_CPU_HAS_SYNC=y
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-CONFIG_HOTPLUG=y
 
 #
 # PCMCIA/CardBus support
 #
 CONFIG_PCMCIA=m
+# CONFIG_PCMCIA_DEBUG is not set
 # CONFIG_TCIC is not set
 
 #
@@ -167,7 +167,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -190,7 +189,7 @@ CONFIG_BLK_DEV_LOOP=y
 #
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -198,10 +197,6 @@ CONFIG_BLK_DEV_LOOP=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -226,7 +221,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -257,7 +251,6 @@ CONFIG_XFRM=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -320,6 +313,7 @@ CONFIG_PPPOE=m
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -353,11 +347,13 @@ CONFIG_PCMCIA_3C589=m
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -417,12 +413,8 @@ CONFIG_HW_CONSOLE=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -434,7 +426,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
@@ -458,6 +449,10 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -537,7 +532,6 @@ CONFIG_AUTOFS4_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
@@ -550,6 +544,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -574,7 +569,7 @@ CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -662,7 +657,9 @@ CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_AES=y
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_ARC4 is not set
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_TEST is not set
 
 #
index f4346b518bda45eb6a987f38fd0fe27c74039c55..33631948e7a5f44af1ed0f92f970d795356ac7cd 100644 (file)
@@ -21,6 +21,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_HOTPLUG is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -41,6 +42,7 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
 CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
 
 #
 # Machine selection
@@ -55,7 +57,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -80,7 +81,6 @@ CONFIG_HAVE_DEC_LOCK=y
 # CONFIG_CPU_LITTLE_ENDIAN is not set
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -111,6 +111,7 @@ CONFIG_CPU_HAS_PREFETCH=y
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 CONFIG_CPU_HAS_SYNC=y
+# CONFIG_HIGHMEM is not set
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
 # CONFIG_PREEMPT is not set
@@ -120,7 +121,6 @@ CONFIG_NR_CPUS=2
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -160,7 +160,6 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 CONFIG_LBD=y
 
 #
@@ -192,6 +191,12 @@ CONFIG_SCSI_REPORT_LUNS=y
 # CONFIG_SCSI_CONSTANTS is not set
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -208,10 +213,9 @@ CONFIG_SCSI_REPORT_LUNS=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -219,10 +223,6 @@ CONFIG_SCSI_REPORT_LUNS=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -246,7 +246,6 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
 # CONFIG_SYN_COOKIES is not set
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
@@ -259,7 +258,6 @@ CONFIG_IP_PNP_DHCP=y
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=y
 # CONFIG_IP_SCTP is not set
 # CONFIG_ATM is not set
 # CONFIG_VLAN_8021Q is not set
@@ -314,6 +312,7 @@ CONFIG_NET_ETHERNET=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -334,11 +333,13 @@ CONFIG_NET_ETHERNET=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -388,12 +389,8 @@ CONFIG_SERIAL_NONSTANDARD=y
 # Non-8250 serial port support
 #
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -405,7 +402,6 @@ CONFIG_UNIX98_PTY_COUNT=256
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
@@ -424,6 +420,10 @@ CONFIG_UNIX98_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -490,7 +490,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 # CONFIG_DEVPTS_FS_XATTR is not set
 CONFIG_TMPFS=y
 # CONFIG_HUGETLB_PAGE is not set
@@ -502,6 +501,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
@@ -525,7 +525,7 @@ CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_GSS is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
index b74bc8ae178537ab00ecf54967e135ea36ef755d..737e6e67ab1f44cbad5c1a5eb4cb38233dc07621 100644 (file)
 
 void (*irq_setup)(void);
 
+#ifdef CONFIG_KGDB
+static int kgdb_flag = 1;
+static int __init nokgdb(char *str)
+{
+       kgdb_flag = 0;
+       return 1;
+}
+__setup("nokgdb", nokgdb);
+#endif
+
 void __init init_IRQ(void)
 {
 #ifdef CONFIG_KGDB
        extern void breakpoint(void);
        extern void set_debug_traps(void);
 
-       printk("Wait for gdb client connection ...\n");
-       set_debug_traps();
-       breakpoint();
+       if (kgdb_flag) {
+               printk("Wait for gdb client connection ...\n");
+               set_debug_traps();
+               breakpoint();
+       }
 #endif
        /* set up default irq controller */
        init_generic_irq();
index 678a8c0bed704b5fd2cbcdfe7eb708fa1775eb5a..c2e797233b49dc34d495803f136eeea6a8d1e3a1 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -56,7 +57,6 @@ CONFIG_KMOD=y
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MALTA is not set
@@ -89,7 +89,6 @@ CONFIG_ARC32=y
 # CONFIG_FB is not set
 CONFIG_ARC_CONSOLE=y
 CONFIG_ARC_PROMLIB=y
-CONFIG_BOARD_SCACHE=y
 
 #
 # CPU selection
@@ -114,7 +113,8 @@ CONFIG_CPU_R5000=y
 CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_PAGE_SIZE_16KB is not set
 # CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_R5000_CPU_SCACHE=y
+CONFIG_BOARD_SCACHE=y
+CONFIG_IP22_CPU_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -126,9 +126,8 @@ CONFIG_CPU_HAS_SYNC=y
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
-# CONFIG_ISA is not set
+# CONFIG_EISA is not set
 CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
 
 #
 # Executable file formats
@@ -167,7 +166,6 @@ CONFIG_BINFMT_IRIX=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_LBD is not set
 
 #
@@ -199,6 +197,12 @@ CONFIG_BLK_DEV_SR=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOGGING is not set
 
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+# CONFIG_SCSI_FC_ATTRS is not set
+
 #
 # SCSI low-level drivers
 #
@@ -216,10 +220,9 @@ CONFIG_SGIWD93_SCSI=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
 
 #
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+# IEEE 1394 (FireWire) support
 #
 # CONFIG_IEEE1394 is not set
 
@@ -227,10 +230,6 @@ CONFIG_SGIWD93_SCSI=y
 # I2O device support
 #
 
-#
-# Macintosh device drivers
-#
-
 #
 # Networking support
 #
@@ -255,7 +254,6 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
 # CONFIG_ARPD is not set
-CONFIG_INET_ECN=y
 # CONFIG_SYN_COOKIES is not set
 CONFIG_INET_AH=m
 CONFIG_INET_ESP=m
@@ -390,7 +388,6 @@ CONFIG_XFRM_USER=m
 #
 # SCTP Configuration (EXPERIMENTAL)
 #
-CONFIG_IPV6_SCTP__=m
 CONFIG_IP_SCTP=m
 # CONFIG_SCTP_DBG_MSG is not set
 # CONFIG_SCTP_DBG_OBJCNT is not set
@@ -425,6 +422,7 @@ CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
 CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_DELAY=m
 CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
@@ -475,6 +473,7 @@ CONFIG_SGISEEQ=y
 # Token Ring devices
 #
 # CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
 
 #
 # Wan interfaces
@@ -495,11 +494,13 @@ CONFIG_SGISEEQ=y
 # Bluetooth support
 #
 # CONFIG_BT is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 
 #
 # ISDN subsystem
 #
-# CONFIG_ISDN_BOOL is not set
+# CONFIG_ISDN is not set
 
 #
 # Telephony Support
@@ -539,6 +540,7 @@ CONFIG_SERIO_SERPORT=y
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_INPUT_MOUSE is not set
@@ -565,12 +567,8 @@ CONFIG_HW_CONSOLE=y
 CONFIG_SERIAL_IP22_ZILOG=m
 CONFIG_SERIAL_CORE=m
 CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_QIC02_TAPE is not set
 
 #
@@ -589,7 +587,6 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_SOFT_WATCHDOG is not set
 CONFIG_INDYDOG=m
-# CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_GEN_RTC is not set
 CONFIG_SGI_DS1286=y
@@ -611,6 +608,10 @@ CONFIG_MAX_RAW_DEVS=256
 #
 # CONFIG_I2C is not set
 
+#
+# Misc devices
+#
+
 #
 # Multimedia devices
 #
@@ -709,7 +710,6 @@ CONFIG_VFAT_FS=m
 CONFIG_PROC_FS=y
 CONFIG_PROC_KCORE=y
 # CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 # CONFIG_TMPFS is not set
@@ -722,6 +722,7 @@ CONFIG_RAMFS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 CONFIG_EFS_FS=m
@@ -748,7 +749,8 @@ CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=m
-# CONFIG_SUNRPC_GSS is not set
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -850,7 +852,9 @@ CONFIG_CRYPTO_SERPENT=y
 CONFIG_CRYPTO_AES=y
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
 # CONFIG_CRYPTO_TEST is not set
 
 #
diff --git a/arch/mips/jaguar-atx_defconfig b/arch/mips/jaguar-atx_defconfig
deleted file mode 100644 (file)
index cef2707..0000000
+++ /dev/null
@@ -1,537 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-CONFIG_MIPS=y
-# CONFIG_MIPS64 is not set
-# CONFIG_64BIT is not set
-CONFIG_MIPS32=y
-
-#
-# Code maturity level options
-#
-# CONFIG_EXPERIMENTAL is not set
-CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
-CONFIG_BROKEN_ON_SMP=y
-
-#
-# General setup
-#
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-
-#
-# Loadable module support
-#
-# CONFIG_MODULES is not set
-
-#
-# Machine selection
-#
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_LASAT is not set
-# CONFIG_HP_LASERJET is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_MOMENCO_OCELOT_C is not set
-CONFIG_MOMENCO_JAGUAR_ATX=y
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_NEC_OSPREY is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SOC_AU1X00 is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
-# CONFIG_CPU_LITTLE_ENDIAN is not set
-CONFIG_IRQ_CPU=y
-CONFIG_IRQ_CPU_RM7K=y
-CONFIG_MIPS_MV64340=y
-CONFIG_SWAP_IO_SPACE=y
-CONFIG_BOOT_ELF32=y
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_FB is not set
-CONFIG_BOARD_SCACHE=y
-
-#
-# CPU selection
-#
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-CONFIG_CPU_RM9000=y
-# CONFIG_CPU_SB1 is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_CPU_HAS_PREFETCH=y
-# CONFIG_64BIT_PHYS_ADDR is not set
-# CONFIG_CPU_ADVANCED is not set
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_LLDSCD=y
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_SMP is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_PCI=y
-CONFIG_PCI_LEGACY_PROC=y
-CONFIG_PCI_NAMES=y
-CONFIG_MMU=y
-# CONFIG_HOTPLUG is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-
-#
-# Memory Technology Devices (MTD)
-#
-# CONFIG_MTD is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# 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_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_LBD is not set
-
-#
-# 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
-#
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-# CONFIG_PACKET is not set
-# CONFIG_NETLINK_DEV is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_INET_ECN 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_DECNET is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-CONFIG_NETDEVICES=y
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN 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
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 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_EEPRO100_PIO is not set
-# 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_TIGON3 is not set
-CONFIG_MV64340_ETH=y
-CONFIG_MV64340_ETH_0=y
-# CONFIG_MV64340_ETH_1 is not set
-# CONFIG_MV64340_ETH_2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_FDDI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-
-#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
-#
-# CONFIG_IRDA is not set
-
-#
-# Bluetooth support
-#
-# CONFIG_BT is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN_BOOL is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-# CONFIG_INPUT is not set
-
-#
-# Userland interfaces
-#
-
-#
-# Input I/O drivers
-#
-# CONFIG_GAMEPORT is not set
-CONFIG_SOUND_GAMEPORT=y
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PCIPS2 is not set
-
-#
-# Input Device Drivers
-#
-
-#
-# 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=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
-# CONFIG_QIC02_TAPE is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM 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_FTAPE is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# Graphics support
-#
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB is not set
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET 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_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-# 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_FAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_DEVPTS_FS=y
-# CONFIG_DEVPTS_FS_XATTR is not set
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# 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 is not set
-# CONFIG_NFSD is not set
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-# CONFIG_EXPORTFS is not set
-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
-
-#
-# Kernel hacking
-#
-CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
-
-#
-# Security options
-#
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Library routines
-#
-# CONFIG_CRC32 is not set
index 9d8561383d0570a6ca01aaae6c03d15c37520572..9ce8090eff68613f42049a13db1d0d817c7a696e 100644 (file)
@@ -37,6 +37,7 @@ obj-$(CONFIG_SMP)             += smp.o
 obj-$(CONFIG_I8259)            += i8259.o
 obj-$(CONFIG_IRQ_CPU)          += irq_cpu.o
 obj-$(CONFIG_IRQ_CPU_RM7K)     += irq-rm7000.o
+obj-$(CONFIG_MIPS_MV64340)     += irq-mv6434x.o
 
 obj-$(CONFIG_MIPS32)           += scall32-o32.o
 obj-$(CONFIG_MIPS64)           += scall64-64.o
@@ -54,5 +55,6 @@ obj-$(CONFIG_MIPS64)          += cpu-bugs64.o
 obj-$(CONFIG_GEN_RTC)          += genrtc.o
 
 CFLAGS_cpu-bugs64.o    = $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
+CFLAGS_ioctl32.o       += -Ifs/
 
 EXTRA_AFLAGS := $(CFLAGS)
index d4e2a42804d2b6b6cde30eeebb9cf6758da974fb..5013599347e3430782b4e10068faaa30001b2716 100644 (file)
@@ -172,8 +172,7 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c)
        case PRID_IMP_R2000:
                c->cputype = CPU_R2000;
                c->isa_level = MIPS_CPU_ISA_I;
-               c->options = MIPS_CPU_TLB | MIPS_CPU_NOFPUEX |
-                            MIPS_CPU_LLSC;
+               c->options = MIPS_CPU_TLB | MIPS_CPU_NOFPUEX;
                if (__cpu_has_fpu())
                        c->options |= MIPS_CPU_FPU;
                c->tlbsize = 64;
@@ -187,8 +186,7 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c)
                else
                        c->cputype = CPU_R3000;
                c->isa_level = MIPS_CPU_ISA_I;
-               c->options = MIPS_CPU_TLB | MIPS_CPU_NOFPUEX |
-                            MIPS_CPU_LLSC;
+               c->options = MIPS_CPU_TLB | MIPS_CPU_NOFPUEX;
                if (__cpu_has_fpu())
                        c->options |= MIPS_CPU_FPU;
                c->tlbsize = 64;
@@ -499,6 +497,9 @@ static inline void cpu_probe_alchemy(struct cpuinfo_mips *c)
                case 2:
                        c->cputype = CPU_AU1100;
                        break;
+               case 3:
+                       c->cputype = CPU_AU1550;
+                       break;
                default:
                        panic("Unknown Au Core!");
                        break;
index 93c5a056b439be62904e480357428d76d346512f..f37209d5a31a2f6a4ba5f0e5c38bc1dc977c016a 100644 (file)
@@ -60,6 +60,7 @@ need_resched:
        sw      t0, TI_PRE_COUNT($28)
        local_irq_enable t0
        jal     schedule
+       sw      zero, TI_PRE_COUNT($28)
        local_irq_disable t0
        b       need_resched
 #endif
index d7551eec39af2f5d13b987677ef2f1b90497983f..bc07d8112fea0cc7123aa98a4432b11d8e1044f0 100644 (file)
  *
  * Copyright (C) 2000 Silicon Graphics, Inc.
  * Written by Ulf Carlsson (ulfc@engr.sgi.com)
- * Copyright (C) 2000 Ralf Baechle
+ * Copyright (C) 2000, 2004 Ralf Baechle
  * Copyright (C) 2002, 2003  Maciej W. Rozycki
- *
- * Mostly stolen from the sparc64 ioctl32 implementation.
  */
+#define INCLUDES
+#include "compat_ioctl.c"
+
 #include <linux/config.h>
 #include <linux/types.h>
 #include <linux/compat.h>
 #include <linux/ioctl32.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/if.h>
-#include <linux/mm.h>
-#include <linux/mtio.h>
-#include <linux/auto_fs.h>
-#include <linux/auto_fs4.h>
-#include <linux/devfs_fs.h>
-#include <linux/tty.h>
-#include <linux/init.h>
-#include <linux/fs.h>
-#include <linux/file.h>
-#include <linux/fd.h>
-#include <linux/ppp_defs.h>
-#include <linux/if_ppp.h>
-#include <linux/if_pppox.h>
-#include <linux/if_tun.h>
-#include <linux/cdrom.h>
-#include <linux/blkdev.h>
-#include <linux/loop.h>
-#include <linux/fb.h>
-#include <linux/i2c.h>
-#include <linux/vt.h>
-#include <linux/vt_kern.h>
-#include <linux/kd.h>
-#include <linux/ext2_fs.h>
-#include <linux/videodev.h>
-#include <linux/netdevice.h>
-#include <linux/raw.h>
-#include <linux/smb_fs.h>
-#include <linux/ncp_fs.h>
-#include <linux/route.h>
-#include <linux/hdreg.h>
-#include <linux/raid/md.h>
-#include <linux/blkpg.h>
-#include <linux/elevator.h>
-#include <linux/rtc.h>
-#include <linux/pci.h>
-#include <linux/dm-ioctl.h>
-
-#include <scsi/scsi.h>
-#undef __KERNEL__              /* This file was born to be ugly ...  */
-#include <scsi/scsi_ioctl.h>
-#define __KERNEL__
-#include <scsi/sg.h>
-
-#include <linux/ethtool.h>
-#include <linux/mii.h>
-#include <linux/if_bonding.h>
 #include <linux/syscalls.h>
-#include <linux/watchdog.h>
-
-#include <asm/ioctls.h>
-#include <asm/module.h>
-#include <linux/soundcard.h>
-#include <linux/lp.h>
-
-#include <linux/atm.h>
-#include <linux/atmarp.h>
-#include <linux/atmclip.h>
-#include <linux/atmdev.h>
-#include <linux/atmioc.h>
-#include <linux/atmlec.h>
-#include <linux/atmmpc.h>
-#include <linux/atmsvc.h>
-#include <linux/atm_tcp.h>
-#include <linux/sonet.h>
-#include <linux/atm_suni.h>
-#include <linux/mtd/mtd.h>
-
-#include <net/bluetooth/bluetooth.h>
-#include <net/bluetooth/hci.h>
-#include <net/bluetooth/rfcomm.h>
-
-#include <linux/usb.h>
-#include <linux/usbdevice_fs.h>
-#include <linux/nbd.h>
-#include <linux/random.h>
-#include <linux/filter.h>
-#include <linux/wireless.h>
 
 #ifdef CONFIG_SIBYTE_TBPROF
 #include <asm/sibyte/trace_prof.h>
 #endif
 
-static int w_long(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       int err;
-       unsigned long val;
-
-       set_fs (KERNEL_DS);
-       err = sys_ioctl(fd, cmd, (unsigned long)&val);
-       set_fs (old_fs);
-       if (!err && put_user((unsigned int) val, (u32 *)arg))
-               return -EFAULT;
-       return err;
-}
-
-static int rw_long(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       int err;
-       unsigned long val;
-
-       if (get_user(val, (u32 *)arg))
-               return -EFAULT;
-       set_fs(KERNEL_DS);
-       err = sys_ioctl(fd, cmd, (unsigned long)&val);
-       set_fs (old_fs);
-       if (!err && put_user(val, (u32 *)arg))
-               return -EFAULT;
-       return err;
-}
-
 #define A(__x) ((unsigned long)(__x))
 
+long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
 
-#ifdef CONFIG_FB
-
-struct fb_fix_screeninfo32 {
-       char id[16];                    /* identification string eg "TT Builtin" */
-       __u32 smem_start;               /* Start of frame buffer mem */
-                                       /* (physical address) */
-       __u32 smem_len;                 /* Length of frame buffer mem */
-       __u32 type;                     /* see FB_TYPE_*                */
-       __u32 type_aux;                 /* Interleave for interleaved Planes */
-       __u32 visual;                   /* see FB_VISUAL_*              */ 
-       __u16 xpanstep;                 /* zero if no hardware panning  */
-       __u16 ypanstep;                 /* zero if no hardware panning  */
-       __u16 ywrapstep;                /* zero if no hardware ywrap    */
-       __u32 line_length;              /* length of a line in bytes    */
-       __u32 mmio_start;               /* Start of Memory Mapped I/O   */
-                                       /* (physical address) */
-       __u32 mmio_len;                 /* Length of Memory Mapped I/O  */
-       __u32 accel;                    /* Type of acceleration available */
-       __u16 reserved[3];              /* Reserved for future compatibility */
-};
-
-static int do_fbioget_fscreeninfo_ioctl(unsigned int fd, unsigned int cmd,
-                                       unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       struct fb_fix_screeninfo fix;
-       struct fb_fix_screeninfo32 *fix32 = (struct fb_fix_screeninfo32 *)arg;
-       int err;
-
-       set_fs(KERNEL_DS);
-       err = sys_ioctl(fd, cmd, (unsigned long)&fix);
-       set_fs(old_fs);
-
-       if (err == 0) {
-               err = __copy_to_user((char *)fix32->id, (char *)fix.id,
-                                    sizeof(fix.id));
-               err |= __put_user((__u32)(unsigned long)fix.smem_start,
-                                 &fix32->smem_start);
-               err |= __put_user(fix.smem_len, &fix32->smem_len);
-               err |= __put_user(fix.type, &fix32->type);
-               err |= __put_user(fix.type_aux, &fix32->type_aux);
-               err |= __put_user(fix.visual, &fix32->visual);
-               err |= __put_user(fix.xpanstep, &fix32->xpanstep);
-               err |= __put_user(fix.ypanstep, &fix32->ypanstep);
-               err |= __put_user(fix.ywrapstep, &fix32->ywrapstep);
-               err |= __put_user(fix.line_length, &fix32->line_length);
-               err |= __put_user((__u32)(unsigned long)fix.mmio_start,
-                                 &fix32->mmio_start);
-               err |= __put_user(fix.mmio_len, &fix32->mmio_len);
-               err |= __put_user(fix.accel, &fix32->accel);
-               err |= __copy_to_user((char *)fix32->reserved,
-                                     (char *)fix.reserved,
-                                     sizeof(fix.reserved));
-               if (err)
-                       err = -EFAULT;
-       }
-
-       return err;
-}
-
-struct fb_cmap32 {
-       __u32 start;                    /* First entry  */
-       __u32 len;                      /* Number of entries */
-       __u32 red;                      /* Red values   */
-       __u32 green;
-       __u32 blue;
-       __u32 transp;                   /* transparency, can be NULL */
-};
-
-static int do_fbiocmap_ioctl(unsigned int fd, unsigned int cmd,
-                            unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       u32 red = 0, green = 0, blue = 0, transp = 0;
-       struct fb_cmap cmap;
-       struct fb_cmap32 *cmap32 = (struct fb_cmap32 *)arg;
-       int err;
-
-       memset(&cmap, 0, sizeof(cmap));
-
-       err = __get_user(cmap.start, &cmap32->start);
-       err |= __get_user(cmap.len, &cmap32->len);
-       err |= __get_user(red, &cmap32->red);
-       err |= __get_user(green, &cmap32->green);
-       err |= __get_user(blue, &cmap32->blue);
-       err |= __get_user(transp, &cmap32->transp);
-       if (err)
-               return -EFAULT;
-
-       err = -ENOMEM;
-       cmap.red = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-       if (!cmap.red)
-               goto out;
-       cmap.green = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-       if (!cmap.green)
-               goto out;
-       cmap.blue = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-       if (!cmap.blue)
-               goto out;
-       if (transp) {
-               cmap.transp = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-               if (!cmap.transp)
-                       goto out;
-       }
-                       
-       if (cmd == FBIOPUTCMAP) {
-               err = __copy_from_user(cmap.red, (char *)A(red),
-                                      cmap.len * sizeof(__u16));
-               err |= __copy_from_user(cmap.green, (char *)A(green),
-                                       cmap.len * sizeof(__u16));
-               err |= __copy_from_user(cmap.blue, (char *)A(blue),
-                                       cmap.len * sizeof(__u16));
-               if (cmap.transp)
-                       err |= __copy_from_user(cmap.transp, (char *)A(transp),
-                                               cmap.len * sizeof(__u16));
-               if (err) {
-                       err = -EFAULT;
-                       goto out;
-               }
-       }
-
-       set_fs(KERNEL_DS);
-       err = sys_ioctl(fd, cmd, (unsigned long)&cmap);
-       set_fs(old_fs);
-       if (err)
-               goto out;
-
-       if (cmd == FBIOGETCMAP) {
-               err = __copy_to_user((char *)A(red), cmap.red,
-                                    cmap.len * sizeof(__u16));
-               err |= __copy_to_user((char *)A(green), cmap.blue,
-                                     cmap.len * sizeof(__u16));
-               err |= __copy_to_user((char *)A(blue), cmap.blue,
-                                     cmap.len * sizeof(__u16));
-               if (cmap.transp)
-                       err |= __copy_to_user((char *)A(transp), cmap.transp,
-                                             cmap.len * sizeof(__u16));
-               if (err) {
-                       err = -EFAULT;
-                       goto out;
-               }
-       }
-
-out:
-       if (cmap.red)
-               kfree(cmap.red);
-       if (cmap.green)
-               kfree(cmap.green);
-       if (cmap.blue)
-               kfree(cmap.blue);
-       if (cmap.transp)
-               kfree(cmap.transp);
-
-       return err;
-}
-
-#endif /* CONFIG_FB */
-
-
-static int do_siocgstamp(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       struct compat_timeval *up = (struct compat_timeval *)arg;
-       struct timeval ktv;
-       mm_segment_t old_fs = get_fs();
-       int err;
-
-       set_fs(KERNEL_DS);
-       err = sys_ioctl(fd, cmd, (unsigned long)&ktv);
-       set_fs(old_fs);
-       if (!err) {
-               err = put_user(ktv.tv_sec, &up->tv_sec);
-               err |= __put_user(ktv.tv_usec, &up->tv_usec);
-       }
-
-       return err;
-}
-
-#define EXT2_IOC32_GETFLAGS               _IOR('f', 1, int)
-#define EXT2_IOC32_SETFLAGS               _IOW('f', 2, int)
-#define EXT2_IOC32_GETVERSION             _IOR('v', 1, int)
-#define EXT2_IOC32_SETVERSION             _IOW('v', 2, int)
-
-struct ifmap32 {
-       unsigned int mem_start;
-       unsigned int mem_end;
-       unsigned short base_addr;
-       unsigned char irq;
-       unsigned char dma;
-       unsigned char port;
-};
-
-struct ifreq32 {
-#define IFHWADDRLEN     6
-#define IFNAMSIZ        16
-        union {
-                char    ifrn_name[IFNAMSIZ];   /* if name, e.g. "en0" */
-        } ifr_ifrn;
-        union {
-                struct  sockaddr ifru_addr;
-                struct  sockaddr ifru_dstaddr;
-                struct  sockaddr ifru_broadaddr;
-                struct  sockaddr ifru_netmask;
-                struct  sockaddr ifru_hwaddr;
-                short   ifru_flags;
-                int     ifru_ivalue;
-                int     ifru_mtu;
-                struct  ifmap32 ifru_map;
-                char    ifru_slave[IFNAMSIZ];   /* Just fits the size */
-               char    ifru_newname[IFNAMSIZ];
-                compat_caddr_t ifru_data;
-        } ifr_ifru;
-};
-
-struct ifconf32 {
-        int     ifc_len;                        /* size of buffer       */
-        compat_caddr_t  ifcbuf;
-};
-
-#ifdef CONFIG_NET
-
-static int dev_ifname32(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       struct ireq32 *uir32 = (struct ireq32 *)arg;
-       struct net_device *dev;
-       struct ifreq32 ifr32;
-
-       if (copy_from_user(&ifr32, uir32, sizeof(struct ifreq32)))
-               return -EFAULT;
-
-       read_lock(&dev_base_lock);
-       dev = __dev_get_by_index(ifr32.ifr_ifindex);
-       if (!dev) {
-               read_unlock(&dev_base_lock);
-               return -ENODEV;
-       }
-
-       strcpy(ifr32.ifr_name, dev->name);
-       read_unlock(&dev_base_lock);
-
-       if (copy_to_user(uir32, &ifr32, sizeof(struct ifreq32)))
-           return -EFAULT;
-
-       return 0;
-}
-
-static inline int dev_ifconf(unsigned int fd, unsigned int cmd,
-                            unsigned long arg)
-{
-       struct ioconf32 *uifc32 = (struct ioconf32 *)arg;
-       struct ifconf32 ifc32;
-       struct ifconf ifc;
-       struct ifreq32 *ifr32;
-       struct ifreq *ifr;
-       mm_segment_t old_fs;
-       unsigned int i, j;
-       int err;
-
-       if (copy_from_user(&ifc32, uifc32, sizeof(struct ifconf32)))
-               return -EFAULT;
-
-       if(ifc32.ifcbuf == 0) {
-               ifc32.ifc_len = 0;
-               ifc.ifc_len = 0;
-               ifc.ifc_buf = NULL;
-       } else {
-               ifc.ifc_len = ((ifc32.ifc_len / sizeof (struct ifreq32))) *
-                       sizeof (struct ifreq);
-               ifc.ifc_buf = kmalloc (ifc.ifc_len, GFP_KERNEL);
-               if (!ifc.ifc_buf)
-                       return -ENOMEM;
-       }
-       ifr = ifc.ifc_req;
-       ifr32 = (struct ifreq32 *)A(ifc32.ifcbuf);
-       for (i = 0; i < ifc32.ifc_len; i += sizeof (struct ifreq32)) {
-               if (copy_from_user(ifr++, ifr32++, sizeof (struct ifreq32))) {
-                       kfree (ifc.ifc_buf);
-                       return -EFAULT;
-               }
-       }
-
-       old_fs = get_fs(); set_fs (KERNEL_DS);
-       err = sys_ioctl (fd, SIOCGIFCONF, (unsigned long)&ifc);
-       set_fs (old_fs);
-       if (err)
-               goto out;
-
-       ifr = ifc.ifc_req;
-       ifr32 = (struct ifreq32 *)A(ifc32.ifcbuf);
-       for (i = 0, j = 0; i < ifc32.ifc_len && j < ifc.ifc_len;
-            i += sizeof (struct ifreq32), j += sizeof (struct ifreq)) {
-               if (copy_to_user(ifr32++, ifr++, sizeof (struct ifreq32))) {
-                       err = -EFAULT;
-                       goto out;
-               }
-       }
-       if (ifc32.ifcbuf == 0) {
-               /* Translate from 64-bit structure multiple to
-                * a 32-bit one.
-                */
-               i = ifc.ifc_len;
-               i = ((i / sizeof(struct ifreq)) * sizeof(struct ifreq32));
-               ifc32.ifc_len = i;
-       } else {
-               if (i <= ifc32.ifc_len)
-                       ifc32.ifc_len = i;
-               else
-                       ifc32.ifc_len = i - sizeof (struct ifreq32);
-       }
-       if (copy_to_user(uifc32, &ifc32, sizeof(struct ifconf32))) {
-               err = -EFAULT;
-               goto out;
-       }
-out:
-       if(ifc.ifc_buf != NULL)
-               kfree (ifc.ifc_buf);
-       return err;
-}
-
-int siocdevprivate_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       struct ifreq *u_ifreq64;
-       struct ifreq32 *u_ifreq32 = (struct ifreq32 *) arg;
-       char tmp_buf[IFNAMSIZ];
-       void *data64;
-       u32 data32;
-
-       if (copy_from_user(&tmp_buf[0], &(u_ifreq32->ifr_ifrn.ifrn_name[0]),
-                          IFNAMSIZ))
-               return -EFAULT;
-       if (__get_user(data32, &u_ifreq32->ifr_ifru.ifru_data))
-               return -EFAULT;
-       data64 = (void *) A(data32);
-
-       u_ifreq64 = compat_alloc_user_space(sizeof(*u_ifreq64));
-
-       /* Don't check these user accesses, just let that get trapped
-        * in the ioctl handler instead.
-        */
-       copy_to_user(&u_ifreq64->ifr_ifrn.ifrn_name[0], &tmp_buf[0], IFNAMSIZ);
-       __put_user(data64, &u_ifreq64->ifr_ifru.ifru_data);
-
-       return sys_ioctl(fd, cmd, (unsigned long) u_ifreq64);
-}
-
-static int dev_ifsioc(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       struct ifreq ifr;
-       mm_segment_t old_fs;
-       int err;
-       
-       switch (cmd) {
-       case SIOCSIFMAP:
-               err = copy_from_user(&ifr, (struct ifreq32 *)arg, sizeof(ifr.ifr_name));
-               err |= __get_user(ifr.ifr_map.mem_start, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.mem_start));
-               err |= __get_user(ifr.ifr_map.mem_end, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.mem_end));
-               err |= __get_user(ifr.ifr_map.base_addr, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.base_addr));
-               err |= __get_user(ifr.ifr_map.irq, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.irq));
-               err |= __get_user(ifr.ifr_map.dma, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.dma));
-               err |= __get_user(ifr.ifr_map.port, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.port));
-               if (err)
-                       return -EFAULT;
-               break;
-       default:
-               if (copy_from_user(&ifr, (struct ifreq32 *)arg, sizeof(struct ifreq32)))
-                       return -EFAULT;
-               break;
-       }
-       old_fs = get_fs();
-       set_fs (KERNEL_DS);
-       err = sys_ioctl (fd, cmd, (unsigned long)&ifr);
-       set_fs (old_fs);
-       if (!err) {
-               switch (cmd) {
-               case SIOCGIFFLAGS:
-               case SIOCGIFMETRIC:
-               case SIOCGIFMTU:
-               case SIOCGIFMEM:
-               case SIOCGIFHWADDR:
-               case SIOCGIFINDEX:
-               case SIOCGIFADDR:
-               case SIOCGIFBRDADDR:
-               case SIOCGIFDSTADDR:
-               case SIOCGIFNETMASK:
-               case SIOCGIFTXQLEN:
-                       if (copy_to_user((struct ifreq32 *)arg, &ifr, sizeof(struct ifreq32)))
-                               return -EFAULT;
-                       break;
-               case SIOCGIFMAP:
-                       err = copy_to_user((struct ifreq32 *)arg, &ifr, sizeof(ifr.ifr_name));
-                       err |= __put_user(ifr.ifr_map.mem_start, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.mem_start));
-                       err |= __put_user(ifr.ifr_map.mem_end, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.mem_end));
-                       err |= __put_user(ifr.ifr_map.base_addr, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.base_addr));
-                       err |= __put_user(ifr.ifr_map.irq, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.irq));
-                       err |= __put_user(ifr.ifr_map.dma, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.dma));
-                       err |= __put_user(ifr.ifr_map.port, &(((struct ifreq32 *)arg)->ifr_ifru.ifru_map.port));
-                       if (err)
-                               err = -EFAULT;
-                       break;
-               }
-       }
-       return err;
-}
-
-struct rtentry32
-{
-       unsigned int    rt_pad1;
-       struct sockaddr rt_dst;         /* target address               */
-       struct sockaddr rt_gateway;     /* gateway addr (RTF_GATEWAY)   */
-       struct sockaddr rt_genmask;     /* target network mask (IP)     */
-       unsigned short  rt_flags;
-       short           rt_pad2;
-       unsigned int    rt_pad3;
-       unsigned int    rt_pad4;
-       short           rt_metric;      /* +1 for binary compatibility! */
-       unsigned int    rt_dev;         /* forcing the device at add    */
-       unsigned int    rt_mtu;         /* per route MTU/Window         */
-#ifndef __KERNEL__
-#define rt_mss rt_mtu                  /* Compatibility :-(            */
-#endif
-       unsigned int    rt_window;      /* Window clamping              */
-       unsigned short  rt_irtt;        /* Initial RTT                  */
-};
-
-static inline int routing_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       struct rtentry32 *ur = (struct rtentry32 *)arg;
-       struct rtentry r;
-       char devname[16];
-       u32 rtdev;
-       int ret;
-       mm_segment_t old_fs = get_fs();
-
-       ret = copy_from_user (&r.rt_dst, &(ur->rt_dst), 3 * sizeof(struct sockaddr));
-       ret |= __get_user (r.rt_flags, &(ur->rt_flags));
-       ret |= __get_user (r.rt_metric, &(ur->rt_metric));
-       ret |= __get_user (r.rt_mtu, &(ur->rt_mtu));
-       ret |= __get_user (r.rt_window, &(ur->rt_window));
-       ret |= __get_user (r.rt_irtt, &(ur->rt_irtt));
-       ret |= __get_user (rtdev, &(ur->rt_dev));
-       if (rtdev) {
-               ret |= copy_from_user (devname, (char *)A(rtdev), 15);
-               r.rt_dev = devname; devname[15] = 0;
-       } else
-               r.rt_dev = 0;
-       if (ret)
-               return -EFAULT;
-       set_fs (KERNEL_DS);
-       ret = sys_ioctl (fd, cmd, (long)&r);
-       set_fs (old_fs);
-       return ret;
-}
-
-#endif /* CONFIG_NET */
-
-static int do_ext2_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       /* These are just misnamed, they actually get/put from/to user an int */
-       switch (cmd) {
-       case EXT2_IOC32_GETFLAGS: cmd = EXT2_IOC_GETFLAGS; break;
-       case EXT2_IOC32_SETFLAGS: cmd = EXT2_IOC_SETFLAGS; break;
-       case EXT2_IOC32_GETVERSION: cmd = EXT2_IOC_GETVERSION; break;
-       case EXT2_IOC32_SETVERSION: cmd = EXT2_IOC_SETVERSION; break;
-       }
-       return sys_ioctl(fd, cmd, arg);
-}
-
-struct hd_geometry32 {
-       unsigned char heads;
-       unsigned char sectors;
-       unsigned short cylinders;
-       u32 start;
-};
-
-static int hdio_getgeo(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       struct hd_geometry geo;
-       int err;
-
-       set_fs (KERNEL_DS);
-       err = sys_ioctl(fd, HDIO_GETGEO, (unsigned long)&geo);
-       set_fs (old_fs);
-       if (!err) {
-               err = copy_to_user ((struct hd_geometry32 *)arg, &geo, 4);
-               err |= __put_user (geo.start, &(((struct hd_geometry32 *)arg)->start));
-       }
-
-       return err ? -EFAULT : 0;
-}
-
-static int hdio_ioctl_trans(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       unsigned long kval;
-       unsigned int *uvp;
-       int error;
-
-       set_fs(KERNEL_DS);
-       error = sys_ioctl(fd, cmd, (long)&kval);
-       set_fs(old_fs);
-
-       if (error == 0) {
-               uvp = (unsigned int *)arg;
-               if (put_user(kval, uvp))
-                       error = -EFAULT;
-       }
-
-       return error;
-}
-
-static int ret_einval(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       return -EINVAL;
-}
-
-struct blkpg_ioctl_arg32 {
-       int op;
-       int flags;
-       int datalen;
-       u32 data;
-};
-
-static int blkpg_ioctl_trans(unsigned int fd, unsigned int cmd,
-                             struct blkpg_ioctl_arg32 *arg)
-{
-       struct blkpg_ioctl_arg a;
-       struct blkpg_partition p;
-       int err;
-       mm_segment_t old_fs = get_fs();
-
-       err = get_user(a.op, &arg->op);
-       err |= __get_user(a.flags, &arg->flags);
-       err |= __get_user(a.datalen, &arg->datalen);
-       err |= __get_user((long)a.data, &arg->data);
-       if (err) return err;
-       switch (a.op) {
-       case BLKPG_ADD_PARTITION:
-       case BLKPG_DEL_PARTITION:
-               if (a.datalen < sizeof(struct blkpg_partition))
-                       return -EINVAL;
-                if (copy_from_user(&p, a.data, sizeof(struct blkpg_partition)))
-                       return -EFAULT;
-               a.data = &p;
-               set_fs (KERNEL_DS);
-               err = sys_ioctl(fd, cmd, (unsigned long)&a);
-               set_fs (old_fs);
-       default:
-               return -EINVAL;
-       }
-       return err;
-}
-
-struct mtget32 {
-       __u32   mt_type;
-       __u32   mt_resid;
-       __u32   mt_dsreg;
-       __u32   mt_gstat;
-       __u32   mt_erreg;
-       compat_daddr_t  mt_fileno;
-       compat_daddr_t  mt_blkno;
-};
-#define MTIOCGET32     _IOR('m', 2, struct mtget32)
-
-struct mtpos32 {
-       __u32   mt_blkno;
-};
-#define MTIOCPOS32     _IOR('m', 3, struct mtpos32)
-
-struct mtconfiginfo32 {
-       __u32   mt_type;
-       __u32   ifc_type;
-       __u16   irqnr;
-       __u16   dmanr;
-       __u16   port;
-       __u32   debug;
-       __u32   have_dens:1;
-       __u32   have_bsf:1;
-       __u32   have_fsr:1;
-       __u32   have_bsr:1;
-       __u32   have_eod:1;
-       __u32   have_seek:1;
-       __u32   have_tell:1;
-       __u32   have_ras1:1;
-       __u32   have_ras2:1;
-       __u32   have_ras3:1;
-       __u32   have_qfa:1;
-       __u32   pad1:5;
-       char    reserved[10];
-};
-#define        MTIOCGETCONFIG32        _IOR('m', 4, struct mtconfiginfo32)
-#define        MTIOCSETCONFIG32        _IOW('m', 5, struct mtconfiginfo32)
-
-static int mt_ioctl_trans(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       mm_segment_t old_fs = get_fs();
-       struct mtconfiginfo info;
-       struct mtget get;
-       struct mtpos pos;
-       unsigned long kcmd;
-       void *karg;
-       int err = 0;
-
-       switch(cmd) {
-       case MTIOCPOS32:
-               kcmd = MTIOCPOS;
-               karg = &pos;
-               break;
-       case MTIOCGET32:
-               kcmd = MTIOCGET;
-               karg = &get;
-               break;
-       case MTIOCGETCONFIG32:
-               kcmd = MTIOCGETCONFIG;
-               karg = &info;
-               break;
-       case MTIOCSETCONFIG32:
-               kcmd = MTIOCSETCONFIG;
-               karg = &info;
-               err = __get_user(info.mt_type, &((struct mtconfiginfo32 *)arg)->mt_type);
-               err |= __get_user(info.ifc_type, &((struct mtconfiginfo32 *)arg)->ifc_type);
-               err |= __get_user(info.irqnr, &((struct mtconfiginfo32 *)arg)->irqnr);
-               err |= __get_user(info.dmanr, &((struct mtconfiginfo32 *)arg)->dmanr);
-               err |= __get_user(info.port, &((struct mtconfiginfo32 *)arg)->port);
-               err |= __get_user(info.debug, &((struct mtconfiginfo32 *)arg)->debug);
-               err |= __copy_from_user((char *)&info.debug + sizeof(info.debug),
-                                    (char *)&((struct mtconfiginfo32 *)arg)->debug
-                                    + sizeof(((struct mtconfiginfo32 *)arg)->debug), sizeof(__u32));
-               if (err)
-                       return -EFAULT;
-               break;
-       default:
-               do {
-                       static int count = 0;
-                       if (++count <= 20)
-                               printk("mt_ioctl: Unknown cmd fd(%d) "
-                                      "cmd(%08x) arg(%08x)\n",
-                                      (int)fd, (unsigned int)cmd, (unsigned int)arg);
-               } while(0);
-               return -EINVAL;
-       }
-       set_fs (KERNEL_DS);
-       err = sys_ioctl (fd, kcmd, (unsigned long)karg);
-       set_fs (old_fs);
-       if (err)
-               return err;
-       switch (cmd) {
-       case MTIOCPOS32:
-               err = __put_user(pos.mt_blkno, &((struct mtpos32 *)arg)->mt_blkno);
-               break;
-       case MTIOCGET32:
-               err = __put_user(get.mt_type, &((struct mtget32 *)arg)->mt_type);
-               err |= __put_user(get.mt_resid, &((struct mtget32 *)arg)->mt_resid);
-               err |= __put_user(get.mt_dsreg, &((struct mtget32 *)arg)->mt_dsreg);
-               err |= __put_user(get.mt_gstat, &((struct mtget32 *)arg)->mt_gstat);
-               err |= __put_user(get.mt_erreg, &((struct mtget32 *)arg)->mt_erreg);
-               err |= __put_user(get.mt_fileno, &((struct mtget32 *)arg)->mt_fileno);
-               err |= __put_user(get.mt_blkno, &((struct mtget32 *)arg)->mt_blkno);
-               break;
-       case MTIOCGETCONFIG32:
-               err = __put_user(info.mt_type, &((struct mtconfiginfo32 *)arg)->mt_type);
-               err |= __put_user(info.ifc_type, &((struct mtconfiginfo32 *)arg)->ifc_type);
-               err |= __put_user(info.irqnr, &((struct mtconfiginfo32 *)arg)->irqnr);
-               err |= __put_user(info.dmanr, &((struct mtconfiginfo32 *)arg)->dmanr);
-               err |= __put_user(info.port, &((struct mtconfiginfo32 *)arg)->port);
-               err |= __put_user(info.debug, &((struct mtconfiginfo32 *)arg)->debug);
-               err |= __copy_to_user((char *)&((struct mtconfiginfo32 *)arg)->debug
-                                          + sizeof(((struct mtconfiginfo32 *)arg)->debug),
-                                          (char *)&info.debug + sizeof(info.debug), sizeof(__u32));
-               break;
-       case MTIOCSETCONFIG32:
-               break;
-       }
-       return err ? -EFAULT: 0;
-}
-
-#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93,0x64,unsigned int)
-
-static int ioc_settimeout(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       return rw_long(fd, AUTOFS_IOC_SETTIMEOUT, arg);
-}
-
-#ifdef CONFIG_VT
-
-extern int tty_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg);
-
-static int vt_check(struct file *file)
-{
-       struct tty_struct *tty;
-       struct inode *inode = file->f_dentry->d_inode;
-       
-       if (file->f_op->ioctl != tty_ioctl)
-               return -EINVAL;
-                       
-       tty = (struct tty_struct *)file->private_data;
-       if (tty_paranoia_check(tty, inode, "tty_ioctl"))
-               return -EINVAL;
-                                                       
-       if (tty->driver->ioctl != vt_ioctl)
-               return -EINVAL;
-       
-       /*
-        * To have permissions to do most of the vt ioctls, we either have
-        * to be the owner of the tty, or super-user.
-        */
-       if (current->tty == tty || capable(CAP_SYS_TTY_CONFIG))
-               return 1;
-       return 0;
-}
-
-struct consolefontdesc32 {
-       unsigned short charcount;       /* characters in font (256 or 512) */
-       unsigned short charheight;      /* scan lines per character (1-32) */
-       u32 chardata;                   /* font data in expanded form */
-};
-
-static int do_fontx_ioctl(unsigned int fd, int cmd, struct consolefontdesc32 *user_cfd, struct file *file)
-{
-       struct consolefontdesc cfdarg;
-       struct console_font_op op;
-       int i, perm;
-
-       perm = vt_check(file);
-       if (perm < 0) return perm;
-       
-       if (copy_from_user(&cfdarg, user_cfd, sizeof(struct consolefontdesc32)))
-               return -EFAULT;
-       
-       cfdarg.chardata = (unsigned char *)A(((struct consolefontdesc32 *)&cfdarg)->chardata);
-       
-       switch (cmd) {
-       case PIO_FONTX:
-               if (!perm)
-                       return -EPERM;
-               op.op = KD_FONT_OP_SET;
-               op.flags = 0;
-               op.width = 8;
-               op.height = cfdarg.charheight;
-               op.charcount = cfdarg.charcount;
-               op.data = cfdarg.chardata;
-               return con_font_op(fg_console, &op);
-       case GIO_FONTX:
-               if (!cfdarg.chardata)
-                       return 0;
-               op.op = KD_FONT_OP_GET;
-               op.flags = 0;
-               op.width = 8;
-               op.height = cfdarg.charheight;
-               op.charcount = cfdarg.charcount;
-               op.data = cfdarg.chardata;
-               i = con_font_op(fg_console, &op);
-               if (i)
-                       return i;
-               cfdarg.charheight = op.height;
-               cfdarg.charcount = op.charcount;
-               ((struct consolefontdesc32 *)&cfdarg)->chardata = (unsigned long)cfdarg.chardata;
-               if (copy_to_user(user_cfd, &cfdarg, sizeof(struct consolefontdesc32)))
-                       return -EFAULT;
-               return 0;
-       }
-       return -EINVAL;
-}
-
-struct console_font_op32 {
-       unsigned int op;        /* operation code KD_FONT_OP_* */
-       unsigned int flags;     /* KD_FONT_FLAG_* */
-       unsigned int width, height;     /* font size */
-       unsigned int charcount;
-       u32 data;    /* font data with height fixed to 32 */
-};
-                                        
-static int do_kdfontop_ioctl(unsigned int fd, unsigned int cmd, struct console_font_op32 *fontop, struct file *file)
-{
-       struct console_font_op op;
-       int perm = vt_check(file), i;
-       struct vt_struct *vt;
-       
-       if (perm < 0) return perm;
-       
-       if (copy_from_user(&op, (void *) fontop, sizeof(struct console_font_op32)))
-               return -EFAULT;
-       if (!perm && op.op != KD_FONT_OP_GET)
-               return -EPERM;
-       op.data = (unsigned char *)A(((struct console_font_op32 *)&op)->data);
-       op.flags |= KD_FONT_FLAG_OLD;
-       vt = (struct vt_struct *)((struct tty_struct *)file->private_data)->driver_data;
-       i = con_font_op(vt->vc_num, &op);
-       if (i) return i;
-       ((struct console_font_op32 *)&op)->data = (unsigned long)op.data;
-       if (copy_to_user((void *) fontop, &op, sizeof(struct console_font_op32)))
-               return -EFAULT;
-       return 0;
-}
-
-#endif
+#define CODE
+#include "compat_ioctl.c"
 
 typedef int (* ioctl32_handler_t)(unsigned int, unsigned int, unsigned long, struct file *);
                                                                                 
@@ -936,340 +36,10 @@ typedef int (* ioctl32_handler_t)(unsigned int, unsigned int, unsigned long, str
        };
 
 IOCTL_TABLE_START
-#include <linux/compat_ioctl.h>
-COMPATIBLE_IOCTL(TCGETA)
-COMPATIBLE_IOCTL(TCSETA)
-COMPATIBLE_IOCTL(TCSETAW)
-COMPATIBLE_IOCTL(TCSETAF)
-COMPATIBLE_IOCTL(TCSBRK)
-COMPATIBLE_IOCTL(TCSBRKP)
-COMPATIBLE_IOCTL(TCXONC)
-COMPATIBLE_IOCTL(TCFLSH)
-COMPATIBLE_IOCTL(TCGETS)
-COMPATIBLE_IOCTL(TCSETS)
-COMPATIBLE_IOCTL(TCSETSW)
-COMPATIBLE_IOCTL(TCSETSF)
-COMPATIBLE_IOCTL(TIOCLINUX)
-
-COMPATIBLE_IOCTL(TIOCGETD)
-COMPATIBLE_IOCTL(TIOCSETD)
-COMPATIBLE_IOCTL(TIOCEXCL)
-COMPATIBLE_IOCTL(TIOCNXCL)
-COMPATIBLE_IOCTL(TIOCCONS)
-COMPATIBLE_IOCTL(TIOCGSOFTCAR)
-COMPATIBLE_IOCTL(TIOCSSOFTCAR)
-COMPATIBLE_IOCTL(TIOCSWINSZ)
-COMPATIBLE_IOCTL(TIOCGWINSZ)
-COMPATIBLE_IOCTL(TIOCMGET)
-COMPATIBLE_IOCTL(TIOCMBIC)
-COMPATIBLE_IOCTL(TIOCMBIS)
-COMPATIBLE_IOCTL(TIOCMSET)
-COMPATIBLE_IOCTL(TIOCPKT)
-COMPATIBLE_IOCTL(TIOCNOTTY)
-COMPATIBLE_IOCTL(TIOCSTI)
-COMPATIBLE_IOCTL(TIOCOUTQ)
-COMPATIBLE_IOCTL(TIOCSPGRP)
-COMPATIBLE_IOCTL(TIOCGPGRP)
-COMPATIBLE_IOCTL(TIOCSCTTY)
-COMPATIBLE_IOCTL(TIOCGPTN)
-COMPATIBLE_IOCTL(TIOCSPTLCK)
-COMPATIBLE_IOCTL(TIOCGSERIAL)
-COMPATIBLE_IOCTL(TIOCSSERIAL)
-COMPATIBLE_IOCTL(TIOCSERGETLSR)
-
-COMPATIBLE_IOCTL(FIOCLEX)
-COMPATIBLE_IOCTL(FIONCLEX)
-COMPATIBLE_IOCTL(FIOASYNC)
-COMPATIBLE_IOCTL(FIONBIO)
-COMPATIBLE_IOCTL(FIONREAD)
-
-#ifdef CONFIG_FB
-/* Big F */
-COMPATIBLE_IOCTL(FBIOGET_VSCREENINFO)
-COMPATIBLE_IOCTL(FBIOPUT_VSCREENINFO)
-HANDLE_IOCTL(FBIOGET_FSCREENINFO, do_fbioget_fscreeninfo_ioctl)
-HANDLE_IOCTL(FBIOGETCMAP, do_fbiocmap_ioctl)
-HANDLE_IOCTL(FBIOPUTCMAP, do_fbiocmap_ioctl)
-COMPATIBLE_IOCTL(FBIOPAN_DISPLAY)
-#endif /* CONFIG_FB */
-
-#ifdef CONFIG_VT
-/* Big K */
-COMPATIBLE_IOCTL(PIO_FONT)
-COMPATIBLE_IOCTL(GIO_FONT)
-COMPATIBLE_IOCTL(KDSIGACCEPT)
-COMPATIBLE_IOCTL(KDGETKEYCODE)
-COMPATIBLE_IOCTL(KDSETKEYCODE)
-COMPATIBLE_IOCTL(KIOCSOUND)
-COMPATIBLE_IOCTL(KDMKTONE)
-COMPATIBLE_IOCTL(KDGKBTYPE)
-COMPATIBLE_IOCTL(KDSETMODE)
-COMPATIBLE_IOCTL(KDGETMODE)
-COMPATIBLE_IOCTL(KDSKBMODE)
-COMPATIBLE_IOCTL(KDGKBMODE)
-COMPATIBLE_IOCTL(KDSKBMETA)
-COMPATIBLE_IOCTL(KDGKBMETA)
-COMPATIBLE_IOCTL(KDGKBENT)
-COMPATIBLE_IOCTL(KDSKBENT)
-COMPATIBLE_IOCTL(KDGKBSENT)
-COMPATIBLE_IOCTL(KDSKBSENT)
-COMPATIBLE_IOCTL(KDGKBDIACR)
-COMPATIBLE_IOCTL(KDSKBDIACR)
-COMPATIBLE_IOCTL(KDKBDREP)
-COMPATIBLE_IOCTL(KDGKBLED)
-COMPATIBLE_IOCTL(KDSKBLED)
-COMPATIBLE_IOCTL(KDGETLED)
-COMPATIBLE_IOCTL(KDSETLED)
-COMPATIBLE_IOCTL(GIO_SCRNMAP)
-COMPATIBLE_IOCTL(PIO_SCRNMAP)
-COMPATIBLE_IOCTL(GIO_UNISCRNMAP)
-COMPATIBLE_IOCTL(PIO_UNISCRNMAP)
-COMPATIBLE_IOCTL(PIO_FONTRESET)
-COMPATIBLE_IOCTL(PIO_UNIMAPCLR)
-HANDLE_IOCTL(PIO_FONTX, do_fontx_ioctl)
-HANDLE_IOCTL(KDFONTOP, do_kdfontop_ioctl)
-
-/* Big V */
-COMPATIBLE_IOCTL(VT_SETMODE)
-COMPATIBLE_IOCTL(VT_GETMODE)
-COMPATIBLE_IOCTL(VT_GETSTATE)
-COMPATIBLE_IOCTL(VT_OPENQRY)
-COMPATIBLE_IOCTL(VT_ACTIVATE)
-COMPATIBLE_IOCTL(VT_WAITACTIVE)
-COMPATIBLE_IOCTL(VT_RELDISP)
-COMPATIBLE_IOCTL(VT_DISALLOCATE)
-COMPATIBLE_IOCTL(VT_RESIZE)
-COMPATIBLE_IOCTL(VT_RESIZEX)
-COMPATIBLE_IOCTL(VT_LOCKSWITCH)
-COMPATIBLE_IOCTL(VT_UNLOCKSWITCH)
-#endif
-
-/* Big S */
-COMPATIBLE_IOCTL(SCSI_IOCTL_GET_IDLUN)
-COMPATIBLE_IOCTL(SCSI_IOCTL_DOORLOCK)
-COMPATIBLE_IOCTL(SCSI_IOCTL_DOORUNLOCK)
-COMPATIBLE_IOCTL(SCSI_IOCTL_TEST_UNIT_READY)
-COMPATIBLE_IOCTL(SCSI_IOCTL_GET_BUS_NUMBER)
-COMPATIBLE_IOCTL(SCSI_IOCTL_SEND_COMMAND)
-
-/* Socket level stuff */
-COMPATIBLE_IOCTL(FIOSETOWN)
-COMPATIBLE_IOCTL(SIOCSPGRP)
-COMPATIBLE_IOCTL(FIOGETOWN)
-COMPATIBLE_IOCTL(SIOCGPGRP)
-COMPATIBLE_IOCTL(SIOCATMARK)
-COMPATIBLE_IOCTL(SIOCSIFLINK)
-COMPATIBLE_IOCTL(SIOCSIFENCAP)
-COMPATIBLE_IOCTL(SIOCGIFENCAP)
-COMPATIBLE_IOCTL(SIOCSIFBR)
-COMPATIBLE_IOCTL(SIOCGIFBR)
-COMPATIBLE_IOCTL(SIOCSARP)
-COMPATIBLE_IOCTL(SIOCGARP)
-COMPATIBLE_IOCTL(SIOCDARP)
-COMPATIBLE_IOCTL(SIOCSRARP)
-COMPATIBLE_IOCTL(SIOCGRARP)
-COMPATIBLE_IOCTL(SIOCDRARP)
-COMPATIBLE_IOCTL(SIOCADDDLCI)
-COMPATIBLE_IOCTL(SIOCDELDLCI)
-/* SG stuff */
-COMPATIBLE_IOCTL(SG_SET_TIMEOUT)
-COMPATIBLE_IOCTL(SG_GET_TIMEOUT)
-COMPATIBLE_IOCTL(SG_EMULATED_HOST)
-COMPATIBLE_IOCTL(SG_SET_TRANSFORM)
-COMPATIBLE_IOCTL(SG_GET_TRANSFORM)
-COMPATIBLE_IOCTL(SG_SET_RESERVED_SIZE)
-COMPATIBLE_IOCTL(SG_GET_RESERVED_SIZE)
-COMPATIBLE_IOCTL(SG_GET_SCSI_ID)
-COMPATIBLE_IOCTL(SG_SET_FORCE_LOW_DMA)
-COMPATIBLE_IOCTL(SG_GET_LOW_DMA)
-COMPATIBLE_IOCTL(SG_SET_FORCE_PACK_ID)
-COMPATIBLE_IOCTL(SG_GET_PACK_ID)
-COMPATIBLE_IOCTL(SG_GET_NUM_WAITING)
-COMPATIBLE_IOCTL(SG_SET_DEBUG)
-COMPATIBLE_IOCTL(SG_GET_SG_TABLESIZE)
-COMPATIBLE_IOCTL(SG_GET_COMMAND_Q)
-COMPATIBLE_IOCTL(SG_SET_COMMAND_Q)
-COMPATIBLE_IOCTL(SG_GET_VERSION_NUM)
-COMPATIBLE_IOCTL(SG_NEXT_CMD_LEN)
-COMPATIBLE_IOCTL(SG_SCSI_RESET)
-COMPATIBLE_IOCTL(SG_IO)
-COMPATIBLE_IOCTL(SG_GET_REQUEST_TABLE)
-COMPATIBLE_IOCTL(SG_SET_KEEP_ORPHAN)
-COMPATIBLE_IOCTL(SG_GET_KEEP_ORPHAN)
-/* PPP stuff */
-COMPATIBLE_IOCTL(PPPIOCGFLAGS)
-COMPATIBLE_IOCTL(PPPIOCSFLAGS)
-COMPATIBLE_IOCTL(PPPIOCGASYNCMAP)
-COMPATIBLE_IOCTL(PPPIOCSASYNCMAP)
-COMPATIBLE_IOCTL(PPPIOCGUNIT)
-COMPATIBLE_IOCTL(PPPIOCGRASYNCMAP)
-COMPATIBLE_IOCTL(PPPIOCSRASYNCMAP)
-COMPATIBLE_IOCTL(PPPIOCGMRU)
-COMPATIBLE_IOCTL(PPPIOCSMRU)
-COMPATIBLE_IOCTL(PPPIOCSMAXCID)
-COMPATIBLE_IOCTL(PPPIOCGXASYNCMAP)
-COMPATIBLE_IOCTL(PPPIOCSXASYNCMAP)
-COMPATIBLE_IOCTL(PPPIOCXFERUNIT)
-COMPATIBLE_IOCTL(PPPIOCGNPMODE)
-COMPATIBLE_IOCTL(PPPIOCSNPMODE)
-COMPATIBLE_IOCTL(PPPIOCGDEBUG)
-COMPATIBLE_IOCTL(PPPIOCSDEBUG)
-COMPATIBLE_IOCTL(PPPIOCNEWUNIT)
-COMPATIBLE_IOCTL(PPPIOCATTACH)
-COMPATIBLE_IOCTL(PPPIOCGCHAN)
-/* PPPOX */
-COMPATIBLE_IOCTL(PPPOEIOCSFWD)
-COMPATIBLE_IOCTL(PPPOEIOCDFWD)
-/* CDROM stuff */
-COMPATIBLE_IOCTL(CDROMPAUSE)
-COMPATIBLE_IOCTL(CDROMRESUME)
-COMPATIBLE_IOCTL(CDROMPLAYMSF)
-COMPATIBLE_IOCTL(CDROMPLAYTRKIND)
-COMPATIBLE_IOCTL(CDROMREADTOCHDR)
-COMPATIBLE_IOCTL(CDROMREADTOCENTRY)
-COMPATIBLE_IOCTL(CDROMSTOP)
-COMPATIBLE_IOCTL(CDROMSTART)
-COMPATIBLE_IOCTL(CDROMEJECT)
-COMPATIBLE_IOCTL(CDROMVOLCTRL)
-COMPATIBLE_IOCTL(CDROMSUBCHNL)
-COMPATIBLE_IOCTL(CDROMEJECT_SW)
-COMPATIBLE_IOCTL(CDROMMULTISESSION)
-COMPATIBLE_IOCTL(CDROM_GET_MCN)
-COMPATIBLE_IOCTL(CDROMRESET)
-COMPATIBLE_IOCTL(CDROMVOLREAD)
-COMPATIBLE_IOCTL(CDROMSEEK)
-COMPATIBLE_IOCTL(CDROMPLAYBLK)
-COMPATIBLE_IOCTL(CDROMCLOSETRAY)
-COMPATIBLE_IOCTL(CDROM_SET_OPTIONS)
-COMPATIBLE_IOCTL(CDROM_CLEAR_OPTIONS)
-COMPATIBLE_IOCTL(CDROM_SELECT_SPEED)
-COMPATIBLE_IOCTL(CDROM_SELECT_DISC)
-COMPATIBLE_IOCTL(CDROM_MEDIA_CHANGED)
-COMPATIBLE_IOCTL(CDROM_DRIVE_STATUS)
-COMPATIBLE_IOCTL(CDROM_DISC_STATUS)
-COMPATIBLE_IOCTL(CDROM_CHANGER_NSLOTS)
-COMPATIBLE_IOCTL(CDROM_LOCKDOOR)
-COMPATIBLE_IOCTL(CDROM_DEBUG)
-COMPATIBLE_IOCTL(CDROM_GET_CAPABILITY)
-/* DVD ioctls */
-COMPATIBLE_IOCTL(DVD_READ_STRUCT)
-COMPATIBLE_IOCTL(DVD_WRITE_STRUCT)
-COMPATIBLE_IOCTL(DVD_AUTH)
-/* Big L */
-COMPATIBLE_IOCTL(LOOP_SET_FD)
-COMPATIBLE_IOCTL(LOOP_CLR_FD)
 
-#ifdef CONFIG_NET
-/* And these ioctls need translation */
-HANDLE_IOCTL(SIOCGIFNAME, dev_ifname32)
-HANDLE_IOCTL(SIOCGIFCONF, dev_ifconf)
-HANDLE_IOCTL(SIOCGIFFLAGS, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFFLAGS, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFMETRIC, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFMETRIC, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFMTU, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFMTU, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFMEM, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFMEM, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFHWADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFHWADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCADDMULTI, dev_ifsioc)
-HANDLE_IOCTL(SIOCDELMULTI, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFINDEX, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFMAP, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFMAP, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFBRDADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFBRDADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFDSTADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFDSTADDR, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFNETMASK, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFNETMASK, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFPFLAGS, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFPFLAGS, dev_ifsioc)
-HANDLE_IOCTL(SIOCGPPPSTATS, dev_ifsioc)
-HANDLE_IOCTL(SIOCGPPPCSTATS, dev_ifsioc)
-HANDLE_IOCTL(SIOCGPPPVER, dev_ifsioc)
-HANDLE_IOCTL(SIOCGIFTXQLEN, dev_ifsioc)
-HANDLE_IOCTL(SIOCSIFTXQLEN, dev_ifsioc)
-HANDLE_IOCTL(SIOCADDRT, routing_ioctl)
-HANDLE_IOCTL(SIOCDELRT, routing_ioctl)
-/*
- * Note SIOCRTMSG is no longer, so this is safe and * the user would
- * have seen just an -EINVAL anyways.
- */
-HANDLE_IOCTL(SIOCRTMSG, ret_einval)
-HANDLE_IOCTL(SIOCGSTAMP, do_siocgstamp)
-#endif /* CONFIG_NET */
-
-HANDLE_IOCTL(EXT2_IOC32_GETFLAGS, do_ext2_ioctl)
-HANDLE_IOCTL(EXT2_IOC32_SETFLAGS, do_ext2_ioctl)
-HANDLE_IOCTL(EXT2_IOC32_GETVERSION, do_ext2_ioctl)
-HANDLE_IOCTL(EXT2_IOC32_SETVERSION, do_ext2_ioctl)
-
-HANDLE_IOCTL(HDIO_GETGEO, hdio_getgeo)         /* hdreg.h ioctls  */
-HANDLE_IOCTL(HDIO_GET_UNMASKINTR, hdio_ioctl_trans)
-HANDLE_IOCTL(HDIO_GET_MULTCOUNT, hdio_ioctl_trans)
-// HDIO_OBSOLETE_IDENTITY
-//HANDLE_IOCTL(HDIO_GET_KEEPSETTINGS, hdio_ioctl_trans)
-HANDLE_IOCTL(HDIO_GET_32BIT, hdio_ioctl_trans)
-HANDLE_IOCTL(HDIO_GET_NOWERR, hdio_ioctl_trans)
-HANDLE_IOCTL(HDIO_GET_DMA, hdio_ioctl_trans)
-HANDLE_IOCTL(HDIO_GET_NICE, hdio_ioctl_trans)
-COMPATIBLE_IOCTL(HDIO_GET_IDENTITY)
-// HDIO_TRISTATE_HWIF                          /* not implemented */
-// HDIO_DRIVE_TASK                             /* To do, need specs */
-COMPATIBLE_IOCTL(HDIO_DRIVE_CMD)
-COMPATIBLE_IOCTL(HDIO_SET_MULTCOUNT)
-COMPATIBLE_IOCTL(HDIO_SET_UNMASKINTR)
-//COMPATIBLE_IOCTL(HDIO_SET_KEEPSETTINGS)
-COMPATIBLE_IOCTL(HDIO_SET_32BIT)
-COMPATIBLE_IOCTL(HDIO_SET_NOWERR)
-COMPATIBLE_IOCTL(HDIO_SET_DMA)
-COMPATIBLE_IOCTL(HDIO_SET_PIO_MODE)
-COMPATIBLE_IOCTL(HDIO_SET_NICE)
-
-COMPATIBLE_IOCTL(BLKROSET)                     /* fs.h ioctls  */
-COMPATIBLE_IOCTL(BLKROGET)
-COMPATIBLE_IOCTL(BLKRRPART)
-HANDLE_IOCTL(BLKGETSIZE, w_long)
-
-COMPATIBLE_IOCTL(BLKFLSBUF)
-COMPATIBLE_IOCTL(BLKSECTSET)
-HANDLE_IOCTL(BLKSECTGET, w_long)
-COMPATIBLE_IOCTL(BLKSSZGET)
-HANDLE_IOCTL(BLKPG, blkpg_ioctl_trans)
-COMPATIBLE_IOCTL(BLKBSZGET)
-COMPATIBLE_IOCTL(BLKBSZSET)
-
-#ifdef CONFIG_MD
-/* status */
-COMPATIBLE_IOCTL(RAID_VERSION)
-COMPATIBLE_IOCTL(GET_ARRAY_INFO)
-COMPATIBLE_IOCTL(GET_DISK_INFO)
-COMPATIBLE_IOCTL(PRINT_RAID_DEBUG)
-COMPATIBLE_IOCTL(RAID_AUTORUN)
-
-/* configuration */
-COMPATIBLE_IOCTL(CLEAR_ARRAY)
-COMPATIBLE_IOCTL(ADD_NEW_DISK)
-COMPATIBLE_IOCTL(HOT_REMOVE_DISK)
-COMPATIBLE_IOCTL(SET_ARRAY_INFO)
-COMPATIBLE_IOCTL(SET_DISK_INFO)
-COMPATIBLE_IOCTL(WRITE_RAID_INFO)
-COMPATIBLE_IOCTL(UNPROTECT_ARRAY)
-COMPATIBLE_IOCTL(PROTECT_ARRAY)
-COMPATIBLE_IOCTL(HOT_ADD_DISK)
-COMPATIBLE_IOCTL(SET_DISK_FAULTY)
-
-/* usage */
-COMPATIBLE_IOCTL(RUN_ARRAY)
-COMPATIBLE_IOCTL(START_ARRAY)
-COMPATIBLE_IOCTL(STOP_ARRAY)
-COMPATIBLE_IOCTL(STOP_ARRAY_RO)
-COMPATIBLE_IOCTL(RESTART_ARRAY_RW)
-#endif /* CONFIG_MD */
+#include <linux/compat_ioctl.h>
+#define DECLARES
+#include "compat_ioctl.c"
 
 #ifdef CONFIG_SIBYTE_TBPROF
 COMPATIBLE_IOCTL(SBPROF_ZBSTART)
@@ -1277,46 +47,6 @@ COMPATIBLE_IOCTL(SBPROF_ZBSTOP)
 COMPATIBLE_IOCTL(SBPROF_ZBWAITFULL)
 #endif /* CONFIG_SIBYTE_TBPROF */
 
-COMPATIBLE_IOCTL(MTIOCTOP)                     /* mtio.h ioctls  */
-HANDLE_IOCTL(MTIOCGET32, mt_ioctl_trans)
-HANDLE_IOCTL(MTIOCPOS32, mt_ioctl_trans)
-HANDLE_IOCTL(MTIOCGETCONFIG32, mt_ioctl_trans)
-HANDLE_IOCTL(MTIOCSETCONFIG32, mt_ioctl_trans)
-// MTIOCRDFTSEG
-// MTIOCWRFTSEG
-// MTIOCVOLINFO
-// MTIOCGETSIZE
-// MTIOCFTFORMAT
-// MTIOCFTCMD
-
-COMPATIBLE_IOCTL(AUTOFS_IOC_READY)             /* auto_fs.h ioctls */
-COMPATIBLE_IOCTL(AUTOFS_IOC_FAIL)
-COMPATIBLE_IOCTL(AUTOFS_IOC_CATATONIC)
-COMPATIBLE_IOCTL(AUTOFS_IOC_PROTOVER)
-HANDLE_IOCTL(AUTOFS_IOC_SETTIMEOUT32, ioc_settimeout)
-COMPATIBLE_IOCTL(AUTOFS_IOC_EXPIRE)
-COMPATIBLE_IOCTL(AUTOFS_IOC_EXPIRE_MULTI)
-
-/* Little p (/dev/rtc, /dev/envctrl, etc.) */
-COMPATIBLE_IOCTL(_IOR('p', 20, int[7]))                /* RTCGET */
-COMPATIBLE_IOCTL(_IOW('p', 21, int[7]))                /* RTCSET */
-COMPATIBLE_IOCTL(RTC_AIE_ON)
-COMPATIBLE_IOCTL(RTC_AIE_OFF)
-COMPATIBLE_IOCTL(RTC_UIE_ON)
-COMPATIBLE_IOCTL(RTC_UIE_OFF)
-COMPATIBLE_IOCTL(RTC_PIE_ON)
-COMPATIBLE_IOCTL(RTC_PIE_OFF)
-COMPATIBLE_IOCTL(RTC_WIE_ON)
-COMPATIBLE_IOCTL(RTC_WIE_OFF)
-COMPATIBLE_IOCTL(RTC_ALM_SET)
-COMPATIBLE_IOCTL(RTC_ALM_READ)
-COMPATIBLE_IOCTL(RTC_RD_TIME)
-COMPATIBLE_IOCTL(RTC_SET_TIME)
-COMPATIBLE_IOCTL(RTC_WKALM_SET)
-COMPATIBLE_IOCTL(RTC_WKALM_RD)
 IOCTL_TABLE_END
 
 int ioctl_table_size = ARRAY_SIZE(ioctl_start);
-
-#define NR_IOCTL_TRANS         (sizeof(ioctl_translations) /   \
-                                sizeof(ioctl_translations[0]))
index eac9e07f5d0f6a7ddf443cb50b3c6226206512fe..6a2b36236ce5e4874f65680962a35af4854baea7 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/smp_lock.h>
 
 #include <asm/uaccess.h>
-#include <asm/pgalloc.h>
 #include <asm/mipsregs.h>
 #include <asm/prctl.h>
 
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c
new file mode 100644 (file)
index 0000000..1ed5ae5
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * Copyright 2002 Momentum Computer
+ * Author: mdharm@momenco.com
+ * Copyright (C) 2004 Ralf Baechle <ralf@linux-mips.org>
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <asm/ptrace.h>
+#include <linux/sched.h>
+#include <linux/kernel_stat.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/mv64340.h>
+
+static unsigned int irq_base;
+
+static inline int ls1bit32(unsigned int x)
+{
+        int b = 31, s;
+
+        s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
+        s =  8; if (x <<  8 == 0) s = 0; b -= s; x <<= s;
+        s =  4; if (x <<  4 == 0) s = 0; b -= s; x <<= s;
+        s =  2; if (x <<  2 == 0) s = 0; b -= s; x <<= s;
+        s =  1; if (x <<  1 == 0) s = 0; b -= s;
+
+        return b;
+}
+
+/* mask off an interrupt -- 1 is enable, 0 is disable */
+static inline void mask_mv64340_irq(unsigned int irq)
+{
+       uint32_t value;
+
+       if (irq < (irq_base + 32)) {
+               value = MV_READ(MV64340_INTERRUPT0_MASK_0_LOW);
+               value &= ~(1 << (irq - irq_base));
+               MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
+       } else {
+               value = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH);
+               value &= ~(1 << (irq - (irq_base - 32)));
+               MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
+       }
+}
+
+/* unmask an interrupt -- 1 is enable, 0 is disable */
+static inline void unmask_mv64340_irq(unsigned int irq)
+{
+       uint32_t value;
+
+       if (irq < (irq_base + 32)) {
+               value = MV_READ(MV64340_INTERRUPT0_MASK_0_LOW);
+               value |= 1 << (irq - irq_base);
+               MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
+       } else {
+               value = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH);
+               value |= 1 << (irq - (irq_base - 32));
+               MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
+       }
+}
+
+/*
+ * Enables the IRQ on Marvell Chip
+ */
+static void enable_mv64340_irq(unsigned int irq)
+{
+       unmask_mv64340_irq(irq);
+}
+
+/*
+ * Initialize the IRQ on Marvell Chip
+ */
+static unsigned int startup_mv64340_irq(unsigned int irq)
+{
+       unmask_mv64340_irq(irq);
+       return 0;
+}
+
+/*
+ * Disables the IRQ on Marvell Chip
+ */
+static void disable_mv64340_irq(unsigned int irq)
+{
+       mask_mv64340_irq(irq);
+}
+
+/*
+ * Masks and ACKs an IRQ
+ */
+static void mask_and_ack_mv64340_irq(unsigned int irq)
+{
+       mask_mv64340_irq(irq);
+}
+
+/*
+ * End IRQ processing
+ */
+static void end_mv64340_irq(unsigned int irq)
+{
+       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+               unmask_mv64340_irq(irq);
+}
+
+/*
+ * Interrupt handler for interrupts coming from the Marvell chip.
+ * It could be built in ethernet ports etc...
+ */
+void ll_mv64340_irq(struct pt_regs *regs)
+{
+       unsigned int irq_src_low, irq_src_high;
+       unsigned int irq_mask_low, irq_mask_high;
+
+       /* read the interrupt status registers */
+       irq_mask_low = MV_READ(MV64340_INTERRUPT0_MASK_0_LOW);
+       irq_mask_high = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH);
+       irq_src_low = MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_LOW);
+       irq_src_high = MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_HIGH);
+
+       /* mask for just the interrupts we want */
+       irq_src_low &= irq_mask_low;
+       irq_src_high &= irq_mask_high;
+
+       if (irq_src_low)
+               do_IRQ(ls1bit32(irq_src_low) + irq_base, regs);
+       else
+               do_IRQ(ls1bit32(irq_src_high) + irq_base + 32, regs);
+}
+
+#define shutdown_mv64340_irq   disable_mv64340_irq
+
+struct hw_interrupt_type mv64340_irq_type = {
+       "MV-64340",
+       startup_mv64340_irq,
+       shutdown_mv64340_irq,
+       enable_mv64340_irq,
+       disable_mv64340_irq,
+       mask_and_ack_mv64340_irq,
+       end_mv64340_irq,
+       NULL
+};
+
+void __init mv64340_irq_init(unsigned int base)
+{
+       int i;
+
+       /* Reset irq handlers pointers to NULL */
+       for (i = base; i < base + 64; i++) {
+               irq_desc[i].status = IRQ_DISABLED;
+               irq_desc[i].action = 0;
+               irq_desc[i].depth = 2;
+               irq_desc[i].handler = &mv64340_irq_type;
+       }
+
+       irq_base = base;
+}
index 98ba6e7c30eb4a3fceb6923743799ef75ad6f857..f5d779fd0355343f406a0ad33f0f68f1b93bbc08 100644 (file)
@@ -21,12 +21,12 @@ static int irq_base;
 
 static inline void unmask_rm7k_irq(unsigned int irq)
 {
-       set_c0_intcontrol(1 << (irq - irq_base));
+       set_c0_intcontrol(0x100 << (irq - irq_base));
 }
 
 static inline void mask_rm7k_irq(unsigned int irq)
 {
-       clear_c0_intcontrol(1 << (irq - irq_base));
+       clear_c0_intcontrol(0x100 << (irq - irq_base));
 }
 
 static inline void rm7k_cpu_irq_enable(unsigned int irq)
@@ -85,6 +85,8 @@ void __init rm7k_cpu_irq_init(int base)
 {
        int i;
 
+       clear_c0_intcontrol(0x00000f00);                /* Mask all */
+
        for (i = base; i < base + 4; i++) {
                irq_desc[i].status = IRQ_DISABLED;
                irq_desc[i].action = NULL;
index 162d430921b6fd5b206ba8110f42997443e38fb5..06813fe22b57bdafc66cf2895b4526858935928c 100644 (file)
@@ -1650,6 +1650,19 @@ sys32_ipc (u32 call, int first, int second, int third, u32 ptr, u32 fifth)
        return err;
 }
 
+asmlinkage long sys32_shmat(int shmid, char __user *shmaddr,
+                         int shmflg, int32_t *addr)
+{
+       unsigned long raddr;
+       int err;
+
+       err = do_shmat(shmid, shmaddr, shmflg, &raddr);
+       if (err)
+               return err;
+
+       return put_user(raddr, addr);
+}
+
 struct sysctl_args32
 {
        compat_caddr_t name;
index ff19645be9cd291c1a5fe21327c3fc8828b03bbe..da7295d53113e162f1c08fb46be20bca2031aee3 100644 (file)
-/*  Kernel module help for MIPS.
-    Copyright (C) 2001 Rusty Russell.
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+/*
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ *  Copyright (C) 2001 Rusty Russell.
+ *  Copyright (C) 2003, 2004 Ralf Baechle (ralf@linux-mips.org)
+ */
+
+#undef DEBUG
+
 #include <linux/moduleloader.h>
 #include <linux/elf.h>
 #include <linux/vmalloc.h>
 #include <linux/slab.h>
 #include <linux/fs.h>
 #include <linux/string.h>
-#include <linux/mm.h>
+#include <linux/kernel.h>
 
 struct mips_hi16 {
        struct mips_hi16 *next;
        Elf32_Addr *addr;
-       Elf32_Addr value;
+       Elf64_Addr value;
 };
 
 static struct mips_hi16 *mips_hi16_list;
 
-#if 0
-#define DEBUGP printk
-#else
-#define DEBUGP(fmt , ...)
-#endif
-
-static struct vm_struct * modvmlist = NULL;
-
-void module_unmap(void * addr)
-{
-       struct vm_struct **p, *tmp;
-       int i;
-
-       if (!addr)
-               return;
-       if ((PAGE_SIZE-1) & (unsigned long) addr) {
-               printk("Trying to unmap module with bad address (%p)\n", addr);
-               return;
-       }
-
-       for (p = &modvmlist ; (tmp = *p) ; p = &tmp->next) {
-               if (tmp->addr == addr) {
-                       *p = tmp->next;
-                       goto found;
-               }
-       }
-       printk("Trying to unmap nonexistent module vm area (%p)\n", addr);
-       return;
-
-found:
-       unmap_vm_area(tmp);
-       
-       for (i = 0; i < tmp->nr_pages; i++) {
-               if (unlikely(!tmp->pages[i]))
-                       BUG();
-               __free_page(tmp->pages[i]);
-       }
-
-       kfree(tmp->pages);
-       kfree(tmp);
-}
-
-#define MODULES_LEN    (512*1024*1024)         /* Random silly large number */
-#define MODULES_END    (512*1024*1024)         /* Random silly large number */
-#define MODULES_VADDR  (512*1024*1024)         /* Random silly large number */
-
-void *module_map(unsigned long size)
-{
-       struct vm_struct **p, *tmp, *area;
-       struct page **pages;
-       void * addr;
-       unsigned int nr_pages, array_size, i;
-
-       size = PAGE_ALIGN(size);
-       if (!size || size > MODULES_LEN)
-               return NULL;
-               
-       addr = (void *) MODULES_VADDR;
-       for (p = &modvmlist; (tmp = *p) ; p = &tmp->next) {
-               if (size + (unsigned long) addr < (unsigned long) tmp->addr)
-                       break;
-               addr = (void *) (tmp->size + (unsigned long) tmp->addr);
-       }
-       if ((unsigned long) addr + size >= MODULES_END)
-               return NULL;
-       
-       area = (struct vm_struct *) kmalloc(sizeof(*area), GFP_KERNEL);
-       if (!area)
-               return NULL;
-       area->size = size + PAGE_SIZE;
-       area->addr = addr;
-       area->next = *p;
-       area->pages = NULL;
-       area->nr_pages = 0;
-       area->phys_addr = 0;
-       *p = area;
-
-       nr_pages = size >> PAGE_SHIFT;
-       array_size = (nr_pages * sizeof(struct page *));
-
-       area->nr_pages = nr_pages;
-       area->pages = pages = kmalloc(array_size, GFP_KERNEL);
-       if (!area->pages)
-               goto fail;
-
-       memset(area->pages, 0, array_size);
-
-       for (i = 0; i < area->nr_pages; i++) {
-               area->pages[i] = alloc_page(GFP_KERNEL);
-               if (unlikely(!area->pages[i]))
-                       goto fail;
-       }
-
-       if (map_vm_area(area, PAGE_KERNEL, &pages)) {
-               unmap_vm_area(area);
-               goto fail;
-       }
-
-       return area->addr;
-
-fail:
-       if (area->pages) {
-               for (i = 0; i < area->nr_pages; i++) {
-                       if (area->pages[i])
-                               __free_page(area->pages[i]);
-               }
-               kfree(area->pages);
-       }
-       kfree(area);
-
-       return NULL;
-}
-
 void *module_alloc(unsigned long size)
 {
        if (size == 0)
@@ -168,156 +59,218 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
        return 0;
 }
 
-int apply_relocate(Elf32_Shdr *sechdrs,
+int apply_relocate(Elf64_Shdr *sechdrs,
                   const char *strtab,
                   unsigned int symindex,
                   unsigned int relsec,
                   struct module *me)
 {
-       unsigned int i;
-       Elf32_Rel *rel = (void *)sechdrs[relsec].sh_offset;
-       Elf32_Sym *sym;
-       uint32_t *location;
-       Elf32_Addr v;
+       /*
+        * We don't want to deal with REL relocations - RELA is so much saner.
+        */
+       if (!sechdrs[relsec].sh_size)
+               return 0;
 
-       DEBUGP("Applying relocate section %u to %u\n", relsec,
-              sechdrs[relsec].sh_info);
-       for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
-               /* This is where to make the change */
-               location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_offset
-                       + rel[i].r_offset;
-               /* This is the symbol it is referring to */
-               sym = (Elf32_Sym *)sechdrs[symindex].sh_offset
-                       + ELF32_R_SYM(rel[i].r_info);
-               if (!sym->st_value) {
-                       printk(KERN_WARNING "%s: Unknown symbol %s\n",
-                              me->name, strtab + sym->st_name);
-                       return -ENOENT;
-               }
+       printk(KERN_ERR "module %s: REL relocation unsupported\n",
+              me->name);
+       return -ENOEXEC;
+}
 
-               v = sym->st_value;
+static int apply_r_mips_none(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       return 0;
+}
+
+static int apply_r_mips_32(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       *location = v;
+
+       return 0;
+}
+
+static int apply_r_mips_26(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       if (v % 4) {
+               printk(KERN_ERR "module %s: dangerous relocation\n", me->name);
+               return -ENOEXEC;
+       }
+
+       if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) {
+               printk(KERN_ERR
+                      "module %s: relocation overflow\n",
+                      me->name);
+               return -ENOEXEC;
+       }
+
+       *location = (*location & ~0x03ffffff) | ((v >> 2) & 0x03ffffff);
+
+       return 0;
+}
+
+static int apply_r_mips_hi16(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       struct mips_hi16 *n;
+
+       /*
+        * We cannot relocate this one now because we don't know the value of
+        * the carry we need to add.  Save the information, and let LO16 do the
+        * actual relocation.
+        */
+       n = kmalloc(sizeof *n, GFP_KERNEL);
+       if (!n)
+               return -ENOMEM;
+
+       n->addr = location;
+       n->value = v;
+       n->next = mips_hi16_list;
+       mips_hi16_list = n;
+
+       return 0;
+}
+
+static int apply_r_mips_lo16(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       unsigned long insnlo = *location;
+       Elf32_Addr val, vallo;
 
-               switch (ELF32_R_TYPE(rel[i].r_info)) {
-               case R_MIPS_NONE:
-                       break;
-
-               case R_MIPS_32:
-                       *location += v;
-                       break;
-
-               case R_MIPS_26:
-                       if (v % 4)
-                               printk(KERN_ERR
-                                      "module %s: dangerous relocation\n",
-                                      me->name);
-                               return -ENOEXEC;
-                       if ((v & 0xf0000000) !=
-                           (((unsigned long)location + 4) & 0xf0000000))
-                               printk(KERN_ERR
-                                      "module %s: relocation overflow\n",
-                                      me->name);
-                               return -ENOEXEC;
-                       *location = (*location & ~0x03ffffff) |
-                                   ((*location + (v >> 2)) & 0x03ffffff);
-                       break;
-
-               case R_MIPS_HI16: {
-                       struct mips_hi16 *n;
+       /* Sign extend the addend we extract from the lo insn.  */
+       vallo = ((insnlo & 0xffff) ^ 0x8000) - 0x8000;
+
+       if (mips_hi16_list != NULL) {
+               struct mips_hi16 *l;
+
+               l = mips_hi16_list;
+               while (l != NULL) {
+                       struct mips_hi16 *next;
+                       unsigned long insn;
 
                        /*
-                        * We cannot relocate this one now because we don't
-                        * know the value of the carry we need to add.  Save
-                        * the information, and let LO16 do the actual
-                        * relocation.
+                        * The value for the HI16 had best be the same.
                         */
-                       n = (struct mips_hi16 *) kmalloc(sizeof *n, GFP_KERNEL);
-                       n->addr = location;
-                       n->value = v;
-                       n->next = mips_hi16_list;
-                       mips_hi16_list = n;
-                       break;
-               }
+                       if (v != l->value)
+                               goto out_danger;
 
-               case R_MIPS_LO16: {
-                       unsigned long insnlo = *location;
-                       Elf32_Addr val, vallo;
-
-                       /* Sign extend the addend we extract from the lo insn.  */
-                       vallo = ((insnlo & 0xffff) ^ 0x8000) - 0x8000;
-
-                       if (mips_hi16_list != NULL) {
-                               struct mips_hi16 *l;
-
-                               l = mips_hi16_list;
-                               while (l != NULL) {
-                                       struct mips_hi16 *next;
-                                       unsigned long insn;
-
-                                       /*
-                                        * The value for the HI16 had best be
-                                        * the same.
-                                        */
-                                       printk(KERN_ERR "module %s: dangerous "
-                                              "relocation\n", me->name);
-                                       return -ENOEXEC;
-
-                                       /*
-                                        * Do the HI16 relocation.  Note that
-                                        * we actually don't need to know
-                                        * anything about the LO16 itself,
-                                        * except where to find the low 16 bits
-                                        * of the addend needed by the LO16.
-                                        */
-                                       insn = *l->addr;
-                                       val = ((insn & 0xffff) << 16) + vallo;
-                                       val += v;
-
-                                       /*
-                                        * Account for the sign extension that
-                                        * will happen in the low bits.
-                                        */
-                                       val = ((val >> 16) + ((val & 0x8000) !=
-                                             0)) & 0xffff;
-
-                                       insn = (insn & ~0xffff) | val;
-                                       *l->addr = insn;
-
-                                       next = l->next;
-                                       kfree(l);
-                                       l = next;
-                               }
-
-                               mips_hi16_list = NULL;
-                       }
+                       /*
+                        * Do the HI16 relocation.  Note that we actually don't
+                        * need to know anything about the LO16 itself, except
+                        * where to find the low 16 bits of the addend needed
+                        * by the LO16.
+                        */
+                       insn = *l->addr;
+                       val = ((insn & 0xffff) << 16) + vallo;
+                       val += v;
 
                        /*
-                        * Ok, we're done with the HI16 relocs.  Now deal with
-                        * the LO16.
+                        * Account for the sign extension that will happen in
+                        * the low bits.
                         */
-                       val = v + vallo;
-                       insnlo = (insnlo & ~0xffff) | (val & 0xffff);
-                       *location = insnlo;
-                       break;
-               }
+                       val = ((val >> 16) + ((val & 0x8000) != 0)) & 0xffff;
 
-               default:
-                       printk(KERN_ERR "module %s: Unknown relocation: %u\n",
-                              me->name, ELF32_R_TYPE(rel[i].r_info));
-                       return -ENOEXEC;
+                       insn = (insn & ~0xffff) | val;
+                       *l->addr = insn;
+
+                       next = l->next;
+                       kfree(l);
+                       l = next;
                }
+
+               mips_hi16_list = NULL;
        }
+
+       /*
+        * Ok, we're done with the HI16 relocs.  Now deal with the LO16.
+        */
+       insnlo = (insnlo & ~0xffff) | (v & 0xffff);
+       *location = insnlo;
+
        return 0;
+
+out_danger:
+       printk(KERN_ERR "module %s: dangerous " "relocation\n", me->name);
+
+       return -ENOEXEC;
 }
 
-int apply_relocate_add(Elf32_Shdr *sechdrs,
+static int apply_r_mips_64(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       *(uint64_t *) location = v;
+
+       return 0;
+}
+
+
+static int apply_r_mips_higher(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       *location = (*location & 0xffff0000) |
+                   ((((long long) v + 0x80008000LL) >> 32) & 0xffff);
+
+       return 0;
+}
+
+static int apply_r_mips_highest(struct module *me, uint32_t *location,
+       Elf64_Addr v)
+{
+       *location = (*location & 0xffff0000) |
+                   ((((long long) v + 0x800080008000LL) >> 48) & 0xffff);
+
+       return 0;
+}
+
+static int (*reloc_handlers[]) (struct module *me, uint32_t *location,
+       Elf64_Addr v) = {
+       [R_MIPS_NONE]           = apply_r_mips_none,
+       [R_MIPS_32]             = apply_r_mips_32,
+       [R_MIPS_26]             = apply_r_mips_26,
+       [R_MIPS_HI16]           = apply_r_mips_hi16,
+       [R_MIPS_LO16]           = apply_r_mips_lo16,
+       [R_MIPS_64]             = apply_r_mips_64,
+       [R_MIPS_HIGHER]         = apply_r_mips_higher,
+       [R_MIPS_HIGHEST]        = apply_r_mips_highest
+};
+
+int apply_relocate_add(Elf64_Shdr *sechdrs,
                       const char *strtab,
                       unsigned int symindex,
                       unsigned int relsec,
                       struct module *me)
 {
-       printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n",
-              me->name);
-       return -ENOEXEC;
+       Elf64_Mips_Rela *rel = (void *) sechdrs[relsec].sh_addr;
+       Elf64_Sym *sym;
+       uint32_t *location;
+       unsigned int i;
+       Elf64_Addr v;
+       int res;
+
+       pr_debug("Applying relocate section %u to %u\n", relsec,
+              sechdrs[relsec].sh_info);
+
+       for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
+               /* This is where to make the change */
+               location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
+                       + rel[i].r_offset;
+               /* This is the symbol it is referring to */
+               sym = (Elf64_Sym *)sechdrs[symindex].sh_addr + rel[i].r_sym;
+               if (!sym->st_value) {
+                       printk(KERN_WARNING "%s: Unknown symbol %s\n",
+                              me->name, strtab + sym->st_name);
+                       return -ENOENT;
+               }
+
+               v = sym->st_value;
+
+               res = reloc_handlers[rel[i].r_type](me, location, v);
+               if (res)
+                       return res;
+       }
+
+       return 0;
 }
 
 int module_finalize(const Elf_Ehdr *hdr,
index ec9a36717ee9b13d6d920e53b5267eef7062765d..0f159f30e89477ad16335483d662fa77ec4ad2ec 100644 (file)
@@ -117,7 +117,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
                      cpu_has_watch ? "yes" : "no");
 
        sprintf(fmt, "VCE%%c exceptions\t\t: %s\n",
-               cpu_has_vce ? "%d" : "not available");
+               cpu_has_vce ? "%u" : "not available");
        seq_printf(m, fmt, 'D', vced_count);
        seq_printf(m, fmt, 'I', vcei_count);
 
index 4818c666469e4fabd0d013e24f898ce3129e8e9b..243e7b629af61f694b927f3004493e4d7a84d4f1 100644 (file)
@@ -90,7 +90,7 @@ LEAF(resume)
        sw      t1, kernelsp
 
        mfc0    t1, CP0_STATUS          /* Do we really need this? */
-       li      a3, 0xff00
+       li      a3, 0xff01
        and     t1, a3
        lw      a2, THREAD_STATUS(a1)
        nor     a3, $0, a3
index 5ef45f6912906e12b31435501b0757f5bb1e366a..ebb643d8d14c0812c6ec348cb29b56848b0c5ec3 100644 (file)
@@ -81,7 +81,7 @@ LEAF(_save_fp_context)
         li     v0, 0                                   # success
        END(_save_fp_context)
 
-#ifdef CONFIG_MIPS64
+#ifdef CONFIG_MIPS32_COMPAT
        /* Save 32-bit process floating point context */
 LEAF(_save_fp_context32)
        cfc1    t1, fcr31
@@ -157,7 +157,7 @@ LEAF(_restore_fp_context)
         li     v0, 0                                   # success
        END(_restore_fp_context)
 
-#ifdef CONFIG_MIPS64
+#ifdef CONFIG_MIPS32_COMPAT
 LEAF(_restore_fp_context32)
        /* Restore an o32 sigcontext.  */
        EX      lw t0, SC32_FPC_CSR(a0)
index c3ed21b4a1e6827fb51e4bc095a328c8df376c19..9eb885d239b5a66ca6f4c5bcd5a94cac1a054274 100644 (file)
@@ -99,7 +99,7 @@
        set_saved_sp    t0, t1, t2
 
        mfc0    t1, CP0_STATUS          /* Do we really need this? */
-       li      a3, 0xff00
+       li      a3, 0xff01
        and     t1, a3
        LONG_L  a2, THREAD_STATUS(a1)
        nor     a3, $0, a3
index 7730373c94e2aefd64640a62f9aa942504dc84f3..6a89b53ea1d562ebadf00a365432356a4d30b6ec 100644 (file)
@@ -139,7 +139,7 @@ EXPORT(sysn32_call_table)
        PTR     sys_mincore
        PTR     sys_madvise
        PTR     sys_shmget
-       PTR     sys_shmat
+       PTR     sys32_shmat
        PTR     sys_shmctl                      /* 6030 */
        PTR     sys_dup
        PTR     sys_dup2
index 31077e40dac088fdb1a655c3e107ae3a7efc9150..273d10c29d5f9bb0cb3219c07f87faae1c06ac1f 100644 (file)
@@ -350,7 +350,7 @@ static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
        sp -= 32;
 
        /* This is the X/Open sanctioned signal stack switching.  */
-       if ((ka->sa.sa_flags & SA_ONSTACK) && ! on_sig_stack(sp))
+       if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0))
                sp = current->sas_ss_sp + current->sas_ss_size;
 
        return (void *)((sp - frame_size) & ALMASK);
index 44a30542626d06c9aa9eec41d8efdd4982d8027e..0c4ee2afef6873ca86d7dc7e882d7305f3ec883c 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <asm/asm.h>
 #include <asm/bitops.h>
-#include <asm/pgalloc.h>
 #include <asm/sim.h>
 #include <asm/uaccess.h>
 #include <asm/ucontext.h>
@@ -519,7 +518,7 @@ static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
        sp -= 32;
 
        /* This is the X/Open sanctioned signal stack switching.  */
-       if ((ka->sa.sa_flags & SA_ONSTACK) && ! on_sig_stack(sp))
+       if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0))
                sp = current->sas_ss_sp + current->sas_ss_size;
 
        return (void *)((sp - frame_size) & ALMASK);
index f6b017aa500090de4487fb5cbb89cc9d56ae5614..a3d9740f15d0065b1e1c01c38f8f6268820f135e 100644 (file)
@@ -29,7 +29,6 @@
 
 #include <asm/asm.h>
 #include <asm/bitops.h>
-#include <asm/pgalloc.h>
 #include <asm/sim.h>
 #include <asm/uaccess.h>
 #include <asm/ucontext.h>
@@ -137,7 +136,7 @@ static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
        sp -= 32;
 
        /* This is the X/Open sanctioned signal stack switching.  */
-       if ((ka->sa.sa_flags & SA_ONSTACK) && ! on_sig_stack(sp))
+       if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0))
                sp = current->sas_ss_sp + current->sas_ss_size;
 
        return (void *)((sp - frame_size) & ALMASK);
index e4698304705cbe2242259c2adda3b3a487e0f35b..7e1eca9736b1699f79370967c286fce2cb8e20f3 100644 (file)
@@ -63,6 +63,13 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
 {
        struct vm_area_struct * vmm;
        int do_color_align;
+       unsigned long task_size;
+
+#if CONFIG_MIPS32
+       task_size = TASK_SIZE;
+#else
+       task_size = (current->thread.mflags & MF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE;
+#endif
 
        if (flags & MAP_FIXED) {
                /*
@@ -74,7 +81,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
                return addr;
        }
 
-       if (len > TASK_SIZE)
+       if (len > task_size)
                return -ENOMEM;
        do_color_align = 0;
        if (filp || (flags & MAP_SHARED))
@@ -85,7 +92,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
                else
                        addr = PAGE_ALIGN(addr);
                vmm = find_vma(current->mm, addr);
-               if (TASK_SIZE - len >= addr &&
+               if (task_size - len >= addr &&
                    (!vmm || addr + len <= vmm->vm_start))
                        return addr;
        }
@@ -97,7 +104,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
 
        for (vmm = find_vma(current->mm, addr); ; vmm = vmm->vm_next) {
                /* At this point:  (!vmm || addr < vmm->vm_end). */
-               if (TASK_SIZE - len < addr)
+               if (task_size - len < addr)
                        return -ENOMEM;
                if (!vmm || addr + len <= vmm->vm_start)
                        return addr;
@@ -365,6 +372,22 @@ asmlinkage int sys_ipc (uint call, int first, int second,
        }
 }
 
+/*
+ * Native ABI that is O32 or N64 version
+ */
+asmlinkage long sys_shmat(int shmid, char __user *shmaddr,
+                          int shmflg, unsigned long *addr)
+{
+       unsigned long raddr;
+       int err;
+
+       err = do_shmat(shmid, shmaddr, shmflg, &raddr);
+       if (err)
+               return err;
+
+       return put_user(raddr, addr);
+}
+
 /*
  * No implemented yet ...
  */
index 924cbe9988dbf9fcc447fdfec23b8bf23e6724ec..1b10357abc7e1f5cb2e5d645acfcdc89ae80c4d2 100644 (file)
@@ -33,7 +33,6 @@
 
 #include <asm/ptrace.h>
 #include <asm/page.h>
-#include <asm/pgalloc.h>
 #include <asm/uaccess.h>
 #include <asm/inventory.h>
 
index 17b39377c5a0e8c2821f7ad37710103a13310051..d72026927fec26ff2ecd64617157727de1bb87bd 100644 (file)
@@ -977,8 +977,7 @@ void __init trap_init(void)
                memcpy((void *)(CAC_BASE + 0x300), &except_vec_ejtag_debug, 0x80);
 
        /*
-        * Only some CPUs have the watch exceptions or a dedicated
-        * interrupt vector.
+        * Only some CPUs have the watch exceptions.
         */
        if (cpu_has_watch)
                set_except_vector(23, handle_watch);
index 20d199bc30f6e0c886fbee50da71f26dc17f6b5b..0d5aec436725678eb99212db7c848c907ccb9e45 100644 (file)
@@ -7,7 +7,6 @@ obj-y                           += reset.o setup.o prom.o lasat_board.o \
 
 obj-$(CONFIG_LASAT_SYSCTL)     += sysctl.o
 obj-$(CONFIG_DS1603)           += ds1603.o
-obj-$(CONFIG_PCI)              += pci.o
 obj-$(CONFIG_PICVUE)           += picvue.o
 obj-$(CONFIG_PICVUE_PROC)      += picvue_proc.o
 
index 5f566bae0a0516710be760ccb168dfb85e00f4e3..f6add041ebec1a77dfcd33e3bf787d5e76641f2c 100644 (file)
@@ -41,9 +41,9 @@ static u32 at93c_datareg_read(void)
 static void at93c_cycle_clk(u32 data)
 {
        at93c_reg_write(data | at93c->clk);
-       ndelay(250);
+       lasat_ndelay(250);
        at93c_reg_write(data & ~at93c->clk);
-       ndelay(250);
+       lasat_ndelay(250);
 }
 
 static void at93c_write_databit(u8 bit)
@@ -55,7 +55,7 @@ static void at93c_write_databit(u8 bit)
                data &= ~(1 << at93c->wdata_shift);
 
        at93c_reg_write(data);
-       ndelay(100);
+       lasat_ndelay(100);
        at93c_cycle_clk(data);
 }
 
@@ -95,13 +95,13 @@ static void at93c_write_bits(u32 data, int size)
 static void at93c_init_op(void)
 {
        at93c_reg_write((at93c_reg_read() | at93c->cs) & ~at93c->clk & ~(1 << at93c->rdata_shift));
-       ndelay(50);
+       lasat_ndelay(50);
 }
 
 static void at93c_end_op(void)
 {
        at93c_reg_write(at93c_reg_read() & ~at93c->cs);
-       ndelay(250);
+       lasat_ndelay(250);
 }
 
 static void at93c_wait(void) 
index 78a0887cc9639316d4c031af1825cad18af35df1..7bbf6cf923c98f85f7a00e556558e2ccc64fe7a2 100644 (file)
@@ -51,14 +51,14 @@ static void rtc_cycle_clock(unsigned long data)
 {
        data |= ds1603->clk;
        rtc_reg_write(data);
-       ndelay(250);
+       lasat_ndelay(250);
        if (ds1603->data_reversed)
                data &= ~ds1603->data;
        else
                data |= ds1603->data;
        data &= ~ds1603->clk;
        rtc_reg_write(data);
-       ndelay(250 + ds1603->huge_delay);
+       lasat_ndelay(250 + ds1603->huge_delay);
 }
 
 static void rtc_write_databit(unsigned int bit)
@@ -72,7 +72,7 @@ static void rtc_write_databit(unsigned int bit)
                data &= ~ds1603->data;
 
        rtc_reg_write(data);
-       ndelay(50 + ds1603->huge_delay);
+       lasat_ndelay(50 + ds1603->huge_delay);
        rtc_cycle_clock(data);
 }
 
@@ -125,13 +125,13 @@ static void rtc_init_op(void)
 
        rtc_reg_write(rtc_reg_read() & ~ds1603->clk);
 
-       ndelay(50);
+       lasat_ndelay(50);
 }
 
 static void rtc_end_op(void)
 {
        rtc_nrst_low();
-       ndelay(1000);
+       lasat_ndelay(1000);
 }
 
 /* interface */
index f21278335bec8bedb2d1bff65cf1437574cdb233..18b6430f11be1295697b470c0e0f3a05ecee5487 100644 (file)
@@ -18,14 +18,15 @@ KERNEL_ENTRY = $(shell $(NM) $(KERNEL_IMAGE) | grep kernel_entry | cut -f1 -d\ )
 
 LDSCRIPT= -L$(obj) -Tromscript.normal
 
-AFLAGS_head.o += -D_kernel_start=0x$(KERNEL_START) \
+HEAD_DEFINES := -D_kernel_start=0x$(KERNEL_START) \
                -D_kernel_entry=0x$(KERNEL_ENTRY) \
                -D VERSION="\"$(Version)\"" \
                -D TIMESTAMP=$(shell date +%s) 
 
-head.o: $(KERNEL_IMAGE)
+$(obj)/head.o: $(obj)/head.S $(KERNEL_IMAGE)
+       $(CC) -fno-pic $(HEAD_DEFINES) -I$(TOPDIR)/include -c -o $@ $<
 
-obj-y = head.o kImage.o
+OBJECTS = head.o kImage.o
 
 rom.sw:        $(obj)/rom.sw
 
@@ -36,7 +37,7 @@ $(obj)/rom.bin: $(obj)/rom
        $(OBJCOPY) -O binary -S $^ $@
 
 # Rule to make the bootloader
-$(obj)/rom: $(addprefix $(obj)/,$(obj-y))
+$(obj)/rom: $(addprefix $(obj)/,$(OBJECTS))
        $(LD) $(LDFLAGS) $(LDSCRIPT) -o $@ $^
 
 $(obj)/%.o: $(obj)/%.gz
index 2a09d018aba96343264d19137fc67dd02acdb242..08871349ade16a07762c8d670acccb59073bf731 100644 (file)
@@ -33,7 +33,7 @@ static volatile int *lasat_int_status = NULL;
 static volatile int *lasat_int_mask = NULL;
 static volatile int lasat_int_mask_shift;
 
-extern asmlinkage void mipsIRQ(void);
+extern asmlinkage void lasatIRQ(void);
 
 void disable_lasat_irq(unsigned int irq_nr)
 {
@@ -112,7 +112,6 @@ static unsigned long get_int_status_200(void)
 
 void lasat_hw0_irqdispatch(struct pt_regs *regs)
 {
-       struct irqaction *action;
        unsigned long int_status;
        int irq;
 
@@ -141,7 +140,6 @@ void __init init_IRQ(void)
                *lasat_int_mask = 0;
                break;
        case MACH_LASAT_200:
-               printk("**** MACH_LASAT_200 interrupt routines\n");
                lasat_int_status = (void *)LASAT_INT_STATUS_REG_200;
                lasat_int_mask = (void *)LASAT_INT_MASK_REG_200;
                lasat_int_mask_shift = LASATINT_MASK_SHIFT_200;
@@ -153,7 +151,7 @@ void __init init_IRQ(void)
        }
 
        /* Now safe to set the exception vector. */
-       set_except_vector(0, mipsIRQ);
+       set_except_vector(0, lasatIRQ);
 
        for (i = 0; i <= LASATINT_END; i++) {
                irq_desc[i].status      = IRQ_DISABLED;
index 260dea1be86e8f20b82c04619c206d669b540e43..2a2b0d056561e523237ca874513e7024fd197065 100644 (file)
 
        .text
        .set    noreorder
-       .set    noat
        .align  5
-       NESTED(mipsIRQ, PT_SIZE, sp)
+       NESTED(lasatIRQ, PT_SIZE, sp)
+       .set    noat
        SAVE_ALL
        CLI
        .set    at
+       .set    noreorder
 
        mfc0    s0, CP0_CAUSE           # get irq mask
 
@@ -39,9 +40,9 @@
         andi   a0, s0, CAUSEF_IP2      # delay slot, check hw0 interrupt
 
        /* Wheee, a timer interrupt. */
-       move    a0, sp
-       jal     lasat_timer_interrupt
-        nop
+       li      a0, 7
+       jal     ll_timer_interrupt
+        move   a1, sp
 
        j       ret_from_irq
         nop
@@ -65,4 +66,4 @@
 
        j       ret_from_irq
         nop
-       END(mipsIRQ)
+       END(lasatIRQ)
diff --git a/arch/mips/lasat/pci.c b/arch/mips/lasat/pci.c
deleted file mode 100644 (file)
index fce000f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/pci.h>
-#include <asm/bootinfo.h>
-
-extern struct pci_ops nile4_pci_ops;
-extern struct pci_ops gt64120_pci_ops;
-
-void __init pcibios_init(void)
-{
-       struct pci_ops *pci_ops;
-
-       switch (mips_machtype) {
-       case MACH_LASAT_100:
-               pci_ops = &gt64120_pci_ops;
-               break;
-       case MACH_LASAT_200:
-               pci_ops = &nile4_pci_ops;
-               break;
-       default:
-               panic("pcibios_init: mips_machtype incorrect");
-       }
-
-       pci_scan_bus(0, pci_ops, NULL);
-}
index 4815947c678bebb72a5957510536658c1fc452a4..ca62881c9e52e1142f8aecb9b40598b8eb6919df 100644 (file)
@@ -46,6 +46,8 @@ void (* prom_display)(const char *string, int pos, int clear) =
                null_prom_display;
 void (* prom_monitor)(void) = null_prom_monitor;
 
+unsigned int lasat_ndelay_divider;
+
 #define PROM_PRINTFBUF_SIZE 256
 static char prom_printfbuf[PROM_PRINTFBUF_SIZE];
 
@@ -98,10 +100,15 @@ void __init prom_init(void)
 
        setup_prom_vectors();
 
-       if (current_cpu_data.cputype == CPU_R5000)
+       if (current_cpu_data.cputype == CPU_R5000) {
+               prom_printf("LASAT 200 board\n");
                mips_machtype = MACH_LASAT_200;
-       else
+                lasat_ndelay_divider = LASAT_200_DIVIDER;
+        } else {
+               prom_printf("LASAT 100 board\n");
                mips_machtype = MACH_LASAT_100;
+                lasat_ndelay_divider = LASAT_100_DIVIDER;
+        }
 
        at93c = &at93c_defs[mips_machtype];
 
index c41c673ec752e4fe546459dfd3c4912139e54e91..0c21bb3363b8da73e1c9fa6936aab0efe5633c0e 100644 (file)
@@ -44,7 +44,6 @@
 #endif
 
 #include "ds1603.h"
-#include "at93c.h"
 #include <asm/lasat/ds1603.h>
 #include <asm/lasat/picvue.h>
 #include <asm/lasat/eeprom.h>
@@ -126,12 +125,6 @@ static void lasat_timer_setup(struct irqaction *irq)
        change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5);
 }
 
-#define MIPS_CPU_TIMER_IRQ 7
-asmlinkage void lasat_timer_interrupt(struct pt_regs *regs)
-{
-       ll_timer_interrupt(MIPS_CPU_TIMER_IRQ, regs);
-}
-
 #define DYNAMIC_SERIAL_INIT
 #ifdef DYNAMIC_SERIAL_INIT
 void __init serial_init(void)
@@ -162,7 +155,7 @@ void __init serial_init(void)
 }
 #endif
 
-static void __init lasat_setup(void)
+static int __init lasat_setup(void)
 {
        int i;
        lasat_misc  = &lasat_misc_info[mips_machtype];
@@ -192,6 +185,8 @@ static void __init lasat_setup(void)
        change_c0_status(ST0_BEV,0);
 
        prom_printf("Lasat specific initialization complete\n");
+
+        return 0;
 }
 
 early_initcall(lasat_setup);
index 36e95e09fa30e6960115d5155abb065165a41575..49742718da0a251d1fe8618e81b1734e461c93ac 100644 (file)
        P_MTC0  k0, CP0_ENTRYLO0                # load it
        PTE_SRL k1, k1, 6                       # convert to entrylo1
        P_MTC0  k1, CP0_ENTRYLO1                # load it
-       b       1f
-       rm9000_tlb_hazard
+       mtc0_tlbw_hazard
        tlbwr                                   # write random tlb entry
-1:
-       nop
-       rm9000_tlb_hazard
+       tlbw_eret_hazard
        eret                                    # return from trap
        END(except_vec0_r4000)
 
@@ -461,13 +458,9 @@ invalid_tlbl:
        PTE_PRESENT(k0, k1, nopage_tlbl)
        PTE_MAKEVALID(k0, k1)
        PTE_RELOAD(k1, k0)
-       rm9000_tlb_hazard
-       nop
-       b       1f
-        tlbwi
-1:
-       nop
-       rm9000_tlb_hazard
+       mtc0_tlbw_hazard
+       tlbwi
+       tlbw_eret_hazard
        .set    mips3
        eret
        .set    mips0
@@ -489,13 +482,9 @@ nopage_tlbl:
        PTE_WRITABLE(k0, k1, nopage_tlbs)
        PTE_MAKEWRITE(k0, k1)
        PTE_RELOAD(k1, k0)
-       rm9000_tlb_hazard
-       nop
-       b       1f
-        tlbwi
-1:
-       nop
-       rm9000_tlb_hazard
+       mtc0_tlbw_hazard
+       tlbwi
+       tlbw_eret_hazard
        .set    mips3
        eret
        .set    mips0
@@ -522,13 +511,9 @@ nopage_tlbs:
 
        /* Now reload the entry into the tlb. */
        PTE_RELOAD(k1, k0)
-       rm9000_tlb_hazard
-       nop
-       b       1f
-        tlbwi
-1:
-       rm9000_tlb_hazard
-       nop
+       mtc0_tlbw_hazard
+       tlbwi
+       tlbw_eret_hazard
        .set    mips3
        eret
        .set    mips0
index 63777f1bb8c3dc6e52c11ee84d131c3452763dbb..728d18f004d256d338dd20cdff5f2b7ae54e892e 100644 (file)
@@ -135,11 +135,9 @@ LEAF(handle_vec1_r4k)
        ld      k0, 0(k1)                       # get even pte
        ld      k1, 8(k1)                       # get odd pte
        PTE_RELOAD k0 k1
-       rm9000_tlb_hazard
-       b       1f
-        tlbwr
-1:     nop
-       rm9000_tlb_hazard
+       mtc0_tlbw_hazard
+       tlbwr
+       tlbw_eret_hazard
        eret
 
 9:                                             # handle the vmalloc range
@@ -147,11 +145,9 @@ LEAF(handle_vec1_r4k)
        ld      k0, 0(k1)                       # get even pte
        ld      k1, 8(k1)                       # get odd pte
        PTE_RELOAD k0 k1
-       rm9000_tlb_hazard
-       b       1f
+       mtc0_tlbw_hazard
         tlbwr
-1:     nop
-       rm9000_tlb_hazard
+       tlbw_eret_hazard
        eret
 END(handle_vec1_r4k)
 
@@ -179,10 +175,8 @@ LEAF(handle_vec1_r10k)
        ld      k0, 0(k1)                       # get even pte
        ld      k1, 8(k1)                       # get odd pte
        PTE_RELOAD k0 k1
-       rm9000_tlb_hazard
        nop
        tlbwr
-       rm9000_tlb_hazard
        eret
 
 9:                                             # handle the vmalloc range
@@ -190,10 +184,8 @@ LEAF(handle_vec1_r10k)
        ld      k0, 0(k1)                       # get even pte
        ld      k1, 8(k1)                       # get odd pte
        PTE_RELOAD k0 k1
-       rm9000_tlb_hazard
        nop
        tlbwr
-       rm9000_tlb_hazard
        eret
 END(handle_vec1_r10k)
 
index 975352adaf76af0d754f5b6da4c7c1f0659de219..2fdae0a8739fdf33928ec8b02832dfdf354d4685 100644 (file)
@@ -25,9 +25,9 @@ obj-$(CONFIG_CPU_TX39XX)      += c-tx39.o pg-r4k.o tlb-r3k.o tlbex-r3k.o
 obj-$(CONFIG_CPU_TX49XX)       += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
 obj-$(CONFIG_CPU_VR41XX)       += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
 
-obj-$(CONFIG_CPU_RM7000)       += sc-rm7k.o
+obj-$(CONFIG_IP22_CPU_SCACHE)  += sc-ip22.o
 obj-$(CONFIG_R5000_CPU_SCACHE)  += sc-r5k.o
-obj-$(CONFIG_SGI_IP22)         += sc-ip22.o
+obj-$(CONFIG_RM7000_CPU_SCACHE)        += sc-rm7k.o
 
 #
 # Choose one DMA coherency model
index ed93f44d1c4d0d846a6d40c4352cd6fa22d319c7..444df9c5a55ae801500838e4868db847231b56db 100644 (file)
@@ -311,6 +311,9 @@ static void r3k_flush_cache_sigtramp(unsigned long addr)
 
 static void r3k_dma_cache_wback_inv(unsigned long start, unsigned long size)
 {
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
+
        iob();
        r3k_flush_dcache_range(start, start + size);
 }
index ea82cd5ea6091fda3b158d475bff0f22a25187e0..b22df2d80eedcbe5499c1c4f5e0c309bef721eee 100644 (file)
@@ -426,8 +426,7 @@ static void r4k_flush_icache_range(unsigned long start, unsigned long end)
  * least know the kernel address of the page so we can flush it
  * selectivly.
  */
-static void r4k_flush_icache_page(struct vm_area_struct *vma,
-       struct page *page)
+static void r4k_flush_icache_page(struct vm_area_struct *vma, struct page *page)
 {
        /*
         * If there's no context yet, or the page isn't executable, no icache
@@ -478,6 +477,9 @@ static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
 {
        unsigned long end, a;
 
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
+
        if (cpu_has_subset_pcaches) {
                unsigned long sc_lsize = current_cpu_data.scache.linesz;
 
@@ -525,6 +527,9 @@ static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
 {
        unsigned long end, a;
 
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
+
        if (cpu_has_subset_pcaches) {
                unsigned long sc_lsize = current_cpu_data.scache.linesz;
 
@@ -787,7 +792,10 @@ static void __init probe_pcache(void)
                c->dcache.ways = 4;
                c->dcache.waybit = ffs(dcache_size / c->dcache.ways) - 1;
 
-               c->options |= MIPS_CPU_CACHE_CDEX_P | MIPS_CPU_PREFETCH;
+#if !defined(CONFIG_SMP) || !defined(RM9000_CDEX_SMP_WAR)
+               c->options |= MIPS_CPU_CACHE_CDEX_P;
+#endif
+               c->options |= MIPS_CPU_PREFETCH;
                break;
 
        default:
index 8c26e1d3d52c6f2c9ceb6b3d6784d127be0d13aa..5bae2b0e916654cf07724cde9d0ff304782cf0de 100644 (file)
@@ -2,6 +2,7 @@
  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
  * Copyright (C) 1997, 2001 Ralf Baechle (ralf@gnu.org)
  * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
+ * Copyright (C) 2004  Maciej W. Rozycki
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -202,8 +203,8 @@ static void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr)
        on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1);
 }
 #else
-void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr);
-asm("sb1_flush_cache_page = local_sb1_flush_cache_page");
+void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr)
+       __attribute__((alias("local_sb1_flush_cache_page")));
 #endif
 
 /*
@@ -237,16 +238,16 @@ static void local_sb1___flush_cache_all(void)
 }
 
 #ifdef CONFIG_SMP
-extern void sb1___flush_cache_all_ipi(void *ignored);
-asm("sb1___flush_cache_all_ipi = local_sb1___flush_cache_all");
+void sb1___flush_cache_all_ipi(void *ignored)
+       __attribute__((alias("local_sb1___flush_cache_all")));
 
 static void sb1___flush_cache_all(void)
 {
        on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1);
 }
 #else
-extern void sb1___flush_cache_all(void);
-asm("sb1___flush_cache_all = local_sb1___flush_cache_all");
+void sb1___flush_cache_all(void)
+       __attribute__((alias("local_sb1___flush_cache_all")));
 #endif
 
 /*
@@ -295,8 +296,8 @@ void sb1_flush_icache_range(unsigned long start, unsigned long end)
        on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1);
 }
 #else
-void sb1_flush_icache_range(unsigned long start, unsigned long end);
-asm("sb1_flush_icache_range = local_sb1_flush_icache_range");
+void sb1_flush_icache_range(unsigned long start, unsigned long end)
+       __attribute__((alias("local_sb1_flush_icache_range")));
 #endif
 
 /*
@@ -352,8 +353,8 @@ static void sb1_flush_icache_page(struct vm_area_struct *vma,
        on_each_cpu(sb1_flush_icache_page_ipi, (void *) &args, 1, 1);
 }
 #else
-void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page);
-asm("sb1_flush_icache_page = local_sb1_flush_icache_page");
+void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page)
+       __attribute__((alias("local_sb1_flush_icache_page")));
 #endif
 
 /*
@@ -379,8 +380,8 @@ static void sb1_flush_cache_sigtramp(unsigned long addr)
        on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
 }
 #else
-void sb1_flush_cache_sigtramp(unsigned long addr);
-asm("sb1_flush_cache_sigtramp = local_sb1_flush_cache_sigtramp");
+void sb1_flush_cache_sigtramp(unsigned long addr)
+       __attribute__((alias("local_sb1_flush_cache_sigtramp")));
 #endif
 
 
index 7af89580a7ffb301547835c3fc52c135165ce465..9654d74c5019dd5075e054cd3f825acedda3af9e 100644 (file)
@@ -69,6 +69,9 @@ static void tx39h_dma_cache_wback_inv(unsigned long addr, unsigned long size)
        unsigned long end, a;
        unsigned long dc_lsize = current_cpu_data.dcache.linesz;
 
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
+
        iob();
        a = addr & ~(dc_lsize - 1);
        end = (addr + size - 1) & ~(dc_lsize - 1);
index e10ce7f5425d8d5f8c117b5b49f218f09f29b19e..98ba863340caaf74d6be135de0e4a73bf837c7a5 100644 (file)
@@ -53,7 +53,7 @@ asmlinkage int sys_cacheflush(void *addr, int bytes, int cache)
        return 0;
 }
 
-void flush_dcache_page(struct page *page)
+void __flush_dcache_page(struct page *page)
 {
        struct address_space *mapping = page_mapping(page);
        unsigned long addr;
@@ -72,6 +72,8 @@ void flush_dcache_page(struct page *page)
        flush_data_cache_page(addr);
 }
 
+EXPORT_SYMBOL(__flush_dcache_page);
+
 void __update_cache(struct vm_area_struct *vma, unsigned long address,
        pte_t pte)
 {
@@ -91,8 +93,6 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address,
        }
 }
 
-EXPORT_SYMBOL(flush_dcache_page);
-
 extern void ld_mmu_r23000(void);
 extern void ld_mmu_r4xx0(void);
 extern void ld_mmu_tx39(void);
index a8d7a5fdab986ba85644713bce74774d9edcd1b9..e7c062249ce8f8efccc634bbc1b86c3e2d5a8949 100644 (file)
@@ -23,7 +23,6 @@
 #include <asm/mipsregs.h>
 #include <asm/stackframe.h>
 #include <asm/cacheops.h>
-#include <asm/processor.h>
 #include <asm/sibyte/board.h>
 
 #define C0_ERRCTL     $26             /* CP0: Error info */
index 4ce4ac23b78b3812bfbcdf724208f0a3ae2deaea..97a50d38c98f33e3bdfa47733008582dfb744cfc 100644 (file)
@@ -24,7 +24,7 @@ void *dma_alloc_noncoherent(struct device *dev, size_t size,
        /* ignore region specifiers */
        gfp &= ~(__GFP_DMA | __GFP_HIGHMEM);
 
-       if (dev == NULL || (*dev->dma_mask < 0xffffffff))
+       if (dev == NULL || (dev->coherent_dma_mask < 0xffffffff))
                gfp |= GFP_DMA;
        ret = (void *) __get_free_pages(gfp, get_order(size));
 
@@ -119,16 +119,16 @@ void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
 
 EXPORT_SYMBOL(dma_unmap_sg);
 
-void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-               enum dma_data_direction direction)
+void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
+       size_t size, enum dma_data_direction direction)
 {
        BUG_ON(direction == DMA_NONE);
 }
 
 EXPORT_SYMBOL(dma_sync_single_for_cpu);
 
-void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size,
-               enum dma_data_direction direction)
+void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
+       size_t size, enum dma_data_direction direction)
 {
        BUG_ON(direction == DMA_NONE);
 }
@@ -169,6 +169,13 @@ void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nele
 
 EXPORT_SYMBOL(dma_sync_sg_for_device);
 
+int dma_mapping_error(dma_addr_t dma_addr)
+{
+       return 0;
+}
+
+EXPORT_SYMBOL(dma_mapping_error);
+
 int dma_supported(struct device *dev, u64 mask)
 {
        /*
index 1a1980a78eb13dbe000a0346d82437014b9a9092..aa7c94b5d7817af04538aefdbfc44c752061350b 100644 (file)
@@ -29,7 +29,7 @@ void *dma_alloc_noncoherent(struct device *dev, size_t size,
        /* ignore region specifiers */
        gfp &= ~(__GFP_DMA | __GFP_HIGHMEM);
 
-       if (dev == NULL || (*dev->dma_mask < 0xffffffff))
+       if (dev == NULL || (dev->coherent_dma_mask < 0xffffffff))
                gfp |= GFP_DMA;
        ret = (void *) __get_free_pages(gfp, get_order(size));
 
@@ -175,6 +175,13 @@ void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nele
 
 EXPORT_SYMBOL(dma_sync_sg_for_device);
 
+int dma_mapping_error(dma_addr_t dma_addr)
+{
+       return 0;
+}
+
+EXPORT_SYMBOL(dma_mapping_error);
+
 int dma_supported(struct device *dev, u64 mask)
 {
        /*
@@ -213,7 +220,7 @@ dma64_addr_t pci_dac_page_to_dma(struct pci_dev *pdev,
        return (dma64_addr_t) pdev_to_baddr(pdev, addr);
 }
 
-EXPORT_SYMBOL(dma_cache_sync);
+EXPORT_SYMBOL(pci_dac_page_to_dma);
 
 struct page *pci_dac_dma_to_page(struct pci_dev *pdev,
        dma64_addr_t dma_addr)
index 67ebda9f8327259020dd8dfd117530a4cb3dd575..9895e32b0fceca7d37899a096f62cd18d78f6c42 100644 (file)
@@ -30,7 +30,7 @@ void *dma_alloc_noncoherent(struct device *dev, size_t size,
        /* ignore region specifiers */
        gfp &= ~(__GFP_DMA | __GFP_HIGHMEM);
 
-       if (dev == NULL || (*dev->dma_mask < 0xffffffff))
+       if (dev == NULL || (dev->coherent_dma_mask < 0xffffffff))
                gfp |= GFP_DMA;
        ret = (void *) __get_free_pages(gfp, get_order(size));
 
@@ -226,8 +226,8 @@ void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
 
 EXPORT_SYMBOL(dma_unmap_sg);
 
-void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-       enum dma_data_direction direction)
+void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
+       size_t size, enum dma_data_direction direction)
 {
        unsigned long addr;
  
@@ -239,8 +239,8 @@ void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t s
 
 EXPORT_SYMBOL(dma_sync_single_for_cpu);
 
-void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size,
-       enum dma_data_direction direction)
+void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
+       size_t size, enum dma_data_direction direction)
 {
        unsigned long addr;
 
@@ -308,6 +308,13 @@ void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nele
 
 EXPORT_SYMBOL(dma_sync_sg_for_device);
 
+int dma_mapping_error(dma_addr_t dma_addr)
+{
+       return 0;
+}
+
+EXPORT_SYMBOL(dma_mapping_error);
+
 int dma_supported(struct device *dev, u64 mask)
 {
        /*
index fec2a21405c2d6159227f56080be07775d1fc8fb..820c3af0868a5846a15ee890e7d09b5079e47195 100644 (file)
@@ -22,7 +22,6 @@
 
 #include <asm/branch.h>
 #include <asm/hardirq.h>
-#include <asm/pgalloc.h>
 #include <asm/mmu_context.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
index d64863f2c1036d69a8b9d7c502d54181776ddc56..24e3d3b0f83112166137eea32ffef4efcfdbb8f2 100644 (file)
@@ -3,13 +3,11 @@
 #include <linux/highmem.h>
 #include <asm/tlbflush.h>
 
-void *kmap(struct page *page)
+void *__kmap(struct page *page)
 {
        void *addr;
 
-       if (in_interrupt())
-               BUG();
-
+       might_sleep();
        if (page < highmem_start_page)
                return page_address(page);
        addr = kmap_high(page);
@@ -18,7 +16,7 @@ void *kmap(struct page *page)
        return addr;
 }
 
-void kunmap(struct page *page)
+void __kunmap(struct page *page)
 {
        if (in_interrupt())
                BUG();
@@ -36,7 +34,7 @@ void kunmap(struct page *page)
  * kmaps are appropriate for short, tight code paths only.
  */
 
-void *kmap_atomic(struct page *page, enum km_type type)
+void *__kmap_atomic(struct page *page, enum km_type type)
 {
        enum fixed_addresses idx;
        unsigned long vaddr;
@@ -58,7 +56,7 @@ void *kmap_atomic(struct page *page, enum km_type type)
        return (void*) vaddr;
 }
 
-void kunmap_atomic(void *kvaddr, enum km_type type)
+void __kunmap_atomic(void *kvaddr, enum km_type type)
 {
 #ifdef CONFIG_DEBUG_HIGHMEM
        unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK;
@@ -85,7 +83,7 @@ void kunmap_atomic(void *kvaddr, enum km_type type)
        preempt_check_resched();
 }
 
-struct page *kmap_atomic_to_page(void *ptr)
+struct page *__kmap_atomic_to_page(void *ptr)
 {
        unsigned long idx, vaddr = (unsigned long)ptr;
        pte_t *pte;
@@ -98,8 +96,8 @@ struct page *kmap_atomic_to_page(void *ptr)
        return pte_page(*pte);
 }
 
-EXPORT_SYMBOL(kmap);
-EXPORT_SYMBOL(kunmap);
-EXPORT_SYMBOL(kmap_atomic);
-EXPORT_SYMBOL(kunmap_atomic);
-EXPORT_SYMBOL(kmap_atomic_to_page);
+EXPORT_SYMBOL(__kmap);
+EXPORT_SYMBOL(__kunmap);
+EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(__kunmap_atomic);
+EXPORT_SYMBOL(__kmap_atomic_to_page);
index 7c8c6ca6684ba81c930c43bccc95c3e062766a7e..5a3b32bbfdca9fec3f276f742604c07cadd5adb5 100644 (file)
 #include <asm/cachectl.h>
 #include <asm/cpu.h>
 #include <asm/dma.h>
-#include <asm/pgalloc.h>
 #include <asm/mmu_context.h>
 #include <asm/sections.h>
+#include <asm/pgtable.h>
+#include <asm/pgalloc.h>
 #include <asm/tlb.h>
 
 DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
@@ -163,7 +164,7 @@ void __init paging_init(void)
        if (cpu_has_dc_aliases) {
                printk(KERN_WARNING "This processor doesn't support highmem.");
                if (high - low)
-                       printk(" %dk highmem ignored", high - low);
+                       printk(" %ldk highmem ignored", high - low);
                printk("\n");
        } else
                zones_size[ZONE_HIGHMEM] = high - low;
@@ -203,7 +204,6 @@ void __init mem_init(void)
        unsigned long tmp, ram;
 
 #ifdef CONFIG_HIGHMEM
-       highstart_pfn = (KSEG1 - KSEG0) >> PAGE_SHIFT;
        highmem_start_page = mem_map + highstart_pfn;
 #ifdef CONFIG_DISCONTIGMEM
 #error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet"
@@ -234,6 +234,9 @@ void __init mem_init(void)
                        continue;
                }
                ClearPageReserved(page);
+#ifdef CONFIG_LIMITED_DMA
+               set_page_address(page, lowmem_page_address(page));
+#endif
                set_bit(PG_highmem, &page->flags);
                atomic_set(&page->count, 1);
                __free_page(page);
index d2cac3913d392af65a05d087310604ae7f7ccbfe..b95b91b14b6a604cd4b8f29fb5dc15772cb74fdd 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/vmalloc.h>
 #include <asm/cacheflush.h>
 #include <asm/io.h>
-#include <asm/pgalloc.h>
 #include <asm/tlbflush.h>
 
 static inline void remap_area_pte(pte_t * pte, unsigned long address,
@@ -153,7 +152,7 @@ void * __ioremap(phys_t phys_addr, phys_t size, unsigned long flags)
         */
        offset = phys_addr & ~PAGE_MASK;
        phys_addr &= PAGE_MASK;
-       size = PAGE_ALIGN(last_addr) - phys_addr;
+       size = PAGE_ALIGN(last_addr + 1) - phys_addr;
 
        /*
         * Ok, go for it..
index 053db8af9a4e8d3c154e2896ef33883ad7ead5de..467fdfe2108cccf23da6aad0252b082c7d6a5cc0 100644 (file)
@@ -344,11 +344,21 @@ void __init build_clear_page(void)
 
        if (cpu_has_prefetch) {
                switch (current_cpu_data.cputype) {
+               case CPU_RM9000:
+                       /*
+                        * As a workaround for erratum G105 which make the
+                        * PrepareForStore hint unusable we fall back to
+                        * StoreRetained on the RM9000.  Once it is known which
+                        * versions of the RM9000 we'll be able to condition-
+                        * alize this.
+                        */
+
                case CPU_R10000:
                case CPU_R12000:
                        pref_src_mode = Pref_LoadStreamed;
                        pref_dst_mode = Pref_StoreRetained;
                        break;
+
                default:
                        pref_src_mode = Pref_LoadStreamed;
                        pref_dst_mode = Pref_PrepareForStore;
index e29096d697661d2f007676ddffa6387b1b49e431..7eb9533052748858b0e644daffad4080f691f832 100644 (file)
@@ -9,7 +9,6 @@
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <asm/pgtable.h>
-#include <asm/pgalloc.h>
 
 void pgd_init(unsigned long page)
 {
index 4e74a3a4714490cd991b88f6284e0e164fc88111..d236cf8b7374720e2beb555c66aad84becec69c7 100644 (file)
@@ -65,8 +65,8 @@ static void indy_sc_wback_invalidate(unsigned long addr, unsigned long size)
        printk("indy_sc_wback_invalidate[%08lx,%08lx]", addr, size);
 #endif
 
-       if (!size)
-               return;
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
 
        /* Which lines to flush?  */
        first_line = SC_INDEX(addr);
index dbaa2daaeca51077c56b8113f8e46060a170c629..d35b6c1103a393d8f52994ec66ee59859c59e90a 100644 (file)
@@ -37,6 +37,9 @@ static void r5k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
 {
        unsigned long end, a;
 
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
+
        if (size >= scache_size) {
                blast_r5000_scache();
                return;
index 1c269a280c9c5583390e25c8322d7bf2e1d7137b..ec3ec9e906f9343539edbb0ddbbfa3b41d9956ed 100644 (file)
@@ -1,8 +1,11 @@
 /*
  * sc-rm7k.c: RM7000 cache management functions.
  *
- * Copyright (C) 1997, 2001, 2003 Ralf Baechle (ralf@gnu.org),
+ * Copyright (C) 1997, 2001, 2003, 2004 Ralf Baechle (ralf@linux-mips.org)
  */
+
+#undef DEBUG
+
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
@@ -34,9 +37,10 @@ static void rm7k_sc_wback_inv(unsigned long addr, unsigned long size)
 {
        unsigned long end, a;
 
-#ifdef DEBUG_CACHE
-       printk("rm7k_sc_wback_inv[%08lx,%08lx]", addr, size);
-#endif
+       pr_debug("rm7k_sc_wback_inv[%08lx,%08lx]", addr, size);
+
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
 
        a = addr & ~(sc_lsize - 1);
        end = (addr + size - 1) & ~(sc_lsize - 1);
@@ -64,9 +68,10 @@ static void rm7k_sc_inv(unsigned long addr, unsigned long size)
 {
        unsigned long end, a;
 
-#ifdef DEBUG_CACHE
-       printk("rm7k_sc_inv[%08lx,%08lx]", addr, size);
-#endif
+       pr_debug("rm7k_sc_inv[%08lx,%08lx]", addr, size);
+
+       /* Catch bad driver code */
+       BUG_ON(size == 0);
 
        a = addr & ~(sc_lsize - 1);
        end = (addr + size - 1) & ~(sc_lsize - 1);
@@ -105,16 +110,16 @@ static void rm7k_sc_inv(unsigned long addr, unsigned long size)
  *
  * It seems we get our kicks from relying on unguaranteed behaviour in GCC
  */
-static __init void rm7k_sc_enable(void)
+static __init void __rm7k_sc_enable(void)
 {
        int i;
 
-       set_c0_config(1<<3);                            /* CONF_SE */
+       set_c0_config(1 << 3);                          /* CONF_SE */
 
        write_c0_taglo(0);
        write_c0_taghi(0);
 
-       for (i=0; i<scache_size; i+=sc_lsize) {
+       for (i = 0; i < scache_size; i += sc_lsize) {
                __asm__ __volatile__ (
                      ".set noreorder\n\t"
                      ".set mips3\n\t"
@@ -122,11 +127,21 @@ static __init void rm7k_sc_enable(void)
                      ".set mips0\n\t"
                      ".set reorder"
                      :
-                     : "r" (KSEG0ADDR(i)),
-                       "i" (Index_Store_Tag_SD));
+                     : "r" (KSEG0ADDR(i)), "i" (Index_Store_Tag_SD));
        }
 }
 
+static __init void rm7k_sc_enable(void)
+{
+       void (*func)(void) = (void *) KSEG1ADDR(&__rm7k_sc_enable);
+
+       if (read_c0_config() & 0x08)                    /* CONF_SE */
+               return;
+
+       printk(KERN_INFO "Enabling secondary cache...");
+       func();
+}
+
 static void rm7k_sc_disable(void)
 {
        clear_c0_config(1<<3);                          /* CONF_SE */
@@ -134,22 +149,17 @@ static void rm7k_sc_disable(void)
 
 static inline int __init rm7k_sc_probe(void)
 {
-       void (*func)(void) = KSEG1ADDR(&rm7k_sc_enable);
        unsigned int config = read_c0_config();
 
        if ((config >> 31) & 1)
                return 0;
 
-       printk(KERN_INFO "Secondary cache size %ldK, linesize %ld bytes.\n",
+       printk(KERN_INFO "Secondary cache size %dK, linesize %d bytes.\n",
               (scache_size >> 10), sc_lsize);
 
        if ((config >> 3) & 1)                          /* CONF_SE */
                return 1;
 
-       printk(KERN_INFO "Enabling secondary cache...");
-       func();
-       printk("  done\n");
-
        /*
         * While we're at it let's deal with the tertiary cache.
         */
index 6b6c30bb64963ff763736575f9790e3714c7cc78..e1090c564aa19b288472c41d729bc5125c125920 100644 (file)
@@ -229,7 +229,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
        ptep = pte_offset_map(pmdp, address);
        write_c0_entrylo0(pte_val(*ptep++) >> 6);
        write_c0_entrylo1(pte_val(*ptep) >> 6);
-       write_c0_entryhi(address | (pid));
+       write_c0_entryhi(address | pid);
        if (idx < 0) {
                tlb_write_random();
        } else {
index 3abba74ef3788c8c2cc9ff6b36b7a4ce15cd6bc1..91fee06881f9d2fa16d72de6812f365137fe5f4b 100644 (file)
@@ -39,10 +39,9 @@ void local_flush_tlb_all(void)
 
        local_irq_save(flags);
        /* Save old context and create impossible VPN2 value */
-       old_ctx = read_c0_entryhi() & ASID_MASK;
+       old_ctx = read_c0_entryhi();
        write_c0_entrylo0(0);
        write_c0_entrylo1(0);
-       BARRIER;
 
        entry = read_c0_wired();
 
@@ -54,12 +53,11 @@ void local_flush_tlb_all(void)
                 */
                write_c0_entryhi(CKSEG0 + (entry << (PAGE_SHIFT + 1)));
                write_c0_index(entry);
-               BARRIER;
+               mtc0_tlbw_hazard();
                tlb_write_indexed();
-               BARRIER;
                entry++;
        }
-       BARRIER;
+       tlbw_use_hazard();
        write_c0_entryhi(old_ctx);
        local_irq_restore(flags);
 }
@@ -86,7 +84,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
                size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
                size = (size + 1) >> 1;
                if (size <= current_cpu_data.tlbsize/2) {
-                       int oldpid = read_c0_entryhi() & ASID_MASK;
+                       int oldpid = read_c0_entryhi();
                        int newpid = cpu_asid(cpu, mm);
 
                        start &= (PAGE_MASK << 1);
@@ -97,7 +95,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
 
                                write_c0_entryhi(start | newpid);
                                start += (PAGE_SIZE << 1);
-                               BARRIER;
+                               mtc0_tlbw_hazard();
                                tlb_probe();
                                BARRIER;
                                idx = read_c0_index();
@@ -108,10 +106,10 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
                                /* Make sure all entries differ. */
                                write_c0_entryhi(CKSEG0 +
                                                 (idx << (PAGE_SHIFT + 1)));
-                               BARRIER;
+                               mtc0_tlbw_hazard();
                                tlb_write_indexed();
-                               BARRIER;
                        }
+                       tlbw_use_hazard();
                        write_c0_entryhi(oldpid);
                } else {
                        drop_mmu_context(mm, cpu);
@@ -140,7 +138,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
 
                        write_c0_entryhi(start);
                        start += (PAGE_SIZE << 1);
-                       BARRIER;
+                       mtc0_tlbw_hazard();
                        tlb_probe();
                        BARRIER;
                        idx = read_c0_index();
@@ -150,10 +148,10 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
                                continue;
                        /* Make sure all entries differ. */
                        write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT + 1)));
-                       BARRIER;
+                       mtc0_tlbw_hazard();
                        tlb_write_indexed();
-                       BARRIER;
                }
+               tlbw_use_hazard();
                write_c0_entryhi(pid);
        } else {
                local_flush_tlb_all();
@@ -172,9 +170,9 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
                newpid = cpu_asid(cpu, vma->vm_mm);
                page &= (PAGE_MASK << 1);
                local_irq_save(flags);
-               oldpid = read_c0_entryhi() & ASID_MASK;
+               oldpid = read_c0_entryhi();
                write_c0_entryhi(page | newpid);
-               BARRIER;
+               mtc0_tlbw_hazard();
                tlb_probe();
                BARRIER;
                idx = read_c0_index();
@@ -184,11 +182,11 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
                        goto finish;
                /* Make sure all entries differ. */
                write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT + 1)));
-               BARRIER;
+               mtc0_tlbw_hazard();
                tlb_write_indexed();
+               tlbw_use_hazard();
 
        finish:
-               BARRIER;
                write_c0_entryhi(oldpid);
                local_irq_restore(flags);
        }
@@ -205,9 +203,9 @@ void local_flush_tlb_one(unsigned long page)
 
        local_irq_save(flags);
        page &= (PAGE_MASK << 1);
-       oldpid = read_c0_entryhi() & 0xff;
+       oldpid = read_c0_entryhi();
        write_c0_entryhi(page);
-       BARRIER;
+       mtc0_tlbw_hazard();
        tlb_probe();
        BARRIER;
        idx = read_c0_index();
@@ -216,10 +214,10 @@ void local_flush_tlb_one(unsigned long page)
        if (idx >= 0) {
                /* Make sure all entries differ. */
                write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT + 1)));
-               BARRIER;
+               mtc0_tlbw_hazard();
                tlb_write_indexed();
+               tlbw_use_hazard();
        }
-       BARRIER;
        write_c0_entryhi(oldpid);
 
        local_irq_restore(flags);
@@ -250,25 +248,23 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
        address &= (PAGE_MASK << 1);
        write_c0_entryhi(address | pid);
        pgdp = pgd_offset(vma->vm_mm, address);
-       BARRIER;
+       mtc0_tlbw_hazard();
        tlb_probe();
        BARRIER;
        pmdp = pmd_offset(pgdp, address);
        idx = read_c0_index();
        ptep = pte_offset_map(pmdp, address);
-       BARRIER;
+
        write_c0_entrylo0(pte_val(*ptep++) >> 6);
        write_c0_entrylo1(pte_val(*ptep) >> 6);
        write_c0_entryhi(address | pid);
-       BARRIER;
-       if (idx < 0) {
+       mtc0_tlbw_hazard();
+       if (idx < 0)
                tlb_write_random();
-       } else {
+       else
                tlb_write_indexed();
-       }
-       BARRIER;
+       tlbw_use_hazard();
        write_c0_entryhi(pid);
-       BARRIER;
        local_irq_restore(flags);
 }
 
@@ -277,6 +273,7 @@ static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
                                       unsigned long address, pte_t pte)
 {
        unsigned long flags;
+       unsigned int asid;
        pgd_t *pgdp;
        pmd_t *pmdp;
        pte_t *ptep;
@@ -284,20 +281,23 @@ static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
 
        local_irq_save(flags);
        address &= (PAGE_MASK << 1);
-       write_c0_entryhi(address | (read_c0_entryhi() & ASID_MASK));
+       asid = read_c0_entryhi() & ASID_MASK;
+       write_c0_entryhi(address | asid);
        pgdp = pgd_offset(vma->vm_mm, address);
+       mtc0_tlbw_hazard();
        tlb_probe();
+       BARRIER;
        pmdp = pmd_offset(pgdp, address);
        idx = read_c0_index();
        ptep = pte_offset_map(pmdp, address);
        write_c0_entrylo0(pte_val(*ptep++) >> 6);
        write_c0_entrylo1(pte_val(*ptep) >> 6);
-       BARRIER;
+       mtc0_tlbw_hazard();
        if (idx < 0)
                tlb_write_random();
        else
                tlb_write_indexed();
-       BARRIER;
+       tlbw_use_hazard();
        local_irq_restore(flags);
 }
 #endif
@@ -312,7 +312,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
 
        local_irq_save(flags);
        /* Save old context and create impossible VPN2 value */
-       old_ctx = read_c0_entryhi() & ASID_MASK;
+       old_ctx = read_c0_entryhi();
        old_pagemask = read_c0_pagemask();
        wired = read_c0_wired();
        write_c0_wired(wired + 1);
@@ -322,9 +322,9 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
        write_c0_entryhi(entryhi);
        write_c0_entrylo0(entrylo0);
        write_c0_entrylo1(entrylo1);
-       BARRIER;
+       mtc0_tlbw_hazard();
        tlb_write_indexed();
-       BARRIER;
+       tlbw_use_hazard();
 
        write_c0_entryhi(old_ctx);
        BARRIER;
@@ -352,7 +352,7 @@ __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
 
        local_irq_save(flags);
        /* Save old context and create impossible VPN2 value */
-       old_ctx = read_c0_entryhi() & ASID_MASK;
+       old_ctx = read_c0_entryhi();
        old_pagemask = read_c0_pagemask();
        wired = read_c0_wired();
        if (--temp_tlb_entry < wired) {
@@ -362,17 +362,15 @@ __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
        }
 
        write_c0_index(temp_tlb_entry);
-       BARRIER;
        write_c0_pagemask(pagemask);
        write_c0_entryhi(entryhi);
        write_c0_entrylo0(entrylo0);
        write_c0_entrylo1(entrylo1);
-       BARRIER;
+       mtc0_tlbw_hazard();
        tlb_write_indexed();
-       BARRIER;
+       tlbw_use_hazard();
 
        write_c0_entryhi(old_ctx);
-       BARRIER;
        write_c0_pagemask(old_pagemask);
 out:
        local_irq_restore(flags);
index 9b8dfc3aea8fb1f29cee8662dc324e610d894041..20bbd3ea44a8a1cc425241220583deda06fc53f6 100644 (file)
@@ -1,8 +1,12 @@
 #
 # Makefile for Momentum Computer's Jaguar-ATX board.
 #
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
 
-obj-y                  += mv-irq.o int-handler.o irq.o pci-irq.o prom.o reset.o setup.o
-obj-$(CONFIG_PCI)      += pci.o
+obj-y += int-handler.o irq.o prom.o reset.o setup.o
 
+obj-$(CONFIG_SERIAL_8250_CONSOLE) += ja-console.o
 obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
index 26d3341e23477a171a303066f3697c14b88bed4d..43fd5a58077c51ee63cd268eb0c496583f96c05f 100644 (file)
@@ -18,7 +18,6 @@
 #include <asm/addrspace.h>
 #include <asm/regdef.h>
 #include <asm/stackframe.h>
-#include "jaguar_atx_fpga.h"
 
 /*
  * First level interrupt dispatcher for Ocelot-CS board
@@ -120,7 +119,7 @@ ll_uart_irq:
 ll_cputimer_irq:
                li      a0, 7
                move    a1, sp
-               jal     do_IRQ
+               jal     ll_timer_interrupt
                j       ret_from_irq
        
 ll_mv64340_decode_irq:
index 511b35fafe76d1e06f96ec1a78d9909d7d7dd6cd..f13f856067e72e65aefa6391636fb47527657020 100644 (file)
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
-#include <linux/errno.h>
 #include <linux/init.h>
-#include <linux/sched.h>
-#include <linux/types.h>
 #include <linux/interrupt.h>
-#include <linux/ioport.h>
-#include <linux/timex.h>
-#include <linux/slab.h>
-#include <asm/bootinfo.h>
+#include <linux/signal.h>
+#include <linux/types.h>
+#include <asm/irq_cpu.h>
 #include <asm/mipsregs.h>
 
 extern asmlinkage void jaguar_handle_int(void);
-extern void mv64340_irq_init(void);
 
 static struct irqaction cascade_mv64340 = {
-       no_action, SA_INTERRUPT, 0, "cascade via MV64340", NULL, NULL
-};
-
-static struct irqaction unused_irq = {
-       no_action, SA_INTERRUPT, 0, "unused", NULL, NULL
+       no_action, SA_INTERRUPT, 0, "MV64340-Cascade", NULL, NULL
 };
 
 void __init init_IRQ(void)
@@ -72,19 +62,7 @@ void __init init_IRQ(void)
        /* set up the cascading interrupts */
        setup_irq(8, &cascade_mv64340);
 
-       /* mark unconnected IRQs as unconnected */
-       setup_irq(9, &unused_irq);
-
-       /* mark un-used IRQ numbers as unconnected */
-       setup_irq(10, &unused_irq);
-       setup_irq(13, &unused_irq);
-       setup_irq(14, &unused_irq);
-
-       mv64340_irq_init();
+       mv64340_irq_init(16);
 
-#ifdef CONFIG_REMOTE_DEBUG
-       printk("start kgdb ...\n");
-       set_debug_traps();
-       breakpoint();   /* you may move this line to whereever you want :-) */
-#endif
+       set_c0_status(ST0_IM);
 }
diff --git a/arch/mips/momentum/jaguar_atx/ja-console.c b/arch/mips/momentum/jaguar_atx/ja-console.c
new file mode 100644 (file)
index 0000000..da6e1ed
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * 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) 2001, 2002, 2004 Ralf Baechle
+ */
+#include <linux/init.h>
+#include <linux/console.h>
+#include <linux/kdev_t.h>
+#include <linux/major.h>
+#include <linux/termios.h>
+#include <linux/sched.h>
+#include <linux/tty.h>
+
+#include <linux/serial.h>
+#include <linux/serial_core.h>
+#include <asm/serial.h>
+
+/* SUPERIO uart register map */
+struct ja_uartregs {
+       union {
+               volatile u8     pad0[3];
+               volatile u8     rbr;    /* read only, DLAB == 0 */
+               volatile u8     pad1[3];
+               volatile u8     thr;    /* write only, DLAB == 0 */
+               volatile u8     pad2[3];
+               volatile u8     dll;    /* DLAB == 1 */
+       } u1;
+       union {
+               volatile u8     pad0[3];
+               volatile u8     ier;    /* DLAB == 0 */
+               volatile u8     pad1[3];
+               volatile u8     dlm;    /* DLAB == 1 */
+       } u2;
+       union {
+               volatile u8     pad0[3];
+               volatile u8     iir;    /* read only */
+               volatile u8     pad1[3];
+               volatile u8     fcr;    /* write only */
+       } u3;
+       volatile u8     pad0[3];
+       volatile u8     iu_lcr;
+       volatile u8     pad1[3];
+       volatile u8     iu_mcr;
+       volatile u8     pad2[3];
+       volatile u8     iu_lsr;
+       volatile u8     pad3[3];
+       volatile u8     iu_msr;
+       volatile u8     pad4[3];
+       volatile u8     iu_scr;
+} ja_uregs_t;
+
+#define iu_rbr u1.rbr
+#define iu_thr u1.thr
+#define iu_dll u1.dll
+#define iu_ier u2.ier
+#define iu_dlm u2.dlm
+#define iu_iir u3.iir
+#define iu_fcr u3.fcr
+
+extern unsigned long uart_base;
+
+static inline struct ja_uartregs *console_uart(void)
+{
+       return (struct ja_uartregs *) (uart_base + 0x23UL);
+}
+
+void prom_putchar(char c)
+{
+       struct ja_uartregs *uart = console_uart();
+
+       while ((uart->iu_lsr & 0x20) == 0);
+       uart->iu_thr = c;
+}
+
+char __init prom_getchar(void)
+{
+       return 0;
+}
+
+static void inline ja_console_probe(void)
+{
+       struct uart_port up;
+
+       /*
+        * Register to interrupt zero because we share the interrupt with
+        * the serial driver which we don't properly support yet.
+        */
+       memset(&up, 0, sizeof(up));
+       up.membase      = (unsigned char *) uart_base + 0x23UL;
+       up.irq          = JAGUAR_ATX_SERIAL1_IRQ;
+       up.uartclk      = JAGUAR_ATX_UART_CLK;
+       up.regshift     = 2;
+       up.iotype       = UPIO_MEM;
+       up.flags        = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST;
+       up.line         = 0;
+
+       if (early_serial_setup(&up))
+               printk(KERN_ERR "Early serial init of port 0 failed\n");
+}
+
+__init void ja_setup_console(void)
+{
+       ja_console_probe();
+}
index 8175dd67dd5b91d82a233a60b50a6f5ab269a378..6978654c712b80e8d1e85bcf7067eaa91c0b020d 100644 (file)
 #ifndef __JAGUAR_ATX_FPGA_H__
 #define __JAGUAR_ATX_FPGA_H__
 
-#include <linux/config.h>
-
-#ifdef CONFIG_MIPS64
-#define JAGUAR_ATX_CS0_ADDR (0xfffffffffc000000)
-#else
-#define JAGUAR_ATX_CS0_ADDR (0xfc000000)
-#endif
-
 #define JAGUAR_ATX_REG_BOARDREV                0x0
 #define JAGUAR_ATX_REG_FPGA_REV                0x1
 #define JAGUAR_ATX_REG_FPGA_TYPE       0x2
 #define JAGUAR_ATX_REG_RESERVED5       0xe
 #define JAGUAR_ATX_REG_RESERVED6       0xf
 
-#define JAGUAR_FPGA_WRITE(x,y) writeb(x,JAGUAR_ATX_CS0_ADDR+JAGUAR_ATX_REG_##y)
-#define JAGUAR_FPGA_READ(x) readb(JAGUAR_ATX_CS0_ADDR + JAGUAR_ATX_REG_##x)
+#define JAGUAR_ATX_CS0_ADDR            0xfc000000L
+
+extern unsigned long ja_fpga_base;
+
+#define JAGUAR_FPGA_WRITE(x,y) writeb(x, ja_fpga_base + JAGUAR_ATX_REG_##y)
+#define JAGUAR_FPGA_READ(x) readb(ja_fpga_base + JAGUAR_ATX_REG_##x)
 
 #endif
diff --git a/arch/mips/momentum/jaguar_atx/mv-irq.c b/arch/mips/momentum/jaguar_atx/mv-irq.c
deleted file mode 100644 (file)
index 6092ada..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer
- * Author: mdharm@momenco.com
- *
- * arch/mips/momentum/jaguar_atx/mv-irq.c
- *     Interrupt routines for mv64340.  Interrupt numbers are assigned from
- *     MV64340_IRQ_BASE to MV64340_IRQ_BASE + 63.
- *
- * This program is free software; you can redistribute  it and/or modify it
- * under  the terms of  the GNU General  Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/kernel.h>
-#include <asm/ptrace.h>
-#include <linux/sched.h>
-#include <linux/kernel_stat.h>
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/mv64340.h>
-
-#define MV64340_IRQ_BASE       16
-
-static inline int ls1bit32(unsigned int x)
-{
-        int b = 31, s;
-
-        s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
-        s =  8; if (x <<  8 == 0) s = 0; b -= s; x <<= s;
-        s =  4; if (x <<  4 == 0) s = 0; b -= s; x <<= s;
-        s =  2; if (x <<  2 == 0) s = 0; b -= s; x <<= s;
-        s =  1; if (x <<  1 == 0) s = 0; b -= s;
-
-        return b;
-}
-
-/* mask off an interrupt -- 1 is enable, 0 is disable */
-static inline void mask_mv64340_irq(unsigned int irq)
-{
-       uint32_t value;
-
-       if (irq < (MV64340_IRQ_BASE + 32)) {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
-               value &= ~(1 << (irq - MV64340_IRQ_BASE));
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
-       } else {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
-               value &= ~(1 << (irq - (MV64340_IRQ_BASE - 32)));
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
-       }
-}
-
-/* unmask an interrupt -- 1 is enable, 0 is disable */
-static inline void unmask_mv64340_irq(unsigned int irq)
-{
-       uint32_t value;
-
-       if (irq < (MV64340_IRQ_BASE + 32)) {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
-               value |= 1 << (irq - MV64340_IRQ_BASE);
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
-       } else {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
-               value |= 1 << (irq - (MV64340_IRQ_BASE - 32));
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
-       }
-}
-
-/*
- * Enables the IRQ on Marvell Chip
- */
-static void enable_mv64340_irq(unsigned int irq)
-{
-       unmask_mv64340_irq(irq);
-}
-
-/*
- * Initialize the IRQ on Marvell Chip
- */
-static unsigned int startup_mv64340_irq(unsigned int irq)
-{
-       unmask_mv64340_irq(irq);
-       return 0;
-}
-
-/*
- * Disables the IRQ on Marvell Chip
- */
-static void disable_mv64340_irq(unsigned int irq)
-{
-       mask_mv64340_irq(irq);
-}
-
-/*
- * Masks and ACKs an IRQ
- */
-static void mask_and_ack_mv64340_irq(unsigned int irq)
-{
-       mask_mv64340_irq(irq);
-}
-
-/*
- * End IRQ processing
- */
-static void end_mv64340_irq(unsigned int irq)
-{
-       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-               unmask_mv64340_irq(irq);
-}
-
-/*
- * Interrupt handler for interrupts coming from the Marvell chip.
- * It could be built in ethernet ports etc...
- */
-void ll_mv64340_irq(struct pt_regs *regs)
-{
-       unsigned int irq_src_low, irq_src_high;
-       unsigned int irq_mask_low, irq_mask_high;
-
-       /* read the interrupt status registers */
-       MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &irq_mask_low);
-       MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &irq_mask_high);
-       MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_LOW, &irq_src_low);
-       MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_HIGH, &irq_src_high);
-
-       /* mask for just the interrupts we want */
-       irq_src_low &= irq_mask_low;
-       irq_src_high &= irq_mask_high;
-
-       if (irq_src_low) 
-               do_IRQ(ls1bit32(irq_src_low) + MV64340_IRQ_BASE, regs);
-       else
-               do_IRQ(ls1bit32(irq_src_high) + MV64340_IRQ_BASE + 32, regs);
-}
-
-#define shutdown_mv64340_irq   disable_mv64340_irq
-
-struct hw_interrupt_type mv64340_irq_type = {
-       "MV-64340",
-       startup_mv64340_irq,
-       shutdown_mv64340_irq,
-       enable_mv64340_irq,
-       disable_mv64340_irq,
-       mask_and_ack_mv64340_irq,
-       end_mv64340_irq,
-       NULL
-};
-
-void mv64340_irq_init(void)
-{
-       int i;
-
-       /* Reset irq handlers pointers to NULL */
-       for (i = MV64340_IRQ_BASE; i < (MV64340_IRQ_BASE + 64); i++) {
-               irq_desc[i].status = IRQ_DISABLED;
-               irq_desc[i].action = 0;
-               irq_desc[i].depth = 2;
-               irq_desc[i].handler = &mv64340_irq_type;
-       }
-}
diff --git a/arch/mips/momentum/jaguar_atx/pci-irq.c b/arch/mips/momentum/jaguar_atx/pci-irq.c
deleted file mode 100644 (file)
index 2a44719..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer Inc.
- * Author: Matthew Dharm <mdharm@momenco.com> 
- *
- * Based on work for the Linux port to the Ocelot board, which is
- * Copyright 2001 MontaVista Software Inc.
- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
- *
- * arch/mips/momentum/jaguar/pci.c
- *     Board-specific PCI routines for mv64340 controller.
- *
- * This program is free software; you can redistribute  it and/or modify it
- * under  the terms of  the GNU General  Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <asm/pci.h>
-
-
-void __init mv64340_board_pcibios_fixup_bus(struct pci_bus *bus)
-{
-       struct pci_bus *current_bus = bus;
-       struct pci_dev *devices;
-       struct list_head *devices_link;
-       u16 cmd;
-
-       /* loop over all known devices on this bus */
-       list_for_each(devices_link, &(current_bus->devices)) {
-
-               devices = pci_dev_b(devices_link);
-               if (devices == NULL)
-                       continue;
-
-               if ((current_bus->number == 0) &&
-                       (PCI_SLOT(devices->devfn) == 1)) {
-                       /* PCI-X A */
-                       devices->irq = 3;
-               } else if ((current_bus->number == 0) &&
-                       (PCI_SLOT(devices->devfn) == 2)) {
-                       /* PCI-X B */
-                       devices->irq = 4;
-               } else if ((current_bus->number == 1) &&
-                       (PCI_SLOT(devices->devfn) == 1)) {
-                       /* PCI A */
-                       devices->irq = 5;
-               } else if ((current_bus->number == 1) &&
-                       (PCI_SLOT(devices->devfn) == 2)) {
-                       /* PCI B */
-                       devices->irq = 6;
-               } else {
-                       /* We don't have assign interrupts for other devices. */
-                       devices->irq = 0xff;
-               }
-
-               /* Assign an interrupt number for the device */
-               bus->ops->write_byte(devices, PCI_INTERRUPT_LINE, devices->irq);
-
-               /* enable master for everything but the MV-64340 */
-               if (((current_bus->number != 0) && (current_bus->number != 1))
-                               || (PCI_SLOT(devices->devfn) != 0)) {
-                       bus->ops->read_word(devices, PCI_COMMAND, &cmd);
-                       cmd |= PCI_COMMAND_MASTER;
-                       bus->ops->write_word(devices, PCI_COMMAND, cmd);
-               }
-       }
-}
diff --git a/arch/mips/momentum/jaguar_atx/pci.c b/arch/mips/momentum/jaguar_atx/pci.c
deleted file mode 100644 (file)
index 642a9e5..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer
- * Author: Matthew Dharm <mdharm@momenco.com>
- *
- *  This program is free software; you can redistribute  it and/or modify it
- *  under  the terms of  the GNU General  Public License as published by the
- *  Free Software Foundation;  either version 2 of the  License, or (at your
- *  option) any later version.
- *
- *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
- *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
- *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
- *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the  GNU General Public License along
- *  with this program; if not, write  to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <asm/pci.h>
-#include <asm/io.h>
-#include <asm/mv64340.h>
-
-void mv64340_board_pcibios_fixup_bus(struct pci_bus* c);
-
-struct pci_fixup pcibios_fixups[] = {
-       {0}
-};
-
-void __init pcibios_fixup_bus(struct pci_bus *c)
-{
-       mv64340_board_pcibios_fixup_bus(c);
-}
-
-void __init pcibios_init(void)
-{
-       /* Reset PCI I/O and PCI MEM values */
-       ioport_resource.start = 0xe0000000;
-       ioport_resource.end   = 0xe0000000 + 0x20000000 - 1;
-       iomem_resource.start  = 0xc0000000;
-       iomem_resource.end    = 0xc0000000 + 0x20000000 - 1;
-
-       pci_scan_bus(0, &mv64340_bus0_pci_ops, NULL);
-       pci_scan_bus(1, &mv64340_bus1_pci_ops, NULL);
-}
index 55ab2deabdc82cb7f6d0286477cc05c59191c9ee..f96211aee59897b5441ab092ac14ba5f6c43ae34 100644 (file)
@@ -13,6 +13,8 @@
  * 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.
+ *
+ * Added changes for SMP - Manish Lachwani (lachwani@pmc-sierra.com)
  */
 #include <linux/config.h>
 #include <linux/init.h>
 
 #include "jaguar_atx_fpga.h"
 
+extern void ja_setup_console(void);
 
 struct callvectors {
-       int     (*open) (char*, int, int);
-       int     (*close) (int);
-       int     (*read) (int, void*, int);
-       int     (*write) (int, void*, int);
-       off_t   (*lseek) (int, off_t, int);
-       int     (*printf) (const char*, ...);
-       void    (*cacheflush) (void);
-       char*   (*gets) (char*);
+       int     (*open) (char*, int, int);              /*       0 */
+       int     (*close) (int);                         /*       4 */
+       int     (*read) (int, void*, int);              /*       8 */
+       int     (*write) (int, void*, int);             /*      12 */
+       off_t   (*lseek) (int, off_t, int);             /*      16 */
+       int     (*printf) (const char*, ...);           /*      20 */
+       void    (*cacheflush) (void);                   /*      24 */
+       char*   (*gets) (char*);                        /*      28 */
 };
 
-struct callvectorsdebug_vectors;
+struct callvectors *debug_vectors;
 
 extern unsigned long mv64340_base;
 extern unsigned long cpu_clock;
 
-#ifdef CONFIG_MV64340_ETH
-extern unsigned char prom_mac_addr_base[6];
-#endif
-
 const char *get_system_type(void)
 {
        return "Momentum Jaguar-ATX";
 }
 
 #ifdef CONFIG_MV64340_ETH
+extern unsigned char prom_mac_addr_base[6];
+
 static void burn_clocks(void)
 {
        int i;
@@ -100,56 +101,58 @@ void get_mac(char dest[6])
 }
 #endif
 
-
 #ifdef CONFIG_MIPS64
 
 unsigned long signext(unsigned long addr)
 {
-  addr &= 0xffffffff;
-  return (unsigned long)((int)addr);
+       addr &= 0xffffffff;
+       return (unsigned long)((int)addr);
 }
 
 void *get_arg(unsigned long args, int arc)
 {
-  unsigned long ul;
-  unsigned char *puc, uc;
+       unsigned long ul;
+       unsigned char *puc, uc;
 
-  args += (arc * 4);
-  ul = (unsigned long)signext(args);
-  puc = (unsigned char *)ul;
-  if (puc == 0)
-    return (void *)0;
+       args += (arc * 4);
+       ul = (unsigned long)signext(args);
+       puc = (unsigned char *)ul;
+       if (puc == 0)
+               return (void *)0;
 
 #ifdef CONFIG_CPU_LITTLE_ENDIAN
-  uc = *puc++;
-  ul = (unsigned long)uc;
-  uc = *puc++;
-  ul |= (((unsigned long)uc) << 8);
-  uc = *puc++;
-  ul |= (((unsigned long)uc) << 16);
-  uc = *puc++;
-  ul |= (((unsigned long)uc) << 24);
+       uc = *puc++;
+       l = (unsigned long)uc;
+       uc = *puc++;
+       ul |= (((unsigned long)uc) << 8);
+       uc = *puc++;
+       ul |= (((unsigned long)uc) << 16);
+       uc = *puc++;
+       ul |= (((unsigned long)uc) << 24);
 #else
-  uc = *puc++;
-  ul = ((unsigned long)uc) << 24;
-  uc = *puc++;
-  ul |= (((unsigned long)uc) << 16);
-  uc = *puc++;
-  ul |= (((unsigned long)uc) << 8);
-  uc = *puc++;
-  ul |= ((unsigned long)uc);
+       uc = *puc++;
+       ul = ((unsigned long)uc) << 24;
+       uc = *puc++;
+       ul |= (((unsigned long)uc) << 16);
+       uc = *puc++;
+       ul |= (((unsigned long)uc) << 8);
+       uc = *puc++;
+       ul |= ((unsigned long)uc);
 #endif
-  ul = signext(ul);
-  return (void *)ul;
+       ul = signext(ul);
+
+       return (void *)ul;
 }
 
 char *arg64(unsigned long addrin, int arg_index)
 {
-  unsigned long args;
-  char *p;
-  args = signext(addrin);
-  p = (char *)get_arg(args, arg_index);
-  return p;
+       unsigned long args;
+       char *p;
+
+       args = signext(addrin);
+       p = (char *)get_arg(args, arg_index);
+
+       return p;
 }
 #endif  /* CONFIG_MIPS64 */
 
@@ -159,7 +162,13 @@ void __init prom_init(void)
        int argc = fw_arg0;
        char **arg = (char **) fw_arg1;
        char **env = (char **) fw_arg2;
+       struct callvectors *cv = (struct callvectors *) fw_arg3;
        int i;
+
+#ifdef CONFIG_SERIAL_8250_CONSOLE
+//     ja_setup_console();     /* The very first thing.  */
+#endif
+
 #ifdef CONFIG_MIPS64
        char *ptr;
 
@@ -236,13 +245,47 @@ void __init prom_init(void)
        /* get the base MAC address for on-board ethernet ports */
        get_mac(prom_mac_addr_base);
 #endif
+}
 
-#ifndef CONFIG_MIPS64
-       debug_vectors->printf("Booting Linux kernel...\n");
-#endif
+void __init prom_free_prom_memory(void)
+{
+}
+
+void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
+{
+}
+
+/*
+ * SMP support
+ */
+int prom_setup_smp(void)
+{
+       int     num_cpus = 2;
+
+       /*
+        * We know that the RM9000 on the Jaguar ATX board has 2 cores.
+        * Hence, this can be hardcoded for now.
+        */
+       return num_cpus;
+}
+
+int prom_boot_secondary(int cpu, unsigned long sp, unsigned long gp)
+{
+       /* Clear the semaphore */
+       *(volatile uint32_t *)(0xbb000a68) = 0x80000000;
+
+       return 1;
+}
+
+void prom_init_secondary(void)
+{
+        clear_c0_config(CONF_CM_CMASK);
+        set_c0_config(0x2);
+
+       clear_c0_status(ST0_IM);
+       set_c0_status(0x1ffff);
 }
 
-unsigned long __init prom_free_prom_memory(void)
+void prom_smp_finish(void)
 {
-       return 0;
 }
index 1b805989f12f8a14560b0115b9918476ef9f874a..7c2f25ffc6df3d2c78eb970061770ce1b9b4551a 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * setup.c
- *
  * BRIEF MODULE DESCRIPTION
  * Momentum Computer Jaguar-ATX board dependent boot routines
  *
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 #include <linux/config.h>
+#include <linux/bcd.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
+#include <linux/bootmem.h>
 #include <linux/swap.h>
 #include <linux/ioport.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
-#include <linux/pci.h>
 #include <linux/timex.h>
 #include <linux/vmalloc.h>
 #include <asm/time.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/pci.h>
+#include <asm/pci_channel.h>
 #include <asm/processor.h>
 #include <asm/ptrace.h>
 #include <asm/reboot.h>
-#include <linux/bootmem.h>
-#include <linux/blk.h>
+#include <asm/tlbflush.h>
 #include <asm/mv64340.h>
-#include "jaguar_atx_fpga.h"
 
+#include "jaguar_atx_fpga.h"
 
-unsigned long mv64340_base;
 extern unsigned long mv64340_sram_base;
 unsigned long cpu_clock;
 
@@ -81,78 +79,88 @@ void momenco_time_init(void);
 
 static char reset_reason;
 
-#define ENTRYLO(x) ((pte_val(mk_pte_phys((x), PAGE_KERNEL_UNCACHED)) >> 6)|1)
+static inline unsigned long ENTRYLO(unsigned long paddr)
+{
+       return ((paddr & PAGE_MASK) |
+              (_PAGE_PRESENT | __READABLE | __WRITEABLE | _PAGE_GLOBAL |
+               _CACHE_UNCACHED)) >> 6;
+}
 
 void __init bus_error_init(void) { /* nothing */ }
 
-/* setup code for a handoff from a version 2 PMON 2000 PROM */
-void PMON_v2_setup(void)
+/*
+ * Load a few TLB entries for the MV64340 and perhiperals. The MV64340 is going
+ * to be hit on every IRQ anyway - there's absolutely no point in letting it be
+ * a random TLB entry, as it'll just cause needless churning of the TLB. And we
+ * use the other half for the serial port, which is just a PITA otherwise :)
+ *
+ *     Device                  Physical        Virtual
+ *     MV64340 Internal Regs   0xf4000000      0xf4000000
+ *     Ocelot-C[S] PLD (CS0)   0xfc000000      0xfc000000
+ *     NVRAM (CS1)             0xfc800000      0xfc800000
+ *     UARTs (CS2)             0xfd000000      0xfd000000
+ *     Internal SRAM           0xfe000000      0xfe000000
+ *     M-Systems DOC (CS3)     0xff000000      0xff000000
+ */
+
+static __init void wire_stupidity_into_tlb(void)
 {
-       /* Some wired TLB entries for the MV64340 and perhiperals. The
-          MV64340 is going to be hit on every IRQ anyway - there's
-          absolutely no point in letting it be a random TLB entry, as
-          it'll just cause needless churning of the TLB. And we use
-          the other half for the serial port, which is just a PITA
-          otherwise :)
-
-               Device                  Physical        Virtual
-               MV64340 Internal Regs   0xf4000000      0xf4000000
-               Ocelot-C[S] PLD (CS0)   0xfc000000      0xfc000000
-               NVRAM (CS1)             0xfc800000      0xfc800000
-               UARTs (CS2)             0xfd000000      0xfd000000
-               Internal SRAM           0xfe000000      0xfe000000
-               M-Systems DOC (CS3)     0xff000000      0xff000000
-       */
-  printk("PMON_v2_setup\n");
-
-#ifdef CONFIG_MIPS64
-       /* marvell and extra space */
-       add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xfffffffff4000000, PM_64K);
-       /* fpga, rtc, and uart */
-       add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), 0xfffffffffc000000, PM_16M);
-       /* m-sys and internal SRAM */
-       add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfffffffffe000000, PM_16M);
+#ifdef CONFIG_MIPS32
+       write_c0_wired(0);
+       local_flush_tlb_all();
 
-       mv64340_base = 0xfffffffff4000000;
-       mv64340_sram_base = 0xfffffffffe000000;
-#else
        /* marvell and extra space */
-       add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xf4000000, PM_64K);
+       add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000),
+                       0xf4000000UL, PM_64K);
        /* fpga, rtc, and uart */
-       add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), 0xfc000000, PM_16M);
-       /* m-sys and internal SRAM */
-       add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfe000000, PM_16M);
+       add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000),
+                       0xfc000000UL, PM_16M);
+//     /* m-sys and internal SRAM */
+//     add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000),
+//                     0xfe000000UL, PM_16M);
 
        mv64340_base = 0xf4000000;
-       mv64340_sram_base = 0xfe000000;
+       //mv64340_sram_base = 0xfe000000;       /* Currently unused */
 #endif
 }
 
-#define CONV_BCD_TO_BIN(val)   (((val) & 0xf) + (((val) >> 4) * 10))
-#define CONV_BIN_TO_BCD(val)   (((val) % 10) + (((val) / 10) << 4))
+unsigned long mv64340_base     = 0xf4000000L;
+unsigned long ja_fpga_base     = JAGUAR_ATX_CS0_ADDR;
+unsigned long uart_base                = 0xfd000000L;
+static unsigned char *rtc_base = (unsigned char*) 0xfc800000L;
+
+static __init int per_cpu_mappings(void)
+{
+       mv64340_base    = (unsigned long) ioremap(0xf4000000, 0x10000);
+       ja_fpga_base    = (unsigned long) ioremap(JAGUAR_ATX_CS0_ADDR,  0x1000);
+       uart_base       = (unsigned long) ioremap(0xfd000000UL, 0x1000);
+       rtc_base        = ioremap(0xfc000000UL, 0x8000);
+       // ioremap(0xfe000000,  32 << 20);
+       write_c0_wired(0);
+       local_flush_tlb_all();
+       ja_setup_console();
+
+       return 0;
+}
+arch_initcall(per_cpu_mappings);
 
 unsigned long m48t37y_get_time(void)
 {
-#ifdef CONFIG_MIPS64
-       unsigned char *rtc_base = (unsigned char*)0xfffffffffc800000;
-#else
-       unsigned char *rtc_base = (unsigned char*)0xfc800000;
-#endif
        unsigned int year, month, day, hour, min, sec;
 
        /* stop the update */
        rtc_base[0x7ff8] = 0x40;
 
-       year = CONV_BCD_TO_BIN(rtc_base[0x7fff]);
-       year += CONV_BCD_TO_BIN(rtc_base[0x7ff1]) * 100;
+       year = BCD2BIN(rtc_base[0x7fff]);
+       year += BCD2BIN(rtc_base[0x7ff1]) * 100;
 
-       month = CONV_BCD_TO_BIN(rtc_base[0x7ffe]);
+       month = BCD2BIN(rtc_base[0x7ffe]);
 
-       day = CONV_BCD_TO_BIN(rtc_base[0x7ffd]);
+       day = BCD2BIN(rtc_base[0x7ffd]);
 
-       hour = CONV_BCD_TO_BIN(rtc_base[0x7ffb]);
-       min = CONV_BCD_TO_BIN(rtc_base[0x7ffa]);
-       sec = CONV_BCD_TO_BIN(rtc_base[0x7ff9]);
+       hour = BCD2BIN(rtc_base[0x7ffb]);
+       min = BCD2BIN(rtc_base[0x7ffa]);
+       sec = BCD2BIN(rtc_base[0x7ff9]);
 
        /* start the update */
        rtc_base[0x7ff8] = 0x00;
@@ -162,11 +170,6 @@ unsigned long m48t37y_get_time(void)
 
 int m48t37y_set_time(unsigned long sec)
 {
-#ifdef CONFIG_MIPS64
-       unsigned char *rtc_base = (unsigned char*)0xfffffffffc800000;
-#else
-       unsigned char *rtc_base = (unsigned char*)0xfc800000;
-#endif
        struct rtc_time tm;
 
        /* convert to a more useful format -- note months count from 0 */
@@ -177,22 +180,22 @@ int m48t37y_set_time(unsigned long sec)
        rtc_base[0x7ff8] = 0x80;
 
        /* year */
-       rtc_base[0x7fff] = CONV_BIN_TO_BCD(tm.tm_year % 100);
-       rtc_base[0x7ff1] = CONV_BIN_TO_BCD(tm.tm_year / 100);
+       rtc_base[0x7fff] = BIN2BCD(tm.tm_year % 100);
+       rtc_base[0x7ff1] = BIN2BCD(tm.tm_year / 100);
 
        /* month */
-       rtc_base[0x7ffe] = CONV_BIN_TO_BCD(tm.tm_mon);
+       rtc_base[0x7ffe] = BIN2BCD(tm.tm_mon);
 
        /* day */
-       rtc_base[0x7ffd] = CONV_BIN_TO_BCD(tm.tm_mday);
+       rtc_base[0x7ffd] = BIN2BCD(tm.tm_mday);
 
        /* hour/min/sec */
-       rtc_base[0x7ffb] = CONV_BIN_TO_BCD(tm.tm_hour);
-       rtc_base[0x7ffa] = CONV_BIN_TO_BCD(tm.tm_min);
-       rtc_base[0x7ff9] = CONV_BIN_TO_BCD(tm.tm_sec);
+       rtc_base[0x7ffb] = BIN2BCD(tm.tm_hour);
+       rtc_base[0x7ffa] = BIN2BCD(tm.tm_min);
+       rtc_base[0x7ff9] = BIN2BCD(tm.tm_sec);
 
        /* day of week -- not really used, but let's keep it up-to-date */
-       rtc_base[0x7ffc] = CONV_BIN_TO_BCD(tm.tm_wday + 1);
+       rtc_base[0x7ffc] = BIN2BCD(tm.tm_wday + 1);
 
        /* disable writing */
        rtc_base[0x7ff8] = 0x00;
@@ -205,8 +208,14 @@ void momenco_timer_setup(struct irqaction *irq)
        setup_irq(8, irq);
 }
 
+/*
+ * Ugly but the least of all evils.  TLB initialization did flush the TLB so
+ * We need to setup mappings again before we can touch the RTC.
+ */
 void momenco_time_init(void)
 {
+       wire_stupidity_into_tlb();
+
        mips_hpt_frequency = cpu_clock / 2;
        board_timer_setup = momenco_timer_setup;
 
@@ -214,7 +223,129 @@ void momenco_time_init(void)
        rtc_set_time = m48t37y_set_time;
 }
 
-static void __init momenco_jaguar_atx_setup(void)
+static struct resource mv_pci_io_mem0_resource = {
+       .name   = "MV64340 PCI0 IO MEM",
+       .flags  = IORESOURCE_IO
+};
+
+static struct resource mv_pci_mem0_resource = {
+       .name   = "MV64340 PCI0 MEM",
+       .flags  = IORESOURCE_MEM
+};
+
+extern struct pci_ops mv64340_bus0_pci_ops;
+
+static struct pci_controller mv_bus0_controller = {
+       .pci_ops        = &mv64340_bus0_pci_ops,
+       .mem_resource   = &mv_pci_mem0_resource,
+       .io_resource    = &mv_pci_io_mem0_resource,
+};
+
+static uint32_t mv_io_base, mv_io_size;
+
+static void ja_pci0_init(void)
+{
+       uint32_t mem0_base, mem0_size;
+       uint32_t io_base, io_size;
+
+       io_base = MV_READ(MV64340_PCI_0_IO_BASE_ADDR) << 16;
+       io_size = (MV_READ(MV64340_PCI_0_IO_SIZE) + 1) << 16;
+       mem0_base = MV_READ(MV64340_PCI_0_MEMORY0_BASE_ADDR) << 16;
+       mem0_size = (MV_READ(MV64340_PCI_0_MEMORY0_SIZE) + 1) << 16;
+
+       mv_pci_io_mem0_resource.start   = 0;
+       mv_pci_io_mem0_resource.end     = io_size - 1;
+       mv_pci_mem0_resource.start      = mem0_base;
+       mv_pci_mem0_resource.end        = mem0_base + mem0_size - 1;
+       mv_bus0_controller.mem_offset   = mem0_base;
+       mv_bus0_controller.io_offset    = 0;
+
+       ioport_resource.end             = io_size - 1;
+
+       register_pci_controller(&mv_bus0_controller);
+
+       mv_io_base = io_base;
+       mv_io_size = io_size;
+}
+
+static struct resource mv_pci_io_mem1_resource = {
+       .name   = "MV64340 PCI1 IO MEM",
+       .flags  = IORESOURCE_IO
+};
+
+static struct resource mv_pci_mem1_resource = {
+       .name   = "MV64340 PCI1 MEM",
+       .flags  = IORESOURCE_MEM
+};
+
+extern struct pci_ops mv64340_bus1_pci_ops;
+
+static struct pci_controller mv_bus1_controller = {
+       .pci_ops        = &mv64340_bus1_pci_ops,
+       .mem_resource   = &mv_pci_mem1_resource,
+       .io_resource    = &mv_pci_io_mem1_resource,
+};
+
+static __init void ja_pci1_init(void)
+{
+       uint32_t mem0_base, mem0_size;
+       uint32_t io_base, io_size;
+
+       io_base = MV_READ(MV64340_PCI_1_IO_BASE_ADDR) << 16;
+       io_size = (MV_READ(MV64340_PCI_1_IO_SIZE) + 1) << 16;
+       mem0_base = MV_READ(MV64340_PCI_1_MEMORY0_BASE_ADDR) << 16;
+       mem0_size = (MV_READ(MV64340_PCI_1_MEMORY0_SIZE) + 1) << 16;
+
+       /*
+        * Here we assume the I/O window of second bus to be contiguous with
+        * the first.  A gap is no problem but would waste address space for
+        * remapping the port space.
+        */
+       mv_pci_io_mem1_resource.start   = mv_io_size;
+       mv_pci_io_mem1_resource.end     = mv_io_size + io_size - 1;
+       mv_pci_mem1_resource.start      = mem0_base;
+       mv_pci_mem1_resource.end        = mem0_base + mem0_size - 1;
+       mv_bus1_controller.mem_offset   = mem0_base;
+       mv_bus1_controller.io_offset    = 0;
+
+       ioport_resource.end             = io_base + io_size -mv_io_base - 1;
+
+       register_pci_controller(&mv_bus1_controller);
+
+       mv_io_size = io_base + io_size - mv_io_base;
+}
+
+static __init int __init ja_pci_init(void)
+{
+       unsigned long io_v_base;
+       uint32_t enable;
+
+       enable = ~MV_READ(MV64340_BASE_ADDR_ENABLE);
+
+       /*
+        * We require at least one enabled I/O or PCI memory window or we
+        * will ignore this PCI bus.  We ignore PCI windows 1, 2 and 3.
+        */
+       if (enable & (0x01 <<  9) || enable & (0x01 << 10))
+               ja_pci0_init();
+
+       if (enable & (0x01 << 14) || enable & (0x01 << 15))
+               ja_pci1_init();
+
+       if (mv_io_size) {
+               io_v_base = (unsigned long) ioremap(mv_io_base, mv_io_size);
+               if (!io_v_base)
+                       panic("Could not ioremap I/O port range");
+
+               set_io_port_base(io_v_base);
+       }
+
+       return 0;
+}
+
+arch_initcall(ja_pci_init);
+
+static int  __init momenco_jaguar_atx_setup(void)
 {
        unsigned int tmpword;
 
@@ -230,10 +361,10 @@ static void __init momenco_jaguar_atx_setup(void)
         * initrd_below_start_ok = 1;
         */
 
-       /* do handoff reconfiguration */
-       PMON_v2_setup();
+       wire_stupidity_into_tlb();
 
-       /* shut down ethernet ports, just to be sure our memory doesn't get
+       /*
+        * shut down ethernet ports, just to be sure our memory doesn't get
         * corrupted by random ethernet traffic.
         */
        MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8);
@@ -242,21 +373,18 @@ static void __init momenco_jaguar_atx_setup(void)
        MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8);
        MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8);
        MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(2), 0xff << 8);
-       do {}
-         while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
-       do {}
-         while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
-       do {}
-         while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(2)) & 0xff);
-       do {}
-         while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
-       do {}
-         while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
-       do {}
-         while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(2)) & 0xff);
-       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
-       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
-       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(2), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(2)) & ~1);
+       while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
+       while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
+       while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(2)) & 0xff);
+       while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
+       while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
+       while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(2)) & 0xff);
+       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0),
+                MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
+       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1),
+                MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
+       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(2),
+                MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(2)) & ~1);
 
        /* Turn off the Bit-Error LED */
        JAGUAR_FPGA_WRITE(0x80, CLR);
@@ -274,20 +402,20 @@ static void __init momenco_jaguar_atx_setup(void)
        tmpword = JAGUAR_FPGA_READ(RESET_STATUS);
        printk("Reset reason: 0x%x\n", tmpword);
        switch (tmpword) {
-               case 0x1:
-                       printk("  - Power-up reset\n");
-                       break;
-               case 0x2:
-                       printk("  - Push-button reset\n");
-                       break;
-               case 0x8:
-                       printk("  - Watchdog reset\n");
-                       break;
-               case 0x10:
-                       printk("  - JTAG reset\n");
-                       break;
-               default:
-                       printk("  - Unknown reset cause\n");
+       case 0x1:
+               printk("  - Power-up reset\n");
+               break;
+       case 0x2:
+               printk("  - Push-button reset\n");
+               break;
+       case 0x8:
+               printk("  - Watchdog reset\n");
+               break;
+       case 0x10:
+               printk("  - JTAG reset\n");
+               break;
+       default:
+               printk("  - Unknown reset cause\n");
        }
        reset_reason = tmpword;
        JAGUAR_FPGA_WRITE(0xff, RESET_STATUS);
@@ -333,28 +461,8 @@ static void __init momenco_jaguar_atx_setup(void)
 
        }
 #endif
-}
-
-early_initcall(momenco_jaguar_atx_setup);
-
-
-#ifndef CONFIG_MIPS64
-/* This needs to be one of the first initcalls, because no I/O port access
-   can work before this */
-static int io_base_ioremap(void)
-{
-       /* we're mapping PCI accesses from 0xc0000000 to 0xf0000000 */
-       void *io_remap_range = ioremap(0xc0000000, 0x30000000);
-
-       printk("*** io_base_ioremap\n");
-       if (!io_remap_range) {
-               panic("Could not ioremap I/O port range");
-       }
-       printk("io_remap_range set at 0x%08x\n", (uint32_t)io_remap_range);
-       set_io_port_base(io_remap_range - 0xc0000000);
 
        return 0;
 }
 
-module_init(io_base_ioremap);
-#endif
+early_initcall(momenco_jaguar_atx_setup);
index ced03d01b7442eff0323536ca9dad3718d812ad8..6efdd145e7d7ab77821a0b2304431a13d30a6f87 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile for Momentum Computer's Ocelot-C and -CS boards.
 #
 
-obj-y                  += mv-irq.o cpci-irq.o uart-irq.o int-handler.o irq.o \
-                          pci-irq.o prom.o reset.o setup.o 
+obj-y                  += cpci-irq.o uart-irq.o int-handler.o irq.o pci-irq.o \
+                          prom.o reset.o setup.o
 
 obj-$(CONFIG_KGDB)     += dbg_io.o
index 57a1733109ca4219bf539d8265582c654281f17e..d12f5befdf6f7fe3f2b96f49474a4bc7ba398198 100644 (file)
@@ -49,7 +49,6 @@
 #include <asm/system.h>
 
 extern asmlinkage void ocelot_handle_int(void);
-extern void mv64340_irq_init(void);
 extern void uart_irq_init(void);
 extern void cpci_irq_init(void);
 
@@ -79,7 +78,7 @@ void __init init_IRQ(void)
        setup_irq(5, &cascade_fpga);
        setup_irq(6, &cascade_mv64340);
 
-       mv64340_irq_init();
+       mv64340_irq_init(16);
        uart_irq_init();
        cpci_irq_init();
 
diff --git a/arch/mips/momentum/ocelot_c/mv-irq.c b/arch/mips/momentum/ocelot_c/mv-irq.c
deleted file mode 100644 (file)
index 9f787bf..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer
- * Author: mdharm@momenco.com
- *
- * arch/mips/momentum/ocelot_c/mv-irq.c
- *     Interrupt routines for mv64340.  Interrupt numbers are assigned from
- *     MV64340_IRQ_BASE to MV64340_IRQ_BASE+63.
- *
- * This program is free software; you can redistribute  it and/or modify it
- * under  the terms of  the GNU General  Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/kernel.h>
-#include <asm/ptrace.h>
-#include <linux/sched.h>
-#include <linux/kernel_stat.h>
-#include <asm/io.h>
-#include <asm/mv64340.h>
-
-#define MV64340_IRQ_BASE       16
-
-static inline int ls1bit32(unsigned int x)
-{
-        int b = 31, s;
-
-        s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
-        s =  8; if (x <<  8 == 0) s = 0; b -= s; x <<= s;
-        s =  4; if (x <<  4 == 0) s = 0; b -= s; x <<= s;
-        s =  2; if (x <<  2 == 0) s = 0; b -= s; x <<= s;
-        s =  1; if (x <<  1 == 0) s = 0; b -= s;
-
-        return b;
-}
-
-/* mask off an interrupt -- 1 is enable, 0 is disable */
-static inline void mask_mv64340_irq(unsigned int irq)
-{
-       uint32_t value;
-
-       if (irq < (MV64340_IRQ_BASE + 32)) {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
-               value &= ~(1 << (irq - MV64340_IRQ_BASE));
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
-       } else {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
-               value &= ~(1 << (irq - (MV64340_IRQ_BASE - 32)));
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
-       }
-}
-
-/* unmask an interrupt -- 1 is enable, 0 is disable */
-static inline void unmask_mv64340_irq(unsigned int irq)
-{
-       uint32_t value;
-
-       if (irq < (MV64340_IRQ_BASE + 32)) {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
-               value |= 1 << (irq - MV64340_IRQ_BASE);
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
-       } else {
-               MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
-               value |= 1 << (irq - (MV64340_IRQ_BASE - 32));
-               MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
-       }
-}
-
-/*
- * Enables the IRQ on Marvell Chip
- */
-static void enable_mv64340_irq(unsigned int irq)
-{
-       unmask_mv64340_irq(irq);
-}
-
-/*
- * Initialize the IRQ on Marvell Chip
- */
-static unsigned int startup_mv64340_irq(unsigned int irq)
-{
-       unmask_mv64340_irq(irq);
-       return 0;
-}
-
-/*
- * Disables the IRQ on Marvell Chip
- */
-static void disable_mv64340_irq(unsigned int irq)
-{
-       mask_mv64340_irq(irq);
-}
-
-/*
- * Masks and ACKs an IRQ
- */
-static void mask_and_ack_mv64340_irq(unsigned int irq)
-{
-       mask_mv64340_irq(irq);
-}
-
-/*
- * End IRQ processing
- */
-static void end_mv64340_irq(unsigned int irq)
-{
-       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-               unmask_mv64340_irq(irq);
-}
-
-/*
- * Interrupt handler for interrupts coming from the Marvell chip.
- * It could be built in ethernet ports etc...
- */
-void ll_mv64340_irq(struct pt_regs *regs)
-{
-       unsigned int irq_src_low, irq_src_high;
-       unsigned int irq_mask_low, irq_mask_high;
-
-       /* read the interrupt status registers */
-       MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &irq_mask_low);
-       MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &irq_mask_high);
-       MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_LOW, &irq_src_low);
-       MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_HIGH, &irq_src_high);
-
-       /* mask for just the interrupts we want */
-       irq_src_low &= irq_mask_low;
-       irq_src_high &= irq_mask_high;
-
-       if (irq_src_low) 
-               do_IRQ(ls1bit32(irq_src_low) + MV64340_IRQ_BASE, regs);
-       else
-               do_IRQ(ls1bit32(irq_src_high) + MV64340_IRQ_BASE + 32, regs);
-}
-
-#define shutdown_mv64340_irq   disable_mv64340_irq
-
-struct hw_interrupt_type mv64340_irq_type = {
-       "MV-64340",
-       startup_mv64340_irq,
-       shutdown_mv64340_irq,
-       enable_mv64340_irq,
-       disable_mv64340_irq,
-       mask_and_ack_mv64340_irq,
-       end_mv64340_irq,
-       NULL
-};
-
-void mv64340_irq_init(void)
-{
-       int i;
-
-       /* Reset irq handlers pointers to NULL */
-       for (i = MV64340_IRQ_BASE; i < (MV64340_IRQ_BASE + 64); i++) {
-               irq_desc[i].status = IRQ_DISABLED;
-               irq_desc[i].action = 0;
-               irq_desc[i].depth = 2;
-               irq_desc[i].handler = &mv64340_irq_type;
-       }
-}
index a50f3f11dc188b5a578d31ed8b31e5f0bc013fc0..1079858bff79c265a5a178e5a8ae78b23d0114df 100644 (file)
@@ -81,7 +81,13 @@ void momenco_time_init(void);
 static char reset_reason;
 
 void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, unsigned long entryhi, unsigned long pagemask);
-#define ENTRYLO(x) ((pte_val(mk_pte_phys((x), PAGE_KERNEL_UNCACHED)) >> 6)|1)
+
+static unsigned long ENTRYLO(unsigned long paddr)
+{
+       return ((paddr & PAGE_MASK) |
+              (_PAGE_PRESENT | __READABLE | __WRITEABLE | _PAGE_GLOBAL |
+               _CACHE_UNCACHED)) >> 6;
+}
 
 /* setup code for a handoff from a version 2 PMON 2000 PROM */
 void PMON_v2_setup(void)
@@ -243,15 +249,17 @@ static void __init momenco_ocelot_c_setup(void)
        MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8);
        MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8);
        do {}
-         while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
+         while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
        do {}
-         while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
+         while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
        do {}
-         while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
+         while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
        do {}
-         while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
-       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
-       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
+         while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
+       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0),
+                MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
+       MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1),
+                MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
 
        /* Turn off the Bit-Error LED */
        OCELOT_FPGA_WRITE(0x80, CLR);
index 4ac68685e406d642c6e8e6a0a294e9bda308b9f4..9a3010dae023c8616a8c3c90f9452793f766a751 100644 (file)
@@ -81,7 +81,12 @@ extern void momenco_ocelot_irq_setup(void);
 
 static char reset_reason;
 
-#define ENTRYLO(x) ((pte_val(pfn_pte((x) >> PAGE_SHIFT, PAGE_KERNEL_UNCACHED)) >> 6)|1)
+static unsigned long ENTRYLO(unsigned long paddr)
+{
+       return ((paddr & PAGE_MASK) |
+              (_PAGE_PRESENT | __READABLE | __WRITEABLE | _PAGE_GLOBAL |
+               _CACHE_UNCACHED)) >> 6;
+}
 
 static void __init setup_l3cache(unsigned long size);
 
index 546633625d0a5b073497130ef4cfbd1beaef9d95..a380308eff83abcf7aa82e9bf241f1c107f2341b 100644 (file)
@@ -24,6 +24,7 @@ obj-$(CONFIG_DDB5074)         += fixup-ddb5074.o pci-ddb5074.o ops-ddb5074.o
 obj-$(CONFIG_DDB5476)          += ops-ddb5476.o pci-ddb5476.o
 obj-$(CONFIG_DDB5477)          += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o
 obj-$(CONFIG_HP_LASERJET)      += pci-hplj.o
+obj-$(CONFIG_LASAT)            += pci-lasat.o fixup-lasat.o
 obj-$(CONFIG_MIPS_ATLAS)       += fixup-atlas.o
 obj-$(CONFIG_MIPS_COBALT)      += fixup-cobalt.o
 obj-$(CONFIG_MIPS_EV96100)     += fixup-ev64120.o
@@ -31,7 +32,9 @@ obj-$(CONFIG_MIPS_EV96100)    += fixup-ev96100.o pci-ev96100.o
 obj-$(CONFIG_MIPS_ITE8172)     += fixup-ite8172g.o
 obj-$(CONFIG_MIPS_IVR)         += fixup-ivr.o
 obj-$(CONFIG_SOC_AU1500)       += fixup-au1000.o ops-au1000.o
+obj-$(CONFIG_SOC_AU1550)       += fixup-au1000.o ops-au1000.o
 obj-$(CONFIG_MIPS_MALTA)       += fixup-malta.o
+obj-$(CONFIG_MIPS_MV64340)     += fixup-mv64340.o
 obj-$(CONFIG_MOMENCO_OCELOT)   += fixup-ocelot.o pci-ocelot.o
 obj-$(CONFIG_MOMENCO_OCELOT_C) += pci-ocelot-c.o
 obj-$(CONFIG_MOMENCO_OCELOT_G) += pci-ocelot-g.o
index 6a964f8d16ddd3ceb6c5b52a0d7fd6993ea3d95a..36fc6fe1674f11283d8d4ef32dc3a79ae1d2613e 100644 (file)
 #include <linux/init.h>
 
 #include <asm/mach-au1x00/au1000.h>
-//#include <asm/pb1500.h>
-#ifdef CONFIG_MIPS_PB1000
-#include <asm/mach-pb1x00/pb1000.h>
-#endif
 
 /*
  * Shortcut
@@ -46,7 +42,7 @@
 
 static char irq_tab_alchemy[][5] __initdata = {
  [11] = { -1, INTA, INTA, INTA, INTA },
- [12] = { -1, INTA, INTA, INTA, INTA }
+ [12] = { -1, INTA, INTA, INTA, INTA },
 #if defined( CONFIG_SOC_AU1550 )
  [13] = { -1, INTB, INTB, INTB, INTB }
 #endif
diff --git a/arch/mips/pci/fixup-lasat.c b/arch/mips/pci/fixup-lasat.c
new file mode 100644 (file)
index 0000000..49d33ff
--- /dev/null
@@ -0,0 +1,10 @@
+#include <linux/init.h>
+#include <linux/pci.h>
+
+void __init pcibios_fixup_irqs(void)
+{
+}
+
+struct pci_fixup pcibios_fixups[] __initdata = {
+    { 0 }
+};
diff --git a/arch/mips/pci/fixup-mv64340.c b/arch/mips/pci/fixup-mv64340.c
new file mode 100644 (file)
index 0000000..fa78b9b
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ *
+ * Marvell MV64340 interrupt fixup code.
+ *
+ * Marvell wants an NDA for their docs so this was written without
+ * documentation.  You've been warned.
+ *
+ * Copyright (C) 2004 Ralf Baechle
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+
+#include <asm/mipsregs.h>
+#include <asm/pci_channel.h>
+
+/*
+ * WARNING: Example of how _NOT_ to do it.
+ */
+int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+       int bus = dev->bus->number;
+
+       if (bus == 0 && slot == 1)
+               return 3;       /* PCI-X A */
+       if (bus == 0 && slot == 2)
+               return 4;       /* PCI-X B */
+       if (bus == 1 && slot == 1)
+               return 5;       /* PCI A */
+       if (bus == 1 && slot == 2)
+               return 6;       /* PCI B */
+
+return 0;
+       panic("Whooops in pcibios_map_irq");
+}
+
+struct pci_fixup pcibios_fixups[] = {
+       {0}
+};
index 03f8ae032e4bb73f509acdcc3fdb3bed6e144a16..74d052c66603bc7db3e983bf985043a7f97f7421 100644 (file)
 #include <linux/init.h>
 
 #include <asm/mach-au1x00/au1000.h>
-#ifdef CONFIG_MIPS_PB1000
-#include <asm/mac-pb1x00/pb1000.h>
-#endif
 
 #define PCI_ACCESS_READ  0
 #define PCI_ACCESS_WRITE 1
 
-#ifdef CONFIG_MIPS_PB1000
-/*
- * "Bus 2" is really the first and only external slot on the pb1000.
- * We'll call that bus 0, and limit the accesses to that single
- * external slot only. The SDRAM is already initialized in setup.c.
- */
-static int config_access(unsigned char access_type, struct pci_dev *dev,
-                        unsigned char where, u32 * data)
-{
-       unsigned char bus = dev->bus->number;
-       unsigned char dev_fn = dev->devfn;
-       unsigned long config;
-
-       if (((dev_fn >> 3) != 0) || (bus != 0)) {
-               *data = 0xffffffff;
-               return -1;
-       }
-
-       config = PCI_CONFIG_BASE | (where & ~0x3);
-
-       if (access_type == PCI_ACCESS_WRITE) {
-               au_writel(*data, config);
-       } else {
-               *data = au_readl(config);
-       }
-       au_sync_udelay(1);
-
-       if (au_readl(PCI_BRIDGE_CONFIG) & (1 << 16)) {
-               *data = 0xffffffff;
-               return -1;
-       } else {
-               return PCIBIOS_SUCCESSFUL;
-       }
-}
-
-#else
 
 static int config_access(unsigned char access_type, struct pci_bus *bus,
                         unsigned int devfn, unsigned char where,
                         u32 * data)
 {
-#ifdef CONFIG_SOC_AU1500
        unsigned int device = PCI_SLOT(devfn);
        unsigned int function = PCI_FUNC(devfn);
        unsigned long config, status;
@@ -120,7 +80,7 @@ static int config_access(unsigned char access_type, struct pci_bus *bus,
        /* setup the lower bits of the 36 bit address */
        config = cfg_addr | (function << 8) | (where & ~0x3);
 
-#if 0
+#if 1
        if (access_type == PCI_ACCESS_WRITE) {
                printk("cfg write:  ");
        } else {
@@ -145,6 +105,7 @@ static int config_access(unsigned char access_type, struct pci_bus *bus,
        /* check master abort */
        status = au_readl(Au1500_PCI_STATCMD);
        if (status & (1 << 29)) {
+               printk("master abort\n");
                *data = 0xffffffff;
                return -1;
        } else if ((status >> 28) & 0xf) {
@@ -152,11 +113,10 @@ static int config_access(unsigned char access_type, struct pci_bus *bus,
                *data = 0xffffffff;
                return -1;
        } else {
+               printk("bios_successful: %x\n", *data);
                return PCIBIOS_SUCCESSFUL;
        }
-#endif
 }
-#endif
 
 static int read_config_byte(struct pci_bus *bus, unsigned int devfn,
                            int where, u8 * val)
index b38d1ae2bc8a6fff18f75eec6c3e0f256d818755..235e01b302e7c7e5d715e70ee94099a56ffb71a2 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright 2002 Momentum Computer
  * Author: Matthew Dharm <mdharm@momenco.com>
  *
- * Copyright (C) 2003 Ralf Baechle (ralf@linux-mips.org)
+ * Copyright (C) 2003, 2004 Ralf Baechle (ralf@linux-mips.org)
  *
  *  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
@@ -60,23 +60,23 @@ static int mv64340_read_config(struct pci_bus *bus, unsigned int devfn, int reg,
        if (PCI_SLOT(devfn) > 5)
                return PCIBIOS_DEVICE_NOT_FOUND;
 
-       address = (bus->number << 16) | (dev << 11) | (func << 8) |
-                 (offset & 0xfc) | 0x80000000;
+       address = (bus->number << 16) | (devfn << 8) |
+                 (reg & 0xfc) | 0x80000000;
 
        /* start the configuration cycle */
        MV_WRITE(address_reg, address);
 
        switch (size) {
        case 1:
-               MV_READ_8(data_reg + (offset & 0x3), val);
+               *val = MV_READ_8(data_reg + (reg & 0x3));
                break;
 
        case 2:
-               MV_READ_16(data_reg + (offset & 0x3), val);
+               *val = MV_READ_16(data_reg + (reg & 0x3));
                break;
 
        case 4:
-               MV_READ(data_reg, val);
+               *val = MV_READ(data_reg);
                break;
        }
 
@@ -93,7 +93,7 @@ static int mv64340_write_config(struct pci_bus *bus, unsigned int devfn,
                return PCIBIOS_DEVICE_NOT_FOUND;
 
        address = (bus->number << 16) | (devfn << 8) |
-                 (offset & 0xfc) | 0x80000000;
+                 (reg & 0xfc) | 0x80000000;
 
        /* start the configuration cycle */
        MV_WRITE(address_reg, address);
@@ -101,12 +101,12 @@ static int mv64340_write_config(struct pci_bus *bus, unsigned int devfn,
        switch (size) {
        case 1:
                /* write the data */
-               MV_WRITE_8(data_reg + (offset & 0x3), val);
+               MV_WRITE_8(data_reg + (reg & 0x3), val);
                break;
 
        case 2:
                /* write the data */
-               MV_WRITE_16(data_reg + (offset & 0x3), val);
+               MV_WRITE_16(data_reg + (reg & 0x3), val);
                break;
 
        case 4:
@@ -124,7 +124,7 @@ static int mv64340_bus ## host ## _read_config(struct pci_bus *bus, \
        unsigned int devfn, int reg, int size, u32 * val)               \
 {                                                                      \
        return mv64340_read_config(bus, devfn, reg, size, val,          \
-                  MV64340_PCI_ ## host ## _CONFIG_ADDR;                \
+                  MV64340_PCI_ ## host ## _CONFIG_ADDR,                \
                   MV64340_PCI_ ## host ## _CONFIG_DATA_VIRTUAL_REG);   \
 }                                                                      \
                                                                        \
@@ -132,7 +132,7 @@ static int mv64340_bus ## host ## _write_config(struct pci_bus *bus,        \
        unsigned int devfn, int reg, int size, u32 val)                 \
 {                                                                      \
        return mv64340_write_config(bus, devfn, reg, size, val,         \
-                  MV64340_PCI_ ## host ## _CONFIG_ADDR;                \
+                  MV64340_PCI_ ## host ## _CONFIG_ADDR,                \
                   MV64340_PCI_ ## host ## _CONFIG_DATA_VIRTUAL_REG);   \
 }                                                                      \
                                                                        \
index 06c5bf16dd3e8de6c988a6b14198dad58ce65bd6..3c4183d45e42c9cc89d05bbab081784d23b082f3 100644 (file)
  */
 static struct bridge_controller bridges[MAX_PCI_BUSSES];
 
-/*
- * No locking needed until PCI initialization is done parallely.
- */
-int irqstore[MAX_PCI_BUSSES][MAX_DEVICES_PER_PCIBUS];
-int lastirq = BASE_PCI_IRQ;
-
 /*
  * Translate from irq to software PCI bus number and PCI slot.
  */
@@ -274,25 +268,23 @@ int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid)
 int __devinit pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus);
-       int busno = dev->bus->number;
+       int irq;
 
-       if ((busno >= MAX_PCI_BUSSES)
-           || (pin != 1)
-           || (slot >= MAX_DEVICES_PER_PCIBUS))
-               panic("Increase supported PCI busses %d,%d,%d",
-                     dev->bus->number, slot, pin);
+       irq = allocate_irqno();
 
        /*
-        * Already assigned? Then return previously assigned value ...
+        * Argh...  This API doesn't handle with errors at all ...
         */
-       if (irqstore[busno][slot])
-               return irqstore[busno][slot];
+       if (irq == -1) {
+               printk(KERN_ERR "Can't allocate interrupt for PCI device %s\n",
+                      pci_name(dev));
+               return -1;
+       }
 
-       irq_to_bridge[lastirq] = bc;
-       irq_to_slot[lastirq] = slot;
-       irqstore[busno][slot] = lastirq;
+       irq_to_bridge[irq] = bc;
+       irq_to_slot[irq] = slot;
 
-       return lastirq++;
+       return irq;
 }
 
 /*
diff --git a/arch/mips/pci/pci-lasat.c b/arch/mips/pci/pci-lasat.c
new file mode 100644 (file)
index 0000000..d104360
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * 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) 2000, 2001 Keith M Wesolowski
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/pci.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/pci.h>
+#include <asm/pci_channel.h>
+#include <linux/delay.h>
+#include <asm/bootinfo.h>
+
+extern struct pci_ops nile4_pci_ops;
+extern struct pci_ops gt64120_pci_ops;
+static struct resource lasat_pci_mem_resource = {
+       .name   = "LASAT PCI MEM",
+       .start  = 0x18000000,
+       .end    = 0x19FFFFFF,
+       .flags  = IORESOURCE_MEM,
+};
+
+static struct resource lasat_pci_io_resource = {
+       .name   = "LASAT PCI IO",
+       .start  = 0x1a000000,
+       .end    = 0x1bFFFFFF,
+       .flags  = IORESOURCE_IO,
+};
+
+static struct pci_controller lasat_pci_controller = {
+       .mem_resource   = &lasat_pci_mem_resource,
+       .io_resource    = &lasat_pci_io_resource,
+};
+
+static int __init lasat_pci_setup(void)
+{
+       printk("PCI: starting\n");
+
+        switch (mips_machtype) {
+            case MACH_LASAT_100:
+                lasat_pci_controller.pci_ops = &gt64120_pci_ops;
+                break;
+            case MACH_LASAT_200:
+                lasat_pci_controller.pci_ops = &nile4_pci_ops;
+                break;
+            default:
+                panic("pcibios_init: mips_machtype incorrect");
+        }
+
+       register_pci_controller(&lasat_pci_controller);
+        return 0;
+}
+early_initcall(lasat_pci_setup);
+
+#define LASATINT_ETH1   0
+#define LASATINT_ETH0   1
+#define LASATINT_HDC    2
+#define LASATINT_COMP   3
+#define LASATINT_HDLC   4
+#define LASATINT_PCIA   5
+#define LASATINT_PCIB   6
+#define LASATINT_PCIC   7
+#define LASATINT_PCID   8
+int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+    switch (slot) {
+        case 1:
+            return LASATINT_PCIA;   /* Expansion Module 0 */
+        case 2:
+            return LASATINT_PCIB;   /* Expansion Module 1 */
+        case 3:
+            return LASATINT_PCIC;   /* Expansion Module 2 */
+        case 4:
+            return LASATINT_ETH1;   /* Ethernet 1 (LAN 2) */
+        case 5:
+            return LASATINT_ETH0;   /* Ethernet 0 (LAN 1) */
+        case 6:
+            return LASATINT_HDC;    /* IDE controller */
+        default:
+            return 0xff;            /* Illegal */
+    }
+
+    return -1;
+}
index 3076575dd381bdf2563103085de4ed02c41a79dd..18e06ecd41a5caaa3aec67949fd62b6a00d56bb1 100644 (file)
@@ -84,6 +84,11 @@ static inline void WRITECFG32(u32 addr, u32 data)
        *(u32 *) (cfg_space + (addr & ~3)) = data;
 }
 
+int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+       return dev->irq;
+}
+
 /*
  * Some checks before doing config cycles:
  * In PCI Device Mode, hide everything on bus 0 except the LDT host
@@ -194,10 +199,18 @@ struct pci_controller sb1250_controller = {
        .io_resource    = &sb1250_io_resource
 };
 
-int __init pcibios_init(void)  xxx This needs to be called somehow ...
+static int __init sb1250_pcibios_init(void)
 {
        uint32_t cmdreg;
        uint64_t reg;
+       extern int pci_probe_only;
+
+       /* CFE will assign PCI resources */
+       pci_probe_only = 1;
+
+       /* set resource limit to avoid errors */
+       ioport_resource.end = 0x0000ffff;       /* 32MB reserved by sb1250 */
+       iomem_resource.end = 0xffffffff;        /* no HT support yet */
 
        cfg_space =
            ioremap(A_PHYS_LDTPCI_CFG_MATCH_BITS, 16 * 1024 * 1024);
@@ -265,6 +278,7 @@ int __init pcibios_init(void)       xxx This needs to be called somehow ...
 #endif
        return 0;
 }
+arch_initcall(sb1250_pcibios_init);
 
 struct pci_fixup pcibios_fixups[] = {
        {0}
index 5adcbc5930bb5b27e97c34db4e2308d080409c2b..8068b0171f0cfa5a9f2cd394b13ac34ba2f1a33a 100644 (file)
@@ -159,7 +159,7 @@ void __init vr41xx_pciu_init(struct vr41xx_pci_address_map *map)
        writew(0, MPCIINTREG);
 
        /* Supply VTClock to PCIU */
-       vr41xx_clock_supply(PCIU_CLOCK);
+       vr41xx_supply_clock(PCIU_CLOCK);
 
        /*
         * Sleep for 1us after setting MSKPPCIU bit in CMUCLKMSK
@@ -179,7 +179,7 @@ void __init vr41xx_pciu_init(struct vr41xx_pci_address_map *map)
                printk(KERN_INFO "Warning: PCI Clock is over 33MHz.\n");
 
        /* Supply PCI clock by PCI bus */
-       vr41xx_clock_supply(PCI_CLOCK);
+       vr41xx_supply_clock(PCI_CLOCK);
 
        /*
         * Set PCI memory & I/O space address conversion registers
index 75ffc471368c126cc016364c80b3b73b9a6ad89e..1537b6d3661743d5d5c8a7cc10e4e42c8337c77e 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile for the PMC-Sierra Titan 
 #
 
-obj-y    += irq-handler.o irq.o i2c-yosemite.o prom.o setup.o
+obj-y    += irq-handler.o irq.o prom.o setup.o
 
 obj-$(CONFIG_SMP)              += smp.o
 obj-$(CONFIG_HYPERTRANSPORT)   += ht-irq.o ht.o
index 60c409983faea0f41c3e8380f3164e8587411eca..b9a12e90a5025b36fdb3e9d84870e6ba908a23a7 100644 (file)
@@ -46,7 +46,7 @@ static __inline__ int check_titan_htlink(void)
 {
         u32 val;
 
-        val = *(volatile u_int32_t *)(RM9000x2_HTLINK_REG);
+        val = *(volatile uint32_t *)(RM9000x2_HTLINK_REG);
         if (val & 0x00000020)
                 /* HT Link Initialization completed */
                 return 1;
diff --git a/arch/mips/pmc-sierra/yosemite/i2c-yosemite.c b/arch/mips/pmc-sierra/yosemite/i2c-yosemite.c
deleted file mode 100644 (file)
index 3a183b8..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- *  arch/mips/pmc-sierra/yosemite/i2c-yosemite.c
- *
- *  Copyright (C) 2003 PMC-Sierra Inc.
- *  Author: Manish Lachwani (lachwani@pmc-sierra.com)
- *
- *  This program is free software; you can redistribute  it and/or modify it
- *  under  the terms of  the GNU General  Public License as published by the
- *  Free Software Foundation;  either version 2 of the  License, or (at your
- *  option) any later version.
- *
- *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
- *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
- *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
- *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the  GNU General Public License along
- *  with this program; if not, write  to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*
- * Detailed Description:
- *
- * This block implements the I2C interface to the slave devices like the Atmel 24C32
- * EEPROM and the MAX 1619 Sensors device. The I2C Master interface can be controlled
- * by the SCMB block. And the SCMB block kicks in only when using the Ethernet Mode of
- * operation and __not__ the SysAD mode
- *
- * The SCMB controls the two modes: MDIO and the I2C. The MDIO mode is used to communicate
- * with the Quad-PHY from Marvel. The I2C is used to communicate with the I2C slave devices.
- * It seems that the driver does not explicitly deal with the control of SDA and SCL serial
- * lines. So, the driver will set the slave address, drive the command and then the data. 
- * The SCMB will then control the two serial lines as required. 
- *
- * It seems the documents are very unclear abt this. Hence, I took some time out to write
- * the desciption to have an idea of how the I2C can actually work. Currently, this Linux 
- * driver wont be integrated into the generic Linux I2C framework. And finally, the I2C 
- * interface is also known as the 2BI interface. 2BI means 2-bit interface referring to
- * SDA and SCL serial lines respectively.
- *
- * - Manish Lachwani (12/09/2003)
- */
-
-#include "i2c-yosemite.h"
-
-/*
- * Poll the I2C interface for the BUSY bit. 
- */
-static int titan_i2c_poll(void)
-{
-       int             i = 0;
-       unsigned long   val = 0;
-
-       for (i = 0; i < TITAN_I2C_MAX_POLL; i++) {
-               val = TITAN_I2C_READ(TITAN_I2C_COMMAND);
-
-               if ( !(val & 0x8000))
-                       return 0;
-       }
-
-       return TITAN_I2C_ERR_TIMEOUT;
-}
-
-/*
- * Execute the I2C command
- */
-int titan_i2c_xfer(unsigned int slave_addr, titan_i2c_command *cmd, 
-                                               int size, unsigned int *addr)
-{
-       int             loop = 0, bytes, i;
-       unsigned int    *write_data, data, *read_data;
-       unsigned long   reg_val, val;
-
-       write_data = cmd->data;
-       read_data = addr;
-
-       TITAN_I2C_WRITE(TITAN_I2C_SLAVE_ADDRESS, slave_addr);
-
-       if (cmd->type == TITAN_I2C_CMD_WRITE) 
-               loop = cmd->write_size;
-       else
-               loop = size;
-
-       while (loop > 0) {
-               if ( (cmd->type == TITAN_I2C_CMD_WRITE)  || 
-                       (cmd->type == TITAN_I2C_CMD_READ_WRITE) ) {
-                       
-                       reg_val = TITAN_I2C_DATA;
-                       for (i = 0; i < TITAN_I2C_MAX_WORDS_PER_RW; ++i,write_data += 2,
-                                                               reg_val += 4) {
-                               if (bytes < cmd->write_size) {
-                                       data = write_data[0];
-                                       ++data;
-                               }
-
-                               if (bytes < cmd->write_size) {
-                                       data = write_data[1];
-                                       ++data;
-                               }
-
-                               TITAN_I2C_WRITE(reg_val, data);
-                       }
-               }
-
-               TITAN_I2C_WRITE(TITAN_I2C_COMMAND, (unsigned int)(cmd->type << 13));
-               if (titan_i2c_poll() != TITAN_I2C_ERR_OK)
-                       return TITAN_I2C_ERR_TIMEOUT;
-
-               if ( (cmd->type == TITAN_I2C_CMD_READ)  ||
-                       (cmd->type == TITAN_I2C_CMD_READ_WRITE) ) {
-                       
-                       reg_val = TITAN_I2C_DATA;
-                       for (i = 0; i < TITAN_I2C_MAX_WORDS_PER_RW; ++i,read_data += 2,
-                                                               reg_val += 4) {
-                               data = TITAN_I2C_READ(reg_val);
-                               
-                               if (bytes < size) {
-                                       read_data[0] = data & 0xff;
-                                       ++bytes;
-                               }
-
-                               if (bytes < size) {
-                                       read_data[1] = ((data >> 8) & 0xff);
-                                       ++bytes;
-                               }
-                       }
-               }
-
-               loop -= (TITAN_I2C_MAX_WORDS_PER_RW * 2);
-       }
-                                               
-       /*
-        * Read the Interrupt status and then return the appropriate error code 
-        */
-
-       val = TITAN_I2C_READ(TITAN_I2C_INTERRUPTS);
-       if (val & 0x0020)
-               return TITAN_I2C_ERR_ARB_LOST;
-
-       if (val & 0x0040)
-               return TITAN_I2C_ERR_NO_RESP;
-
-       if (val & 0x0080)
-               return TITAN_I2C_ERR_DATA_COLLISION;
-
-       return TITAN_I2C_ERR_OK;
-}
-
-/*
- * Init the I2C subsystem of the PMC-Sierra Yosemite board
- */
-int titan_i2c_init(titan_i2c_config *config)
-{
-       unsigned int    val;
-
-       /*
-        * Reset the SCMB and program into the I2C mode
-        */
-       TITAN_I2C_WRITE(TITAN_I2C_SCMB_CONTROL, 0xA000);
-       TITAN_I2C_WRITE(TITAN_I2C_SCMB_CONTROL, 0x2000);
-
-       /*
-        * Configure the filtera and clka values
-        */
-       val = TITAN_I2C_READ(TITAN_I2C_SCMB_CLOCK_A);
-       val |= ( (val & ~(0xF000)) | ( (config->filtera << 12) & 0xF000));
-       val |= ( (val & ~(0x03FF)) | ( config->clka & 0x03FF));
-       TITAN_I2C_WRITE(TITAN_I2C_SCMB_CLOCK_A, val);
-
-       /*
-        * Configure the filterb and clkb values
-        */
-       val = TITAN_I2C_READ(TITAN_I2C_SCMB_CLOCK_B);
-       val |= ( (val & ~(0xF000)) | ( (config->filterb << 12) & 0xF000));
-       val |= ( (val & ~(0x03FF)) | ( config->clkb & 0x03FF));
-       TITAN_I2C_WRITE(TITAN_I2C_SCMB_CLOCK_B, val);
-
-       return TITAN_I2C_ERR_OK;
-}
index 6d2cbb93077abb85f6e5d5d8ba423601fdf411f3..294290f8ae4c84376fc1f1bd4d2957591bb09108 100644 (file)
@@ -169,15 +169,15 @@ extern void jaguar_mailbox_irq(struct pt_regs *);
 asmlinkage void ll_ht_smp_irq_handler(int irq, struct pt_regs *regs)
 {
         u32 status;
-        status = *(volatile u_int32_t *)(IRQ_STATUS_REG_CPU0);
+        status = *(volatile uint32_t *)(IRQ_STATUS_REG_CPU0);
 
        /* Ack all the bits that correspond to the interrupt sources */
        if (status != 0)
-               *(volatile u_int32_t *)(IRQ_STATUS_REG_CPU0) = IRQ_ACK_BITS;
+               *(volatile uint32_t *)(IRQ_STATUS_REG_CPU0) = IRQ_ACK_BITS;
 
-       status = *(volatile u_int32_t *)(IRQ_STATUS_REG_CPU1);
+       status = *(volatile uint32_t *)(IRQ_STATUS_REG_CPU1);
        if (status != 0)
-                *(volatile u_int32_t *)(IRQ_STATUS_REG_CPU1) = IRQ_ACK_BITS;
+                *(volatile uint32_t *)(IRQ_STATUS_REG_CPU1) = IRQ_ACK_BITS;
 
 #ifdef CONFIG_SMP
        if (status == 0x2) {
@@ -193,27 +193,27 @@ asmlinkage void ll_ht_smp_irq_handler(int irq, struct pt_regs *regs)
          */
         switch (status) {
                 case 0x1000000:
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTA;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTA;
                         break;
                 case 0x2000000:
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTB;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTB;
                         break;
                 case 0x4000000:
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTC;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTC;
                         break;
                 case 0x8000000:
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTD;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTD;
                         break;
                 case 0x0000001:
                         /* PLX */
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = 0x20;
-                        *(volatile u_int32_t *)(IRQ_CLEAR_REG) = IRQ_ACK_BITS;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = 0x20;
+                        *(volatile uint32_t *)(IRQ_CLEAR_REG) = IRQ_ACK_BITS;
                         break;
                 case 0xf000000:
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTA;
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTB;
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTC;
-                        *(volatile u_int32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTD;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTA;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTB;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTC;
+                        *(volatile uint32_t *)(HYPERTRANSPORT_EOI) = HYPERTRANSPORT_INTD;
                         break;
         }
 #endif /* CONFIG_HT_LEVEL_TRIGGER */
index da7ce8d5fd6d083510b261fbec8fd23b28b5d7a1..70f68b7c0552903559d138d9cd8f58331e54cc61 100644 (file)
@@ -169,7 +169,7 @@ int prom_setup_smp(void)
 int prom_boot_secondary(int cpu, unsigned long sp, unsigned long gp)
 {
         /* Clear the semaphore */
-        *(volatile u_int32_t *)(0xbb000a68) = 0x80000000;
+        *(volatile uint32_t *)(0xbb000a68) = 0x80000000;
 
         return 1;
 }
index a9de97a0f1038971072ac51dfd8651d512327702..43795a8415dfd54cad7238e959f4c63ca39b3616 100644 (file)
@@ -147,13 +147,13 @@ static int __init pmc_yosemite_setup(void)
        add_memory_region(0x10000000, 0x10000000, BOOT_MEM_RAM);
 
        /* Setup the HT controller */
-       val = *(volatile u_int32_t *)(HYPERTRANSPORT_CONFIG_REG);
+       val = *(volatile uint32_t *)(HYPERTRANSPORT_CONFIG_REG);
        val |= HYPERTRANSPORT_ENABLE;
-        *(volatile u_int32_t *)(HYPERTRANSPORT_CONFIG_REG) = val;
+        *(volatile uint32_t *)(HYPERTRANSPORT_CONFIG_REG) = val;
 
         /* Set the BAR. Shifted mode */
-        *(volatile u_int32_t *)(HYPERTRANSPORT_BAR0_REG) = HYPERTRANSPORT_BAR0_ADDR;
-        *(volatile u_int32_t *)(HYPERTRANSPORT_SIZE0_REG) = HYPERTRANSPORT_SIZE0;
+        *(volatile uint32_t *)(HYPERTRANSPORT_BAR0_REG) = HYPERTRANSPORT_BAR0_ADDR;
+        *(volatile uint32_t *)(HYPERTRANSPORT_SIZE0_REG) = HYPERTRANSPORT_SIZE0;
 
 #ifdef CONFIG_PCI
        ioport_resource.start = 0xe0000000;
index 7ae48f49f68ee8fa1e1714ddb02cc586f84b9bcc..08064f24b12bb16317315cae8d9b9fd415100f2a 100644 (file)
@@ -25,7 +25,6 @@
 #include <asm/mmu_context.h>
 #include <asm/trace.h>
 
-extern void smp_call_function_interrupt(void);
 extern void asmlinkage smp_bootstrap(void);
 
 /*
@@ -43,9 +42,9 @@ void core_send_ipi(int cpu, unsigned int action)
                         break;
                 case SMP_CALL_FUNCTION:
                         if (cpu == 1)
-                                *(volatile u_int32_t *)(0xbb000a00) = 0x00610002;
+                                *(volatile uint32_t *)(0xbb000a00) = 0x00610002;
                         else
-                                *(volatile u_int32_t *)(0xbb000a00) = 0x00610001;
+                                *(volatile uint32_t *)(0xbb000a00) = 0x00610001;
                         break;
 
                 default:
@@ -96,10 +95,10 @@ void __init start_secondary(void)
         __flush_cache_all();
 
         printk("Slave cpu booted successfully  \n");
-        *(volatile u_int32_t *)(0xbb000a68) = 0x00000000;
-        *(volatile u_int32_t *)(0xbb000a68) = 0x80000000;
+        *(volatile uint32_t *)(0xbb000a68) = 0x00000000;
+        *(volatile uint32_t *)(0xbb000a68) = 0x80000000;
 
-        while (*(volatile u_int32_t *)(0xbb000a68) != 0x00000000);
+        while (*(volatile uint32_t *)(0xbb000a68) != 0x00000000);
 
         return cpu_idle();
 }
@@ -172,8 +171,8 @@ void __init smp_boot_cpus(void)
 
         /* Local semaphore to both the CPUs */
 
-        *(volatile u_int32_t *)(0xbb000a68) = 0x80000000;
-        while (*(volatile u_int32_t *)(0xbb000a68) != 0x00000000);
+        *(volatile uint32_t *)(0xbb000a68) = 0x80000000;
+        while (*(volatile uint32_t *)(0xbb000a68) != 0x00000000);
 
         smp_threads_ready = 1;
 }
index 4ff7b685324c32472f8d0fa21c560167a78c8982..bea4c405c6b68fef865c451073befb9d5b33ee30 100644 (file)
@@ -4,7 +4,7 @@
 
 obj-y  := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o ip27-irq-glue.o \
           ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \
-          ip27-setup.o ip27-timer.o
+          ip27-timer.o ip27-hubio.o ip27-xtalk.o
 
 obj-$(CONFIG_SMP)      += ip27-smp.o
 
diff --git a/arch/mips/sgi-ip27/ip27-hubio.c b/arch/mips/sgi-ip27/ip27-hubio.c
new file mode 100644 (file)
index 0000000..68d9895
--- /dev/null
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 1992-1997, 2000-2003 Silicon Graphics, Inc.
+ * Copyright (C) 2004 Christoph Hellwig.
+ *     Released under GPL v2.
+ *
+ * Support functions for the HUB ASIC - mostly PIO mapping related.
+ */
+
+#include <linux/bitops.h>
+#include <linux/string.h>
+#include <asm/sn/addrs.h>
+#include <asm/sn/arch.h>
+#include <asm/sn/hub.h>
+
+
+static int force_fire_and_forget = 1;
+
+/**
+ * hub_pio_map  -  establish a HUB PIO mapping
+ *
+ * @hub:       hub to perform PIO mapping on
+ * @widget:    widget ID to perform PIO mapping for
+ * @xtalk_addr:        xtalk_address that needs to be mapped
+ * @size:      size of the PIO mapping
+ *
+ **/
+unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget,
+                         unsigned long xtalk_addr, size_t size)
+{
+       nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
+       volatile hubreg_t junk;
+       unsigned i;
+
+       /* use small-window mapping if possible */
+       if ((xtalk_addr % SWIN_SIZE) + size <= SWIN_SIZE)
+               return NODE_SWIN_BASE(nasid, widget) + (xtalk_addr % SWIN_SIZE);
+
+       if ((xtalk_addr % BWIN_SIZE) + size > BWIN_SIZE) {
+               printk(KERN_WARNING "PIO mapping at hub %d widget %d addr 0x%lx"
+                               " too big (%ld)\n",
+                               nasid, widget, xtalk_addr, size);
+               return 0;
+       }
+
+       xtalk_addr &= ~(BWIN_SIZE-1);
+       for (i = 0; i < HUB_NUM_BIG_WINDOW; i++) {
+               if (test_and_set_bit(i, HUB_DATA(cnode)->h_bigwin_used))
+                       continue;
+
+               /*
+                * The code below does a PIO write to setup an ITTE entry.
+                *
+                * We need to prevent other CPUs from seeing our updated
+                * memory shadow of the ITTE (in the piomap) until the ITTE
+                * entry is actually set up; otherwise, another CPU might
+                * attempt a PIO prematurely.
+                *
+                * Also, the only way we can know that an entry has been
+                * received  by the hub and can be used by future PIO reads/
+                * writes is by reading back the ITTE entry after writing it.
+                *
+                * For these two reasons, we PIO read back the ITTE entry
+                * after we write it.
+                */
+               IIO_ITTE_PUT(nasid, i, HUB_PIO_MAP_TO_MEM, widget, xtalk_addr);
+               junk = HUB_L(IIO_ITTE_GET(nasid, i));
+
+               return NODE_BWIN_BASE(nasid, widget) + (xtalk_addr % BWIN_SIZE);
+       }
+
+       printk(KERN_WARNING "unable to establish PIO mapping for at"
+                       " hub %d widget %d addr 0x%lx\n",
+                       nasid, widget, xtalk_addr);
+       return 0;
+}
+
+
+/*
+ * hub_setup_prb(nasid, prbnum, credits, conveyor)
+ *
+ *     Put a PRB into fire-and-forget mode if conveyor isn't set.  Otherwise,
+ *     put it into conveyor belt mode with the specified number of credits.
+ */
+static void hub_setup_prb(nasid_t nasid, int prbnum, int credits)
+{
+       iprb_t prb;
+       int prb_offset;
+
+       /*
+        * Get the current register value.
+        */
+       prb_offset = IIO_IOPRB(prbnum);
+       prb.iprb_regval = REMOTE_HUB_L(nasid, prb_offset);
+
+       /*
+        * Clear out some fields.
+        */
+       prb.iprb_ovflow = 1;
+       prb.iprb_bnakctr = 0;
+       prb.iprb_anakctr = 0;
+
+       /*
+        * Enable or disable fire-and-forget mode.
+        */
+       prb.iprb_ff = force_fire_and_forget ? 1 : 0;
+
+       /*
+        * Set the appropriate number of PIO cresits for the widget.
+        */
+       prb.iprb_xtalkctr = credits;
+
+       /*
+        * Store the new value to the register.
+        */
+       REMOTE_HUB_S(nasid, prb_offset, prb.iprb_regval);
+}
+
+/**
+ * hub_set_piomode  -  set pio mode for a given hub
+ *
+ * @nasid:     physical node ID for the hub in question
+ *
+ * Put the hub into either "PIO conveyor belt" mode or "fire-and-forget" mode.
+ * To do this, we have to make absolutely sure that no PIOs are in progress
+ * so we turn off access to all widgets for the duration of the function.
+ *
+ * XXX - This code should really check what kind of widget we're talking
+ * to.  Bridges can only handle three requests, but XG will do more.
+ * How many can crossbow handle to widget 0?  We're assuming 1.
+ *
+ * XXX - There is a bug in the crossbow that link reset PIOs do not
+ * return write responses.  The easiest solution to this problem is to
+ * leave widget 0 (xbow) in fire-and-forget mode at all times.  This
+ * only affects pio's to xbow registers, which should be rare.
+ **/
+static void hub_set_piomode(nasid_t nasid)
+{
+       hubreg_t ii_iowa;
+       hubii_wcr_t ii_wcr;
+       unsigned i;
+
+       ii_iowa = REMOTE_HUB_L(nasid, IIO_OUTWIDGET_ACCESS);
+       REMOTE_HUB_S(nasid, IIO_OUTWIDGET_ACCESS, 0);
+
+       ii_wcr.wcr_reg_value = REMOTE_HUB_L(nasid, IIO_WCR);
+
+       if (ii_wcr.iwcr_dir_con) {
+               /*
+                * Assume a bridge here.
+                */
+               hub_setup_prb(nasid, 0, 3);
+       } else {
+               /*
+                * Assume a crossbow here.
+                */
+               hub_setup_prb(nasid, 0, 1);
+       }
+
+       /*
+        * XXX - Here's where we should take the widget type into
+        * when account assigning credits.
+        */
+       for (i = HUB_WIDGET_ID_MIN; i <= HUB_WIDGET_ID_MAX; i++)
+               hub_setup_prb(nasid, i, 3);
+
+       REMOTE_HUB_S(nasid, IIO_OUTWIDGET_ACCESS, ii_iowa);
+}
+
+/**
+ * hub_pio_init  -  PIO-related hub initalization
+ *
+ * @hub:       hubinfo structure for our hub
+ **/
+void hub_pio_init(cnodeid_t cnode)
+{
+       nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
+       unsigned i;
+
+       /* initialize big window piomaps for this hub */
+       CLEAR_BITMAP(HUB_DATA(cnode)->h_bigwin_used, HUB_NUM_BIG_WINDOW);
+       for (i = 0; i < HUB_NUM_BIG_WINDOW; i++)
+               IIO_ITTE_DISABLE(nasid, i);
+
+       hub_set_piomode(nasid);
+}
index 5b286018f2a959dc931031dfdf82bfeaa71ad58f..b8ee02cd02331cd1a767f806b165964a1aca1dbf 100644 (file)
@@ -14,8 +14,9 @@
 #include <linux/mm.h>
 #include <linux/cpumask.h>
 #include <asm/cpu.h>
-#include <asm/pgalloc.h>
+#include <asm/io.h>
 #include <asm/pgtable.h>
+#include <asm/time.h>
 #include <asm/sn/types.h>
 #include <asm/sn/sn0/addrs.h>
 #include <asm/sn/sn0/hubni.h>
@@ -24,6 +25,7 @@
 #include <asm/sn/ioc3.h>
 #include <asm/mipsregs.h>
 #include <asm/sn/gda.h>
+#include <asm/sn/hub.h>
 #include <asm/sn/intr.h>
 #include <asm/current.h>
 #include <asm/smp.h>
@@ -73,9 +75,54 @@ static int is_fine_dirmode(void)
 }
 
 extern void pcibr_setup(cnodeid_t);
-void per_hub_init(cnodeid_t cnode)
+
+static __init void per_slice_init(cnodeid_t cnode, int slice)
 {
-       nasid_t         nasid = COMPACT_TO_NASID_NODEID(cnode);
+       struct slice_data *si = hub_data[cnode]->slice + slice;
+       int cpu = smp_processor_id();
+       int i;
+
+       for (i = 0; i < LEVELS_PER_SLICE; i++)
+               si->level_to_irq[i] = -1;
+       /*
+        * Some interrupts are reserved by hardware or by software convention.
+        * Mark these as reserved right away so they won't be used accidently
+        * later.
+        */
+       for (i = 0; i <= BASE_PCI_IRQ; i++) {
+               __set_bit(i, si->irq_alloc_mask);
+               LOCAL_HUB_S(PI_INT_PEND_MOD, i);
+       }
+
+       __set_bit(IP_PEND0_6_63, si->irq_alloc_mask);
+       LOCAL_HUB_S(PI_INT_PEND_MOD, IP_PEND0_6_63);
+
+       for (i = NI_BRDCAST_ERR_A; i <= MSC_PANIC_INTR; i++) {
+               __set_bit(i, si->irq_alloc_mask + 1);
+               LOCAL_HUB_S(PI_INT_PEND_MOD, i);
+       }
+
+       LOCAL_HUB_L(PI_INT_PEND0);
+
+       /*
+        * We use this so we can find the local hub's data as fast as only
+        * possible.
+        */
+       cpu_data[cpu].data = si;
+}
+
+extern void xtalk_probe_node(cnodeid_t nid);
+
+void __init per_hub_init(cnodeid_t cnode)
+{
+       struct hub_data *hub = HUB_DATA(cnode);
+       nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
+       int slice = LOCAL_HUB_L(PI_CPU_NUM);
+
+       cpu_set(smp_processor_id(), hub->h_cpus);
+
+       if (!test_and_set_bit(slice, &hub->slice_map))
+               per_slice_init(cnode, slice);
 
        if (test_and_set_bit(cnode, hub_init_mask))
                return;
@@ -87,7 +134,7 @@ void per_hub_init(cnodeid_t cnode)
        REMOTE_HUB_S(nasid, IIO_ICTO, 0xff);
 
        hub_rtc_init(cnode);
-       pcibr_setup(cnode);
+       xtalk_probe_node(cnode);
 
 #ifdef CONFIG_REPLICATE_EXHANDLERS
        /*
@@ -109,16 +156,22 @@ void per_hub_init(cnodeid_t cnode)
 #endif
 }
 
-cnodeid_t get_compact_nodeid(void)
+/*
+ * get_nasid() returns the physical node id number of the caller.
+ */
+nasid_t
+get_nasid(void)
 {
-       nasid_t nasid;
+       return (nasid_t)((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_NODEID_MASK)
+                        >> NSRI_NODEID_SHFT);
+}
 
-       nasid = get_nasid();
-       /*
-        * Map the physical node id to a virtual node id (virtual node ids
-        * are contiguous).
-        */
-       return NASID_TO_COMPACT_NODEID(nasid);
+/*
+ * Map the physical node id to a virtual node id (virtual node ids are contiguous).
+ */
+cnodeid_t get_compact_nodeid(void)
+{
+       return NASID_TO_COMPACT_NODEID(get_nasid());
 }
 
 #define        rou_rflag       rou_flags
@@ -159,7 +212,7 @@ static void router_recurse(klrou_t *router_a, klrou_t *router_b, int depth)
        router_a->rou_rflag = 0;
 }
 
-static int node_distance(nasid_t nasid_a, nasid_t nasid_b)
+int node_distance(nasid_t nasid_a, nasid_t nasid_b)
 {
        klrou_t *router, *router_a = NULL, *router_b = NULL;
        lboard_t *brd, *dest_brd;
@@ -358,3 +411,106 @@ void mlreset(void)
 #endif
        }
 }
+
+/* Extracted from the IOC3 meta driver.  FIXME.  */
+static inline void ioc3_sio_init(void)
+{
+       struct ioc3 *ioc3;
+       nasid_t nid;
+       long loops;
+
+       nid = get_nasid();
+       ioc3 = (struct ioc3 *) KL_CONFIG_CH_CONS_INFO(nid)->memory_base;
+
+       ioc3->sscr_a = 0;                       /* PIO mode for uarta.  */
+       ioc3->sscr_b = 0;                       /* PIO mode for uartb.  */
+       ioc3->sio_iec = ~0;
+       ioc3->sio_ies = (SIO_IR_SA_INT | SIO_IR_SB_INT);
+
+       loops=1000000; while(loops--);
+       ioc3->sregs.uarta.iu_fcr = 0;
+       ioc3->sregs.uartb.iu_fcr = 0;
+       loops=1000000; while(loops--);
+}
+
+static inline void ioc3_eth_init(void)
+{
+       struct ioc3 *ioc3;
+       nasid_t nid;
+
+       nid = get_nasid();
+       ioc3 = (struct ioc3 *) KL_CONFIG_CH_CONS_INFO(nid)->memory_base;
+
+       ioc3->eier = 0;
+}
+
+void __init per_cpu_init(void)
+{
+       cnodeid_t cnode = get_compact_nodeid();
+       int cpu = smp_processor_id();
+
+       clear_c0_status(ST0_IM);
+       per_hub_init(cnode);
+       cpu_time_init();
+       install_ipi();
+       /* Install our NMI handler if symmon hasn't installed one. */
+       install_cpu_nmi_handler(cputoslice(cpu));
+       set_c0_status(SRB_DEV0 | SRB_DEV1);
+}
+
+extern void ip27_setup_console(void);
+extern void ip27_time_init(void);
+extern void ip27_reboot_setup(void);
+
+static int __init ip27_setup(void)
+{
+       hubreg_t p, e, n_mode;
+       nasid_t nid;
+
+       ip27_setup_console();
+       ip27_reboot_setup();
+
+       /*
+        * hub_rtc init and cpu clock intr enabled for later calibrate_delay.
+        */
+       nid = get_nasid();
+       printk("IP27: Running on node %d.\n", nid);
+
+       p = LOCAL_HUB_L(PI_CPU_PRESENT_A) & 1;
+       e = LOCAL_HUB_L(PI_CPU_ENABLE_A) & 1;
+       printk("Node %d has %s primary CPU%s.\n", nid,
+              p ? "a" : "no",
+              e ? ", CPU is running" : "");
+
+       p = LOCAL_HUB_L(PI_CPU_PRESENT_B) & 1;
+       e = LOCAL_HUB_L(PI_CPU_ENABLE_B) & 1;
+       printk("Node %d has %s secondary CPU%s.\n", nid,
+              p ? "a" : "no",
+              e ? ", CPU is running" : "");
+
+       /*
+        * Try to catch kernel missconfigurations and give user an
+        * indication what option to select.
+        */
+       n_mode = LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_MORENODES_MASK;
+       printk("Machine is in %c mode.\n", n_mode ? 'N' : 'M');
+#ifdef CONFIG_SGI_SN0_N_MODE
+       if (!n_mode)
+               panic("Kernel compiled for M mode.");
+#else
+       if (n_mode)
+               panic("Kernel compiled for N mode.");
+#endif
+
+       ioc3_sio_init();
+       ioc3_eth_init();
+       per_cpu_init();
+
+       set_io_port_base(IO_BASE);
+
+       board_time_init = ip27_time_init;
+
+       return 0;
+}
+
+early_initcall(ip27_setup);
index 00a41f7341d3a03a3cfca9f7bbec221650913e24..917c1ee7aef2aa965e38bab7e3ff174d4ef80db3 100644 (file)
 #include <asm/ptrace.h>
 #include <asm/processor.h>
 #include <asm/pci/bridge.h>
-#include <asm/sn/sn0/hub.h>
-#include <asm/sn/sn0/ip27.h>
 #include <asm/sn/addrs.h>
 #include <asm/sn/agent.h>
 #include <asm/sn/arch.h>
+#include <asm/sn/hub.h>
 #include <asm/sn/intr.h>
-#include <asm/sn/intr_public.h>
 
 #undef DEBUG_IRQ
 #ifdef DEBUG_IRQ
 #define DBG(x...)
 #endif
 
-/*
- * Number of levels in INT_PEND0. Can be set to 128 if we also
- * consider INT_PEND1.
- */
-#define PERNODE_LEVELS 64
-
-/*
- * we need to map irq's up to at least bit 7 of the INT_MASK0_A register
- * since bits 0-6 are pre-allocated for other purposes.
- */
-#define FAST_IRQ_TO_LEVEL(i)   (i)
-#define LEVEL_TO_IRQ(c, l) (node_level_to_irq[CPUID_TO_COMPACT_NODEID(c)][(l)])
-
 /*
  * Linux has a controller-independent x86 interrupt architecture.
  * every controller has a 'controller-template', that is used
@@ -79,12 +64,6 @@ extern asmlinkage void ip27_irq(void);
 extern struct bridge_controller *irq_to_bridge[];
 extern int irq_to_slot[];
 
-/*
- * There is a single intpend register per node, and we want to have
- * distinct levels for intercpu intrs for both cpus A and B on a node.
- */
-static int node_level_to_irq[MAX_COMPACT_NODES][PERNODE_LEVELS];
-
 /*
  * use these macros to get the encoded nasid and widget id
  * from the irq value
@@ -92,32 +71,36 @@ static int node_level_to_irq[MAX_COMPACT_NODES][PERNODE_LEVELS];
 #define IRQ_TO_BRIDGE(i)               irq_to_bridge[(i)]
 #define        SLOT_FROM_PCI_IRQ(i)            irq_to_slot[i]
 
-static inline int alloc_level(cpuid_t cpunum, int irq)
+static inline int alloc_level(int cpu, int irq)
 {
-       cnodeid_t nodenum = CPUID_TO_COMPACT_NODEID(cpunum);
-       int j = BASE_PCI_IRQ;                   /* pre-allocated entries */
-
-       while (++j < PERNODE_LEVELS) {
-               if (node_level_to_irq[nodenum][j] == -1) {
-                       node_level_to_irq[nodenum][j] = irq;
-                       return j;
-               }
-       }
+       struct slice_data *si = cpu_data[cpu].data;
+       int level;                              /* pre-allocated entries */
 
-       panic("Cpu %ld flooded with devices\n", cpunum);
+       level = find_first_zero_bit(si->irq_alloc_mask, LEVELS_PER_SLICE);
+       if (level >= LEVELS_PER_SLICE)
+               panic("Cpu %d flooded with devices\n", cpu);
+
+       __set_bit(level, si->irq_alloc_mask);
+       si->level_to_irq[level] = irq;
+
+       return level;
 }
 
 static inline int find_level(cpuid_t *cpunum, int irq)
 {
-       int j;
-       cnodeid_t nodenum = INVALID_CNODEID;
-
-       while (++nodenum < MAX_COMPACT_NODES) {
-               j = BASE_PCI_IRQ;               /* Pre-allocated entries */
-               while (++j < PERNODE_LEVELS)
-                       if (node_level_to_irq[nodenum][j] == irq) {
-                               *cpunum = 0;    /* XXX Fixme */
-                               return(j);
+       int cpu, i;
+
+       for (cpu = 0; cpu <= NR_CPUS; cpu++) {
+               struct slice_data *si = cpu_data[cpu].data;
+
+               if (!cpu_online(cpu))
+                       continue;
+
+               for (i = BASE_PCI_IRQ; i < LEVELS_PER_SLICE; i++)
+                       if (si->level_to_irq[i] == irq) {
+                               *cpunum = cpu;
+
+                               return i;
                        }
        }
 
@@ -187,7 +170,9 @@ void ip27_do_irq_mask0(struct pt_regs *regs)
 #endif
        {
                /* "map" swlevel to irq */
-               irq = LEVEL_TO_IRQ(cpu, swlevel);
+               struct slice_data *si = cpu_data[cpu].data;
+
+               irq = si->level_to_irq[swlevel];
                do_IRQ(irq, regs);
        }
 
@@ -205,6 +190,7 @@ void ip27_do_irq_mask1(struct pt_regs *regs)
        hubreg_t pend1, mask1;
        cpuid_t cpu = smp_processor_id();
        int pi_int_mask1 = (cputoslice(cpu) == 0) ?  PI_INT_MASK1_A : PI_INT_MASK1_B;
+       struct slice_data *si = cpu_data[cpu].data;
 
        /* copied from Irix intpend0() */
        pend1 = LOCAL_HUB_L(PI_INT_PEND1);
@@ -219,7 +205,7 @@ void ip27_do_irq_mask1(struct pt_regs *regs)
 
        swlevel = ms1bit(pend1);
        /* "map" swlevel to irq */
-       irq = LEVEL_TO_IRQ(cpu, swlevel);
+       irq = si->level_to_irq[swlevel];
        LOCAL_HUB_CLR_INTR(swlevel);
        do_IRQ(irq, regs);
        /* clear bit in pend1 */
@@ -240,70 +226,41 @@ void ip27_hub_error(struct pt_regs *regs)
        panic("CPU %d got a hub error interrupt", smp_processor_id());
 }
 
-/*
- * Get values that vary depending on which CPU and bit we're operating on.
- */
-static void intr_get_ptrs(cpuid_t cpu, int bit, int *new_bit,
-                          hubreg_t **intpend_masks, int *ip)
-{
-       struct hub_intmasks_s *hub_intmasks = &cpu_data[cpu].p_intmasks;
-
-       if (bit < N_INTPEND_BITS) {
-               *intpend_masks = &hub_intmasks->intpend0_masks;
-               *ip = 0;
-               *new_bit = bit;
-       } else {
-               *intpend_masks = &hub_intmasks->intpend1_masks;
-               *ip = 1;
-               *new_bit = bit - N_INTPEND_BITS;
-       }
-}
-
 static int intr_connect_level(int cpu, int bit)
 {
-       int ip;
-       int slice = cputoslice(cpu);
-       volatile hubreg_t *mask_reg;
-       hubreg_t *intpend_masks;
-       nasid_t nasid = COMPACT_TO_NASID_NODEID(cputocnode(cpu));
+       nasid_t nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
+       struct slice_data *si = cpu_data[cpu].data;
 
-       intr_get_ptrs(cpu, bit, &bit, &intpend_masks, &ip);
+       __set_bit(bit, si->irq_enable_mask);
 
        /* Make sure it's not already pending when we connect it. */
-       REMOTE_HUB_CLR_INTR(nasid, bit + ip * N_INTPEND_BITS);
+       REMOTE_HUB_CLR_INTR(nasid, bit);
 
-       *intpend_masks |= (1UL << bit);
-
-       if (ip == 0) {
-               mask_reg = REMOTE_HUB_ADDR(nasid, PI_INT_MASK0_A +
-                               PI_INT_MASK_OFFSET * slice);
+       if (!cputoslice(cpu)) {
+               REMOTE_HUB_S(nasid, PI_INT_MASK0_A, si->irq_enable_mask[0]);
+               REMOTE_HUB_S(nasid, PI_INT_MASK1_A, si->irq_enable_mask[1]);
        } else {
-               mask_reg = REMOTE_HUB_ADDR(nasid, PI_INT_MASK1_A +
-                               PI_INT_MASK_OFFSET * slice);
+               REMOTE_HUB_S(nasid, PI_INT_MASK0_B, si->irq_enable_mask[0]);
+               REMOTE_HUB_S(nasid, PI_INT_MASK1_B, si->irq_enable_mask[1]);
        }
-       HUB_S(mask_reg, intpend_masks[0]);
 
        return 0;
 }
 
 static int intr_disconnect_level(int cpu, int bit)
 {
-       int ip;
-       int slice = cputoslice(cpu);
-       volatile hubreg_t *mask_reg;
-       hubreg_t *intpend_masks;
-       nasid_t nasid = COMPACT_TO_NASID_NODEID(cputocnode(cpu));
-
-       intr_get_ptrs(cpu, bit, &bit, &intpend_masks, &ip);
-       intpend_masks[0] &= ~(1ULL << (u64)bit);
-       if (ip == 0) {
-               mask_reg = REMOTE_HUB_ADDR(nasid, PI_INT_MASK0_A +
-                               PI_INT_MASK_OFFSET * slice);
+       nasid_t nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
+       struct slice_data *si = cpu_data[cpu].data;
+
+       __clear_bit(bit, si->irq_enable_mask);
+
+       if (!cputoslice(cpu)) {
+               REMOTE_HUB_S(nasid, PI_INT_MASK0_A, si->irq_enable_mask[0]);
+               REMOTE_HUB_S(nasid, PI_INT_MASK1_A, si->irq_enable_mask[1]);
        } else {
-               mask_reg = REMOTE_HUB_ADDR(nasid, PI_INT_MASK1_A +
-                               PI_INT_MASK_OFFSET * slice);
+               REMOTE_HUB_S(nasid, PI_INT_MASK0_B, si->irq_enable_mask[0]);
+               REMOTE_HUB_S(nasid, PI_INT_MASK1_B, si->irq_enable_mask[1]);
        }
-       HUB_S(mask_reg, intpend_masks[0]);
 
        return 0;
 }
@@ -316,9 +273,6 @@ static unsigned int startup_bridge_irq(unsigned int irq)
        bridge_t *bridge;
        int pin, swlevel;
 
-       if (irq < BASE_PCI_IRQ)
-               return 0;
-
        pin = SLOT_FROM_PCI_IRQ(irq);
        bc = IRQ_TO_BRIDGE(irq);
        bridge = bc->base;
@@ -364,11 +318,10 @@ static void shutdown_bridge_irq(unsigned int irq)
 {
        struct bridge_controller *bc = IRQ_TO_BRIDGE(irq);
        bridge_t *bridge = bc->base;
+       struct slice_data *si = cpu_data[bc->irq_cpu].data;
        int pin, swlevel;
        cpuid_t cpu;
 
-       BUG_ON(irq < BASE_PCI_IRQ);
-
        DBG("bridge_shutdown: irq 0x%x\n", irq);
        pin = SLOT_FROM_PCI_IRQ(irq);
 
@@ -378,7 +331,9 @@ static void shutdown_bridge_irq(unsigned int irq)
         */
        swlevel = find_level(&cpu, irq);
        intr_disconnect_level(cpu, swlevel);
-       LEVEL_TO_IRQ(cpu, swlevel) = -1;
+
+       __clear_bit(swlevel, si->irq_alloc_mask);
+       si->level_to_irq[swlevel] = -1;
 
        bridge->b_int_enable &= ~(1 << pin);
        bridge->b_widget.w_tflush;                      /* Flush */
@@ -413,23 +368,32 @@ static struct hw_interrupt_type bridge_irq_type = {
        .end            = end_bridge_irq,
 };
 
-void irq_debug(void)
+static unsigned long irq_map[NR_IRQS / BITS_PER_LONG];
+
+unsigned int allocate_irqno(void)
 {
-       bridge_t *bridge = (bridge_t *) 0x9200000008000000;
+       int irq;
+
+again:
+       irq = find_first_zero_bit(irq_map, LEVELS_PER_SLICE);
+
+       if (irq >= NR_IRQS)
+               return -1;
+
+       if (test_and_set_bit(irq, irq_map))
+               goto again;
 
-       printk("bridge->b_int_status = 0x%x\n", bridge->b_int_status);
-       printk("bridge->b_int_enable = 0x%x\n", bridge->b_int_enable);
-       printk("PI_INT_PEND0   = 0x%lx\n", LOCAL_HUB_L(PI_INT_PEND0));
-       printk("PI_INT_MASK0_A = 0x%lx\n", LOCAL_HUB_L(PI_INT_MASK0_A));
+       return irq;
 }
 
-void __init init_IRQ(void)
+void free_irqno(unsigned int irq)
 {
-       int i, j;
+       clear_bit(irq, irq_map);
+}
 
-       for (i = 0; i < MAX_COMPACT_NODES; i++)
-               for (j = 0; j < PERNODE_LEVELS; j++)
-                       node_level_to_irq[i][j] = -1;
+void __init init_IRQ(void)
+{
+       int i;
 
        set_except_vector(0, ip27_irq);
 
@@ -448,25 +412,26 @@ void install_ipi(void)
 {
        int slice = LOCAL_HUB_L(PI_CPU_NUM);
        int cpu = smp_processor_id();
+       struct slice_data *si = cpu_data[cpu].data;
        hubreg_t mask, set;
 
        if (slice == 0) {
                LOCAL_HUB_CLR_INTR(CPU_RESCHED_A_IRQ);
                LOCAL_HUB_CLR_INTR(CPU_CALL_A_IRQ);
                mask = LOCAL_HUB_L(PI_INT_MASK0_A);     /* Slice A */
-               set = (1UL << FAST_IRQ_TO_LEVEL(CPU_RESCHED_A_IRQ)) |
-                     (1UL << FAST_IRQ_TO_LEVEL(CPU_CALL_A_IRQ));
+               set = (1UL << CPU_RESCHED_A_IRQ) | (1UL << CPU_CALL_A_IRQ);
                mask |= set;
-               cpu_data[cpu].p_intmasks.intpend0_masks |= set;
+               si->irq_enable_mask[0] |= set;
+               si->irq_alloc_mask[0] |= set;
                LOCAL_HUB_S(PI_INT_MASK0_A, mask);
        } else {
                LOCAL_HUB_CLR_INTR(CPU_RESCHED_B_IRQ);
                LOCAL_HUB_CLR_INTR(CPU_CALL_B_IRQ);
                mask = LOCAL_HUB_L(PI_INT_MASK0_B);     /* Slice B */
-               set = (1UL << FAST_IRQ_TO_LEVEL(CPU_RESCHED_B_IRQ)) |
-                     (1UL << FAST_IRQ_TO_LEVEL(CPU_CALL_B_IRQ));
+               set = (1UL << CPU_RESCHED_B_IRQ) | (1UL << CPU_CALL_B_IRQ);
                mask |= set;
-               cpu_data[cpu].p_intmasks.intpend0_masks |= set;
+               si->irq_enable_mask[1] |= set;
+               si->irq_alloc_mask[1] |= set;
                LOCAL_HUB_S(PI_INT_MASK0_B, mask);
        }
 }
index 25db4399a5d7c0f96920b9a661f7f1e5f6f021e2..6c6df7b5b8288b17f8694819105b78932f0186f0 100644 (file)
@@ -5,55 +5,52 @@
  *
  * Copyright (C) 2000 by Ralf Baechle
  * Copyright (C) 2000 by Silicon Graphics, Inc.
+ * Copyright (C) 2004 by Christoph Hellwig
  *
  * On SGI IP27 the ARC memory configuration data is completly bogus but
  * alternate easier to use mechanisms are available.
  */
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
-#include <linux/bootmem.h>
+#include <linux/mmzone.h>
 #include <linux/swap.h>
-
+#include <linux/bootmem.h>
 #include <asm/page.h>
-#include <asm/bootinfo.h>
-#include <asm/addrspace.h>
-#include <asm/pgtable.h>
-#include <asm/pgalloc.h>
-#include <asm/sn/types.h>
-#include <asm/sn/addrs.h>
+#include <asm/sections.h>
+
+#include <asm/sn/arch.h>
 #include <asm/sn/hub.h>
 #include <asm/sn/klconfig.h>
-#include <asm/sn/arch.h>
-#include <asm/mmzone.h>
-#include <asm/sections.h>
+#include <asm/sn/sn_private.h>
 
-/* ip27-klnuma.c   */
-extern pfn_t node_getfirstfree(cnodeid_t cnode);
 
-#define PFN_UP(x)      (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
-#define SLOT_IGNORED   0xffff
+#define PFN_UP(x)              (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
 
-short slot_lastfilled_cache[MAX_COMPACT_NODES];
-unsigned short slot_psize_cache[MAX_COMPACT_NODES][MAX_MEM_SLOTS];
+#define SLOT_PFNSHIFT           (SLOT_SHIFT - PAGE_SHIFT)
+#define PFN_NASIDSHFT           (NASID_SHFT - PAGE_SHIFT)
+
+#define SLOT_IGNORED           0xffff
+
+static short __initdata slot_lastfilled_cache[MAX_COMPACT_NODES];
+static unsigned short __initdata slot_psize_cache[MAX_COMPACT_NODES][MAX_MEM_SLOTS];
+static struct bootmem_data __initdata plat_node_bdata[MAX_COMPACT_NODES];
 
-struct bootmem_data plat_node_bdata[MAX_COMPACT_NODES];
 struct pglist_data *node_data[MAX_COMPACT_NODES];
 struct hub_data *hub_data[MAX_COMPACT_NODES];
 
-int numa_debug(void)
+static pfn_t __init slot_getbasepfn(cnodeid_t cnode, int slot)
 {
-       printk("NUMA debug\n");
-       *(int *)0 = 0;
-       return(0);
+       nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
+
+       return ((pfn_t)nasid << PFN_NASIDSHFT) | (slot << SLOT_PFNSHIFT);
 }
 
 /*
  * Return the number of pages of memory provided by the given slot
  * on the specified node.
  */
-static pfn_t slot_getsize(cnodeid_t node, int slot)
+static pfn_t __init slot_getsize(cnodeid_t node, int slot)
 {
        return (pfn_t) slot_psize_cache[node][slot];
 }
@@ -61,7 +58,7 @@ static pfn_t slot_getsize(cnodeid_t node, int slot)
 /*
  * Return highest slot filled
  */
-static int node_getlastslot(cnodeid_t node)
+static int __init node_getlastslot(cnodeid_t node)
 {
        return (int) slot_lastfilled_cache[node];
 }
@@ -69,7 +66,7 @@ static int node_getlastslot(cnodeid_t node)
 /*
  * Return the pfn of the last free page of memory on a node.
  */
-static pfn_t node_getmaxclick(cnodeid_t node)
+static pfn_t __init node_getmaxclick(cnodeid_t node)
 {
        pfn_t   slot_psize;
        int     slot;
@@ -78,7 +75,7 @@ static pfn_t node_getmaxclick(cnodeid_t node)
         * Start at the top slot. When we find a slot with memory in it,
         * that's the winner.
         */
-       for (slot = (node_getnumslots(node) - 1); slot >= 0; slot--) {
+       for (slot = (MAX_MEM_SLOTS - 1); slot >= 0; slot--) {
                if ((slot_psize = slot_getsize(node, slot))) {
                        if (slot_psize == SLOT_IGNORED)
                                continue;
@@ -94,7 +91,7 @@ static pfn_t node_getmaxclick(cnodeid_t node)
        return 0;
 }
 
-static pfn_t slot_psize_compute(cnodeid_t node, int slot)
+static pfn_t __init slot_psize_compute(cnodeid_t node, int slot)
 {
        nasid_t nasid;
        lboard_t *brd;
@@ -129,25 +126,25 @@ static pfn_t slot_psize_compute(cnodeid_t node, int slot)
        }
 }
 
-static pfn_t szmem(void)
+static void __init szmem(void)
 {
+       pfn_t slot_psize, slot0sz = 0, nodebytes;       /* Hack to detect problem configs */
+       int slot, ignore;
        cnodeid_t node;
-       int slot, numslots;
-       pfn_t num_pages = 0, slot_psize;
-       pfn_t slot0sz = 0, nodebytes;   /* Hack to detect problem configs */
-       int ignore;
+
+       num_physpages = 0;
 
        for (node = 0; node < numnodes; node++) {
-               numslots = node_getnumslots(node);
                ignore = nodebytes = 0;
-               for (slot = 0; slot < numslots; slot++) {
+               for (slot = 0; slot < MAX_MEM_SLOTS; slot++) {
                        slot_psize = slot_psize_compute(node, slot);
-                       if (slot == 0) slot0sz = slot_psize;
+                       if (slot == 0)
+                               slot0sz = slot_psize;
                        /*
                         * We need to refine the hack when we have replicated
                         * kernel text.
                         */
-                       nodebytes += SLOT_SIZE;
+                       nodebytes += (1LL << SLOT_SHIFT);
                        if ((nodebytes >> PAGE_SHIFT) * (sizeof(struct page)) >
                                                (slot0sz << PAGE_SHIFT))
                                ignore = 1;
@@ -155,18 +152,16 @@ static pfn_t szmem(void)
                                printk("Ignoring slot %d onwards on node %d\n",
                                                                slot, node);
                                slot_psize_cache[node][slot] = SLOT_IGNORED;
-                               slot = numslots;
+                               slot = MAX_MEM_SLOTS;
                                continue;
                        }
-                       num_pages += slot_psize;
+                       num_physpages += slot_psize;
                        slot_psize_cache[node][slot] =
                                        (unsigned short) slot_psize;
                        if (slot_psize)
                                slot_lastfilled_cache[node] = slot;
                }
        }
-
-       return num_pages;
 }
 
 /*
@@ -174,14 +169,12 @@ static pfn_t szmem(void)
  * contains at least 32 MBytes of memory. We assume all bootmem data
  * fits on the first slot.
  */
-extern void mlreset(void);
 void __init prom_meminit(void)
 {
        cnodeid_t node;
 
        mlreset();
-
-       num_physpages = szmem();
+       szmem();
 
        for (node = 0; node < numnodes; node++) {
                pfn_t slot_firstpfn = slot_getbasepfn(node, 0);
@@ -195,7 +188,9 @@ void __init prom_meminit(void)
                node_data[node] = __va(slot_freepfn << PAGE_SHIFT);
                node_data[node]->bdata = &plat_node_bdata[node];
 
-               hub_data[node] = node_data[node] + 1;
+               hub_data[node] = (struct hub_data *)(node_data[node] + 1);
+
+               cpus_clear(hub_data[node]->h_cpus);
 
                slot_freepfn += PFN_UP(sizeof(struct pglist_data) +
                                       sizeof(struct hub_data));
index 33a76bc276cc848bdd7f1abc246fee765daafeb2..da8ed29df2391066f857f42f1fa8a0e0d32c156b 100644 (file)
@@ -222,7 +222,7 @@ cont_nmi_dump(void)
                if (i == 1000) {
                        for (node=0; node < numnodes; node++)
                                if (NODEPDA(node)->dump_count == 0) {
-                                       cpu = CNODE_TO_CPU_BASE(node);
+                                       cpu = node_to_first_cpu(node);
                                        for (n=0; n < CNODE_NUM_CPUS(node); cpu++, n++) {
                                                CPUMASK_SETB(nmied_cpus, cpu);
                                                /*
diff --git a/arch/mips/sgi-ip27/ip27-setup.c b/arch/mips/sgi-ip27/ip27-setup.c
deleted file mode 100644 (file)
index 98cda5e..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * 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.
- *
- * SGI IP27 specific setup.
- *
- * Copyright (C) 1999, 2000 Ralf Baechle (ralf@gnu.org)
- * Copyright (C) 1999, 2000 Silcon Graphics, Inc.
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/spinlock.h>
-#include <linux/sched.h>
-#include <linux/smp.h>
-
-#include <asm/io.h>
-#include <asm/sn/types.h>
-#include <asm/sn/sn0/addrs.h>
-#include <asm/sn/sn0/hubni.h>
-#include <asm/sn/sn0/hubio.h>
-#include <asm/sn/klconfig.h>
-#include <asm/sn/ioc3.h>
-#include <asm/time.h>
-#include <asm/mipsregs.h>
-#include <asm/sn/arch.h>
-#include <asm/sn/sn_private.h>
-#include <asm/pci/bridge.h>
-#include <asm/paccess.h>
-#include <asm/sn/sn0/ip27.h>
-#include <asm/traps.h>
-
-/* Check against user dumbness.  */
-#ifdef CONFIG_VT
-#error CONFIG_VT not allowed for IP27.
-#endif
-
-#undef DEBUG_SETUP
-#ifdef DEBUG_SETUP
-#define DBG(x...) printk(x)
-#else
-#define DBG(x...)
-#endif
-
-extern void ip27_be_init(void) __init;
-
-/*
- * get_nasid() returns the physical node id number of the caller.
- */
-nasid_t
-get_nasid(void)
-{
-       return (nasid_t)((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_NODEID_MASK)
-                        >> NSRI_NODEID_SHFT);
-}
-
-/* Extracted from the IOC3 meta driver.  FIXME.  */
-static inline void ioc3_sio_init(void)
-{
-       struct ioc3 *ioc3;
-       nasid_t nid;
-        long loops;
-
-       nid = get_nasid();
-       ioc3 = (struct ioc3 *) KL_CONFIG_CH_CONS_INFO(nid)->memory_base;
-
-       ioc3->sscr_a = 0;                       /* PIO mode for uarta.  */
-       ioc3->sscr_b = 0;                       /* PIO mode for uartb.  */
-       ioc3->sio_iec = ~0;
-       ioc3->sio_ies = (SIO_IR_SA_INT | SIO_IR_SB_INT);
-
-       loops=1000000; while(loops--);
-       ioc3->sregs.uarta.iu_fcr = 0;
-       ioc3->sregs.uartb.iu_fcr = 0;
-       loops=1000000; while(loops--);
-}
-
-static inline void ioc3_eth_init(void)
-{
-       struct ioc3 *ioc3;
-       nasid_t nid;
-
-       nid = get_nasid();
-       ioc3 = (struct ioc3 *) KL_CONFIG_CH_CONS_INFO(nid)->memory_base;
-
-       ioc3->eier = 0;
-}
-
-/* Try to catch kernel missconfigurations and give user an indication what
-   option to select.  */
-static void __init verify_mode(void)
-{
-       int n_mode;
-
-       n_mode = LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_MORENODES_MASK;
-       printk("Machine is in %c mode.\n", n_mode ? 'N' : 'M');
-#ifdef CONFIG_SGI_SN0_N_MODE
-       if (!n_mode)
-               panic("Kernel compiled for M mode.");
-#else
-       if (n_mode)
-               panic("Kernel compiled for N mode.");
-#endif
-}
-
-#define XBOW_WIDGET_PART_NUM    0x0
-#define XXBOW_WIDGET_PART_NUM   0xd000  /* Xbow in Xbridge */
-#define BASE_XBOW_PORT         8     /* Lowest external port */
-
-extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
-
-static int __init probe_one_port(nasid_t nasid, int widget, int masterwid)
-{
-       widgetreg_t             widget_id;
-       xwidget_part_num_t      partnum;
-
-       widget_id = *(volatile widgetreg_t *)
-               (RAW_NODE_SWIN_BASE(nasid, widget) + WIDGET_ID);
-       partnum = XWIDGET_PART_NUM(widget_id);
-
-       printk(KERN_INFO "Cpu %d, Nasid 0x%x, widget 0x%x (partnum 0x%x) is ",
-                       smp_processor_id(), nasid, widget, partnum);
-
-       switch (partnum) {
-       case BRIDGE_WIDGET_PART_NUM:
-       case XBRIDGE_WIDGET_PART_NUM:
-               bridge_probe(nasid, widget, masterwid);
-               break;
-       default:
-               break;
-       }
-
-       return 0;
-}
-
-static int __init xbow_probe(nasid_t nasid)
-{
-       lboard_t *brd;
-       klxbow_t *xbow_p;
-       unsigned masterwid, i;
-
-       printk("is xbow\n");
-
-       /*
-        * found xbow, so may have multiple bridges
-        * need to probe xbow
-        */
-       brd = find_lboard((lboard_t *)KL_CONFIG_INFO(nasid), KLTYPE_MIDPLANE8);
-       if (!brd)
-               return -ENODEV;
-       
-       xbow_p = (klxbow_t *)find_component(brd, NULL, KLSTRUCT_XBOW);
-       if (!xbow_p)
-               return -ENODEV;
-
-       /*
-        * Okay, here's a xbow. Lets arbitrate and find
-        * out if we should initialize it. Set enabled
-        * hub connected at highest or lowest widget as
-        * master.
-        */
-#ifdef WIDGET_A
-       i = HUB_WIDGET_ID_MAX + 1;
-       do {
-               i--;
-       } while ((!XBOW_PORT_TYPE_HUB(xbow_p, i)) ||
-                (!XBOW_PORT_IS_ENABLED(xbow_p, i)));
-#else
-       i = HUB_WIDGET_ID_MIN - 1;
-       do {
-               i++;
-       } while ((!XBOW_PORT_TYPE_HUB(xbow_p, i)) ||
-                (!XBOW_PORT_IS_ENABLED(xbow_p, i)));
-#endif
-
-       masterwid = i;
-       if (nasid != XBOW_PORT_NASID(xbow_p, i))
-               return 1;
-
-       for (i = HUB_WIDGET_ID_MIN; i <= HUB_WIDGET_ID_MAX; i++) {
-               if (XBOW_PORT_IS_ENABLED(xbow_p, i) &&
-                   XBOW_PORT_TYPE_IO(xbow_p, i))
-                       probe_one_port(nasid, i, masterwid);
-       }
-
-       return 0;
-}
-
-static spinlock_t pcibr_setup_lock = SPIN_LOCK_UNLOCKED;
-
-void __init pcibr_setup(cnodeid_t nid)
-{
-       volatile u64            hubreg;
-       nasid_t                 nasid;
-       xwidget_part_num_t      partnum;
-       widgetreg_t             widget_id;
-
-
-       spin_lock(&pcibr_setup_lock);
-
-       /*
-        * If the master is doing this for headless node, nothing to do.
-        * This is because currently we require at least one of the hubs
-        * (master hub) connected to the xbow to have at least one enabled
-        * cpu to receive intrs. Else we need an array bus_to_intrnasid[]
-        * that bridge_startup() needs to use to target intrs. All dma is
-        * routed thru the widget of the master hub. The master hub wid
-        * is selectable by WIDGET_A below.
-        */
-       if (nid != get_compact_nodeid())
-               goto out;
-
-       /* find what's on our local node */
-       nasid = COMPACT_TO_NASID_NODEID(nid);
-       hubreg = REMOTE_HUB_L(nasid, IIO_LLP_CSR);
-
-       /* check whether the link is up */
-       if (!(hubreg & IIO_LLP_CSR_IS_UP))
-               goto out;
-
-       widget_id = *(volatile widgetreg_t *)
-                       (RAW_NODE_SWIN_BASE(nasid, 0x0) + WIDGET_ID);
-       partnum = XWIDGET_PART_NUM(widget_id);
-
-       printk(KERN_INFO "Cpu %d, Nasid 0x%x: partnum 0x%x is ",
-                       smp_processor_id(), nasid, partnum);
-
-       switch (partnum) {
-       case BRIDGE_WIDGET_PART_NUM:
-               bridge_probe(nasid, 0x8, 0xa);
-               break;
-       case XBOW_WIDGET_PART_NUM:
-       case XXBOW_WIDGET_PART_NUM:
-               xbow_probe(nasid);
-               break;
-       default:
-               printk(" unknown widget??\n");
-               break;
-       }
-
- out:
-       spin_unlock(&pcibr_setup_lock);
-}
-
-extern void ip27_setup_console(void);
-extern void ip27_time_init(void);
-extern void ip27_reboot_setup(void);
-
-void __init per_cpu_init(void)
-{
-       cnodeid_t cnode = get_compact_nodeid();
-       int cpu = smp_processor_id();
-
-       clear_c0_status(ST0_IM);
-       per_hub_init(cnode);
-       cpu_time_init();
-       install_ipi();
-       /* Install our NMI handler if symmon hasn't installed one. */
-       install_cpu_nmi_handler(cputoslice(cpu));
-       set_c0_status(SRB_DEV0 | SRB_DEV1);
-}
-
-static int __init ip27_setup(void)
-{
-       hubreg_t p, e;
-       nasid_t nid;
-
-       ip27_setup_console();
-       ip27_reboot_setup();
-
-       /*
-        * hub_rtc init and cpu clock intr enabled for later calibrate_delay.
-        */
-       DBG("ip27_setup(): Entered.\n");
-       nid = get_nasid();
-       printk("IP27: Running on node %d.\n", nid);
-
-       p = LOCAL_HUB_L(PI_CPU_PRESENT_A) & 1;
-       e = LOCAL_HUB_L(PI_CPU_ENABLE_A) & 1;
-       printk("Node %d has %s primary CPU%s.\n", nid,
-              p ? "a" : "no",
-              e ? ", CPU is running" : "");
-
-       p = LOCAL_HUB_L(PI_CPU_PRESENT_B) & 1;
-       e = LOCAL_HUB_L(PI_CPU_ENABLE_B) & 1;
-       printk("Node %d has %s secondary CPU%s.\n", nid,
-              p ? "a" : "no",
-              e ? ", CPU is running" : "");
-
-       verify_mode();
-       ioc3_sio_init();
-       ioc3_eth_init();
-       per_cpu_init();
-
-       set_io_port_base(IO_BASE);
-
-       board_time_init = ip27_time_init;
-
-       return 0;
-}
-
-early_initcall(ip27_setup);
index 0180dbfc54befb3c1d65efa1608854a86f705809..1e5ce4ca2b1bf82f67f674d15cc42f26bbe7354b 100644 (file)
@@ -32,7 +32,7 @@ static void alloc_cpupda(cpuid_t cpu, int cpunum)
        nasid_t nasid = COMPACT_TO_NASID_NODEID(node);
 
        cputonasid(cpunum) = nasid;
-       cputocnode(cpunum) = node;
+       cpu_data[cpunum].p_nodeid = node;
        cputoslice(cpunum) = get_cpu_slice(cpu);
 }
 
@@ -223,5 +223,5 @@ void core_send_ipi(int destid, unsigned int action)
         * part of the address space.  Then set the interrupt bit associated
         * with the CPU we want to send the interrupt to.
         */
-       REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cputocnode(destid)), irq);
+       REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cpu_to_node(destid)), irq);
 }
index 522bc9fb67075242645e77c7c3d54e7e97b26625..cc0419ad7407e77063e51474473d70dc97a81c5c 100644 (file)
@@ -45,7 +45,7 @@ static long last_rtc_update;          /* Last time the rtc clock got updated */
 
 extern volatile unsigned long wall_jiffies;
 
-
+#if 0
 static int set_rtc_mmss(unsigned long nowtime)
 {
        int retval = 0;
@@ -88,6 +88,7 @@ static int set_rtc_mmss(unsigned long nowtime)
 
        return retval;
 }
+#endif
 
 void ip27_rt_timer_interrupt(struct pt_regs *regs)
 {
diff --git a/arch/mips/sgi-ip27/ip27-xtalk.c b/arch/mips/sgi-ip27/ip27-xtalk.c
new file mode 100644 (file)
index 0000000..fc82f34
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 1999, 2000 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999, 2000 Silcon Graphics, Inc.
+ * Copyright (C) 2004 Christoph Hellwig.
+ *     Released under GPL v2.
+ *
+ * Generic XTALK initialization code
+ */
+
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <asm/sn/types.h>
+#include <asm/sn/klconfig.h>
+#include <asm/sn/hub.h>
+#include <asm/pci/bridge.h>
+#include <asm/xtalk/xtalk.h>
+
+
+#define XBOW_WIDGET_PART_NUM    0x0
+#define XXBOW_WIDGET_PART_NUM   0xd000  /* Xbow in Xbridge */
+#define BASE_XBOW_PORT         8     /* Lowest external port */
+
+extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
+
+static int __init probe_one_port(nasid_t nasid, int widget, int masterwid)
+{
+       widgetreg_t             widget_id;
+       xwidget_part_num_t      partnum;
+
+       widget_id = *(volatile widgetreg_t *)
+               (RAW_NODE_SWIN_BASE(nasid, widget) + WIDGET_ID);
+       partnum = XWIDGET_PART_NUM(widget_id);
+
+       printk(KERN_INFO "Cpu %d, Nasid 0x%x, widget 0x%x (partnum 0x%x) is ",
+                       smp_processor_id(), nasid, widget, partnum);
+
+       switch (partnum) {
+       case BRIDGE_WIDGET_PART_NUM:
+       case XBRIDGE_WIDGET_PART_NUM:
+               bridge_probe(nasid, widget, masterwid);
+               break;
+       default:
+               break;
+       }
+
+       return 0;
+}
+
+static int __init xbow_probe(nasid_t nasid)
+{
+       lboard_t *brd;
+       klxbow_t *xbow_p;
+       unsigned masterwid, i;
+
+       printk("is xbow\n");
+
+       /*
+        * found xbow, so may have multiple bridges
+        * need to probe xbow
+        */
+       brd = find_lboard((lboard_t *)KL_CONFIG_INFO(nasid), KLTYPE_MIDPLANE8);
+       if (!brd)
+               return -ENODEV;
+
+       xbow_p = (klxbow_t *)find_component(brd, NULL, KLSTRUCT_XBOW);
+       if (!xbow_p)
+               return -ENODEV;
+
+       /*
+        * Okay, here's a xbow. Lets arbitrate and find
+        * out if we should initialize it. Set enabled
+        * hub connected at highest or lowest widget as
+        * master.
+        */
+#ifdef WIDGET_A
+       i = HUB_WIDGET_ID_MAX + 1;
+       do {
+               i--;
+       } while ((!XBOW_PORT_TYPE_HUB(xbow_p, i)) ||
+                (!XBOW_PORT_IS_ENABLED(xbow_p, i)));
+#else
+       i = HUB_WIDGET_ID_MIN - 1;
+       do {
+               i++;
+       } while ((!XBOW_PORT_TYPE_HUB(xbow_p, i)) ||
+                (!XBOW_PORT_IS_ENABLED(xbow_p, i)));
+#endif
+
+       masterwid = i;
+       if (nasid != XBOW_PORT_NASID(xbow_p, i))
+               return 1;
+
+       for (i = HUB_WIDGET_ID_MIN; i <= HUB_WIDGET_ID_MAX; i++) {
+               if (XBOW_PORT_IS_ENABLED(xbow_p, i) &&
+                   XBOW_PORT_TYPE_IO(xbow_p, i))
+                       probe_one_port(nasid, i, masterwid);
+       }
+
+       return 0;
+}
+
+void __init xtalk_probe_node(cnodeid_t nid)
+{
+       volatile u64            hubreg;
+       nasid_t                 nasid;
+       xwidget_part_num_t      partnum;
+       widgetreg_t             widget_id;
+
+       nasid = COMPACT_TO_NASID_NODEID(nid);
+       hubreg = REMOTE_HUB_L(nasid, IIO_LLP_CSR);
+
+       /* check whether the link is up */
+       if (!(hubreg & IIO_LLP_CSR_IS_UP))
+               return;
+
+       widget_id = *(volatile widgetreg_t *)
+                       (RAW_NODE_SWIN_BASE(nasid, 0x0) + WIDGET_ID);
+       partnum = XWIDGET_PART_NUM(widget_id);
+
+       printk(KERN_INFO "Cpu %d, Nasid 0x%x: partnum 0x%x is ",
+                       smp_processor_id(), nasid, partnum);
+
+       switch (partnum) {
+       case BRIDGE_WIDGET_PART_NUM:
+               bridge_probe(nasid, 0x8, 0xa);
+               break;
+       case XBOW_WIDGET_PART_NUM:
+       case XXBOW_WIDGET_PART_NUM:
+               xbow_probe(nasid);
+               break;
+       default:
+               printk(" unknown widget??\n");
+               break;
+       }
+}
index fdc0185187c0a66886d2ab27a93477c2175d2f54..1b6f93d16b5dde90a8a35283590ed356532db5ed 100644 (file)
@@ -3,7 +3,7 @@
 # under Linux.
 #
 
-obj-y  += ip32-berr.o ip32-irq.o ip32-irq-glue.o ip32-setup.o ip32-timer.o \
-          crime.o ip32-reset.o
+obj-y  += ip32-berr.o ip32-irq.o ip32-irq-glue.o ip32-setup.o ip32-reset.o \
+          crime.o
 
 EXTRA_AFLAGS := $(CFLAGS)
index 5d03560a84df27a06f3b2d1e7b797db52d955d5b..5091454ca19757a1a61e87b21ac2271ef7608b85 100644 (file)
@@ -24,6 +24,7 @@
 #include <asm/mipsregs.h>
 #include <asm/signal.h>
 #include <asm/system.h>
+#include <asm/time.h>
 #include <asm/ip32/crime.h>
 #include <asm/ip32/mace.h>
 #include <asm/ip32/ip32_ints.h>
@@ -548,7 +549,7 @@ void ip32_irq4(struct pt_regs *regs)
 
 void ip32_irq5(struct pt_regs *regs)
 {
-       do_IRQ(CLOCK_IRQ, regs);
+       ll_timer_interrupt(IP32_R4K_TIMER_IRQ, regs);
 }
 
 void __init init_IRQ(void)
@@ -568,7 +569,7 @@ void __init init_IRQ(void)
        for (irq = 0; irq <= IP32_IRQ_MAX; irq++) {
                hw_irq_controller *controller;
 
-               if (irq == CLOCK_IRQ)
+               if (irq == IP32_R4K_TIMER_IRQ)
                        controller = &ip32_cpu_interrupt;
                else if (irq <= MACE_PCI_BRIDGE_IRQ && irq >= MACE_VID_IN1_IRQ)
                        controller = &ip32_mace_interrupt;
@@ -586,4 +587,7 @@ void __init init_IRQ(void)
        }
        setup_irq(CRIME_MEMERR_IRQ, &memerr_irq);
        setup_irq(CRIME_CPUERR_IRQ, &cpuerr_irq);
+
+#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
+       change_c0_status(ST0_IM, ALLINTS);
 }
index 81cf1666b1966251eec2156ee7a1b31b3976bd37..51cad2d843f2ef86b3c3ee7f4e003214022c0613 100644 (file)
@@ -9,22 +9,28 @@
  * Copyright (C) 2002, 03 Ilya A. Volynets
  */
 #include <linux/config.h>
-#include <linux/sched.h>
+#include <linux/console.h>
+#include <linux/init.h>
 #include <linux/interrupt.h>
+#include <linux/mc146818rtc.h>
 #include <linux/param.h>
-#include <linux/init.h>
-#include <linux/console.h>
+#include <linux/sched.h>
 
-#include <asm/time.h>
-#include <asm/mipsregs.h>
 #include <asm/bootinfo.h>
+#include <asm/mc146818-time.h>
+#include <asm/mipsregs.h>
 #include <asm/mmu_context.h>
 #include <asm/sgialib.h>
+#include <asm/time.h>
 #include <asm/traps.h>
 #include <asm/io.h>
+#include <asm/ip32/crime.h>
 #include <asm/ip32/mace.h>
 #include <asm/ip32/ip32_ints.h>
 
+extern void ip32_be_init(void);
+extern void crime_init(void);
+
 #ifdef CONFIG_SGI_O2MACE_ETH
 /*
  * This is taken care of in here 'cause they say using Arc later on is
@@ -56,28 +62,50 @@ static inline void str2eaddr(unsigned char *ea, unsigned char *str)
 }
 #endif
 
-extern void ip32_time_init(void);
-extern void ip32_be_init(void);
-extern void __init ip32_timer_setup (struct irqaction *irq);
-extern void __init crime_init (void);
-
 #ifdef CONFIG_SERIAL_8250
 #include <linux/tty.h>
 #include <linux/serial.h>
 #include <linux/serial_core.h>
-extern int __init early_serial_setup(struct uart_port *port);
+extern int early_serial_setup(struct uart_port *port);
 
 #define STD_COM_FLAGS (ASYNC_SKIP_TEST)
 #define BASE_BAUD (1843200 / 16)
 
 #endif /* CONFIG_SERIAL_8250 */
 
+/* An arbitrary time; this can be decreased if reliability looks good */
+#define WAIT_MS 10
+
+void __init ip32_time_init(void)
+{
+       printk(KERN_INFO "Calibrating system timer... ");
+       write_c0_count(0);
+       crime_write(0, CRIME_TIMER);
+       while (crime_read(CRIME_TIMER) < CRIME_MASTER_FREQ * WAIT_MS / 1000) ;
+       mips_hpt_frequency = read_c0_count() * 1000 / WAIT_MS;
+       printk("%d MHz CPU detected\n", mips_hpt_frequency * 2 / 1000000);
+}
+
+void __init ip32_timer_setup(struct irqaction *irq)
+{
+       irq->handler = no_action;
+       setup_irq(IP32_R4K_TIMER_IRQ, irq);
+}
+
 static int __init ip32_setup(void)
 {
        set_io_port_base((unsigned long) ioremap(MACEPCI_LOW_IO, 0x2000000));
 
        crime_init();
 
+       board_be_init = ip32_be_init;
+
+       rtc_get_time = mc146818_get_cmos_time;
+       rtc_set_mmss = mc146818_set_rtc_mmss;
+
+       board_time_init = ip32_time_init;
+       board_timer_setup = ip32_timer_setup;
+
 #ifdef CONFIG_SERIAL_8250
        {
                static struct uart_port o2_serial[2];
@@ -129,10 +157,6 @@ static int __init ip32_setup(void)
        }
 #endif
 
-       board_be_init = ip32_be_init;
-       board_time_init = ip32_time_init;
-       board_timer_setup = ip32_timer_setup;
-
        return 0;
 }
 
diff --git a/arch/mips/sgi-ip32/ip32-timer.c b/arch/mips/sgi-ip32/ip32-timer.c
deleted file mode 100644 (file)
index 3d62497..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * IP32 timer calibration
- *
- * 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) 2001 Keith M Wesolowski
- */
-#include <linux/bcd.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/errno.h>
-#include <linux/sched.h>
-#include <linux/param.h>
-#include <linux/string.h>
-#include <linux/interrupt.h>
-#include <linux/kernel_stat.h>
-#include <linux/timex.h>
-
-#include <asm/mipsregs.h>
-#include <asm/param.h>
-#include <asm/bootinfo.h>
-#include <asm/cpu.h>
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/ip32/crime.h>
-#include <asm/ip32/ip32_ints.h>
-
-#include <linux/mc146818rtc.h>
-
-extern volatile unsigned long wall_jiffies;
-
-u32 cc_interval;
-
-/* Cycle counter value at the previous timer interrupt.. */
-static unsigned int timerhi, timerlo;
-
-/* An arbitrary time; this can be decreased if reliability looks good */
-#define WAIT_MS 10
-#define PER_MHZ (1000000 / 2 / HZ)
-/*
- * Change this if you have some constant time drift
- */
-#define USECS_PER_JIFFY (1000000/HZ)
-
-
-static irqreturn_t cc_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs);
-
-static inline uint64_t crime_time(void)
-{
-       return crime_read(CRIME_TIMER) & CRIME_TIMER_MASK;
-}
-
-void __init ip32_timer_setup (struct irqaction *irq)
-{
-       uint64_t time;
-       unsigned int cc_tick;
-
-       write_c0_count(0);
-       irq->handler = cc_timer_interrupt;
-
-       printk("Calibrating system timer... ");
-
-       time = crime_time();
-       cc_tick = read_c0_count();
-
-       while (crime_time() - time < WAIT_MS * 1000000 / CRIME_NS_PER_TICK) ;
-       cc_tick = read_c0_count() - cc_tick;
-       cc_interval = cc_tick / HZ * (1000 / WAIT_MS);
-       /*
-        * The round-off seems unnecessary; in testing, the error of the
-        * above procedure is < 100 ticks, which means it gets filtered
-        * out by the HZ adjustment.
-        */
-       cc_interval = (cc_interval / PER_MHZ) * PER_MHZ;
-
-       printk("%d MHz CPU detected\n", (int) (cc_interval / PER_MHZ));
-
-       setup_irq(CLOCK_IRQ, irq);
-#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
-       /* Set ourselves up for future interrupts */
-       write_c0_compare(read_c0_count() + cc_interval);
-        change_c0_status(ST0_IM, ALLINTS);
-       local_irq_enable();
-}
-
-static irqreturn_t cc_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
-{
-       unsigned int count;
-
-       /*
-        * The cycle counter is only 32 bit which is good for about
-        * a minute at current count rates of upto 150MHz or so.
-        */
-       count = read_c0_count();
-       timerhi += (count < timerlo);   /* Wrap around */
-       timerlo = count;
-
-       write_c0_compare((u32) (count + cc_interval));
-       kstat_this_cpu.irqs[irq]++;
-       do_timer(regs);
-
-       if (!jiffies) {
-               /*
-                * If jiffies has overflowed in this timer_interrupt we must
-                * update the timer[hi]/[lo] to make do_fast_gettimeoffset()
-                * quotient calc still valid. -arca
-                */
-               timerhi = timerlo = 0;
-       }
-       return IRQ_HANDLED;
-}
-
-void __init ip32_time_init(void)
-{
-       unsigned int epoch = 0, year, mon, day, hour, min, sec;
-       int i;
-
-       /* The Linux interpretation of the CMOS clock register contents:
-        * When the Update-In-Progress (UIP) flag goes from 1 to 0, the
-        * RTC registers show the second which has precisely just started.
-        * Let's hope other operating systems interpret the RTC the same way.
-        */
-       /* read RTC exactly on falling edge of update flag */
-       for (i = 0 ; i < 1000000 ; i++) /* may take up to 1 second... */
-               if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP)
-                       break;
-       for (i = 0 ; i < 1000000 ; i++) /* must try at least 2.228 ms */
-               if (!(CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP))
-                       break;
-       do { /* Isn't this overkill ? UIP above should guarantee consistency */
-               sec = CMOS_READ(RTC_SECONDS);
-               min = CMOS_READ(RTC_MINUTES);
-               hour = CMOS_READ(RTC_HOURS);
-               day = CMOS_READ(RTC_DAY_OF_MONTH);
-               mon = CMOS_READ(RTC_MONTH);
-               year = CMOS_READ(RTC_YEAR);
-       } while (sec != CMOS_READ(RTC_SECONDS));
-       if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
-               sec = BCD2BIN(sec);
-               min = BCD2BIN(min);
-               hour = BCD2BIN(hour);
-               day = BCD2BIN(day);
-               mon = BCD2BIN(mon);
-               year = BCD2BIN(year);
-       }
-
-       /* Attempt to guess the epoch.  This is the same heuristic as in
-        * rtc.c so no stupid things will happen to timekeeping.  Who knows,
-        * maybe Ultrix also uses 1952 as epoch ...
-        */
-       if (year > 10 && year < 44)
-               epoch = 1980;
-       else if (year < 96)
-               epoch = 1952;
-       year += epoch;
-
-       write_seqlock_irq(&xtime_lock);
-       xtime.tv_sec = mktime(year, mon, day, hour, min, sec);
-       xtime.tv_nsec = 0;
-       write_sequnlock_irq(&xtime_lock);
-}
index 54ca1db2e9e93f755a2be5605ff2c3ccd11f3962..d510b31c7671e2d1133555c605203522a60c799a 100644 (file)
@@ -76,9 +76,6 @@ void core_send_ipi(int cpu, unsigned int action)
        __raw_writeq((((u64)action)<< 48), mailbox_set_regs[cpu]);
 }
 
-extern irqreturn_t smp_call_function_interrupt(int irq, void *dev,
-       struct pt_regs *regs);
-
 void sb1250_mailbox_interrupt(struct pt_regs *regs)
 {
        int cpu = smp_processor_id();
@@ -96,7 +93,6 @@ void sb1250_mailbox_interrupt(struct pt_regs *regs)
         * interrupt will do the reschedule for us
         */
 
-       if (action & SMP_CALL_FUNCTION) {
-               smp_call_function_interrupt(0, NULL, regs);
-       }
+       if (action & SMP_CALL_FUNCTION)
+               smp_call_function_interrupt();
 }
index 52d85335221e4ce9e417f9d3f34a976812e8de37..638da090387106cede36c90240849c5dfe3246e9 100644 (file)
@@ -34,6 +34,7 @@
 #include <asm/reboot.h>
 #include <asm/time.h>
 #include <asm/traps.h>
+#include <asm/pci_channel.h>
 #include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/sb1250_regs.h>
 #include <asm/sibyte/sb1250_genbus.h>
@@ -80,7 +81,7 @@ int swarm_be_handler(struct pt_regs *regs, int is_fixup)
        return (is_fixup ? MIPS_BE_FIXUP : MIPS_BE_FATAL);
 }
 
-static void __init swarm_setup(void)
+static int __init swarm_setup(void)
 {
        extern int panic_timeout;
 
@@ -131,6 +132,8 @@ static void __init swarm_setup(void)
        };
        /* XXXKW for CFE, get lines/cols from environment */
 #endif
+
+       return 0;
 }
 
 early_initcall(swarm_setup);
index 8e28da6e45f93e673f7920ddb0c40f48306b76c1..573c753093f65278aefc335da59c90def7fcd236 100644 (file)
@@ -1,10 +1,11 @@
 #
 # Makefile for common code for Toshiba TX4927 based systems
 #
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
 
-obj-y  := tx4927_prom.o
-obj-y  += tx4927_setup.o
-obj-y  += tx4927_irq.o
-obj-y  += tx4927_irq_handler.o
+obj-y  += tx4927_prom.o tx4927_setup.o tx4927_irq.o tx4927_irq_handler.o
 
 obj-$(CONFIG_KGDB)                 += tx4927_dbgio.o
index 1987012b9dc658b637514dd043fa5c81babb0978..d4c03cc8eb0560daa95e12e0401c693bb5ac1fd1 100644 (file)
@@ -2,4 +2,4 @@
 # Makefile for the CASIO CASSIOPEIA E-55/65 specific parts of the kernel
 #
 
-obj-y                  += init.o setup.o
+obj-y                  += setup.o
diff --git a/arch/mips/vr41xx/casio-e55/init.c b/arch/mips/vr41xx/casio-e55/init.c
deleted file mode 100644 (file)
index 2885c82..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/casio-e55/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the CASIO CASSIOPEIA E-55/65.
- *
- * Copyright 2002 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-
-const char *get_system_type(void)
-{
-       return "CASIO CASSIOPEIA E-11/15/55/65";
-}
-
-void __init prom_init(void)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_CASIO_E55;
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index bb3cf86315d3fbc04515b62dad2a47932e50fac7..c838fc6acfbd406450450732154c09e9973aae44 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  setup.c, Setup for the CASIO CASSIOPEIA E-11/15/55/65.
  *
- *  Copyright (C) 2002-2003  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  *  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
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/config.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
-#include <linux/major.h>
-#include <linux/kdev_t.h>
-#include <linux/root_dev.h>
 
-#include <asm/time.h>
+#include <asm/io.h>
 #include <asm/vr41xx/e55.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
+const char *get_system_type(void)
+{
+       return "CASIO CASSIOPEIA E-11/15/55/65";
+}
 
-static void __init casio_e55_setup(void)
+static int casio_e55_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM_RESOURCE_START;
-       iomem_resource.end = IO_MEM_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = Root_RAM0;
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
 #ifdef CONFIG_SERIAL_8250
        vr41xx_siu_init(SIU_RS232C, 0);
 #endif
+
+       return 0;
 }
 
 early_initcall(casio_e55_setup);
index 003221984aaf667e43d4469738d042f2ea0a238a..899939be4206d02330d59d84962a9277d76bbd49 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile for common code of the NEC VR4100 series.
 #
 
-obj-y                          += bcu.o cmu.o giu.o icu.o int-handler.o ksyms.o pmu.o rtc.o
+obj-y                          += bcu.o cmu.o giu.o icu.o init.o int-handler.o ksyms.o pmu.o rtc.o
 obj-$(CONFIG_SERIAL_8250)      += serial.o
 obj-$(CONFIG_VRC4171)          += vrc4171.o
 obj-$(CONFIG_VRC4173)          += vrc4173.o
index a5c561077cddaa4508db28e980552f724c275eac..f3665b404aed706dceb2e1b95571e12f11a9de9c 100644 (file)
@@ -1,34 +1,23 @@
 /*
- * FILE NAME
- *     arch/mips/vr41xx/common/cmu.c
+ *  cmu.c, Clock Mask Unit routines for the NEC VR4100 series.
  *
- * BRIEF MODULE DESCRIPTION
- *     Clock Mask Unit routines for the NEC VR4100 series.
+ *  Copyright (C) 2001-2002  MontaVista Software Inc.
+ *    Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com>
+ *  Copuright (C) 2003-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
- * Author: Yoichi Yuasa
- *         yyuasa@mvista.com or source@mvista.com
+ *  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.
  *
- * Copyright 2001,2002 MontaVista Software Inc.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
  *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 /*
  * Changes:
@@ -41,6 +30,7 @@
  */
 #include <linux/init.h>
 #include <linux/smp.h>
+#include <linux/spinlock.h>
 #include <linux/types.h>
 
 #include <asm/cpu.h>
  #define MSKMAC0       0x0002
  #define MSKMAC1       0x0004
 
-static u32 vr41xx_cmu_base;
-static u16 cmuclkmsk, cmuclkmsk2;
+static uint32_t cmu_base;
+static uint16_t cmuclkmsk, cmuclkmsk2;
+static spinlock_t cmu_lock;
 
-#define read_cmuclkmsk()       readw(vr41xx_cmu_base)
+#define read_cmuclkmsk()       readw(cmu_base)
 #define read_cmuclkmsk2()      readw(CMUCLKMSK2)
-#define write_cmuclkmsk()      writew(cmuclkmsk, vr41xx_cmu_base)
+#define write_cmuclkmsk()      writew(cmuclkmsk, cmu_base)
 #define write_cmuclkmsk2()     writew(cmuclkmsk2, CMUCLKMSK2)
 
-void vr41xx_clock_supply(unsigned int clock)
+void vr41xx_supply_clock(vr41xx_clock_t clock)
 {
+       spin_lock_irq(&cmu_lock);
+
        switch (clock) {
        case PIU_CLOCK:
                cmuclkmsk |= MSKPIU;
@@ -130,10 +123,14 @@ void vr41xx_clock_supply(unsigned int clock)
                write_cmuclkmsk2();
        else
                write_cmuclkmsk();
+
+       spin_unlock_irq(&cmu_lock);
 }
 
-void vr41xx_clock_mask(unsigned int clock)
+void vr41xx_mask_clock(vr41xx_clock_t clock)
 {
+       spin_lock_irq(&cmu_lock);
+
        switch (clock) {
        case PIU_CLOCK:
                cmuclkmsk &= ~MSKPIU;
@@ -199,6 +196,8 @@ void vr41xx_clock_mask(unsigned int clock)
                write_cmuclkmsk2();
        else
                write_cmuclkmsk();
+
+       spin_unlock_irq(&cmu_lock);
 }
 
 void __init vr41xx_cmu_init(void)
@@ -206,14 +205,14 @@ void __init vr41xx_cmu_init(void)
        switch (current_cpu_data.cputype) {
         case CPU_VR4111:
         case CPU_VR4121:
-                vr41xx_cmu_base = CMUCLKMSK_TYPE1;
+                cmu_base = CMUCLKMSK_TYPE1;
                 break;
         case CPU_VR4122:
         case CPU_VR4131:
-                vr41xx_cmu_base = CMUCLKMSK_TYPE2;
+                cmu_base = CMUCLKMSK_TYPE2;
                 break;
         case CPU_VR4133:
-                vr41xx_cmu_base = CMUCLKMSK_TYPE2;
+                cmu_base = CMUCLKMSK_TYPE2;
                cmuclkmsk2 = read_cmuclkmsk2();
                 break;
        default:
@@ -222,4 +221,6 @@ void __init vr41xx_cmu_init(void)
         }
 
        cmuclkmsk = read_cmuclkmsk();
+
+       spin_lock_init(&cmu_lock);
 }
index 7fafef5b324cfa28833c2faac2e5e63e73a7764b..6fe6a73ff99b668008f8eb654b8b65e0bca15c4f 100644 (file)
@@ -1,34 +1,23 @@
 /*
- * FILE NAME
- *     arch/mips/vr41xx/common/giu.c
+ *  giu.c, General-purpose I/O Unit Interrupt routines for NEC VR4100 series.
  *
- * BRIEF MODULE DESCRIPTION
- *     General-purpose I/O Unit Interrupt routines for NEC VR4100 series.
+ *  Copyright (C) 2002 MontaVista Software Inc.
+ *    Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com>
+ *  Copyright (C) 2003-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
- * Author: Yoichi Yuasa
- *         yyuasa@mvista.com or source@mvista.com
+ *  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.
  *
- * Copyright 2002 MontaVista Software Inc.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
  *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 /*
  * Changes:
@@ -37,6 +26,7 @@
  *
  *  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *  - Added support for NEC VR4133.
+ *  - Removed board_irq_init.
  */
 #include <linux/errno.h>
 #include <linux/init.h>
@@ -272,8 +262,6 @@ unsigned int giuint_do_IRQ(int pin, struct pt_regs *regs)
        return retval;
 }
 
-void (*board_irq_init)(void) = NULL;
-
 void __init vr41xx_giuint_init(void)
 {
        int i;
@@ -301,7 +289,4 @@ void __init vr41xx_giuint_init(void)
 
        if (setup_irq(GIUINT_CASCADE_IRQ, &giu_cascade))
                printk("GIUINT: Can not cascade IRQ %d.\n", GIUINT_CASCADE_IRQ);
-
-       if (board_irq_init)
-               board_irq_init();
 }
diff --git a/arch/mips/vr41xx/common/init.c b/arch/mips/vr41xx/common/init.c
new file mode 100644 (file)
index 0000000..6590850
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ *  init.c, Common initialization routines for NEC VR4100 series.
+ *
+ *  Copyright (C) 2003-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+#include <linux/init.h>
+#include <linux/ioport.h>
+#include <linux/string.h>
+
+#include <asm/bootinfo.h>
+#include <asm/vr41xx/vr41xx.h>
+
+extern void vr41xx_bcu_init(void);
+extern void vr41xx_cmu_init(void);
+extern void vr41xx_pmu_init(void);
+extern void vr41xx_rtc_init(void);
+
+void __init prom_init(void)
+{
+       int argc, i;
+       char **argv;
+
+       argc = fw_arg0;
+       argv = (char **)fw_arg1;
+
+       for (i = 1; i < argc; i++) {
+               strcat(arcs_cmdline, argv[i]);
+               if (i < (argc - 1))
+                       strcat(arcs_cmdline, " ");
+       }
+
+       iomem_resource.start = IO_MEM_RESOURCE_START;
+       iomem_resource.end = IO_MEM_RESOURCE_END;
+
+       vr41xx_bcu_init();
+       vr41xx_cmu_init();
+       vr41xx_pmu_init();
+       vr41xx_rtc_init();
+}
+
+unsigned long __init prom_free_prom_memory (void)
+{
+       return 0UL;
+}
index ce92faa25ba2dd657a58b30bcabf323d58b62e92..6fa5fdc28f4b708b073b2cba528f5bf18f210d12 100644 (file)
@@ -259,7 +259,7 @@ void vr41xx_set_epoch_time(unsigned long time)
        epoch_time = time;
 }
 
-void __init vr41xx_time_init(void)
+static void __init vr41xx_time_init(void)
 {
        switch (current_cpu_data.cputype) {
        case CPU_VR4111:
@@ -291,7 +291,7 @@ void __init vr41xx_time_init(void)
        rtc_set_time = vr41xx_set_time;
 }
 
-void __init vr41xx_timer_setup(struct irqaction *irq)
+static void __init vr41xx_timer_setup(struct irqaction *irq)
 {
        do_gettimeoffset = vr41xx_gettimeoffset;
 
@@ -309,3 +309,9 @@ void __init vr41xx_timer_setup(struct irqaction *irq)
 
        setup_irq(ELAPSEDTIME_IRQ, irq);
 }
+
+void __init vr41xx_rtc_init(void)
+{
+       board_time_init = vr41xx_time_init;
+       board_timer_setup = vr41xx_timer_setup;
+}
index 866c33969e9b4937418e179b36e59e94be86094a..f981cfe2c3d10bfc9fed851d0e2066a6076bc68e 100644 (file)
@@ -1,34 +1,23 @@
 /*
- * FILE NAME
- *     arch/mips/vr41xx/common/serial.c
+ *  serial.c, Serial Interface Unit routines for NEC VR4100 series.
  *
- * BRIEF MODULE DESCRIPTION
- *     Serial Interface Unit routines for NEC VR4100 series.
+ *  Copyright (C) 2002  MontaVista Software Inc.
+ *    Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com>
+ *  Copyright (C) 2003-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
- * Author: Yoichi Yuasa
- *         yyuasa@mvista.com or source@mvista.com
+ *  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.
  *
- * Copyright 2002 MontaVista Software Inc.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
  *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 /*
  * Changes:
@@ -41,7 +30,9 @@
  */
 #include <linux/init.h>
 #include <linux/types.h>
+#include <linux/tty.h>
 #include <linux/serial.h>
+#include <linux/serial_core.h>
 #include <linux/smp.h>
 
 #include <asm/addrspace.h>
@@ -117,62 +108,62 @@ void vr41xx_siu_ifselect(int interface, int module)
 
 void __init vr41xx_siu_init(int interface, int module)
 {
-       struct serial_struct s;
+       struct uart_port port;
 
        vr41xx_siu_ifselect(interface, module);
 
-       memset(&s, 0, sizeof(s));
+       memset(&port, 0, sizeof(port));
 
-       s.line = vr41xx_serial_ports;
-       s.baud_base = SIU_BASE_BAUD;
-       s.irq = SIU_IRQ;
-       s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST;
+       port.line = vr41xx_serial_ports;
+       port.uartclk = SIU_BASE_BAUD;
+       port.irq = SIU_IRQ;
+       port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST;
        switch (current_cpu_data.cputype) {
        case CPU_VR4111:
        case CPU_VR4121:
-               s.iomem_base = (unsigned char *)SIURB_TYPE1;
+               port.membase = (char *)SIURB_TYPE1;
                break;
        case CPU_VR4122:
        case CPU_VR4131:
        case CPU_VR4133:
-               s.iomem_base = (unsigned char *)SIURB_TYPE2;
+               port.membase = (char *)SIURB_TYPE2;
                break;
        default:
                panic("Unexpected CPU of NEC VR4100 series");
                break;
        }
-       s.iomem_reg_shift = 0;
-       s.io_type = SERIAL_IO_MEM;
-       if (early_serial_setup(&s) != 0)
+       port.regshift = 0;
+       port.iotype = UPIO_MEM;
+       if (early_serial_setup(&port) != 0)
                printk(KERN_ERR "SIU setup failed!\n");
 
-       vr41xx_clock_supply(SIU_CLOCK);
+       vr41xx_supply_clock(SIU_CLOCK);
 
        vr41xx_serial_ports++;
 }
 
 void __init vr41xx_dsiu_init(void)
 {
-       struct serial_struct s;
+       struct uart_port port;
 
        if (current_cpu_data.cputype != CPU_VR4122 &&
            current_cpu_data.cputype != CPU_VR4131 &&
            current_cpu_data.cputype != CPU_VR4133)
                return;
 
-       memset(&s, 0, sizeof(s));
+       memset(&port, 0, sizeof(port));
 
-       s.line = vr41xx_serial_ports;
-       s.baud_base = DSIU_BASE_BAUD;
-       s.irq = DSIU_IRQ;
-       s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST;
-       s.iomem_base = (unsigned char *)DSIURB;
-       s.iomem_reg_shift = 0;
-       s.io_type = SERIAL_IO_MEM;
-       if (early_serial_setup(&s) != 0)
+       port.line = vr41xx_serial_ports;
+       port.uartclk = DSIU_BASE_BAUD;
+       port.irq = DSIU_IRQ;
+       port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST;
+       port.membase = (char *)DSIURB;
+       port.regshift = 0;
+       port.iotype = UPIO_MEM;
+       if (early_serial_setup(&port) != 0)
                printk(KERN_ERR "DSIU setup failed!\n");
 
-       vr41xx_clock_supply(DSIU_CLOCK);
+       vr41xx_supply_clock(DSIU_CLOCK);
 
        writew(INTDSIU, MDSIUINTREG);
 
index b21c728bb7e009b73ec2764627039199e53e0cf8..5ffaff0f0f8973070e8f2c9c8c1779ef9334a54d 100644 (file)
@@ -2,4 +2,4 @@
 # Makefile for the IBM WorkPad z50 specific parts of the kernel
 #
 
-obj-y                  += init.o setup.o
+obj-y                  += setup.o
diff --git a/arch/mips/vr41xx/ibm-workpad/init.c b/arch/mips/vr41xx/ibm-workpad/init.c
deleted file mode 100644 (file)
index c080dda..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/ibm-workpad/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the IBM WorkPad z50.
- *
- * Copyright 2002 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-
-const char *get_system_type(void)
-{
-       return "IBM WorkPad z50";
-}
-
-void __init prom_init(void)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_IBM_WORKPAD;
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index 13f96bae5c26bd3c58bfaef13ac9811347f745b6..63d6da7346fe0b7d8520906b9eedd78575f91c3c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  setup.c, Setup for the IBM WorkPad z50.
  *
- *  Copyright (C) 2002-2003  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  *  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
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/config.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
-#include <linux/major.h>
-#include <linux/kdev_t.h>
-#include <linux/root_dev.h>
 
-#include <asm/time.h>
+#include <asm/io.h>
 #include <asm/vr41xx/workpad.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
+const char *get_system_type(void)
+{
+       return "IBM WorkPad z50";
+}
 
-static void __init ibm_workpad_setup(void)
+static int ibm_workpad_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM_RESOURCE_START;
-       iomem_resource.end = IO_MEM_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = Root_RAM0;
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
 #ifdef CONFIG_SERIAL_8250
        vr41xx_siu_init(SIU_RS232C, 0);
 #endif
+
+       return 0;
 }
 
 early_initcall(ibm_workpad_setup);
index f5e3a03b5132ffe4aa82013b43aa60dc97bd0bcb..0b257254a10ccb28361b4485f7cefd81c570efee 100644 (file)
@@ -7,4 +7,4 @@
 # Copyright 2001,2002 MontaVista Software Inc.
 #
 
-obj-y                  += init.o irq.o setup.o
+obj-y                  += irq.o setup.o
diff --git a/arch/mips/vr41xx/nec-eagle/init.c b/arch/mips/vr41xx/nec-eagle/init.c
deleted file mode 100644 (file)
index 681c7be..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/nec-eagle/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the NEC Eagle/Hawk board.
- *
- * Author: Yoichi Yuasa
- *         yyuasa@mvista.com or source@mvista.com
- *
- * Copyright 2001,2002 MontaVista Software Inc.
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
- */
-/*
- * Changes:
- *  MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com>
- *  - Added support for NEC Hawk.
- *
- *  MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com>
- *  - New creation, NEC Eagle is supported.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-
-const char *get_system_type(void)
-{
-       return "NEC Eagle/Hawk";
-}
-
-void __init prom_init(void)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_NEC_EAGLE;
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index a31b3b23ea49f32a0290251199f0b96de2873281..03f74a587daa11d1b3d684c1673538f494aa0788 100644 (file)
@@ -1,64 +1,61 @@
 /*
- * FILE NAME
- *     arch/mips/vr41xx/nec-eagle/irq.c
+ *  irq.c,  Interrupt routines for the NEC Eagle/Hawk board.
  *
- * BRIEF MODULE DESCRIPTION
- *     Interrupt routines for the NEC Eagle/Hawk board.
+ *  Copyright (C) 2002  MontaVista Software, Inc.
+ *    Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com>
+ *  Copyright (C) 2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
- * Author: Yoichi Yuasa
- *         yyuasa@mvista.com or source@mvista.com
+ *  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.
  *
- * Copyright 2002 MontaVista Software Inc.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
  *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 /*
  * Changes:
  *  MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com>
+ *  - New creation, NEC Eagle is supported.
  *  - Added support for NEC Hawk.
  *
- *  MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com>
- *  - New creation, NEC Eagle is supported.
+ *  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  - Changed from board_irq_init to driver module.
  */
+#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
+#include <linux/types.h>
 
 #include <asm/io.h>
 #include <asm/vr41xx/eagle.h>
 
+MODULE_DESCRIPTION("IRQ module driver for NEC Eagle/Hawk");
+MODULE_AUTHOR("Yoichi Yuasa <yyuasa@mvista.com>");
+MODULE_LICENSE("GPL");
+
 static void enable_pciint_irq(unsigned int irq)
 {
-       u8 val;
+       uint8_t val;
 
        val = readb(NEC_EAGLE_PCIINTMSKREG);
-       val |= (u8)1 << (irq - PCIINT_IRQ_BASE);
+       val |= (uint8_t)1 << (irq - PCIINT_IRQ_BASE);
        writeb(val, NEC_EAGLE_PCIINTMSKREG);
 }
 
 static void disable_pciint_irq(unsigned int irq)
 {
-       u8 val;
+       uint8_t val;
 
        val = readb(NEC_EAGLE_PCIINTMSKREG);
-       val &= ~((u8)1 << (irq - PCIINT_IRQ_BASE));
+       val &= ~((uint8_t)1 << (irq - PCIINT_IRQ_BASE));
        writeb(val, NEC_EAGLE_PCIINTMSKREG);
 }
 
@@ -78,31 +75,30 @@ static void end_pciint_irq(unsigned int irq)
 }
 
 static struct hw_interrupt_type pciint_irq_type = {
-       "PCIINT",
-       startup_pciint_irq,
-       shutdown_pciint_irq,
-               enable_pciint_irq,
-       disable_pciint_irq,
-       ack_pciint_irq,
-       end_pciint_irq,
-       NULL
+       .typename       = "PCIINT",
+       .startup        = startup_pciint_irq,
+       .shutdown       = shutdown_pciint_irq,
+       .enable         = enable_pciint_irq,
+       .disable        = disable_pciint_irq,
+       .ack            = ack_pciint_irq,
+       .end            = end_pciint_irq,
 };
 
 static void enable_sdbint_irq(unsigned int irq)
 {
-       u8 val;
+       uint8_t val;
 
        val = readb(NEC_EAGLE_SDBINTMSK);
-       val |= (u8)1 << (irq - SDBINT_IRQ_BASE);
+       val |= (uint8_t)1 << (irq - SDBINT_IRQ_BASE);
        writeb(val, NEC_EAGLE_SDBINTMSK);
 }
 
 static void disable_sdbint_irq(unsigned int irq)
 {
-       u8 val;
+       uint8_t val;
 
        val = readb(NEC_EAGLE_SDBINTMSK);
-       val &= ~((u8)1 << (irq - SDBINT_IRQ_BASE));
+       val &= ~((uint8_t)1 << (irq - SDBINT_IRQ_BASE));
        writeb(val, NEC_EAGLE_SDBINTMSK);
 }
 
@@ -122,19 +118,18 @@ static void end_sdbint_irq(unsigned int irq)
 }
 
 static struct hw_interrupt_type sdbint_irq_type = {
-       "SDBINT",
-       startup_sdbint_irq,
-       shutdown_sdbint_irq,
-               enable_sdbint_irq,
-       disable_sdbint_irq,
-       ack_sdbint_irq,
-       end_sdbint_irq,
-       NULL
+       .typename       = "SDBINT",
+       .startup        = startup_sdbint_irq,
+       .shutdown       = shutdown_sdbint_irq,
+       .enable         = enable_sdbint_irq,
+       .disable        = disable_sdbint_irq,
+       .ack            = ack_sdbint_irq,
+       .end            = end_sdbint_irq,
 };
 
 static int eagle_get_irq_number(int irq)
 {
-       u8 sdbint, pciint;
+       uint8_t sdbint, pciint;
        int i;
 
        sdbint = readb(NEC_EAGLE_SDBINT);
@@ -157,9 +152,9 @@ static int eagle_get_irq_number(int irq)
        return -EINVAL;
 }
 
-void __init eagle_irq_init(void)
+static int __devinit eagle_irq_init(void)
 {
-       int i;
+       int i, retval;
 
        writeb(0, NEC_EAGLE_SDBINTMSK);
        writeb(0, NEC_EAGLE_PCIINTMSKREG);
@@ -179,5 +174,17 @@ void __init eagle_irq_init(void)
        for (i = PCIINT_IRQ_BASE; i <= PCIINT_IRQ_LAST; i++)
                irq_desc[i].handler = &pciint_irq_type;
 
-       vr41xx_cascade_irq(FPGA_CASCADE_IRQ, eagle_get_irq_number);
+       retval = vr41xx_cascade_irq(FPGA_CASCADE_IRQ, eagle_get_irq_number);
+       if (retval != 0)
+               printk(KERN_ERR "eagle: Cannot cascade IRQ %d\n", FPGA_CASCADE_IRQ);
+
+       return retval;
+}
+
+static void __devexit eagle_irq_exit(void)
+{
+       free_irq(FPGA_CASCADE_IRQ, NULL);
 }
+
+module_init(eagle_irq_init);
+module_exit(eagle_irq_exit);
index d2f32c1eb327ae43c38537fac0e4ef6ef2a2c0b3..9efceb403ba29d1c2124ee6b507146314baa0397 100644 (file)
  * or implied.
  */
 #include <linux/config.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
-#include <linux/major.h>
-#include <linux/kdev_t.h>
-#include <linux/root_dev.h>
 
+#include <asm/io.h>
 #include <asm/pci_channel.h>
-#include <asm/time.h>
 #include <asm/vr41xx/eagle.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
-extern void eagle_irq_init(void);
-
 #ifdef CONFIG_PCI
 
 extern void vrc4173_preinit(void);
@@ -79,30 +68,16 @@ static struct vr41xx_pci_address_map pci_address_map = {
 };
 #endif
 
+const char *get_system_type(void)
+{
+       return "NEC SDB-VR4122/VR4131(Eagle/Hawk)";
+}
+
 static int nec_eagle_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM1_RESOURCE_START;
-       iomem_resource.end = IO_MEM2_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = Root_RAM0;
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       board_irq_init = eagle_irq_init;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
 #ifdef CONFIG_SERIAL_8250
        vr41xx_dsiu_init();
index e567af6733b47f37b0241e23f884aa275bb540cd..372f953d240b6dc969615a7a3f724e6a573efed3 100644 (file)
@@ -2,4 +2,4 @@
 # Makefile for the TANBAC TB0226 specific parts of the kernel
 #
 
-obj-y                  += init.o setup.o
+obj-y                  += setup.o
diff --git a/arch/mips/vr41xx/tanbac-tb0226/init.c b/arch/mips/vr41xx/tanbac-tb0226/init.c
deleted file mode 100644 (file)
index 60fa6c9..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/tanbac-tb0226/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the TANBAC TB0226.
- *
- * Copyright 2002,2003 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/smp.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-#include <asm/cpu.h>
-#include <asm/mipsregs.h>
-#include <asm/vr41xx/vr41xx.h>
-
-const char *get_system_type(void)
-{
-       return "TANBAC TB0226";
-}
-
-void __init prom_init(void)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_TANBAC_TB0226;
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index 27084fe3709c63aeb1eddcbf8366110124f4d943..68439e2224b63f26872cf30a5d8bd09ad9c3de3a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  setup.c, Setup for the TANBAC TB0226.
  *
- *  Copyright (C) 2002-2003  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  *  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
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/config.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
 
+#include <asm/io.h>
 #include <asm/pci_channel.h>
-#include <asm/time.h>
 #include <asm/vr41xx/tb0226.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
 #ifdef CONFIG_PCI
 static struct resource vr41xx_pci_io_resource = {
        .name   = "PCI I/O space",
@@ -78,34 +72,24 @@ static struct vr41xx_pci_address_map pci_address_map = {
 };
 #endif
 
-void __init tanbac_tb0226_setup(void)
+const char *get_system_type(void)
+{
+       return "TANBAC TB0226";
+}
+
+static int tanbac_tb0226_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM1_RESOURCE_START;
-       iomem_resource.end = IO_MEM2_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
        vr41xx_siu_init(SIU_RS232C, 0);
 
 #ifdef CONFIG_PCI
        vr41xx_pciu_init(&pci_address_map);
 #endif
+
+       return 0;
 }
 
 early_initcall(tanbac_tb0226_setup);
index ed3fba156b925cd8ffd5c344e5f82deca3928bcc..ff7429e8174abe694c933ddf6efd912f9b986926 100644 (file)
@@ -2,6 +2,6 @@
 # Makefile for the TANBAC TB0229(VR4131DIMM) specific parts of the kernel
 #
 
-obj-y                          := init.o setup.o
+obj-y                          := setup.o
 
 obj-$(CONFIG_TANBAC_TB0219)    += reboot.o
diff --git a/arch/mips/vr41xx/tanbac-tb0229/init.c b/arch/mips/vr41xx/tanbac-tb0229/init.c
deleted file mode 100644 (file)
index 78b9e28..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/tanbac-tb0229/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the TANBAC TB0229(VR4131DIMM)
- *
- * Copyright 2002,2003 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
- *
- * Modified for TANBAC TB0229:
- * Copyright 2003 Megasolution Inc.
- *                matsu@megasolution.jp
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/smp.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-#include <asm/cpu.h>
-#include <asm/mipsregs.h>
-#include <asm/vr41xx/vr41xx.h>
-
-const char *get_system_type(void)
-{
-       return "TANBAC TB0229";
-}
-
-void __init prom_init(void)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_TANBAC_TB0229;
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index d635c7786fa04135d45006351f19e27c5de91704..fae4b36526113a8b0ab434c4e7a31886a7d4a6bd 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  setup.c, Setup for the TANBAC TB0229 (VR4131DIMM)
  *
- *  Copyright (C) 2002-2003  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  *  Modified for TANBAC TB0229:
  *  Copyright (C) 2003  Megasolution Inc.  <matsu@megasolution.jp>
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/config.h>
-#include <linux/blkdev.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
-#include <linux/root_dev.h>
 
+#include <asm/io.h>
 #include <asm/pci_channel.h>
 #include <asm/reboot.h>
-#include <asm/time.h>
 #include <asm/vr41xx/tb0229.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern void * __rd_start, * __rd_end;
-#endif
-
 #ifdef CONFIG_PCI
 static struct resource vr41xx_pci_io_resource = {
        .name   = "PCI I/O space",
@@ -83,28 +76,16 @@ static struct vr41xx_pci_address_map pci_address_map = {
 };
 #endif
 
-static void __init tanbac_tb0229_setup(void)
+const char *get_system_type(void)
+{
+       return "TANBAC TB0229";
+}
+
+static int tanbac_tb0229_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM1_RESOURCE_START;
-       iomem_resource.end = IO_MEM2_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
        vr41xx_siu_init(SIU_RS232C, 0);
        vr41xx_dsiu_init();
@@ -116,6 +97,8 @@ static void __init tanbac_tb0229_setup(void)
 #ifdef CONFIG_TANBAC_TB0219
        _machine_restart = tanbac_tb0229_restart;
 #endif
+
+       return 0;
 }
 
 early_initcall(tanbac_tb0229_setup);
index 06f0f4524bac5460833e0502e56cfe242e4cc664..a2e8086a31a66f50074247f0f37ba593efefea5f 100644 (file)
@@ -2,4 +2,4 @@
 # Makefile for the Victor MP-C303/304 specific parts of the kernel
 #
 
-obj-y                  += init.o setup.o
+obj-y                  += setup.o
diff --git a/arch/mips/vr41xx/victor-mpc30x/init.c b/arch/mips/vr41xx/victor-mpc30x/init.c
deleted file mode 100644 (file)
index ba8b61b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/victor-mpc30x/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the Victor MP-C303/304.
- *
- * Copyright 2002 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-#include <asm/cpu.h>
-#include <asm/mipsregs.h>
-#include <asm/vr41xx/vr41xx.h>
-
-const char *get_system_type(void)
-{
-       return "Victor MP-C303/304";
-}
-
-void __init prom_init(void)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_VICTOR_MPC30X;
-
-       add_memory_region(0, 32 << 20, BOOT_MEM_RAM);
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index 9b81c7507c7ca8b031575f8e6e6496c88eb7b511..65dff6cfb4b75e277388506aef2ec7fcd315e66f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  setup.c, Setup for the Victor MP-C303/304.
  *
- *  Copyright (C) 2002-2003  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  *  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
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/config.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
-#include <linux/major.h>
-#include <linux/kdev_t.h>
-#include <linux/root_dev.h>
 
+#include <asm/io.h>
 #include <asm/pci_channel.h>
-#include <asm/time.h>
 #include <asm/vr41xx/mpc30x.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
 #ifdef CONFIG_PCI
 static struct resource vr41xx_pci_io_resource = {
        "PCI I/O space",
@@ -81,28 +72,16 @@ static struct vr41xx_pci_address_map pci_address_map = {
 };
 #endif
 
-static void __init victor_mpc30x_setup(void)
+const char *get_system_type(void)
+{
+       return "Victor MP-C303/304";
+}
+
+static int victor_mpc30x_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM1_RESOURCE_START;
-       iomem_resource.end = IO_MEM2_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = Root_RAM0;
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
 #ifdef CONFIG_SERIAL_8250
        vr41xx_siu_init(SIU_RS232C, 0);
@@ -111,6 +90,8 @@ static void __init victor_mpc30x_setup(void)
 #ifdef CONFIG_PCI
        vr41xx_pciu_init(&pci_address_map);
 #endif
+
+       return 0;
 }
 
 early_initcall(victor_mpc30x_setup);
index 0d46135dbd844c754838d47680aadd3e3a13fdf0..cf420197cd237c735c2b4f327ea8cd2e90a50bb0 100644 (file)
@@ -2,4 +2,4 @@
 # Makefile for the ZAO Networks Capcella  specific parts of the kernel
 #
 
-obj-y                  += init.o setup.o
+obj-y                  += setup.o
diff --git a/arch/mips/vr41xx/zao-capcella/init.c b/arch/mips/vr41xx/zao-capcella/init.c
deleted file mode 100644 (file)
index f359607..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * FILE NAME
- *     arch/mips/vr41xx/zao-capcella/init.c
- *
- * BRIEF MODULE DESCRIPTION
- *     Initialisation code for the ZAO Networks Capcella.
- *
- * Copyright 2002 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/smp.h>
-#include <linux/string.h>
-
-#include <asm/bootinfo.h>
-#include <asm/cpu.h>
-#include <asm/mipsregs.h>
-#include <asm/vr41xx/vr41xx.h>
-
-const char *get_system_type(void)
-{
-       return "ZAO Networks Capcella";
-}
-
-void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
-{
-       int argc = fw_arg0;
-       char **argv = (char **) fw_arg1;
-       int i;
-
-       /*
-        * collect args and prepare cmd_line
-        */
-       for (i = 1; i < argc; i++) {
-               strcat(arcs_cmdline, argv[i]);
-               if (i < (argc - 1))
-                       strcat(arcs_cmdline, " ");
-       }
-
-       mips_machgroup = MACH_GROUP_NEC_VR41XX;
-       mips_machtype = MACH_ZAO_CAPCELLA;
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
index 035e874abed733a90017227f6792b46c38209b0a..d0f081a26aa0cc0bc34c86ce61c48024889bcea6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  setup.c, Setup for the ZAO Networks Capcella.
  *
- *  Copyright (C) 2002-2003  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  *  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
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/config.h>
-#include <linux/init.h>
 #include <linux/ioport.h>
-#include <linux/major.h>
-#include <linux/kdev_t.h>
-#include <linux/root_dev.h>
 
+#include <asm/io.h>
 #include <asm/pci_channel.h>
-#include <asm/time.h>
 #include <asm/vr41xx/capcella.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
 #ifdef CONFIG_PCI
 static struct resource vr41xx_pci_io_resource = {
        "PCI I/O space",
@@ -81,28 +72,16 @@ static struct vr41xx_pci_address_map pci_address_map = {
 };
 #endif
 
-static void __init zao_capcella_setup(void)
+const char *get_system_type(void)
+{
+       return "ZAO Networks Capcella";
+}
+
+static int zao_capcella_setup(void)
 {
        set_io_port_base(IO_PORT_BASE);
        ioport_resource.start = IO_PORT_RESOURCE_START;
        ioport_resource.end = IO_PORT_RESOURCE_END;
-       iomem_resource.start = IO_MEM1_RESOURCE_START;
-       iomem_resource.end = IO_MEM2_RESOURCE_END;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       ROOT_DEV = Root_RAM0;
-       initrd_start = (unsigned long)&__rd_start;
-       initrd_end = (unsigned long)&__rd_end;
-#endif
-
-       board_time_init = vr41xx_time_init;
-       board_timer_setup = vr41xx_timer_setup;
-
-       vr41xx_bcu_init();
-
-       vr41xx_cmu_init();
-
-       vr41xx_pmu_init();
 
 #ifdef CONFIG_SERIAL_8250
        vr41xx_siu_init(SIU_RS232C, 0);
@@ -112,6 +91,8 @@ static void __init zao_capcella_setup(void)
 #ifdef CONFIG_PCI
        vr41xx_pciu_init(&pci_address_map);
 #endif
+
+       return 0;
 }
 
 early_initcall(zao_capcella_setup);
index d93e636aed773dbab711beb9f83ba922899b5117..f53237772985b50d4bf199562ab6933b54584bc1 100644 (file)
@@ -209,7 +209,7 @@ symbol              =       value
 #define ALSZ   7
 #define ALMASK ~7
 #endif
-#if (_MIPS_SIM == _MIPS_SIM_ABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
 #define ALSZ   15
 #define ALMASK ~15
 #endif
@@ -237,7 +237,7 @@ symbol              =       value
 #define REG_SUBU       subu
 #define REG_ADDU       addu
 #endif
-#if (_MIPS_SIM == _MIPS_SIM_ABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
 #define REG_S          sd
 #define REG_L          ld
 #define REG_SUBU       dsubu
@@ -386,7 +386,7 @@ symbol              =       value
 #define MFC0           mfc0
 #define MTC0           mtc0
 #endif
-#if (_MIPS_SIM == _MIPS_SIM_ABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
 #define MFC0           dmfc0
 #define MTC0           dmtc0
 #endif
index 3519b50ac0652b4101a264acf8a83a94c665efd2..aacab4d6ebf61913263927835eff9761cc4b700b 100644 (file)
 #define  MACH_DB1500           5       /* Au1500-based eval board */
 #define  MACH_XXS1500          6       /* Au1500-based eval board */
 #define  MACH_MTX1             7       /* 4G MTX-1 Au1500-based board */
+#define  MACH_PB1550           8       /* Au1550-based eval board */
 
 /*
  * Valid machtype for group NEC_VR41XX
  * Valid machtype for group LASAT
  */
 #define MACH_GROUP_LASAT       21
-#define  MACH_LASAT_100                1       /* Masquerade II/SP100/SP50/SP25 */
-#define  MACH_LASAT_200                2       /* Masquerade PRO/SP200 */
+#define  MACH_LASAT_100                0       /* Masquerade II/SP100/SP50/SP25 */
+#define  MACH_LASAT_200                1       /* Masquerade PRO/SP200 */
 
 /*
  * Valid machtype for group TITAN
index 39b10d84d01dc92d6a9ca3796dd21442856b3278..0ab4f7d671b3a6329b1720613d32f76e88ffd926 100644 (file)
@@ -11,6 +11,7 @@
 
 /* Keep includes the same across arches.  */
 #include <linux/mm.h>
+#include <asm/cpu-features.h>
 
 /* Cache flushing:
  *
@@ -35,7 +36,15 @@ extern void (*flush_cache_range)(struct vm_area_struct *vma,
        unsigned long start, unsigned long end);
 extern void (*flush_cache_page)(struct vm_area_struct *vma,
        unsigned long page);
-extern void flush_dcache_page(struct page *page);
+extern void __flush_dcache_page(struct page *page);
+
+static inline void flush_dcache_page(struct page *page)
+{
+       if (cpu_has_dc_aliases)
+               __flush_dcache_page(page);
+
+}
+
 extern void (*flush_icache_page)(struct vm_area_struct *vma,
        struct page *page);
 extern void (*flush_icache_range)(unsigned long start, unsigned long end);
index 9d8ad3a6afe3a5a462274611e5c7dd1a85f9c871..a11cf994d5265749017eae8c122bac9d3bd9ff57 100644 (file)
@@ -31,17 +31,19 @@ extern void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
        int nhwentries, enum dma_data_direction direction);
 extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
        size_t size, enum dma_data_direction direction);
-extern void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
-       size_t size, enum dma_data_direction direction);
-extern void dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle,
-       unsigned long offset, size_t size, enum dma_data_direction direction);
-extern void dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle,
-       unsigned long offset, size_t size, enum dma_data_direction direction);
-extern void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
+extern void dma_sync_single_for_device(struct device *dev,
+       dma_addr_t dma_handle, size_t size, enum dma_data_direction direction);
+extern void dma_sync_single_range_for_cpu(struct device *dev,
+       dma_addr_t dma_handle, unsigned long offset, size_t size,
        enum dma_data_direction direction);
-extern void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
+extern void dma_sync_single_range_for_device(struct device *dev,
+       dma_addr_t dma_handle, unsigned long offset, size_t size,
        enum dma_data_direction direction);
-
+extern void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg,
+       int nelems, enum dma_data_direction direction);
+extern void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
+       int nelems, enum dma_data_direction direction);
+extern int dma_mapping_error(dma_addr_t dma_addr);
 extern int dma_supported(struct device *dev, u64 mask);
 
 static inline int
index 82f90500030a51f65c5a085108f546a7d946dca2..a045970ebd9e1ea86089e789048e8e0cbcb6528d 100644 (file)
@@ -81,7 +81,7 @@ typedef struct {
 
 #ifdef CONFIG_PREEMPT
 # include <linux/smp_lock.h>
-# define in_atomic()   (preempt_count() != kernel_locked())
+# define in_atomic()   ((preempt_count() & ~PREEMPT_ACTIVE) != kernel_locked())
 # define IRQ_EXIT_OFFSET (HARDIRQ_OFFSET-1)
 #else
 # define in_atomic()   (preempt_count() != 0)
index 1c8d3132484ec3238fceb7e1a29e3b116de5c6ab..4a024fa727cca4d8b16139ebf52b96ff91b98366 100644 (file)
@@ -3,7 +3,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 2003 Ralf Baechle
+ * Copyright (C) 2003, 2004 Ralf Baechle
  */
 #ifndef _ASM_HAZARDS_H
 #define _ASM_HAZARDS_H
  * for data translations should not occur for 3 cpu cycles.
  */
 #ifdef CONFIG_CPU_RM9000
-#define rm9000_tlb_hazard                                              \
+#define mtc0_tlbw_hazard                                               \
        .set    push;                                                   \
        .set    mips32;                                                 \
        ssnop; ssnop; ssnop; ssnop;                                     \
        .set    pop
+
+#define tlbw_eret_hazard                                               \
+       .set    push;                                                   \
+       .set    mips32;                                                 \
+       ssnop; ssnop; ssnop; ssnop;                                     \
+       .set    pop
+
 #else
-#define rm9000_tlb_hazard
+
+/*
+ * The taken branch will result in a two cycle penalty for the two killed
+ * instructions on R4000 / R4400.  Other processors only have a single cycle
+ * hazard so this is nice trick to have an optimal code for a range of
+ * processors.
+ */
+#define mtc0_tlbw_hazard                                               \
+       b       . + 8
+#define tlbw_eret_hazard
 #endif
 
-#else
+#else /* __ASSEMBLY__ */
 
 /*
  * RM9000 hazards.  When the JTLB is updated by tlbwi or tlbwr, a subsequent
  * for data translations should not occur for 3 cpu cycles.
  */
 #ifdef CONFIG_CPU_RM9000
-#define rm9000_tlb_hazard()                                            \
+
+#define mtc0_tlbw_hazard()                                             \
+       __asm__ __volatile__(                                           \
+               ".set\tmips32\n\t"                                      \
+               "ssnop; ssnop; ssnop; ssnop\n\t"                        \
+               ".set\tmips0")
+
+#define tlbw_use_hazard()                                              \
        __asm__ __volatile__(                                           \
                ".set\tmips32\n\t"                                      \
                "ssnop; ssnop; ssnop; ssnop\n\t"                        \
                ".set\tmips0")
 #else
-#define rm9000_tlb_hazard() do { } while (0)
-#endif
+
+/*
+ * Overkill warning ...
+ */
+#define mtc0_tlbw_hazard()                                             \
+       __asm__ __volatile__(                                           \
+               ".set noreorder\n\t"                                    \
+               "nop; nop; nop; nop; nop; nop;\n\t"                     \
+               ".set reorder\n\t")
+
+#define tlbw_use_hazard()                                              \
+       __asm__ __volatile__(                                           \
+               ".set noreorder\n\t"                                    \
+               "nop; nop; nop; nop; nop; nop;\n\t"                     \
+               ".set reorder\n\t")
 
 #endif
 
+#endif /* __ASSEMBLY__ */
+
 #endif /* _ASM_HAZARDS_H */
index 205c69d9a3f449a55ec53fae2e3f95ae36a67028..f49930d947d45de56a3e9a7e74b1802499ec07de 100644 (file)
@@ -19,6 +19,7 @@
 
 #ifdef __KERNEL__
 
+#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <asm/kmap_types.h>
@@ -47,14 +48,56 @@ extern pte_t *pkmap_page_table;
 extern void * kmap_high(struct page *page);
 extern void kunmap_high(struct page *page);
 
-extern void *kmap(struct page *page);
-extern void kunmap(struct page *page);
-extern void *kmap_atomic(struct page *page, enum km_type type);
-extern void kunmap_atomic(void *kvaddr, enum km_type type);
-extern struct page *kmap_atomic_to_page(void *ptr);
+/*
+ * CONFIG_LIMITED_DMA is for systems with DMA limitations such as Momentum's
+ * Jaguar ATX.  This option exploits the highmem code in the kernel so is
+ * always enabled together with CONFIG_HIGHMEM but at this time doesn't
+ * actually add highmem functionality.
+ */
+
+#ifdef CONFIG_LIMITED_DMA
+
+/*
+ * These are the default functions for the no-highmem case from
+ * <linux/highmem.h>
+ */
+static inline void *kmap(struct page *page)
+{
+       might_sleep();
+       return page_address(page);
+}
+
+#define kunmap(page) do { (void) (page); } while (0)
+
+static inline void *kmap_atomic(struct page *page, enum km_type type)
+{
+       return page_address(page);
+}
+
+static inline void kunmap_atomic(void *kvaddr, enum km_type type) { }
+
+#define kmap_atomic_to_page(ptr) virt_to_page(ptr)
+
+#define flush_cache_kmaps()    do { } while (0)
+
+#else /* LIMITED_DMA */
+
+extern void *__kmap(struct page *page);
+extern void __kunmap(struct page *page);
+extern void *__kmap_atomic(struct page *page, enum km_type type);
+extern void __kunmap_atomic(void *kvaddr, enum km_type type);
+extern struct page *__kmap_atomic_to_page(void *ptr);
+
+#define kmap                   __kmap
+#define kunmap                 __kunmap
+#define kmap_atomic            __kmap_atomic
+#define kunmap_atomic          __kunmap_atomic
+#define kmap_atomic_to_page    __kmap_atomic_to_page
 
 #define flush_cache_kmaps()    flush_cache_all()
 
+#endif /* LIMITED_DMA */
+
 #endif /* __KERNEL__ */
 
 #endif /* _ASM_HIGHMEM_H */
index 8fa05eeb50ed03be7e7e3bde9ee4af1defe5bf35..c3c280e3d5916dc6cb32da85328aa6d730a5b10a 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 /* CPU */
-#define CLOCK_IRQ                      0
+#define IP32_R4K_TIMER_IRQ             0
 
 /* MACE */
 #define MACE_VID_IN1_IRQ               1
index 0f56aaddd6e089eebd2f6a14887f8ef602a9fcb5..255e9b2b87f597bce6a99726840bb6e8183cd467 100644 (file)
@@ -342,7 +342,7 @@ struct mace_isa {
        struct mace_serial serial2;
        char _pad4[0x8000 - sizeof(struct mace_serial)];
 
-       mace32_t rtc[0x10000/8];
+       volatile unsigned char rtc[0x10000];
 };
 
 struct sgi_mace {
index 39c4abe52bc1edc7026af00d6c4564dc86c0c34b..181afc5c0f1d3e9b0b3119bc83fc13b2ade36f3b 100644 (file)
@@ -220,7 +220,22 @@ extern void lasat_write_eeprom_info(void);
 #define N_MACHTYPES            2
 /* for calibration of delays */
 
+/* the lasat_ndelay function is necessary because it is used at an
+ * early stage of the boot process where ndelay is not calibrated.
+ * It is used for the bit-banging rtc and eeprom drivers */
+
 #include <asm/delay.h>
+/* calculating with the slowest board with 100 MHz clock */
+#define LASAT_100_DIVIDER 20
+/* All 200's run at 250 MHz clock */
+#define LASAT_200_DIVIDER 8
+
+extern unsigned int lasat_ndelay_divider;
+
+static inline void lasat_ndelay(unsigned int ns)
+{
+            __delay(ns / lasat_ndelay_divider);
+}
 
 extern void (* prom_printf)(const char *fmt, ...);
 
index 55166f4b7c6414e65fd86ab2243d4ffea96c6f4e..8799f921af9601752d608032eea5d8027fe7228e 100644 (file)
@@ -50,4 +50,6 @@ static inline void CMOS_WRITE(unsigned char data, unsigned long addr)
 
 #define RTC_ALWAYS_BCD 0
 
+#define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1970)
+
 #endif /* __ASM_MACH_ATLAS_MC146818RTC_H */
index 8cb99b6a4e1cbc00af7b838505976fe867b8e7e3..91b1b07a5d78d72f76367a122196ef0e16e2b61d 100644 (file)
@@ -197,6 +197,15 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define MEM_STTIME3                0xB4001034
 #define MEM_STADDR3                0xB4001038
 
+#ifdef CONFIG_SOC_AU1550
+#define MEM_STNDCTL                0xB4001100
+#define MEM_STSTAT                 0xB4001104
+
+#define MEM_STNAND_CMD                  (0x0)
+#define MEM_STNAND_ADDR                 (0x4)
+#define MEM_STNAND_DATA                (0x20)
+#endif
+
 /* Interrupt Controller 0 */
 #define IC0_CFG0RD                 0xB0400040
 #define IC0_CFG0SET                0xB0400040
@@ -951,6 +960,23 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
   #define SYS_PF_CS                    (1<<16) /* EXTCLK0/32khz to gpio2 */
   #define SYS_PF_EX0                   (1<<9)  /* gpio2/clock */
 
+/* Au1550 Only.  Redefines lots of pins */
+  #define SYS_PF_PSC2_MASK             (7 << 17)
+  #define SYS_PF_PSC2_AC97             (0)
+  #define SYS_PF_PSC2_SPI              (0)
+  #define SYS_PF_PSC2_I2S              (1 << 17)
+  #define SYS_PF_PSC2_SMBUS            (3 << 17)
+  #define SYS_PF_PSC2_GPIO             (7 << 17)
+  #define SYS_PF_PSC3_MASK             (7 << 20)
+  #define SYS_PF_PSC3_AC97             (0)
+  #define SYS_PF_PSC3_SPI              (0)
+  #define SYS_PF_PSC3_I2S              (1 << 20)
+  #define SYS_PF_PSC3_SMBUS            (3 << 20)
+  #define SYS_PF_PSC3_GPIO             (7 << 20)
+  #define SYS_PF_PSC1_S1               (1 << 1)
+  #define SYS_PF_MUST_BE_SET           ((1 << 5) | (1 << 2))
+
+
 #define SYS_TRIOUTRD              0xB1900100
 #define SYS_TRIOUTCLR             0xB1900100
 #define SYS_OUTPUTRD              0xB1900108
@@ -959,7 +985,7 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define SYS_PINSTATERD            0xB1900110
 #define SYS_PININPUTEN            0xB1900110
 
-/* GPIO2, Au1500 only */
+/* GPIO2, Au1500, Au1550 only */
 #define GPIO2_BASE                0xB1700000
 #define GPIO2_DIR                 (GPIO2_BASE + 0)
 #define GPIO2_OUTPUT              (GPIO2_BASE + 8)
@@ -1071,6 +1097,14 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
   #define AC97C_RS              (1<<1)
   #define AC97C_CE              (1<<0)
 
+
+/* Secure Digital (SD) Controller */
+#define SD0_XMIT_FIFO  0xB0600000
+#define SD0_RECV_FIFO  0xB0600004
+#define SD1_XMIT_FIFO  0xB0680000
+#define SD1_RECV_FIFO  0xB0680004
+
+
 #if defined (CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550)
 /* Au1500 PCI Controller */
 #define Au1500_CFG_BASE           0xB4005000 // virtual, kseg0 addr
@@ -1119,6 +1153,20 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define IOMEM_RESOURCE_START  0x10000000
 #define IOMEM_RESOURCE_END    0xffffffff
 
+  /*
+   * Borrowed from the PPC arch:
+   * The following macro is used to lookup irqs in a standard table
+   * format for those PPC systems that do not already have PCI
+   * interrupts properly routed.
+   */
+  /* FIXME - double check this from asm-ppc/pci-bridge.h */
+#define PCI_IRQ_TABLE_LOOKUP                            \
+  ({ long _ctl_ = -1;                                 \
+      if (idsel >= min_idsel && idsel <= max_idsel && pin <= irqs_per_slot)    \
+              _ctl_ = pci_irq_table[idsel - min_idsel][pin-1];               \
+                     _ctl_; })
+
+
 #else /* Au1000 and Au1100 */
 
 /* don't allow any legacy ports probing */
index 02caee4eef6b05b28d8127fc992bf8b2f7801766..810f2fa334446e774c8bde92620ccfacc25a41bf 100644 (file)
@@ -50,6 +50,7 @@
 #define DMA_DAH_MASK           (0x0f << 20)
 #define DMA_DID_BIT            16
 #define DMA_DID_MASK           (0x0f << DMA_DID_BIT)
+#define DMA_DS                 (1<<15)
 #define DMA_BE                 (1<<13)
 #define DMA_DR                 (1<<12)
 #define DMA_TS8                        (1<<11)
@@ -99,6 +100,15 @@ enum {
        DMA_NUM_DEV
 };
 
+/* DMA Device ID's for 2nd bank (AU1100) follow */
+enum {
+       DMA_ID_SD0_TX = 0,
+       DMA_ID_SD0_RX,
+       DMA_ID_SD1_TX,
+       DMA_ID_SD1_RX,
+       DMA_NUM_DEV_BANK2
+};
+
 struct dma_chan {
        int dev_id;             // this channel is allocated if >=0, free otherwise
        unsigned int io;
@@ -126,7 +136,7 @@ extern spinlock_t au1000_dma_spin_lock;
 
 static __inline__ struct dma_chan *get_dma_chan(unsigned int dmanr)
 {
-       if (dmanr > NUM_AU1000_DMA_CHANNELS
+       if (dmanr >= NUM_AU1000_DMA_CHANNELS
            || au1000_dma_table[dmanr].dev_id < 0)
                return NULL;
        return &au1000_dma_table[dmanr];
@@ -205,8 +215,8 @@ static __inline__ void disable_dma(unsigned int dmanr)
 
        halt_dma(dmanr);
 
-               // now we can disable the buffers
-               au_writel(~DMA_GO, chan->io + DMA_MODE_CLEAR);
+       // now we can disable the buffers
+       au_writel(~DMA_GO, chan->io + DMA_MODE_CLEAR);
 }
 
 static __inline__ int dma_halted(unsigned int dmanr)
@@ -286,6 +296,9 @@ static __inline__ void set_dma_fifo_addr(unsigned int dmanr,
        if (!chan)
                return;
 
+       if (chan->mode & DMA_DS)        /* second bank of device ids */
+               return;
+
        if (chan->dev_id != DMA_ID_GP04 && chan->dev_id != DMA_ID_GP05)
                return;
 
@@ -430,3 +443,4 @@ static __inline__ int get_dma_residue(unsigned int dmanr)
 }
 
 #endif /* __ASM_AU1000_DMA_H */
+
diff --git a/include/asm-mips/mach-au1x00/au1000_pcmcia.h b/include/asm-mips/mach-au1x00/au1000_pcmcia.h
deleted file mode 100644 (file)
index 4ba34a9..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Alchemy Semi Au1000 pcmcia driver include file
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
- *             ppopov@mvista.com or source@mvista.com
- *
- *  This program is free software; you can distribute it and/or modify it
- *  under the terms of the GNU General Public License (Version 2) as
- *  published by the Free Software Foundation.
- *
- *  This program is distributed in the hope it will be useful, but WITHOUT
- *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- *  for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
- */
-#ifndef __ASM_AU1000_PCMCIA_H
-#define __ASM_AU1000_PCMCIA_H
-
-#include <linux/config.h>
-
-#define AU1000_PCMCIA_POLL_PERIOD    (2*HZ)
-#define AU1000_PCMCIA_IO_SPEED       (255)
-#define AU1000_PCMCIA_MEM_SPEED      (300)
-
-#define AU1X_SOCK0_IO        0xF00000000
-#define AU1X_SOCK0_PHYS_ATTR 0xF40000000
-#define AU1X_SOCK0_PHYS_MEM  0xF80000000
-
-/* pcmcia socket 1 needs external glue logic so the memory map
- * differs from board to board.
- */
-#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
-#define AU1X_SOCK1_IO        0xF08000000
-#define AU1X_SOCK1_PHYS_ATTR 0xF48000000
-#define AU1X_SOCK1_PHYS_MEM  0xF88000000
-#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-#define AU1X_SOCK1_IO        0xF04000000
-#define AU1X_SOCK1_PHYS_ATTR 0xF44000000
-#define AU1X_SOCK1_PHYS_MEM  0xF84000000
-#endif
-
-struct pcmcia_state {
-  unsigned detect: 1,
-            ready: 1,
-           wrprot: 1,
-            bvd1: 1,
-            bvd2: 1,
-            vs_3v: 1,
-            vs_Xv: 1;
-};
-
-struct pcmcia_configure {
-  unsigned sock: 8,
-            vcc: 8,
-            vpp: 8,
-         output: 1,
-        speaker: 1,
-          reset: 1;
-};
-
-struct pcmcia_irq_info {
-       unsigned int sock;
-       unsigned int irq;
-};
-
-
-struct au1000_pcmcia_socket {
-       socket_state_t        cs_state;
-       struct pcmcia_state   k_state;
-       unsigned int          irq;
-       void                  (*handler)(void *, unsigned int);
-       void                  *handler_info;
-       pccard_io_map         io_map[MAX_IO_WIN];
-       pccard_mem_map        mem_map[MAX_WIN];
-       u32                   virt_io;
-       ioaddr_t              phys_attr, phys_mem;
-       unsigned short        speed_io, speed_attr, speed_mem;
-};
-
-struct pcmcia_init {
-       void (*handler)(int irq, void *dev, struct pt_regs *regs);
-};
-
-struct pcmcia_low_level {
-       int (*init)(struct pcmcia_init *);
-       int (*shutdown)(void);
-       int (*socket_state)(unsigned sock, struct pcmcia_state *);
-       int (*get_irq_info)(struct pcmcia_irq_info *);
-       int (*configure_socket)(const struct pcmcia_configure *);
-};
-
-#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
-extern struct pcmcia_low_level pb1x00_pcmcia_ops;
-#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-extern struct pcmcia_low_level db1x00_pcmcia_ops;
-#elif defined(CONFIG_MIPS_XXS1500)
-extern struct pcmcia_low_level xxs1500_pcmcia_ops;
-#else
-error unknown Au1000 board
-#endif
-
-#endif /* __ASM_AU1000_PCMCIA_H */
diff --git a/include/asm-mips/mach-au1x00/au1100_mmc.h b/include/asm-mips/mach-au1x00/au1100_mmc.h
new file mode 100644 (file)
index 0000000..9e7d1ba
--- /dev/null
@@ -0,0 +1,205 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *     Defines for using the MMC/SD controllers on the
+ *      Alchemy Au1100 mips processor.
+ *
+ * Copyright (c) 2003 Embedded Edge, LLC.
+ * Author: Embedded Edge, LLC.
+ *             dan@embeddededge.com or tim@embeddededge.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+/*
+ * AU1100 MMC/SD definitions.
+ *
+ * From "AMD Alchemy Solutions Au1100 Processor Data Book - Preliminary"
+ *    June, 2003
+ */
+
+#ifndef __ASM_AU1100_MMC_H
+#define __ASM_AU1100_MMC_H
+
+
+#define NUM_AU1100_MMC_CONTROLLERS     2
+
+
+#define AU1100_SD_IRQ  2
+
+
+#define SD0_BASE       0xB0600000
+#define SD1_BASE       0xB0680000
+
+
+/*
+ *  Register offsets.
+ */
+#define SD_TXPORT      (0x0000)
+#define SD_RXPORT      (0x0004)
+#define SD_CONFIG      (0x0008)
+#define SD_ENABLE      (0x000C)
+#define SD_CONFIG2     (0x0010)
+#define SD_BLKSIZE     (0x0014)
+#define SD_STATUS      (0x0018)
+#define SD_DEBUG       (0x001C)
+#define SD_CMD         (0x0020)
+#define SD_CMDARG      (0x0024)
+#define SD_RESP3       (0x0028)
+#define SD_RESP2       (0x002C)
+#define SD_RESP1       (0x0030)
+#define SD_RESP0       (0x0034)
+#define SD_TIMEOUT     (0x0038)
+
+
+/*
+ *  SD_TXPORT bit definitions.
+ */
+#define SD_TXPORT_TXD  (0x000000ff)
+
+
+/*
+ *  SD_RXPORT bit definitions.
+ */
+#define SD_RXPORT_RXD  (0x000000ff)
+
+
+/*
+ *  SD_CONFIG bit definitions.
+ */
+#define SD_CONFIG_DIV  (0x000001ff)
+#define SD_CONFIG_DE   (0x00000200)
+#define SD_CONFIG_NE   (0x00000400)
+#define SD_CONFIG_TU   (0x00000800)
+#define SD_CONFIG_TO   (0x00001000)
+#define SD_CONFIG_RU   (0x00002000)
+#define SD_CONFIG_RO   (0x00004000)
+#define SD_CONFIG_I    (0x00008000)
+#define SD_CONFIG_CR   (0x00010000)
+#define SD_CONFIG_RAT  (0x00020000)
+#define SD_CONFIG_DD   (0x00040000)
+#define SD_CONFIG_DT   (0x00080000)
+#define SD_CONFIG_SC   (0x00100000)
+#define SD_CONFIG_RC   (0x00200000)
+#define SD_CONFIG_WC   (0x00400000)
+#define SD_CONFIG_xxx  (0x00800000)
+#define SD_CONFIG_TH   (0x01000000)
+#define SD_CONFIG_TE   (0x02000000)
+#define SD_CONFIG_TA   (0x04000000)
+#define SD_CONFIG_RH   (0x08000000)
+#define SD_CONFIG_RA   (0x10000000)
+#define SD_CONFIG_RF   (0x20000000)
+#define SD_CONFIG_CD   (0x40000000)
+#define SD_CONFIG_SI   (0x80000000)
+
+
+/*
+ *  SD_ENABLE bit definitions.
+ */
+#define SD_ENABLE_CE   (0x00000001)
+#define SD_ENABLE_R    (0x00000002)
+
+
+/*
+ *  SD_CONFIG2 bit definitions.
+ */
+#define SD_CONFIG2_EN  (0x00000001)
+#define SD_CONFIG2_FF  (0x00000002)
+#define SD_CONFIG2_xx1 (0x00000004)
+#define SD_CONFIG2_DF  (0x00000008)
+#define SD_CONFIG2_DC  (0x00000010)
+#define SD_CONFIG2_xx2 (0x000000e0)
+#define SD_CONFIG2_WB  (0x00000100)
+#define SD_CONFIG2_RW  (0x00000200)
+
+
+/*
+ *  SD_BLKSIZE bit definitions.
+ */
+#define SD_BLKSIZE_BS  (0x000007ff)
+#define SD_BLKSIZE_BS_SHIFT     (0)
+#define SD_BLKSIZE_BC  (0x01ff0000)
+#define SD_BLKSIZE_BC_SHIFT    (16)
+
+
+/*
+ *  SD_STATUS bit definitions.
+ */
+#define SD_STATUS_DCRCW        (0x00000007)
+#define SD_STATUS_xx1  (0x00000008)
+#define SD_STATUS_CB   (0x00000010)
+#define SD_STATUS_DB   (0x00000020)
+#define SD_STATUS_CF   (0x00000040)
+#define SD_STATUS_D3   (0x00000080)
+#define SD_STATUS_xx2  (0x00000300)
+#define SD_STATUS_NE   (0x00000400)
+#define SD_STATUS_TU   (0x00000800)
+#define SD_STATUS_TO   (0x00001000)
+#define SD_STATUS_RU   (0x00002000)
+#define SD_STATUS_RO   (0x00004000)
+#define SD_STATUS_I    (0x00008000)
+#define SD_STATUS_CR   (0x00010000)
+#define SD_STATUS_RAT  (0x00020000)
+#define SD_STATUS_DD   (0x00040000)
+#define SD_STATUS_DT   (0x00080000)
+#define SD_STATUS_SC   (0x00100000)
+#define SD_STATUS_RC   (0x00200000)
+#define SD_STATUS_WC   (0x00400000)
+#define SD_STATUS_xx3  (0x00800000)
+#define SD_STATUS_TH   (0x01000000)
+#define SD_STATUS_TE   (0x02000000)
+#define SD_STATUS_TA   (0x04000000)
+#define SD_STATUS_RH   (0x08000000)
+#define SD_STATUS_RA   (0x10000000)
+#define SD_STATUS_RF   (0x20000000)
+#define SD_STATUS_CD   (0x40000000)
+#define SD_STATUS_SI   (0x80000000)
+
+
+/*
+ *  SD_CMD bit definitions.
+ */
+#define SD_CMD_GO      (0x00000001)
+#define SD_CMD_RY      (0x00000002)
+#define SD_CMD_xx1     (0x0000000c)
+#define SD_CMD_CT_MASK (0x000000f0)
+#define SD_CMD_CT_0    (0x00000000)
+#define SD_CMD_CT_1    (0x00000010)
+#define SD_CMD_CT_2    (0x00000020)
+#define SD_CMD_CT_3    (0x00000030)
+#define SD_CMD_CT_4    (0x00000040)
+#define SD_CMD_CT_5    (0x00000050)
+#define SD_CMD_CT_6    (0x00000060)
+#define SD_CMD_CT_7    (0x00000070)
+#define SD_CMD_CI      (0x0000ff00)
+#define SD_CMD_CI_SHIFT                (8)
+#define SD_CMD_RT_MASK (0x00ff0000)
+#define SD_CMD_RT_0    (0x00000000)
+#define SD_CMD_RT_1    (0x00010000)
+#define SD_CMD_RT_2    (0x00020000)
+#define SD_CMD_RT_3    (0x00030000)
+#define SD_CMD_RT_4    (0x00040000)
+#define SD_CMD_RT_5    (0x00050000)
+#define SD_CMD_RT_6    (0x00060000)
+#define SD_CMD_RT_1B   (0x00810000)
+
+
+#endif /* __ASM_AU1100_MMC_H */
+
diff --git a/include/asm-mips/mach-au1x00/au1xxx_dbdma.h b/include/asm-mips/mach-au1x00/au1xxx_dbdma.h
new file mode 100644 (file)
index 0000000..15e84ca
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ *
+ * BRIEF MODULE DESCRIPTION
+ *     Include file for Alchemy Semiconductor's Au1550 Descriptor
+ *     Based DMA Controller.
+ *
+ * Copyright 2004 Embedded Edge, LLC
+ *     dan@embeddededge.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* Specifics for the Au1xxx Descriptor-Based DMA Controllers, first
+ * seen in the AU1550 part.
+ */
+#ifndef _AU1000_DBDMA_H_
+#define _AU1000_DBDMA_H_
+
+#ifndef _LANGUAGE_ASSEMBLY
+
+/* The DMA base addresses.
+ * The Channels are every 256 bytes (0x0100) from the channel 0 base.
+ * Interrupt status/enable is bits 15:0 for channels 15 to zero.
+ */
+#define DDMA_GLOBAL_BASE       0xb4003000
+#define DDMA_CHANNEL_BASE      0xb4002000
+
+typedef struct dbdma_global {
+       u32     ddma_config;
+       u32     ddma_intstat;
+       u32     ddma_throttle;
+       u32     ddma_inten;
+} dbdma_global_t;
+
+/* General Configuration.
+*/
+#define DDMA_CONFIG_AF         (1 << 2)
+#define DDMA_CONFIG_AH         (1 << 1)
+#define DDMA_CONFIG_AL         (1 << 0)
+
+#define DDMA_THROTTLE_EN       (1 << 31)
+
+/* The structure of a DMA Channel.
+*/
+typedef struct au1xxx_dma_channel {
+       u32     ddma_cfg;       /* See below */
+       u32     ddma_desptr;    /* 32-byte aligned pointer to descriptor */
+       u32     ddma_statptr;   /* word aligned pointer to status word */
+       u32     ddma_dbell;     /* A write activates channel operation */
+       u32     ddma_irq;       /* If bit 0 set, interrupt pending */
+       u32     ddma_stat;      /* See below */
+       u32     ddma_bytecnt;   /* Byte count, valid only when chan idle */
+       /* Remainder, up to the 256 byte boundary, is reserved.
+       */
+} au1x_dma_chan_t;
+
+#define DDMA_CFG_SED   (1 << 9)        /* source DMA level/edge detect */
+#define DDMA_CFG_SP    (1 << 8)        /* source DMA polarity */
+#define DDMA_CFG_DED   (1 << 7)        /* destination DMA level/edge detect */
+#define DDMA_CFG_DP    (1 << 6)        /* destination DMA polarity */
+#define DDMA_CFG_SYNC  (1 << 5)        /* Sync static bus controller */
+#define DDMA_CFG_PPR   (1 << 4)        /* PCI posted read/write control */
+#define DDMA_CFG_DFN   (1 << 3)        /* Descriptor fetch non-coherent */
+#define DDMA_CFG_SBE   (1 << 2)        /* Source big endian */
+#define DDMA_CFG_DBE   (1 << 1)        /* Destination big endian */
+#define DDMA_CFG_EN    (1 << 0)        /* Channel enable */
+
+/* Always set when descriptor processing done, regardless of
+ * interrupt enable state.  Reflected in global intstat, don't
+ * clear this until global intstat is read/used.
+ */
+#define DDMA_IRQ_IN    (1 << 0)
+
+#define DDMA_STAT_DB   (1 << 2)        /* Doorbell pushed */
+#define DDMA_STAT_V    (1 << 1)        /* Descriptor valid */
+#define DDMA_STAT_H    (1 << 0)        /* Channel Halted */
+
+/* "Standard" DDMA Descriptor.
+ * Must be 32-byte aligned.
+ */
+typedef struct au1xxx_ddma_desc {
+       u32     dscr_cmd0;              /* See below */
+       u32     dscr_cmd1;              /* See below */
+       u32     dscr_source0;           /* source phys address */
+       u32     dscr_source1;           /* See below */
+       u32     dscr_dest0;             /* Destination address */
+       u32     dscr_dest1;             /* See below */
+       u32     dscr_stat;              /* completion status */
+       u32     dscr_nxtptr;            /* Next descriptor pointer (mostly) */
+} au1x_ddma_desc_t;
+
+#define DSCR_CMD0_V            (1 << 31)       /* Descriptor valid */
+#define DSCR_CMD0_MEM          (1 << 30)       /* mem-mem transfer */
+#define DSCR_CMD0_SID_MASK     (0x1f << 25)    /* Source ID */
+#define DSCR_CMD0_DID_MASK     (0x1f << 20)    /* Destination ID */
+#define DSCR_CMD0_SW_MASK      (0x3 << 18)     /* Source Width */
+#define DSCR_CMD0_DW_MASK      (0x3 << 16)     /* Destination Width */
+#define DSCR_CMD0_ARB          (0x1 << 15)     /* Set for Hi Pri */
+#define DSCR_CMD0_DT_MASK      (0x3 << 13)     /* Descriptor Type */
+#define DSCR_CMD0_SN           (0x1 << 12)     /* Source non-coherent */
+#define DSCR_CMD0_DN           (0x1 << 11)     /* Destination non-coherent */
+#define DSCR_CMD0_SM           (0x1 << 10)     /* Stride mode */
+#define DSCR_CMD0_IE           (0x1 << 8)      /* Interrupt Enable */
+#define DSCR_CMD0_SP           (0x1 << 4)      /* Status pointer select */
+#define DSCR_CMD0_CV           (0x1 << 2)      /* Clear Valid when done */
+#define DSCR_CMD0_ST_MASK      (0x3 << 0)      /* Status instruction */
+
+/* Command 0 device IDs.
+*/
+#define DSCR_CMD0_UART0_TX     0
+#define DSCR_CMD0_UART0_RX     1
+#define DSCR_CMD0_UART3_TX     2
+#define DSCR_CMD0_UART3_RX     3
+#define DSCR_CMD0_DMA_REQ0     4
+#define DSCR_CMD0_DMA_REQ1     5
+#define DSCR_CMD0_DMA_REQ2     6
+#define DSCR_CMD0_DMA_REQ3     7
+#define DSCR_CMD0_USBDEV_RX0   8
+#define DSCR_CMD0_USBDEV_TX0   9
+#define DSCR_CMD0_USBDEV_TX1   10
+#define DSCR_CMD0_USBDEV_TX2   11
+#define DSCR_CMD0_USBDEV_RX3   12
+#define DSCR_CMD0_USBDEV_RX4   13
+#define DSCR_CMD0_PSC0_TX      14
+#define DSCR_CMD0_PSC0_RX      15
+#define DSCR_CMD0_PSC1_TX      16
+#define DSCR_CMD0_PSC1_RX      17
+#define DSCR_CMD0_PSC2_TX      18
+#define DSCR_CMD0_PSC2_RX      19
+#define DSCR_CMD0_PSC3_TX      20
+#define DSCR_CMD0_PSC3_RX      21
+#define DSCR_CMD0_PCI_WRITE    22
+#define DSCR_CMD0_NAND_FLASH   23
+#define DSCR_CMD0_MAC0_RX      24
+#define DSCR_CMD0_MAC0_TX      25
+#define DSCR_CMD0_MAC1_RX      26
+#define DSCR_CMD0_MAC1_TX      27
+#define DSCR_CMD0_THROTTLE     30
+#define DSCR_CMD0_ALWAYS       31
+#define DSCR_NDEV_IDS          32
+
+#define DSCR_CMD0_SID(x)       (((x) & 0x1f) << 25)
+#define DSCR_CMD0_DID(x)       (((x) & 0x1f) << 20)
+
+/* Source/Destination transfer width.
+*/
+#define DSCR_CMD0_BYTE         0
+#define DSCR_CMD0_HALFWORD     1
+#define DSCR_CMD0_WORD         2
+
+#define DSCR_CMD0_SW(x)                (((x) & 0x3) << 18)
+#define DSCR_CMD0_DW(x)                (((x) & 0x3) << 16)
+
+/* DDMA Descriptor Type.
+*/
+#define DSCR_CMD0_STANDARD     0
+#define DSCR_CMD0_LITERAL      1
+#define DSCR_CMD0_CMP_BRANCH   2
+
+#define DSCR_CMD0_DT(x)                (((x) & 0x3) << 13)
+
+/* Status Instruction.
+*/
+#define DSCR_CMD0_ST_NOCHANGE  0       /* Don't change */
+#define DSCR_CMD0_ST_CURRENT   1       /* Write current status */
+#define DSCR_CMD0_ST_CMD0      2       /* Write cmd0 with V cleared */
+#define DSCR_CMD0_ST_BYTECNT   3       /* Write remaining byte count */
+
+#define DSCR_CMD0_ST(x)                (((x) & 0x3) << 0)
+
+/* Descriptor Command 1
+*/
+#define DSCR_CMD1_SUPTR_MASK   (0xf << 28)     /* upper 4 bits of src addr */
+#define DSCR_CMD1_DUPTR_MASK   (0xf << 24)     /* upper 4 bits of dest addr */
+#define DSCR_CMD1_FL_MASK      (0x3 << 22)     /* Flag bits */
+#define DSCR_CMD1_BC_MASK      (0x3fffff)      /* Byte count */
+
+/* Flag description.
+*/
+#define DSCR_CMD1_FL_MEM_STRIDE0       0
+#define DSCR_CMD1_FL_MEM_STRIDE1       1
+#define DSCR_CMD1_FL_MEM_STRIDE2       2
+
+#define DSCR_CMD1_FL(x)                (((x) & 0x3) << 22)
+
+/* Source1, 1-dimensional stride.
+*/
+#define DSCR_SRC1_STS_MASK     (3 << 30)       /* Src xfer size */
+#define DSCR_SRC1_SAM_MASK     (3 << 28)       /* Src xfer movement */
+#define DSCR_SRC1_SB_MASK      (0x3fff << 14)  /* Block size */
+#define DSCR_SRC1_SB(x)                (((x) & 0x3fff) << 14)
+#define DSCR_SRC1_SS_MASK      (0x3fff << 0)   /* Stride */
+#define DSCR_SRC1_SS(x)                (((x) & 0x3fff) << 0)
+
+/* Dest1, 1-dimensional stride.
+*/
+#define DSCR_DEST1_DTS_MASK    (3 << 30)       /* Dest xfer size */
+#define DSCR_DEST1_DAM_MASK    (3 << 28)       /* Dest xfer movement */
+#define DSCR_DEST1_DB_MASK     (0x3fff << 14)  /* Block size */
+#define DSCR_DEST1_DB(x)       (((x) & 0x3fff) << 14)
+#define DSCR_DEST1_DS_MASK     (0x3fff << 0)   /* Stride */
+#define DSCR_DEST1_DS(x)       (((x) & 0x3fff) << 0)
+
+#define DSCR_xTS_SIZE1         0
+#define DSCR_xTS_SIZE2         1
+#define DSCR_xTS_SIZE4         2
+#define DSCR_xTS_SIZE8         3
+#define DSCR_SRC1_STS(x)       (((x) & 3) << 30)
+#define DSCR_DEST1_DTS(x)      (((x) & 3) << 30)
+
+#define DSCR_xAM_INCREMENT     0
+#define DSCR_xAM_DECREMENT     1
+#define DSCR_xAM_STATIC                2
+#define DSCR_xAM_BURST         3
+#define DSCR_SRC1_SAM(x)       (((x) & 3) << 28)
+#define DSCR_DEST1_DAM(x)      (((x) & 3) << 28)
+
+/* The next descriptor pointer.
+*/
+#define DSCR_NXTPTR_MASK       (0x07ffffff)
+#define DSCR_NXTPTR(x)         ((x) >> 5)
+#define DSCR_GET_NXTPTR(x)     ((x) << 5)
+#define DSCR_NXTPTR_MS         (1 << 27)
+
+/* The number of DBDMA channels.
+*/
+#define NUM_DBDMA_CHANS        16
+
+/* External functions for drivers to use.
+*/
+/* Use this to allocate a dbdma channel.  The device ids are one of the
+ * DSCR_CMD0 devices IDs, which is usually redefined to a more
+ * meaningful name.  The 'callback' is called during dma completion
+ * interrupt.
+ */
+u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
+       void (*callback)(int, void *, struct pt_regs *), void *callparam);
+
+#define DBDMA_MEM_CHAN DSCR_CMD0_ALWAYS
+
+/* ACK!  These should be in a board specific description file.
+*/
+#ifdef CONFIG_MIPS_PB1550
+#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
+#define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX
+#endif
+#ifdef CONFIG_MIPS_DB1550
+#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
+#define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX
+#endif
+
+
+/* Set the device width of a in/out fifo.
+*/
+u32 au1xxx_dbdma_set_devwidth(u32 chanid, int bits);
+
+/* Allocate a ring of descriptors for dbdma.
+*/
+u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries);
+
+/* Put buffers on source/destination descriptors.
+*/
+u32 au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes);
+u32 au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes);
+
+/* Get a buffer from the destination descriptor.
+*/
+u32 au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes);
+
+void au1xxx_dbdma_stop(u32 chanid);
+void au1xxx_dbdma_start(u32 chanid);
+void au1xxx_dbdma_reset(u32 chanid);
+u32 au1xxx_get_dma_residue(u32 chanid);
+
+void au1xxx_dbdma_chan_free(u32 chanid);
+void au1xxx_dbdma_dump(u32 chanid);
+
+#endif /* _LANGUAGE_ASSEMBLY */
+#endif /* _AU1000_DBDMA_H_ */
diff --git a/include/asm-mips/mach-au1x00/au1xxx_psc.h b/include/asm-mips/mach-au1x00/au1xxx_psc.h
new file mode 100644 (file)
index 0000000..bc831c3
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ *
+ * BRIEF MODULE DESCRIPTION
+ *     Include file for Alchemy Semiconductor's Au1k CPU.
+ *
+ * Copyright 2004 Embedded Edge, LLC
+ *     dan@embeddededge.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* Specifics for the Au1xxx Programmable Serial Controllers, first
+ * seen in the AU1550 part.
+ */
+#ifndef _AU1000_PSC_H_
+#define _AU1000_PSC_H_
+
+/* The PSC base addresses.
+*/
+#define PSC_BASE0              0xb1a00000
+#define PSC_BASE1              0xb1b00000
+#define PSC_BASE2              0xb0a00000
+#define PSC_BASE3              0xb0d00000
+
+/* These should be defined in a board specific file!
+*/
+#ifdef CONFIG_MIPS_PB1550
+#define SPI_PSC_BASE           PSC_BASE0
+#define AC97_PSC_BASE          PSC_BASE1
+#define SMBUS_PSC_BASE         PSC_BASE2
+#endif
+#ifdef CONFIG_MIPS_DB1550
+#define SPI_PSC_BASE           PSC_BASE0
+#define AC97_PSC_BASE          PSC_BASE1
+#define SMBUS_PSC_BASE         PSC_BASE2
+#endif
+
+
+/* The PSC select and control registers are common to
+ * all protocols.
+ */
+#define PSC_SEL_OFFSET         0x00000000
+#define PSC_CTRL_OFFSET                0x00000004
+
+#define PSC_SEL_CLK_MASK       (3 << 4)
+#define PSC_SEL_CLK_INTCLK     (0 << 4)
+#define PSC_SEL_CLK_EXTCLK     (1 << 4)
+#define PSC_SEL_CLK_SERCLK     (2 << 4)
+
+#define PSC_SEL_PS_MASK                0x00000007
+#define PSC_SEL_PS_DISABLED    (0)
+#define PSC_SEL_PS_SPIMODE     (2)
+#define PSC_SEL_PS_I2SMODE     (3)
+#define PSC_SEL_PS_AC97MODE    (4)
+#define PSC_SEL_PS_SMBUSMODE   (5)
+
+#define PSC_CTRL_DISABLE       (0)
+#define PSC_CTRL_SUSPEND       (2)
+#define PSC_CTRL_ENABLE                (3)
+
+/* AC97 Registers.
+*/
+#define PSC_AC97CFG_OFFSET     0x00000008
+#define PSC_AC97MSK_OFFSET     0x0000000c
+#define PSC_AC97PCR_OFFSET     0x00000010
+#define PSC_AC97STAT_OFFSET    0x00000014
+#define PSC_AC97EVNT_OFFSET    0x00000018
+#define PSC_AC97TXRX_OFFSET    0x0000001c
+#define PSC_AC97CDC_OFFSET     0x00000020
+#define PSC_AC97RST_OFFSET     0x00000024
+#define PSC_AC97GPO_OFFSET     0x00000028
+#define PSC_AC97GPI_OFFSET     0x0000002c
+
+#define AC97_PSC_SEL           (AC97_PSC_BASE + PSC_SEL_OFFSET)
+#define AC97_PSC_CTRL          (AC97_PSC_BASE + PSC_CTRL_OFFSET)
+#define PSC_AC97CFG            (AC97_PSC_BASE + PSC_AC97CFG_OFFSET)
+#define PSC_AC97MSK            (AC97_PSC_BASE + PSC_AC97MSK_OFFSET)
+#define PSC_AC97PCR            (AC97_PSC_BASE + PSC_AC97PCR_OFFSET)
+#define PSC_AC97STAT           (AC97_PSC_BASE + PSC_AC97STAT_OFFSET)
+#define PSC_AC97EVNT           (AC97_PSC_BASE + PSC_AC97EVNT_OFFSET)
+#define PSC_AC97TXRX           (AC97_PSC_BASE + PSC_AC97TXRX_OFFSET)
+#define PSC_AC97CDC            (AC97_PSC_BASE + PSC_AC97CDC_OFFSET)
+#define PSC_AC97RST            (AC97_PSC_BASE + PSC_AC97RST_OFFSET)
+#define PSC_AC97GPO            (AC97_PSC_BASE + PSC_AC97GPO_OFFSET)
+#define PSC_AC97GPI            (AC97_PSC_BASE + PSC_AC97GPI_OFFSET)
+
+/* AC97 Config Register.
+*/
+#define PSC_AC97CFG_RT_MASK    (3 << 30)
+#define PSC_AC97CFG_RT_FIFO1   (0 << 30)
+#define PSC_AC97CFG_RT_FIFO2   (1 << 30)
+#define PSC_AC97CFG_RT_FIFO4   (2 << 30)
+#define PSC_AC97CFG_RT_FIFO8   (3 << 30)
+
+#define PSC_AC97CFG_TT_MASK    (3 << 28)
+#define PSC_AC97CFG_TT_FIFO1   (0 << 28)
+#define PSC_AC97CFG_TT_FIFO2   (1 << 28)
+#define PSC_AC97CFG_TT_FIFO4   (2 << 28)
+#define PSC_AC97CFG_TT_FIFO8   (3 << 28)
+
+#define PSC_AC97CFG_DD_DISABLE (1 << 27)
+#define PSC_AC97CFG_DE_ENABLE  (1 << 26)
+#define PSC_AC97CFG_SE_ENABLE  (1 << 25)
+
+#define PSC_AC97CFG_LEN_MASK   (0xf << 21)
+#define PSC_AC97CFG_TXSLOT_MASK        (0x3ff << 11)
+#define PSC_AC97CFG_RXSLOT_MASK        (0x3ff << 1)
+#define PSC_AC97CFG_GE_ENABLE  (1)
+
+/* Enable slots 3-12.
+*/
+#define PSC_AC97CFG_TXSLOT_ENA(x)      (1 << (((x) - 3) + 11))
+#define PSC_AC97CFG_RXSLOT_ENA(x)      (1 << (((x) - 3) + 1))
+
+/* The word length equation is ((x) * 2) + 2, so choose 'x' appropriately.
+ * The only sensible numbers are 7, 9, or possibly 11.  Nah, just do the
+ * arithmetic in the macro.
+ */
+#define PSC_AC97CFG_SET_LEN(x) (((((x)-2)/2) & 0xf) << 21)
+#define PSC_AC97CFG_GET_LEN(x) (((((x) >> 21) & 0xf) * 2) + 2)
+
+/* AC97 Mask Register.
+*/
+#define PSC_AC97MSK_GR         (1 << 25)
+#define PSC_AC97MSK_CD         (1 << 24)
+#define PSC_AC97MSK_RR         (1 << 13)
+#define PSC_AC97MSK_RO         (1 << 12)
+#define PSC_AC97MSK_RU         (1 << 11)
+#define PSC_AC97MSK_TR         (1 << 10)
+#define PSC_AC97MSK_TO         (1 << 9)
+#define PSC_AC97MSK_TU         (1 << 8)
+#define PSC_AC97MSK_RD         (1 << 5)
+#define PSC_AC97MSK_TD         (1 << 4)
+#define PSC_AC97MSK_ALLMASK    (PSC_AC97MSK_GR | PSC_AC97MSK_CD | \
+                                PSC_AC97MSK_RR | PSC_AC97MSK_RO | \
+                                PSC_AC97MSK_RU | PSC_AC97MSK_TR | \
+                                PSC_AC97MSK_TO | PSC_AC97MSK_TU | \
+                                PSC_AC97MSK_RD | PSC_AC97MSK_TD)
+
+/* AC97 Protocol Control Register.
+*/
+#define PSC_AC97PCR_RC         (1 << 6)
+#define PSC_AC97PCR_RP         (1 << 5)
+#define PSC_AC97PCR_RS         (1 << 4)
+#define PSC_AC97PCR_TC         (1 << 2)
+#define PSC_AC97PCR_TP         (1 << 1)
+#define PSC_AC97PCR_TS         (1 << 0)
+
+/* AC97 Status register (read only).
+*/
+#define PSC_AC97STAT_CB                (1 << 26)
+#define PSC_AC97STAT_CP                (1 << 25)
+#define PSC_AC97STAT_CR                (1 << 24)
+#define PSC_AC97STAT_RF                (1 << 13)
+#define PSC_AC97STAT_RE                (1 << 12)
+#define PSC_AC97STAT_RR                (1 << 11)
+#define PSC_AC97STAT_TF                (1 << 10)
+#define PSC_AC97STAT_TE                (1 << 9)
+#define PSC_AC97STAT_TR                (1 << 8)
+#define PSC_AC97STAT_RB                (1 << 5)
+#define PSC_AC97STAT_TB                (1 << 4)
+#define PSC_AC97STAT_DI                (1 << 2)
+#define PSC_AC97STAT_DR                (1 << 1)
+#define PSC_AC97STAT_SR                (1 << 0)
+
+/* AC97 Event Register.
+*/
+#define PSC_AC97EVNT_GR                (1 << 25)
+#define PSC_AC97EVNT_CD                (1 << 24)
+#define PSC_AC97EVNT_RR                (1 << 13)
+#define PSC_AC97EVNT_RO                (1 << 12)
+#define PSC_AC97EVNT_RU                (1 << 11)
+#define PSC_AC97EVNT_TR                (1 << 10)
+#define PSC_AC97EVNT_TO                (1 << 9)
+#define PSC_AC97EVNT_TU                (1 << 8)
+#define PSC_AC97EVNT_RD                (1 << 5)
+#define PSC_AC97EVNT_TD                (1 << 4)
+
+/* CODEC Command Register.
+*/
+#define PSC_AC97CDC_RD         (1 << 25)
+#define PSC_AC97CDC_ID_MASK    (3 << 23)
+#define PSC_AC97CDC_INDX_MASK  (0x7f << 16)
+#define PSC_AC97CDC_ID(x)      (((x) & 0x3) << 23)
+#define PSC_AC97CDC_INDX(x)    (((x) & 0x7f) << 16)
+
+/* AC97 Reset Control Register.
+*/
+#define PSC_AC97RST_RST                (1 << 1)
+#define PSC_AC97RST_SNC                (1 << 0)
+
+
+#endif /* _AU1000_PSC_H_ */
index 46247e2320b5ae4e7a12d85d1ac416b7c5163e75..65990e18a4ec6f479d218f62a2aaead87729e6e2 100644 (file)
@@ -93,9 +93,13 @@ typedef volatile struct
 #define BCSR_PCMCIA_PC1RST             0x8000
 
 #define BCSR_BOARD_PCIM66EN            0x0001
+#define BCSR_BOARD_SD0_PWR             0x0040
+#define BCSR_BOARD_SD1_PWR             0x0080
 #define BCSR_BOARD_PCIM33              0x0100
 #define BCSR_BOARD_GPIO200RST          0x0400
 #define BCSR_BOARD_PCICFG              0x1000
+#define BCSR_BOARD_SD0_WP              0x4000
+#define BCSR_BOARD_SD1_WP              0x8000
 
 #define BCSR_LEDS_DECIMALS             0x0003
 #define BCSR_LEDS_LED0                 0x0100
@@ -122,4 +126,48 @@ typedef volatile struct
 #define DB1X00_USER_ONLY
 #endif
 
+/* SD controller macros */
+/*
+ * Detect card.
+ */
+#define mmc_card_inserted(_n_, _res_) \
+       do { \
+               BCSR * const bcsr = (BCSR *)0xAE000000; \
+               unsigned long mmc_wp, board_specific; \
+               if ((_n_)) { \
+                       mmc_wp = BCSR_BOARD_SD1_WP; \
+               } else { \
+                       mmc_wp = BCSR_BOARD_SD0_WP; \
+               } \
+               board_specific = au_readl((unsigned long)(&bcsr->specific)); \
+               if (!(board_specific & mmc_wp)) {/* low means card present */ \
+                       *(int *)(_res_) = 1; \
+               } else { \
+                       *(int *)(_res_) = 0; \
+               } \
+       } while (0)
+
+/*
+ * Apply power to card slot(s).
+ */
+#define mmc_power_on(_n_) \
+       do { \
+               BCSR * const bcsr = (BCSR *)0xAE000000; \
+               unsigned long mmc_pwr, mmc_wp, board_specific; \
+               if ((_n_)) { \
+                       mmc_pwr = BCSR_BOARD_SD1_PWR; \
+                       mmc_wp = BCSR_BOARD_SD1_WP; \
+               } else { \
+                       mmc_pwr = BCSR_BOARD_SD0_PWR; \
+                       mmc_wp = BCSR_BOARD_SD0_WP; \
+               } \
+               board_specific = au_readl((unsigned long)(&bcsr->specific)); \
+               if (!(board_specific & mmc_wp)) {/* low means card present */ \
+                       board_specific |= mmc_pwr; \
+                       au_writel(board_specific, (int)(&bcsr->specific)); \
+                       au_sync(); \
+               } \
+       } while (0)
+
 #endif /* __ASM_DB1X00_H */
+
index e204dec688dd987d94f3317259634a1ae753ef65..4b565cfb7976fc5f79d24371b3f7bb3776e6f7af 100644 (file)
@@ -3,9 +3,9 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 1996, 99 Ralf Baechle
+ * Copyright (C) 1994 - 1999, 2000, 03, 04 Ralf Baechle
  * Copyright (C) 2000, 2002  Maciej W. Rozycki
- * Copyright (C) 1990, 1999 by Silicon Graphics, Inc.
+ * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
  */
 #ifndef _ASM_MACH_SPACES_H
 #define _ASM_MACH_SPACES_H
 #define UNCAC_BASE             0xa0000000
 #define MAP_BASE               0xc0000000
 
+/*
+ * This handles the memory map.
+ * We handle pages at KSEG0 for kernels with 32 bit address space.
+ */
+#define PAGE_OFFSET            0x80000000UL
+
+/*
+ * Memory above this physical address will be considered highmem.
+ */
+#ifndef HIGHMEM_START
+#define HIGHMEM_START          0x20000000UL
+#endif
+
 #endif /* CONFIG_MIPS32 */
 
 #ifdef CONFIG_MIPS64
 
+/*
+ * This handles the memory map.
+ */
+#ifdef CONFIG_DMA_NONCOHERENT
+#define PAGE_OFFSET    0x9800000000000000UL
+#else
+#define PAGE_OFFSET    0xa800000000000000UL
+#endif
+
+/*
+ * Memory above this physical address will be considered highmem.
+ * Fixme: 59 bits is a fictive number and makes assumptions about processors
+ * in the distant future.  Nobody will care for a few years :-)
+ */
+#ifndef HIGHMEM_START
+#define HIGHMEM_START          (1UL << 59UL)
+#endif
+
 #ifdef CONFIG_DMA_NONCOHERENT
 #define CAC_BASE               0x9800000000000000
 #else
@@ -38,4 +69,4 @@
 
 #endif /* CONFIG_MIPS64 */
 
-#endif /* _ASM_MACH_SPACES_H */
+#endif /* __ASM_MACH_GENERIC_SPACES_H */
diff --git a/include/asm-mips/mach-generic/topology.h b/include/asm-mips/mach-generic/topology.h
new file mode 100644 (file)
index 0000000..5428f33
--- /dev/null
@@ -0,0 +1 @@
+#include <asm-generic/topology.h>
index 724d5dba834770c352defca45a2da7a57b146e64..4d95609b1c729ca8d2b48d8990342e9b2b96dd6f 100644 (file)
@@ -2,6 +2,7 @@
 #define _ASM_MACH_MMZONE_H
 
 #include <asm/sn/addrs.h>
+#include <asm/sn/arch.h>
 
 #define pa_to_nid(addr)                NASID_TO_COMPACT_NODEID(NASID_GET(addr))
 
index b3137a9a22de4c5405fd60d6c90f87c81bf482e0..e0cf74d3293716949424524712cb72fe2c17b8b0 100644 (file)
@@ -27,4 +27,8 @@
 #define TO_MSPEC(x)            (MSPEC_BASE | ((x) & TO_PHYS_MASK))
 #define TO_HSPEC(x)            (HSPEC_BASE | ((x) & TO_PHYS_MASK))
 
+#define PAGE_OFFSET            CAC_BASE
+
+#define HIGHMEM_START          (~0UL)
+
 #endif /* _ASM_MACH_SPACES_H */
diff --git a/include/asm-mips/mach-ip27/topology.h b/include/asm-mips/mach-ip27/topology.h
new file mode 100644 (file)
index 0000000..0e93126
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef _ASM_MACH_TOPOLOGY_H
+#define _ASM_MACH_TOPOLOGY_H   1
+
+#include <asm/sn/hub.h>
+
+#define cpu_to_node(cpu)       (cpu_data[(cpu)].p_nodeid)
+#define parent_node(node)      (node)
+#define node_to_cpumask(node)  (HUB_DATA(node)->h_cpus)
+#define node_to_first_cpu(node)        (first_cpu(node_to_cpumask(node)))
+#define pcibus_to_cpumask(bus) (cpu_online_map)
+
+extern int node_distance(nasid_t nasid_a, nasid_t nasid_b);
+#define node_distance(from, to)        node_distance(from, to)
+
+/* Cross-node load balancing interval. */
+#define NODE_BALANCE_RATE      10
+
+#endif /* _ASM_MACH_TOPOLOGY_H */
index 3d98e355111ca12b73290256941a96cf9615943f..3024a2145f8c01b26d32fe099804d4df9c6ebd3d 100644 (file)
 
 static unsigned char CMOS_READ(unsigned long addr)
 {
-       return readb(mace->isa.rtc + addr);
+       return mace->isa.rtc[addr << 8];
 }
 
 static inline void CMOS_WRITE(unsigned char data, unsigned long addr)
 {
-       writeb(data, mace->isa.rtc + addr);
+       mace->isa.rtc[addr << 8] = data;
 }
 
+/* FIXME: Do it right. For now just assume that noone lives in 20th century
+ * and no O2 user in 22th century ;-) */
+#define mc146818_decode_year(year) ((year) + 2000)
+
 #define RTC_ALWAYS_BCD 0
 
 #endif /* __ASM_MACH_IP32_MC146818RTC_H */
diff --git a/include/asm-mips/mach-ja/cpu-feature-overrides.h b/include/asm-mips/mach-ja/cpu-feature-overrides.h
new file mode 100644 (file)
index 0000000..2dce66f
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * 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) 2003, 2004 Ralf Baechle
+ */
+#ifndef __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H
+
+/*
+ * Momentum Jaguar ATX always has the RM9000 processor.
+ */
+#define cpu_has_watch          1
+#define cpu_has_mips16         0
+#define cpu_has_divec          0
+#define cpu_has_vce            0
+#define cpu_has_cache_cdex_p   0
+#define cpu_has_cache_cdex_s   0
+#define cpu_has_prefetch       1
+#define cpu_has_mcheck         0
+#define cpu_has_ejtag          0
+
+#define cpu_has_llsc           1
+#define cpu_has_vtag_icache    0
+#define cpu_has_dc_aliases     0
+#define cpu_has_ic_fills_f_dc  0
+
+#define cpu_has_nofpuex                0
+#define cpu_has_64bits         1
+
+#define cpu_has_subset_pcaches 0
+
+#define cpu_dcache_line_size() 32
+#define cpu_icache_line_size() 32
+#define cpu_scache_line_size() 32
+
+#endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-ja/spaces.h b/include/asm-mips/mach-ja/spaces.h
new file mode 100644 (file)
index 0000000..8466a0e
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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) 1994 - 1999, 2000, 03, 04 Ralf Baechle
+ * Copyright (C) 2000, 2002  Maciej W. Rozycki
+ * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
+ */
+#ifndef __ASM_MACH_JA_SPACES_H
+#define __ASM_MACH_JA_SPACES_H
+
+/*
+ * Memory above this physical address will be considered highmem.
+ */
+#define HIGHMEM_START          0x08000000UL
+
+#include_next <spaces.h>
+
+#endif /* __ASM_MACH_JA_SPACES_H */
index 893ecf7cfb1c14dd6dd49d07a18c2959ba21b3ab..6730ba0665766ff329705c6c59c5358f9900621b 100644 (file)
@@ -43,4 +43,6 @@ static inline void CMOS_WRITE(unsigned char data, unsigned long addr)
 
 #define RTC_ALWAYS_BCD 0
 
+#define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1970)
+
 #endif /* __ASM_MACH_MALTA_MC146818RTC_H */
diff --git a/include/asm-mips/mach-pb1x00/pb1550.h b/include/asm-mips/mach-pb1x00/pb1550.h
new file mode 100644 (file)
index 0000000..5d28b40
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ * AMD Alchemy Semi PB1550 Referrence Board
+ * Board Registers defines.
+ *
+ * Copyright 2004 Embedded Edge LLC.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ *
+ */
+#ifndef __ASM_PB1550_H
+#define __ASM_PB1550_H
+
+#include <linux/types.h>
+
+#define BCSR_PHYS_ADDR 0xAF000000
+
+typedef volatile struct
+{
+       /*00*/  u16 whoami;
+               u16 reserved0;
+       /*04*/  u16 status;
+               u16 reserved1;
+       /*08*/  u16 switches;
+               u16 reserved2;
+       /*0C*/  u16 resets;
+               u16 reserved3;
+       /*10*/  u16 pcmcia;
+               u16 reserved4;
+       /*14*/  u16 pci;
+               u16 reserved5;
+       /*18*/  u16 leds;
+               u16 reserved6;
+       /*1C*/  u16 system;
+               u16 reserved7;
+
+} BCSR;
+
+static BCSR * const bcsr = (BCSR *)BCSR_PHYS_ADDR;
+
+/*
+ * Register bit definitions for the BCSRs
+ */
+#define BCSR_WHOAMI_DCID       0x000F
+#define BCSR_WHOAMI_CPLD       0x00F0
+#define BCSR_WHOAMI_BOARD      0x0F00
+
+#define BCSR_STATUS_PCMCIA0VS  0x0003
+#define BCSR_STATUS_PCMCIA1VS  0x000C
+#define BCSR_STATUS_PCMCIA0FI  0x0010
+#define BCSR_STATUS_PCMCIA1FI  0x0020
+#define BCSR_STATUS_SWAPBOOT   0x0040
+#define BCSR_STATUS_SRAMWIDTH  0x0080
+#define BCSR_STATUS_FLASHBUSY  0x0100
+#define BCSR_STATUS_ROMBUSY    0x0200
+#define BCSR_STATUS_USBOTGID   0x0800
+#define BCSR_STATUS_U0RXD      0x1000
+#define BCSR_STATUS_U1RXD      0x2000
+#define BCSR_STATUS_U3RXD      0x8000
+
+#define BCSR_SWITCHES_OCTAL    0x00FF
+#define BCSR_SWITCHES_DIP_1    0x0080
+#define BCSR_SWITCHES_DIP_2    0x0040
+#define BCSR_SWITCHES_DIP_3    0x0020
+#define BCSR_SWITCHES_DIP_4    0x0010
+#define BCSR_SWITCHES_DIP_5    0x0008
+#define BCSR_SWITCHES_DIP_6    0x0004
+#define BCSR_SWITCHES_DIP_7    0x0002
+#define BCSR_SWITCHES_DIP_8    0x0001
+#define BCSR_SWITCHES_ROTARY   0x0F00
+
+#define BCSR_RESETS_PHY0       0x0001
+#define BCSR_RESETS_PHY1       0x0002
+#define BCSR_RESETS_DC         0x0004
+#define BCSR_RESETS_WSC                0x2000
+#define BCSR_RESETS_SPISEL     0x4000
+#define BCSR_RESETS_DMAREQ     0x8000
+
+#define BCSR_PCMCIA_PC0VPP     0x0003
+#define BCSR_PCMCIA_PC0VCC     0x000C
+#define BCSR_PCMCIA_PC0DRVEN   0x0010
+#define BCSR_PCMCIA_PC0RST     0x0080
+#define BCSR_PCMCIA_PC1VPP     0x0300
+#define BCSR_PCMCIA_PC1VCC     0x0C00
+#define BCSR_PCMCIA_PC1DRVEN   0x1000
+#define BCSR_PCMCIA_PC1RST     0x8000
+
+#define BCSR_PCI_M66EN         0x0001
+#define BCSR_PCI_M33           0x0100
+#define BCSR_PCI_EXTERNARB     0x0200
+#define BCSR_PCI_GPIO200RST    0x0400
+#define BCSR_PCI_CLKOUT                0x0800
+#define BCSR_PCI_CFGHOST       0x1000
+
+#define BCSR_LEDS_DECIMALS     0x00FF
+#define BCSR_LEDS_LED0         0x0100
+#define BCSR_LEDS_LED1         0x0200
+#define BCSR_LEDS_LED2         0x0400
+#define BCSR_LEDS_LED3         0x0800
+
+#define BCSR_SYSTEM_VDDI       0x001F
+#define BCSR_SYSTEM_POWEROFF   0x4000
+#define BCSR_SYSTEM_RESET      0x8000
+
+#define PCMCIA_MAX_SOCK 1
+#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK+1)
+
+/* VPP/VCC */
+#define SET_VCC_VPP(VCC, VPP, SLOT)\
+       ((((VCC)<<2) | ((VPP)<<0)) << ((SLOT)*8))
+
+#if defined(CONFIG_MTD_PB1550_BOOT) && defined(CONFIG_MTD_PB1550_USER)
+#define PB1550_BOTH_BANKS
+#elif defined(CONFIG_MTD_PB1550_BOOT) && !defined(CONFIG_MTD_PB1550_USER)
+#define PB1550_BOOT_ONLY
+#elif !defined(CONFIG_MTD_PB1550_BOOT) && defined(CONFIG_MTD_PB1550_USER)
+#define PB1550_USER_ONLY
+#endif
+
+/* Timing values as described in databook, * ns value stripped of
+ * lower 2 bits.
+ * These defines are here rather than an SOC1550 generic file because
+ * the parts chosen on another board may be different and may require
+ * different timings.
+ */
+#define NAND_T_H                       (18 >> 2)
+#define NAND_T_PUL                     (30 >> 2)
+#define NAND_T_SU                      (30 >> 2)
+#define NAND_T_WH                      (30 >> 2)
+
+/* Bitfield shift amounts */
+#define NAND_T_H_SHIFT         0
+#define NAND_T_PUL_SHIFT       4
+#define NAND_T_SU_SHIFT                8
+#define NAND_T_WH_SHIFT                12
+
+#define NAND_TIMING    ((NAND_T_H   & 0xF)     << NAND_T_H_SHIFT)   | \
+                       ((NAND_T_PUL & 0xF)     << NAND_T_PUL_SHIFT) | \
+                       ((NAND_T_SU  & 0xF)     << NAND_T_SU_SHIFT)  | \
+                       ((NAND_T_WH  & 0xF)     << NAND_T_WH_SHIFT)
+
+#endif /* __ASM_PB1550_H */
index 5da4f3a12fc6e3198fb3942a9f15048c86edf8bc..a2c2d2c2430329050b1bde7bf6b2d43f8cc5d1e0 100644 (file)
@@ -120,8 +120,7 @@ static inline unsigned long mc146818_get_cmos_time(void)
                BCD_TO_BIN(mon);
                BCD_TO_BIN(year);
        }
-       if ((year += 1900) < 1970)
-               year += 100;
+       year = mc146818_decode_year(year);
 
        return mktime(year, mon, day, hour, min, sec);
 }
index 66f5d2e02ff2d2dfce8e3ebdc80cb47f64f54bca..8bdab9794feb30a086700e01054ab8e6af3524bb 100644 (file)
@@ -631,6 +631,24 @@ do {                                                                       \
                __write_64bit_c0_register(reg, sel, val);               \
 } while (0)
 
+/*
+ * On The RM7000 these are use to access cop0 set 1 registers
+ */
+#define __read_32bit_c0_ctrl_register(source)                          \
+({ int __res;                                                          \
+       __asm__ __volatile__(                                           \
+               "cfc0\t%0, " #source "\n\t"                             \
+               : "=r" (__res));                                        \
+       __res;                                                          \
+})
+
+#define __write_32bit_c0_ctrl_register(register, value)                        \
+do {                                                                   \
+       __asm__ __volatile__(                                           \
+               "ctc0\t%z0, " #register "\n\t"                          \
+               : : "Jr" ((unsigned int)value));                        \
+} while (0)
+
 /*
  * These versions are only needed for systems with more than 38 bits of
  * physical address space running the 32-bit kernel.  That's none atm :-)
@@ -791,12 +809,30 @@ do {                                                                      \
 #define read_c0_xcontext()     __read_ulong_c0_register($20, 0)
 #define write_c0_xcontext(val) __write_ulong_c0_register($20, 0, val)
 
-#define read_c0_intcontrol()   __read_32bit_c0_register($20, 1)
-#define write_c0_intcontrol(val) __write_32bit_c0_register($20, 1, val)
+#define read_c0_intcontrol()   __read_32bit_c0_ctrl_register($20)
+#define write_c0_intcontrol(val) __write_32bit_c0_ctrl_register($20, val)
 
 #define read_c0_framemask()    __read_32bit_c0_register($21, 0)
 #define write_c0_framemask(val)        __write_32bit_c0_register($21, 0, val)
 
+#define read_c0_diag()         __read_32bit_c0_register($22, 0)
+#define write_c0_diag(val)     __write_32bit_c0_register($22, 0, val)
+
+#define read_c0_diag1()                __read_32bit_c0_register($22, 1)
+#define write_c0_diag1(val)    __write_32bit_c0_register($22, 1, val)
+
+#define read_c0_diag2()                __read_32bit_c0_register($22, 2)
+#define write_c0_diag2(val)    __write_32bit_c0_register($22, 2, val)
+
+#define read_c0_diag3()                __read_32bit_c0_register($22, 3)
+#define write_c0_diag3(val)    __write_32bit_c0_register($22, 3, val)
+
+#define read_c0_diag4()                __read_32bit_c0_register($22, 4)
+#define write_c0_diag4(val)    __write_32bit_c0_register($22, 4, val)
+
+#define read_c0_diag5()                __read_32bit_c0_register($22, 5)
+#define write_c0_diag5(val)    __write_32bit_c0_register($22, 5, val)
+
 #define read_c0_debug()                __read_32bit_c0_register($23, 0)
 #define write_c0_debug(val)    __write_32bit_c0_register($23, 0, val)
 
@@ -838,51 +874,45 @@ do {                                                                      \
 
 /*
  * TLB operations.
+ *
+ * It is responsibility of the caller to take care of any TLB hazards.
  */
 static inline void tlb_probe(void)
 {
-       rm9000_tlb_hazard();
        __asm__ __volatile__(
                ".set noreorder\n\t"
                "tlbp\n\t"
                ".set reorder");
-       rm9000_tlb_hazard();
 }
 
 static inline void tlb_read(void)
 {
-       rm9000_tlb_hazard();
        __asm__ __volatile__(
                ".set noreorder\n\t"
                "tlbr\n\t"
                ".set reorder");
-       rm9000_tlb_hazard();
 }
 
 static inline void tlb_write_indexed(void)
 {
-       rm9000_tlb_hazard();
        __asm__ __volatile__(
                ".set noreorder\n\t"
                "tlbwi\n\t"
                ".set reorder");
-       rm9000_tlb_hazard();
 }
 
 static inline void tlb_write_random(void)
 {
-       rm9000_tlb_hazard();
        __asm__ __volatile__(
                ".set noreorder\n\t"
                "tlbwr\n\t"
                ".set reorder");
-       rm9000_tlb_hazard();
 }
 
 /*
  * Manipulate bits in a c0 register.
  */
-#define __BUILD_SET_C0(name,register)                          \
+#define __BUILD_SET_C0(name)                                   \
 static inline unsigned int                                     \
 set_c0_##name(unsigned int set)                                        \
 {                                                              \
@@ -920,10 +950,10 @@ change_c0_##name(unsigned int change, unsigned int new)           \
        return res;                                             \
 }
 
-__BUILD_SET_C0(status,CP0_STATUS)
-__BUILD_SET_C0(cause,CP0_CAUSE)
-__BUILD_SET_C0(config,CP0_CONFIG)
-__BUILD_SET_C0(intcontrol,CP0_CONFIG)
+__BUILD_SET_C0(status)
+__BUILD_SET_C0(cause)
+__BUILD_SET_C0(config)
+__BUILD_SET_C0(intcontrol)
 
 #endif /* !__ASSEMBLY__ */
 
index 79c40323a6156d55805d0c8eb64905c6b619253f..e42794180211b4c6c7885f8ccbaf2e8b32626815 100644 (file)
@@ -45,6 +45,11 @@ extern unsigned long pgd_current[];
 #define ASID_INC       0x40
 #define ASID_MASK      0xfc0
 
+#elif defined(CONFIG_CPU_RM9000)
+
+#define ASID_INC       0x1
+#define ASID_MASK      0xfff
+
 #else /* FIXME: not correct for R6000, R8000 */
 
 #define ASID_INC       0x1
index 39bcec8134e881d4b0f8736b3539265dacb5185b..99635e6b610ed018b13281822c364d7be8408ba8 100644 (file)
@@ -1,14 +1,41 @@
 #ifndef _ASM_MODULE_H
 #define _ASM_MODULE_H
 
+#include <linux/config.h>
+
 struct mod_arch_specific {
        /* Data Bus Error exception tables */
        const struct exception_table_entry *dbe_table_start;
        const struct exception_table_entry *dbe_table_end;
 };
 
-#define Elf_Shdr Elf32_Shdr
-#define Elf_Sym Elf32_Sym
-#define Elf_Ehdr Elf32_Ehdr
+typedef uint8_t Elf64_Byte;            /* Type for a 8-bit quantity.  */
+
+typedef struct
+{
+  Elf64_Addr r_offset;                 /* Address of relocation.  */
+  Elf64_Word r_sym;                    /* Symbol index.  */
+  Elf64_Byte r_ssym;                   /* Special symbol.  */
+  Elf64_Byte r_type3;                  /* Third relocation.  */
+  Elf64_Byte r_type2;                  /* Second relocation.  */
+  Elf64_Byte r_type;                   /* First relocation.  */
+  Elf64_Sxword r_addend;               /* Addend.  */
+} Elf64_Mips_Rela;
+
+#ifdef CONFIG_MIPS32
+
+#define Elf_Shdr       Elf32_Shdr
+#define Elf_Sym                Elf32_Sym
+#define Elf_Ehdr       Elf32_Ehdr
+
+#endif
+
+#ifdef CONFIG_MIPS64
+
+#define Elf_Shdr       Elf64_Shdr
+#define Elf_Sym                Elf64_Sym
+#define Elf_Ehdr       Elf64_Ehdr
+
+#endif
 
 #endif /* _ASM_MODULE_H */
index 13caa2fc663be1728b5590ecbac60923aaae9ce8..442f2fbf7341b29d5f11ff4113378ead3ef9ac2a 100644 (file)
@@ -2,18 +2,19 @@
  * mv64340.h - MV-64340 Internal registers definition file.
  *
  * Copyright 2002 Momentum Computer, Inc.
+ *     Author: Matthew Dharm <mdharm@momenco.com>
  * Copyright 2002 GALILEO TECHNOLOGY, LTD. 
  *
  * 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.
- *
  */
 #ifndef __ASM_MV64340_H
 #define __ASM_MV64340_H
 
-#include <asm/mv64340_dep.h>
+#include <asm/addrspace.h>
+#include <asm/byteorder.h>
 
 /****************************************/
 /* Processor Address Space              */
 #define MV64340_SERIAL_INIT_CONTROL                                 0xf328
 #define MV64340_SERIAL_INIT_STATUS                                  0xf32c
 
-struct pci;
+extern unsigned long mv64340_base;
+
+#define MV64340_BASE       (mv64340_base)
+
+/*
+ * Because of an error/peculiarity in the Galileo chip, we need to swap the
+ * bytes when running bigendian.
+ */
+
+#define MV_WRITE(ofs, data)            \
+        *(volatile u32 *)(MV64340_BASE + (ofs)) = cpu_to_le32((u32)data)
+#define MV_READ(ofs)                   \
+        (le32_to_cpu(*(volatile u32 *)(MV64340_BASE + (ofs))))
+
+#define MV_WRITE_16(ofs, data)         \
+        *(volatile u16 *)(MV64340_BASE + (ofs)) = cpu_to_le16((u16)data)
+#define MV_READ_16(ofs)                        \
+        le16_to_cpu(*(volatile u16 *)(MV64340_BASE + (ofs)))
+
+#define MV_WRITE_8(ofs, data)          \
+        *(volatile u8 *)(MV64340_BASE + (ofs)) = ((u16)data)
+#define MV_READ_8(ofs)                 \
+        (*(volatile u8 *)(MV64340_BASE + (ofs)))
+
+#define MV_SET_REG_BITS(ofs, bits)     \
+       (*((volatile u32 *)(MV64340_BASE + (ofs)))) |= ((u32)cpu_to_le32(bits))
+#define MV_RESET_REG_BITS(ofs, bits)   \
+       (*((volatile u32 *)(MV64340_BASE + (ofs)))) &= ~((u32)cpu_to_le32(bits))
+
+extern void mv64340_irq_init(unsigned int base);
 
-extern mv64340_bus0_pci_ops;
-extern mv64340_bus1_pci_ops;
+extern struct pci_ops mv64340_bus0_pci_ops;
+extern struct pci_ops mv64340_bus1_pci_ops;
 
 #endif /* __ASM_MV64340_H */
diff --git a/include/asm-mips/mv64340_dep.h b/include/asm-mips/mv64340_dep.h
deleted file mode 100644 (file)
index f550fdf..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer Inc.
- * Author: Matthew Dharm <mdharm@momenco.com>
- *
- * include/asm-mips/mv64340-dep.h
- *     Board-dependent definitions for MV-64340 chip.
- *
- * 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.
- */
-
-#ifndef __MV64340_DEP_H__
-#define __MV64340_DEP_H__
-
-#include <asm/addrspace.h>             /* for KSEG1ADDR() */
-#include <asm/byteorder.h>             /* for cpu_to_le32() */
-
-extern unsigned long mv64340_base;
-
-#define MV64340_BASE       (mv64340_base)
-
-/*
- * Because of an error/peculiarity in the Galileo chip, we need to swap the
- * bytes when running bigendian.
- */
-
-#define MV_WRITE(ofs, data)  \
-        *(volatile u32 *)(MV64340_BASE+(ofs)) = cpu_to_le32(data)
-#define MV_READ(ofs, data)   \
-        *(data) = le32_to_cpu(*(volatile u32 *)(MV64340_BASE+(ofs)))
-#define MV_READ_DATA(ofs)    \
-        le32_to_cpu(*(volatile u32 *)(MV64340_BASE+(ofs)))
-
-#define MV_WRITE_16(ofs, data)  \
-        *(volatile u16 *)(MV64340_BASE+(ofs)) = cpu_to_le16(data)
-#define MV_READ_16(ofs, data)   \
-        *(data) = le16_to_cpu(*(volatile u16 *)(MV64340_BASE+(ofs)))
-
-#define MV_WRITE_8(ofs, data)  \
-        *(volatile u8 *)(MV64340_BASE+(ofs)) = data
-#define MV_READ_8(ofs, data)   \
-        *(data) = *(volatile u8 *)(MV64340_BASE+(ofs))
-
-#define MV_SET_REG_BITS(ofs,bits) \
-       (*((volatile u32 *)(MV64340_BASE+(ofs)))) |= ((u32)cpu_to_le32(bits))
-#define MV_RESET_REG_BITS(ofs,bits) \
-       (*((volatile u32 *)(MV64340_BASE+(ofs)))) &= ~((u32)cpu_to_le32(bits))
-
-#endif
diff --git a/include/asm-mips/page-32.h b/include/asm-mips/page-32.h
deleted file mode 100644 (file)
index ad1421d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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) 1994 - 1999, 2000, 03 Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
-#ifndef _ASM_PAGE_32_H
-#define _ASM_PAGE_32_H
-
-/*
- * This handles the memory map.
- * We handle pages at KSEG0 for kernels with 32 bit address space.
- */
-#define PAGE_OFFSET            0x80000000UL
-
-/*
- * Memory above this physical address will be considered highmem.
- */
-#define HIGHMEM_START          0x20000000UL
-
-#endif /* _ASM_PAGE_32_H */
diff --git a/include/asm-mips/page-64.h b/include/asm-mips/page-64.h
deleted file mode 100644 (file)
index d8e1591..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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) 1994 - 1999, 2000, 03 Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
-#ifndef _ASM_PAGE_64_H
-#define _ASM_PAGE_64_H
-
-#include <linux/config.h>
-
-/*
- * This handles the memory map.
- */
-#ifdef CONFIG_DMA_NONCOHERENT
-#define PAGE_OFFSET    0x9800000000000000UL
-#else
-#define PAGE_OFFSET    0xa800000000000000UL
-#endif
-
-/*
- * Memory above this physical address will be considered highmem.
- * Fixme: 59 bits is a fictive number and makes assumptions about processors
- * in the distant future.  Nobody will care for a few years :-)
- */
-#define HIGHMEM_START          (1UL << 59UL)
-
-#endif /* _ASM_PAGE_64_H */
index 6d2352350fa179e32a081f992a0df5186b4762e5..37de18f63b43fba0d78dc02b2e13160676ebeef9 100644 (file)
 #define _ASM_PAGE_H
 
 #include <linux/config.h>
-
-#ifdef CONFIG_MIPS32
-#include <asm/page-32.h>
-#endif
-#ifdef CONFIG_MIPS64
-#include <asm/page-64.h>
-#endif
+#include <spaces.h>
 
 #ifdef __KERNEL__
 
@@ -135,4 +129,8 @@ static __inline__ int get_order(unsigned long size)
 
 #endif /* defined (__KERNEL__) */
 
+#ifdef CONFIG_LIMITED_DMA
+#define WANT_PAGE_VIRTUAL
+#endif
+
 #endif /* _ASM_PAGE_H */
index 3d133a6a3ffcc2536f0cdae1013599e9b46ef6a5..4f96427f89f405e1e614c8d4ffc2f2e95fa3aae7 100644 (file)
@@ -122,12 +122,6 @@ static inline void pmd_free(pmd_t *pmd)
 
 #endif
 
-/*
- * Used for the b0rked handling of kernel pagetables on the 64-bit kernel.
- */
-extern pte_t kptbl[(PAGE_SIZE << PGD_ORDER)/sizeof(pte_t)];
-extern pmd_t kpmdtbl[PTRS_PER_PMD];
-
 #define check_pgt_cache()      do { } while (0)
 
 #endif /* _ASM_PGALLOC_H */
index 0673441399be9314e2cdc8ca96642663c5ceeb6a..2bd879e4c27aef2b362710a060c54a45faab814a 100644 (file)
@@ -216,4 +216,10 @@ static inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
 
 typedef pte_t *pte_addr_t;
 
+/*
+ * Used for the b0rked handling of kernel pagetables on the 64-bit kernel.
+ */
+extern pte_t kptbl[(PAGE_SIZE << PGD_ORDER)/sizeof(pte_t)];
+extern pmd_t kpmdtbl[PTRS_PER_PMD];
+
 #endif /* _ASM_PGTABLE_64_H */
index 799a8a69d3945a48b88f1e6b897280fa75adc2ec..0b712cac8b192cb1d683f26a7fc1338c4dfacea7 100644 (file)
@@ -21,8 +21,9 @@
  * RM7000 version 1.0 interprets all hints as Pref_Load; version 2.0 implements
  * Pref_PrepareForStore also.
  *
- * RM9000 is MIPS IV but implements prefetching like MIPS32/MIPS64;
- * it's Pref_WriteBackInvalidate is a nop.
+ * RM9000 is MIPS IV but implements prefetching like MIPS32/MIPS64; it's
+ * Pref_WriteBackInvalidate is a nop and Pref_PrepareForStore is broken in
+ * current versions due to erratum G105.
  *
  * VR7701 only implements the Load prefetch.
  *
index 769719bee46a307eb168027aac72660c147f5290..f13b15ac0b101fa47df4937fb5548775330b628d 100644 (file)
 #include <asm/cachectl.h>
 #include <asm/cpu.h>
 #include <asm/mipsregs.h>
+#include <asm/prefetch.h>
 #include <asm/system.h>
 
 #ifdef CONFIG_SGI_IP27
 #include <asm/sn/types.h>
-#include <asm/sn/intr_public.h>
 #endif
 
 /*
@@ -53,7 +53,6 @@ struct cpuinfo_mips {
        cnodeid_t       p_nodeid;       /* my node ID in compact-id-space */
        nasid_t         p_nasid;        /* my node ID in numa-as-id-space */
        unsigned char   p_slice;        /* Physical position on node board */
-       struct hub_intmasks_s p_intmasks; /* SN0 per-CPU interrupt masks */
 #endif
 #if 0
        unsigned long           loops_per_sec;
@@ -77,6 +76,7 @@ struct cpuinfo_mips {
        struct cache_desc       dcache; /* Primary D or combined I/D cache */
        struct cache_desc       scache; /* Secondary cache */
        struct cache_desc       tcache; /* Tertiary/split secondary cache */
+       void                    *data;  /* Additional data */
 } __attribute__((aligned(SMP_CACHE_BYTES)));
 
 extern struct cpuinfo_mips cpu_data[];
@@ -287,4 +287,20 @@ static inline unsigned long long sched_clock(void)
        return 0ULL;
 }
 
+#ifdef CONFIG_CPU_HAS_PREFETCH
+
+#define ARCH_HAS_PREFETCH
+
+extern inline void prefetch(const void *addr)
+{
+       __asm__ __volatile__(
+       "       .set    mips4           \n"
+       "       pref    %0, (%1)        \n"
+       "       .set    mips0           \n"
+       :
+       : "i" (Pref_Load), "r" (addr));
+}
+
+#endif
+
 #endif /* _ASM_PROCESSOR_H */
index 4711c0e7af4398bcfdc1c38f738baaac2c2e2a4e..ae455b04b31a6fab6731201b6f352f32a4892641 100644 (file)
 #define HUB6_SERIAL_PORT_DFNS
 #endif
 
-#ifdef CONFIG_MCA
-#define MCA_SERIAL_PORT_DFNS                   \
-       { 0, BASE_BAUD, 0x3220, 3, STD_COM_FLAGS },     \
-       { 0, BASE_BAUD, 0x3228, 3, STD_COM_FLAGS },     \
-       { 0, BASE_BAUD, 0x4220, 3, STD_COM_FLAGS },     \
-       { 0, BASE_BAUD, 0x4228, 3, STD_COM_FLAGS },     \
-       { 0, BASE_BAUD, 0x5220, 3, STD_COM_FLAGS },     \
-       { 0, BASE_BAUD, 0x5228, 3, STD_COM_FLAGS },
+#ifdef CONFIG_MOMENCO_JAGUAR_ATX
+/* Ordinary NS16552 duart with a 20MHz crystal.  */
+#define JAGUAR_ATX_UART_CLK    20000000
+#define JAGUAR_ATX_BASE_BAUD   (JAGUAR_ATX_UART_CLK / 16)
+
+#define JAGUAR_ATX_SERIAL1_IRQ 6
+#define JAGUAR_ATX_SERIAL1_BASE        0xfd000023L
+
+#define _JAGUAR_ATX_SERIAL_INIT(int, base)                             \
+       { baud_base: JAGUAR_ATX_BASE_BAUD, irq: int,                    \
+         flags: (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST),               \
+         iomem_base: (u8 *) base, iomem_reg_shift: 2,                  \
+         io_type: SERIAL_IO_MEM }
+#define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS                           \
+       _JAGUAR_ATX_SERIAL_INIT(JAGUAR_ATX_SERIAL1_IRQ, JAGUAR_ATX_SERIAL1_BASE)
 #else
-#define MCA_SERIAL_PORT_DFNS
+#define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS
 #endif
 
 #ifdef CONFIG_MOMENCO_OCELOT
index 7afa8a2501ceecb18befe4a330de5354d5dce0a8..d7b11b6c7c321fcb72a14a04320c292db8286768 100644 (file)
@@ -56,8 +56,6 @@
 
 #else
 
-void swarm_setup(void);
-
 #ifdef LEDS_PHYS
 extern void setleds(char *str);
 #else
index 4c9d2618ee8d1eded49b3a7ea64b05b5ebdd0134..4146d42d48fe20a26549480f25ce326b446047a9 100644 (file)
@@ -117,6 +117,8 @@ static inline void smp_send_reschedule(int cpu)
        core_send_ipi(cpu, SMP_RESCHEDULE_YOURSELF);
 }
 
+extern asmlinkage void smp_call_function_interrupt(void);
+
 #endif /* CONFIG_SMP */
 
 #endif /* __ASM_SMP_H */
index 2502069c2a358e5afd494890bbb096c7f3ff15a2..d6df13aaed4971e061014164aff14564fac3fc5e 100644 (file)
@@ -12,9 +12,9 @@
 #define _ASM_SGI_SN_AGENT_H
 
 #include <linux/config.h>
+#include <linux/topology.h>
 #include <asm/sn/addrs.h>
 #include <asm/sn/arch.h>
-//#include <asm/sn/io.h>
 
 #if defined(CONFIG_SGI_IP27)
 #include <asm/sn/sn0/hub.h>
@@ -28,7 +28,7 @@
 
 #if defined(CONFIG_SGI_IP27)
 #define HUB_NIC_ADDR(_cpuid)                                              \
-       REMOTE_HUB_ADDR(COMPACT_TO_NASID_NODEID(cputocnode(_cpuid)),       \
+       REMOTE_HUB_ADDR(COMPACT_TO_NASID_NODEID(cpu_to_node(_cpuid)),       \
                MD_MLAN_CTL)
 #endif
 
index ef03180e2ddeb93215d0fdacd4e01cb50b5a0340..d247a819de7f88c351b4af8eecdf3a75d801e88e 100644 (file)
 #ifndef _ASM_SN_ARCH_H
 #define _ASM_SN_ARCH_H
 
-#include <linux/types.h>
 #include <linux/config.h>
-
-#if !defined(CONFIG_SGI_IO)
+#include <linux/types.h>
 #include <asm/sn/types.h>
+#ifdef CONFIG_SGI_IP27
 #include <asm/sn/sn0/arch.h>
 #endif
 
-
-#ifndef __ASSEMBLY__
-#if !defined(CONFIG_SGI_IO)
 typedef u64    hubreg_t;
 typedef u64    nic_t;
-#endif
-#endif
-
-#ifdef CONFIG_SGI_IP27
-#define CPUS_PER_NODE          2       /* CPUs on a single hub */
-#define CPUS_PER_NODE_SHFT     1       /* Bits to shift in the node number */
-#define CPUS_PER_SUBNODE       2       /* CPUs on a single hub PI */
-#endif
-#define CNODE_NUM_CPUS(_cnode)         (NODEPDA(_cnode)->node_num_cpus)
 
-#define CNODE_TO_CPU_BASE(_cnode)      (NODEPDA(_cnode)->node_first_cpu)
-#define cputocnode(cpu)                        (cpu_data[(cpu)].p_nodeid)
 #define cputonasid(cpu)                        (cpu_data[(cpu)].p_nasid)
 #define cputoslice(cpu)                        (cpu_data[(cpu)].p_slice)
 #define makespnum(_nasid, _slice)                                      \
                (((_nasid) << CPUS_PER_NODE_SHFT) | (_slice))
 
-#ifndef __ASSEMBLY__
-
 #define INVALID_NASID          (nasid_t)-1
 #define INVALID_CNODEID                (cnodeid_t)-1
 #define INVALID_PNODEID                (pnodeid_t)-1
@@ -72,45 +55,12 @@ extern nasid_t compact_to_nasid_node[MAX_COMPACT_NODES];
     ((nnode) >> \
      (is_fine_dirmode() ? NASID_TO_FINEREG_SHFT : NASID_TO_COARSEREG_SHFT))
 
-#if !defined(_STANDALONE)
 extern cnodeid_t nasid_to_compact_node[MAX_NASIDS];
 extern nasid_t compact_to_nasid_node[MAX_COMPACT_NODES];
 extern cnodeid_t cpuid_to_compact_node[MAXCPUS];
-#endif
-
-#if !defined(DEBUG) && (!defined(SABLE) || defined(_STANDALONE))
 
 #define NASID_TO_COMPACT_NODEID(nnode) (nasid_to_compact_node[nnode])
 #define COMPACT_TO_NASID_NODEID(cnode) (compact_to_nasid_node[cnode])
 #define CPUID_TO_COMPACT_NODEID(cpu)   (cpuid_to_compact_node[(cpu)])
-#else
-
-/*
- * These functions can do type checking and fail if they need to return
- * a bad nodeid, but they're not as fast so just use 'em for debug kernels.
- */
-cnodeid_t nasid_to_compact_nodeid(nasid_t nasid);
-nasid_t compact_to_nasid_nodeid(cnodeid_t cnode);
-
-#define NASID_TO_COMPACT_NODEID(nnode) nasid_to_compact_nodeid(nnode)
-#define COMPACT_TO_NASID_NODEID(cnode) compact_to_nasid_nodeid(cnode)
-#define CPUID_TO_COMPACT_NODEID(cpu)   (cpuid_to_compact_node[(cpu)])
-#endif
-
-#endif /* !__ASSEMBLY__ */
-
-#define SLOT_BITMASK           (MAX_MEM_SLOTS - 1)
-#define SLOT_SIZE              (1LL<<SLOT_SHIFT)
 
-#define node_getnumslots(node) (MAX_MEM_SLOTS)
-#define NODE_MAX_MEM_SIZE      SLOT_SIZE * MAX_MEM_SLOTS
-
-/*
- * New stuff in here from Irix sys/pfdat.h.
- */
-#define        SLOT_PFNSHIFT           (SLOT_SHIFT - PAGE_SHIFT)
-#define        PFN_NASIDSHFT           (NASID_SHFT - PAGE_SHIFT)
-#define mkpfn(nasid, off)      (((pfn_t)(nasid) << PFN_NASIDSHFT) | (off))
-#define slot_getbasepfn(node,slot) \
-               (mkpfn(COMPACT_TO_NASID_NODEID(node), slot<<SLOT_PFNSHIFT))
 #endif /* _ASM_SN_ARCH_H */
index 17bfedb6456c74eff22cd03a2b05e7aee1b44cf3..89b92104f97e525e66f1b1e7bb366e0a4a72e396 100644 (file)
@@ -1,15 +1,35 @@
 #ifndef __ASM_SN_HUB_H
 #define __ASM_SN_HUB_H
 
+#include <linux/types.h>
+#include <linux/cpumask.h>
 #include <asm/sn/types.h>
 #include <asm/sn/io.h>
 #include <asm/sn/klkernvars.h>
+#include <asm/xtalk/xtalk.h>
+
+#define LEVELS_PER_SLICE       128
+
+struct slice_data {
+       unsigned long irq_alloc_mask[2];
+       unsigned long irq_enable_mask[2];
+       int level_to_irq[LEVELS_PER_SLICE];
+};
 
 struct hub_data {
        kern_vars_t     kern_vars;
+       DECLARE_BITMAP  (h_bigwin_used, HUB_NUM_BIG_WINDOW);
+       cpumask_t       h_cpus;
+       unsigned long slice_map;
+       struct slice_data slice[2];
 };
 
 extern struct hub_data *hub_data[];
 #define HUB_DATA(n)            (hub_data[(n)])
 
+/* ip27-hubio.c */
+extern unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget,
+                         unsigned long xtalk_addr, size_t size);
+extern void hub_pio_init(cnodeid_t cnode);
+
 #endif /* __ASM_SN_HUB_H */
diff --git a/include/asm-mips/sn/intr_public.h b/include/asm-mips/sn/intr_public.h
deleted file mode 100644 (file)
index 7521889..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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) 1992 - 1997 Silicon Graphics, Inc.
- */
-#ifndef __ASM_SN_INTR_PUBLIC_H
-#define __ASM_SN_INTR_PUBLIC_H
-
-#include <asm/sn/arch.h>
-
-/*
- * The following are necessary to create the illusion of a CEL on the SN0 hub.
- * We'll add more priority levels soon, but for now, any interrupt in a
- * particular band effectively does an spl.  These must be in the PDA since
- * they're different for each processor.  Users of this structure must hold the
- * vector_lock in the appropriate vector block before modifying the mask arrays.
- * There's only one vector block for each Hub so a lock in the PDA wouldn't be
- * adequate.
- */
-struct hub_intmasks_s {
-       /*
-        * The masks are stored with the lowest-priority (most inclusive)
-        * in the lowest-numbered masks (i.e., 0, 1, 2...).
-        */
-       hubreg_t        intpend0_masks;         /* INT_PEND0 */
-       hubreg_t        intpend1_masks;         /* INT_PEND1 */
-};
-
-#endif /* __ASM_SN_INTR_PUBLIC_H */
index 2b4eee31e2a41974b8ec5499e618fb6647a91b98..13326453efc99a5cc8542cce657df26de455b39b 100644 (file)
 #define _ASM_SN_IO_H
 
 #include <linux/config.h>
+#if defined (CONFIG_SGI_IP27)
+#include <asm/sn/sn0/hubio.h>
+#endif
 
-#ifdef CONFIG_SGI_IO
 
 #define IIO_ITTE_BASE          0x400160 /* base of translation table entries */
 #define IIO_ITTE(bigwin)       (IIO_ITTE_BASE + 8*(bigwin))
                        (_x) : \
                        (_x) - (HUB_WIDGET_ID_MIN-1)) << 3) )
 
-#if defined (CONFIG_SGI_IP27)
-#include <asm/sn/sn0/hubio.h>
-#endif
-
-#else /* CONFIG_SGI_IO */
-
-#include <asm/sn/sn0/addrs.h>
-
-#endif /* CONFIG_SGI_IO */
-
 #endif /* _ASM_SN_IO_H */
index a83acb78c3e15109fd7f40372a475d7607950c65..0e00dd474afcb2907baf29e4ea55a8e9b60e7432 100644 (file)
@@ -82,4 +82,8 @@
 #define SLOT_MIN_MEM_SIZE      (32*1024*1024)
 #endif
 
+#define CPUS_PER_NODE          2       /* CPUs on a single hub */
+#define CPUS_PER_NODE_SHFT     1       /* Bits to shift in the node number */
+#define CPUS_PER_SUBNODE       2       /* CPUs on a single hub PI */
+
 #endif /* _ASM_SN_SN0_ARCH_H */
index a17c0a0c911ef8fba63f52917374a16aa7aa99c0..8229c6e29a910ba7d614d1cdb5d63f1686182bda 100644 (file)
@@ -16,5 +16,6 @@ extern void install_ipi(void);
 extern void setup_replication_mask(int);
 extern void replicate_kernel_text(int);
 extern pfn_t node_getfirstfree(cnodeid_t);
+extern void mlreset(void);
 
 #endif /* __ASM_SN_SN_PRIVATE_H */
index 0b57b65f8f218dfe6ae3ec006a6c0b03adbc6086..d2575ae422f08a20c639c9e358a51a71eeafe1b7 100644 (file)
@@ -167,4 +167,28 @@ static inline void _raw_write_unlock(rwlock_t *rw)
        : "memory");
 }
 
+static inline int _raw_write_trylock(rwlock_t *rw)
+{
+       unsigned int tmp;
+       int ret;
+
+       __asm__ __volatile__(
+       ".set\tnoreorder\t\t\t# _raw_write_trylock\n"
+       "li\t%2, 0\n\t"
+       "1:\tll\t%1, %3\n\t"
+       "bnez\t%1, 2f\n\t"
+       "lui\t%1, 0x8000\n\t"
+       "sc\t%1, %0\n\t"
+       "beqz\t%1, 1b\n\t"
+       "sync\n\t"
+       "li\t%2, 1\n\t"
+       ".set\treorder\n"
+       "2:"
+       : "=m" (rw->lock), "=&r" (tmp), "=&r" (ret)
+       : "m" (rw->lock)
+       : "memory");
+
+       return ret;
+}
+
 #endif /* _ASM_SPINLOCK_H */
index e84aed10221bba0bd47584a78ad0aea7a2e928bc..626a8ab288e11fd19d38259c801919d2e1a23428 100644 (file)
                .endm
 #endif
 
-#ifdef CONFIG_PREEMPT
-               .macro  bump_lock_count
-               lw      t0, TI_PRE_COUNT($28)
-               addiu   t0, t0, 1
-               sw      t0, TI_PRE_COUNT($28)
-               .endm
-#else
-               .macro  bump_lock_count
-               .endm
-#endif
-
                .macro  SAVE_SOME
                .set    push
                .set    reorder
                LONG_S  $31, PT_R31(sp)
                ori     $28, sp, _THREAD_MASK
                xori    $28, _THREAD_MASK
-               bump_lock_count
                .set    pop
                .endm
 
index 7b18240f05864ef3d4309a41676c94d5f928bd7d..0440fb9f218044d504cdf18ee13ca8d836fbdd63 100644 (file)
@@ -1,15 +1 @@
-#ifndef __ASM_TOPOLOGY_H
-#define __ASM_TOPOLOGY_H
-
-#include <linux/config.h>
-
-#ifdef CONFIG_SGI_IP27
-
-#include <asm/mmzone.h>
-
-#define cpu_to_node(cpu)       (cputocnode(cpu))
-#endif
-
-#include <asm-generic/topology.h>
-
-#endif /* __ASM_TOPOLOGY_H */
+#include <topology.h>
index 2d259ea20d1f38e47205cb2314520c6204ec9a41..e143e4ec62728332c61159f78edf46d7fe5533d3 100644 (file)
@@ -581,6 +581,23 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
 
 #define __copy_in_user(to, from, n)    __copy_from_user(to, from, n)
 
+#define copy_in_user(to,from,n)                                                \
+({                                                                     \
+       void *__cu_to;                                                  \
+       const void *__cu_from;                                          \
+       long __cu_len;                                                  \
+                                                                       \
+       might_sleep();                                                  \
+       __cu_to = (to);                                                 \
+       __cu_from = (from);                                             \
+       __cu_len = (n);                                                 \
+       if (likely(access_ok(VERIFY_READ, __cu_from, __cu_len) &&       \
+                  access_ok(VERIFY_WRITE, __cu_to, __cu_len)))         \
+               __cu_len = __invoke_copy_from_user(__cu_to, __cu_from,  \
+                                                  __cu_len);           \
+       __cu_len;                                                       \
+})
+
 /*
  * __clear_user: - Zero a block of memory in user space, with less checking.
  * @to:   Destination address, in user space.
index df930271836c84bd390d9707996bab48cfb6a8a0..8fe42c70e98a1d28ad60237346c30890e9a05523 100644 (file)
@@ -917,7 +917,7 @@ type name(atype a, btype b, ctype c, dtype d) \
        return -1; \
 }
 
-#if (_MIPS_SIM == _MIPS_SIM_ABIN32)
+#if (_MIPS_SIM == _MIPS_SIM_ABI32)
 
 /*
  * Using those means your brain needs more than an oil change ;-)
@@ -985,9 +985,9 @@ type name(atype a, btype b, ctype c, dtype d, etype e, ftype f) \
        return -1; \
 }
 
-#endif /* (_MIPS_SIM == _MIPS_SIM_ABIN32) */
+#endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
 
-#if (_MIPS_SIM == _MIPS_SIM_NABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
 
 #define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
 type name (atype a,btype b,ctype c,dtype d,etype e) \
@@ -1043,13 +1043,13 @@ type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
        return -1; \
 }
 
-#endif /* (_MIPS_SIM == _MIPS_SIM_NABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
+#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
 
 #ifdef __KERNEL_SYSCALLS__
 
-#include <linux/linkage.h>
 #include <linux/compiler.h>
 #include <linux/types.h>
+#include <linux/linkage.h>
 #include <asm/ptrace.h>
 #include <asm/sim.h>
 
index 754b74aa07a976e55345e0bb189e11771fd16359..ea37b56fc66d3b5bdeec6adf8892235b530299f4 100644 (file)
@@ -1,17 +1,21 @@
 /*
- * FILE NAME
- *     include/asm-mips/vr41xx/e55.h
+ *  e55.h, Include file for CASIO CASSIOPEIA E-10/15/55/65.
  *
- * BRIEF MODULE DESCRIPTION
- *     Include file for CASIO CASSIOPEIA E-10/15/55/65.
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
- * Copyright 2002 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
  *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #ifndef __CASIO_E55_H
 #define __CASIO_E55_H
 #define VR41XX_ISA_MEM_BASE            0x10000000
 #define VR41XX_ISA_MEM_SIZE            0x04000000
 
-#define VR41XX_ISA_IO_BASE             0x14000000
-#define VR41XX_ISA_IO_SIZE             0x04000000
+/* VR41XX_ISA_IO_BASE includes offset from real base. */
+#define VR41XX_ISA_IO_BASE             0x1400c000
+#define VR41XX_ISA_IO_SIZE             0x03ff4000
+
+#define ISA_BUS_IO_BASE                        0
+#define ISA_BUS_IO_SIZE                        VR41XX_ISA_IO_SIZE
 
 #define IO_PORT_BASE                   KSEG1ADDR(VR41XX_ISA_IO_BASE)
-#define IO_PORT_RESOURCE_START         0
-#define IO_PORT_RESOURCE_END           VR41XX_ISA_IO_SIZE
-#define IO_MEM_RESOURCE_START          VR41XX_ISA_MEM_BASE
-#define IO_MEM_RESOURCE_END            (VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE)
+#define IO_PORT_RESOURCE_START         ISA_BUS_IO_BASE
+#define IO_PORT_RESOURCE_END           (ISA_BUS_IO_BASE + ISA_BUS_IO_SIZE - 1)
 
 #endif /* __CASIO_E55_H */
index f4ab4b029a9c9c0c3a269bf9db9006fedc28e9a9..8d2e1b6dfe567087ae6bfbf63ecc3503790a00f1 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (C) 2001, 2002 Paul Mundt
  * Copyright (C) 2002 MontaVista Software, Inc.
  * Copyright (C) 2002 TimeSys Corp.
- * Copyright (C) 2003 Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ * Copyright (C) 2003-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
  * 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
 /* VR4133 0x00000c84- */
 #define PRID_VR4133            0x00000c84
 
+/*
+ * Memory resource
+ */
+#define IO_MEM_RESOURCE_START  0UL
+#define IO_MEM_RESOURCE_END    0x1fffffffUL
+
 /*
  * Bus Control Uint
  */
-extern void vr41xx_bcu_init(void);
 extern unsigned long vr41xx_get_vtclock_frequency(void);
 extern unsigned long vr41xx_get_tclock_frequency(void);
 
 /*
  * Clock Mask Unit
  */
-extern void vr41xx_cmu_init(void);
-extern void vr41xx_clock_supply(unsigned int clock);
-extern void vr41xx_clock_mask(unsigned int clock);
-
-enum {
+typedef enum {
        PIU_CLOCK,
        SIU_CLOCK,
        AIU_CLOCK,
@@ -70,7 +71,10 @@ enum {
        CEU_CLOCK,
        ETHER0_CLOCK,
        ETHER1_CLOCK
-};
+} vr41xx_clock_t;
+
+extern void vr41xx_supply_clock(vr41xx_clock_t clock);
+extern void vr41xx_mask_clock(vr41xx_clock_t clock);
 
 /*
  * Interrupt Control Unit
@@ -129,14 +133,12 @@ enum {
 #define GIU_IRQ_LAST           GIU_IRQ(31)
 #define GIU_IRQ_TO_PIN(x)      ((x) - GIU_IRQ_BASE)    /* Pin 0-31 */
 
-extern void (*board_irq_init)(void);
 extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign);
 extern int vr41xx_cascade_irq(unsigned int irq, int (*get_irq_number)(int irq));
 
 /*
  * Power Management Unit
  */
-extern void vr41xx_pmu_init(void);
 
 /*
  * RTC
@@ -226,10 +228,4 @@ struct vr41xx_pci_address_map {
 
 extern void vr41xx_pciu_init(struct vr41xx_pci_address_map *map);
 
-/*
- * MISC
- */
-extern void vr41xx_time_init(void);
-extern void vr41xx_timer_setup(struct irqaction *irq);
-
 #endif /* __NEC_VR41XX_H */
index c7d27300370d0fb210d6c30c2ac4c7ce33a81d64..dfe01b43fb79bc6185ea8eb7fdc968b79653fa13 100644 (file)
@@ -1,17 +1,21 @@
 /*
- * FILE NAME
- *     include/asm-mips/vr41xx/workpad.h
+ *  workpad.h, Include file for IBM WorkPad z50.
  *
- * BRIEF MODULE DESCRIPTION
- *     Include file for IBM WorkPad z50.
+ *  Copyright (C) 2002-2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
  *
- * Copyright 2002 Yoichi Yuasa
- *                yuasa@hh.iij4u.or.jp
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
  *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #ifndef __IBM_WORKPAD_H
 #define __IBM_WORKPAD_H
 #define VR41XX_ISA_IO_BASE             0x15000000
 #define VR41XX_ISA_IO_SIZE             0x03000000
 
+#define ISA_BUS_IO_BASE                        0
+#define ISA_BUS_IO_SIZE                        VR41XX_ISA_IO_SIZE
+
 #define IO_PORT_BASE                   KSEG1ADDR(VR41XX_ISA_IO_BASE)
-#define IO_PORT_RESOURCE_START         0
-#define IO_PORT_RESOURCE_END           VR41XX_ISA_IO_SIZE
-#define IO_MEM_RESOURCE_START          VR41XX_ISA_MEM_BASE
-#define IO_MEM_RESOURCE_END            (VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE)
+#define IO_PORT_RESOURCE_START         ISA_BUS_IO_BASE
+#define IO_PORT_RESOURCE_END           (ISA_BUS_IO_BASE + ISA_BUS_IO_SIZE - 1)
 
 #endif /* __IBM_WORKPAD_H */
index 36f4ffc8bad8bbfb579ba8cfcfbbfb522022a60b..a6f5c06c70e32df7f34b946695cda65066d07487 100644 (file)
 #define TX49XX_ICACHE_INDEX_INV_WAR 1
 #endif
 
+/*
+ * On the RM9000 there is a problem which makes the CreateDirtyExclusive
+ * cache operation unusable on SMP systems.
+ */
+#if defined(CONFIG_MOMENCO_JAGUAR_ATX) || defined(CONFIG_PMC_YOSEMITE)
+#define  RM9000_CDEX_SMP_WAR           1
+#endif
+
 /*
  * Workarounds default to off
  */
 #ifndef TX49XX_ICACHE_INDEX_INV_WAR
 #define TX49XX_ICACHE_INDEX_INV_WAR    0
 #endif
+#ifndef RM9000_CDEX_SMP_WAR
+#define RM9000_CDEX_SMP_WAR            0
+#endif
 
 #endif /* _ASM_WAR_H */