]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] MIPS updates
authorRalf Bächle <ralf@linux-mips.org>
Wed, 1 Dec 2004 09:07:46 +0000 (01:07 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 1 Dec 2004 09:07:46 +0000 (01:07 -0800)
 o General updates of MIPS to 2.6.10-rc2
 o Remove the Baget platform due to lack of maintenance over several years.
   Some of the drivers remain and will be removed in a separate patch.
 o Remove the HP Laserjet platform.  No user reports ever and no patches from
   the original submitters made this port a neat hack - and a directory full
   of clutter.
 o SMP support for the PMC-Sierra.

Signed-Off-By: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
367 files changed:
arch/mips/Kconfig
arch/mips/Makefile
arch/mips/arc/identify.c
arch/mips/arc/misc.c
arch/mips/au1000/common/Makefile
arch/mips/au1000/common/au1xxx_irqmap.c
arch/mips/au1000/common/cputable.c
arch/mips/au1000/common/dbdma.c
arch/mips/au1000/common/dma.c
arch/mips/au1000/common/irq.c
arch/mips/au1000/common/pci.c
arch/mips/au1000/common/platform.c [new file with mode: 0644]
arch/mips/au1000/common/puts.c
arch/mips/au1000/common/reset.c
arch/mips/au1000/common/setup.c
arch/mips/au1000/common/time.c
arch/mips/au1000/common/usbdev.c
arch/mips/au1000/db1x00/board_setup.c
arch/mips/au1000/hydrogen3/board_setup.c
arch/mips/au1000/pb1000/board_setup.c
arch/mips/au1000/pb1100/board_setup.c
arch/mips/au1000/pb1100/irqmap.c
arch/mips/au1000/pb1500/board_setup.c
arch/mips/au1000/pb1550/board_setup.c
arch/mips/au1000/xxs1500/board_setup.c
arch/mips/baget/Makefile [deleted file]
arch/mips/baget/baget.c [deleted file]
arch/mips/baget/bagetIRQ.S [deleted file]
arch/mips/baget/balo.c [deleted file]
arch/mips/baget/balo_supp.S [deleted file]
arch/mips/baget/irq.c [deleted file]
arch/mips/baget/ld.script.balo [deleted file]
arch/mips/baget/print.c [deleted file]
arch/mips/baget/prom/Makefile [deleted file]
arch/mips/baget/prom/init.c [deleted file]
arch/mips/baget/reset.c [deleted file]
arch/mips/baget/setup.c [deleted file]
arch/mips/baget/time.c [deleted file]
arch/mips/boot/Makefile
arch/mips/boot/addinitrd.c
arch/mips/cobalt/irq.c
arch/mips/cobalt/setup.c
arch/mips/configs/atlas_defconfig
arch/mips/configs/bosporus_defconfig [deleted file]
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/db1550_defconfig [new file with mode: 0644]
arch/mips/configs/ddb5476_defconfig
arch/mips/configs/ddb5477_defconfig
arch/mips/configs/decstation_defconfig
arch/mips/configs/e55_defconfig
arch/mips/configs/ev64120_defconfig
arch/mips/configs/ev96100_defconfig
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 [deleted file]
arch/mips/configs/mpc30x_defconfig
arch/mips/configs/mtx1_defconfig [deleted file]
arch/mips/configs/ocelot_3_defconfig [new file with mode: 0644]
arch/mips/configs/ocelot_c_defconfig
arch/mips/configs/ocelot_defconfig
arch/mips/configs/ocelot_g_defconfig
arch/mips/configs/osprey_defconfig
arch/mips/configs/pb1000_defconfig [deleted file]
arch/mips/configs/pb1100_defconfig
arch/mips/configs/pb1500_defconfig
arch/mips/configs/pb1550_defconfig
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 [deleted file]
arch/mips/configs/yosemite_defconfig
arch/mips/ddb5xxx/common/Makefile
arch/mips/ddb5xxx/common/irq.c [deleted file]
arch/mips/ddb5xxx/ddb5074/irq.c
arch/mips/ddb5xxx/ddb5074/nile4_pic.c
arch/mips/ddb5xxx/ddb5074/setup.c
arch/mips/ddb5xxx/ddb5476/irq.c
arch/mips/ddb5xxx/ddb5476/setup.c
arch/mips/ddb5xxx/ddb5476/vrc5476_irq.c
arch/mips/ddb5xxx/ddb5477/irq.c
arch/mips/ddb5xxx/ddb5477/irq_5477.c
arch/mips/ddb5xxx/ddb5477/setup.c
arch/mips/dec/boot/decstation.c
arch/mips/dec/setup.c
arch/mips/defconfig
arch/mips/galileo-boards/ev96100/irq.c
arch/mips/gt64120/common/time.c
arch/mips/gt64120/ev64120/irq.c
arch/mips/gt64120/momenco_ocelot/dbg_io.c
arch/mips/gt64120/momenco_ocelot/irq.c
arch/mips/hp-lj/Makefile [deleted file]
arch/mips/hp-lj/asic.c [deleted file]
arch/mips/hp-lj/gdb_hook.c [deleted file]
arch/mips/hp-lj/init.c [deleted file]
arch/mips/hp-lj/int-handler.S [deleted file]
arch/mips/hp-lj/irq.c [deleted file]
arch/mips/hp-lj/setup.c [deleted file]
arch/mips/hp-lj/utils.c [deleted file]
arch/mips/hp-lj/utils.h [deleted file]
arch/mips/ite-boards/generic/irq.c
arch/mips/jazz/irq.c
arch/mips/jazz/jazzdma.c
arch/mips/jazz/reset.c
arch/mips/jmr3927/rbhma3100/irq.c
arch/mips/jmr3927/rbhma3100/setup.c
arch/mips/kernel/cpu-bugs64.c
arch/mips/kernel/cpu-probe.c
arch/mips/kernel/entry.S
arch/mips/kernel/gdb-stub.c
arch/mips/kernel/genex.S
arch/mips/kernel/head.S
arch/mips/kernel/i8259.c
arch/mips/kernel/ioctl32.c
arch/mips/kernel/irixelf.c
arch/mips/kernel/irixsig.c
arch/mips/kernel/irq-msc01.c [new file with mode: 0644]
arch/mips/kernel/irq-mv6434x.c
arch/mips/kernel/irq.c
arch/mips/kernel/process.c
arch/mips/kernel/r4k_switch.S
arch/mips/kernel/scall32-o32.S
arch/mips/kernel/scall64-64.S
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-o32.S
arch/mips/kernel/semaphore.c
arch/mips/kernel/setup.c
arch/mips/kernel/signal.c
arch/mips/kernel/signal32.c
arch/mips/kernel/smp.c
arch/mips/kernel/syscall.c
arch/mips/kernel/sysirix.c
arch/mips/kernel/time.c
arch/mips/kernel/traps.c
arch/mips/kernel/vmlinux.lds.S
arch/mips/lasat/interrupt.c
arch/mips/lasat/setup.c
arch/mips/lib-64/dump_tlb.c
arch/mips/lib/csum_partial_copy.c
arch/mips/lib/strlen_user.S
arch/mips/lib/strnlen_user.S
arch/mips/math-emu/cp1emu.c
arch/mips/mips-boards/atlas/atlas_int.c
arch/mips/mips-boards/atlas/atlas_setup.c
arch/mips/mips-boards/generic/init.c
arch/mips/mips-boards/generic/memory.c
arch/mips/mips-boards/generic/pci.c
arch/mips/mips-boards/malta/malta_int.c
arch/mips/mips-boards/malta/malta_setup.c
arch/mips/mips-boards/sead/sead_int.c
arch/mips/mips-boards/sead/sead_setup.c
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/ioremap.c
arch/mips/mm/pg-r4k.c
arch/mips/mm/pgtable-64.c
arch/mips/mm/tlb-andes.c
arch/mips/mm/tlb-r3k.c
arch/mips/mm/tlb-r4k.c
arch/mips/mm/tlb-r8k.c
arch/mips/mm/tlb-sb1.c
arch/mips/mm/tlbex.c [new file with mode: 0644]
arch/mips/mm/tlbex32-mips32.S [new file with mode: 0644]
arch/mips/mm/tlbex32-r3k.S
arch/mips/mm/tlbex32-r4k.S
arch/mips/mm/tlbex64-r4k.S [deleted file]
arch/mips/momentum/jaguar_atx/irq.c
arch/mips/momentum/jaguar_atx/setup.c
arch/mips/momentum/ocelot_3/Makefile [new file with mode: 0644]
arch/mips/momentum/ocelot_3/int-handler.S [new file with mode: 0644]
arch/mips/momentum/ocelot_3/irq.c [new file with mode: 0644]
arch/mips/momentum/ocelot_3/ocelot_3_fpga.h [new file with mode: 0644]
arch/mips/momentum/ocelot_3/prom.c [new file with mode: 0644]
arch/mips/momentum/ocelot_3/reset.c [new file with mode: 0644]
arch/mips/momentum/ocelot_3/setup.c [new file with mode: 0644]
arch/mips/momentum/ocelot_c/dbg_io.c
arch/mips/momentum/ocelot_c/irq.c
arch/mips/momentum/ocelot_g/dbg_io.c
arch/mips/momentum/ocelot_g/gt-irq.c
arch/mips/momentum/ocelot_g/irq.c
arch/mips/pci/Makefile
arch/mips/pci/fixup-atlas.c
arch/mips/pci/fixup-au1000.c
arch/mips/pci/fixup-capcella.c
arch/mips/pci/fixup-cobalt.c
arch/mips/pci/fixup-ddb5074.c
arch/mips/pci/fixup-ddb5477.c
arch/mips/pci/fixup-ev96100.c
arch/mips/pci/fixup-ip32.c
arch/mips/pci/fixup-ite8172g.c
arch/mips/pci/fixup-ivr.c
arch/mips/pci/fixup-jaguar.c
arch/mips/pci/fixup-jmr3927.c
arch/mips/pci/fixup-lasat.c [deleted file]
arch/mips/pci/fixup-malta.c
arch/mips/pci/fixup-mpc30x.c
arch/mips/pci/fixup-ocelot-c.c
arch/mips/pci/fixup-ocelot-g.c
arch/mips/pci/fixup-ocelot3.c [new file with mode: 0644]
arch/mips/pci/fixup-rbtx4927.c
arch/mips/pci/fixup-sni.c
arch/mips/pci/fixup-tb0219.c
arch/mips/pci/fixup-tb0226.c
arch/mips/pci/fixup-yosemite.c
arch/mips/pci/ops-au1000.c
arch/mips/pci/ops-it8172.c
arch/mips/pci/ops-titan.c
arch/mips/pci/ops-tx3927.c
arch/mips/pci/ops-tx4927.c
arch/mips/pci/pci-ddb5074.c
arch/mips/pci/pci-ddb5476.c
arch/mips/pci/pci-ddb5477.c
arch/mips/pci/pci-ev96100.c
arch/mips/pci/pci-hplj.c [deleted file]
arch/mips/pci/pci-ip27.c
arch/mips/pci/pci-ip32.c
arch/mips/pci/pci-jmr3927.c
arch/mips/pci/pci-lasat.c
arch/mips/pci/pci-ocelot-c.c
arch/mips/pci/pci-ocelot-g.c
arch/mips/pci/pci-sb1250.c
arch/mips/pci/pci-vr41xx.c
arch/mips/pci/pci-yosemite.c
arch/mips/pci/pci.c
arch/mips/pmc-sierra/yosemite/Makefile
arch/mips/pmc-sierra/yosemite/dbg_io.c
arch/mips/pmc-sierra/yosemite/irq-handler.S
arch/mips/pmc-sierra/yosemite/irq.c
arch/mips/pmc-sierra/yosemite/prom.c
arch/mips/pmc-sierra/yosemite/py-console.c
arch/mips/pmc-sierra/yosemite/setup.c
arch/mips/pmc-sierra/yosemite/smp.c
arch/mips/ramdisk/Makefile [deleted file]
arch/mips/ramdisk/ld.script [deleted file]
arch/mips/sgi-ip22/ip22-berr.c
arch/mips/sgi-ip22/ip22-int.c
arch/mips/sgi-ip22/ip22-setup.c
arch/mips/sgi-ip27/ip27-hubio.c
arch/mips/sgi-ip27/ip27-init.c
arch/mips/sgi-ip27/ip27-irq.c
arch/mips/sgi-ip27/ip27-klnuma.c
arch/mips/sgi-ip27/ip27-memory.c
arch/mips/sgi-ip27/ip27-smp.c
arch/mips/sgi-ip32/crime.c
arch/mips/sgi-ip32/ip32-irq.c
arch/mips/sgi-ip32/ip32-reset.c
arch/mips/sgi-ip32/ip32-setup.c
arch/mips/sibyte/cfe/setup.c
arch/mips/sibyte/cfe/smp.c
arch/mips/sibyte/sb1250/irq.c
arch/mips/sibyte/sb1250/irq_handler.S
arch/mips/sibyte/sb1250/prom.c
arch/mips/sibyte/swarm/setup.c
arch/mips/sni/irq.c
arch/mips/sni/setup.c
arch/mips/tx4927/common/Makefile
arch/mips/tx4927/common/tx4927_irq.c
arch/mips/tx4927/common/tx4927_setup.c
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c
arch/mips/vr4181/common/irq.c
arch/mips/vr41xx/common/icu.c
include/asm-mips/addrspace.h
include/asm-mips/asmmacro-32.h
include/asm-mips/asmmacro-64.h
include/asm-mips/atomic.h
include/asm-mips/baget/baget.h [deleted file]
include/asm-mips/baget/vac.h [deleted file]
include/asm-mips/baget/vic.h [deleted file]
include/asm-mips/bitops.h
include/asm-mips/bootinfo.h
include/asm-mips/checksum.h
include/asm-mips/compat.h
include/asm-mips/compiler.h [new file with mode: 0644]
include/asm-mips/cpu-features.h
include/asm-mips/cpu-info.h [new file with mode: 0644]
include/asm-mips/debug.h
include/asm-mips/dec/serial.h [new file with mode: 0644]
include/asm-mips/delay.h
include/asm-mips/div64.h
include/asm-mips/dma-mapping.h
include/asm-mips/fixmap.h
include/asm-mips/gdb-stub.h
include/asm-mips/hardirq.h
include/asm-mips/hazards.h
include/asm-mips/hw_irq.h
include/asm-mips/ide.h
include/asm-mips/interrupt.h [new file with mode: 0644]
include/asm-mips/io.h
include/asm-mips/ip32/crime.h
include/asm-mips/ip32/mace.h
include/asm-mips/irq.h
include/asm-mips/jazz.h
include/asm-mips/mach-atlas/mc146818rtc.h
include/asm-mips/mach-au1x00/au1000.h
include/asm-mips/mach-db1x00/db1x00.h
include/asm-mips/mach-generic/floppy.h
include/asm-mips/mach-generic/ide.h
include/asm-mips/mach-generic/mangle-port.h
include/asm-mips/mach-generic/spaces.h
include/asm-mips/mach-ip22/spaces.h [new file with mode: 0644]
include/asm-mips/mach-ip27/mangle-port.h
include/asm-mips/mach-ip27/mmzone.h
include/asm-mips/mach-ip27/spaces.h
include/asm-mips/mach-ip27/topology.h
include/asm-mips/mach-ip32/mangle-port.h
include/asm-mips/mach-ip32/spaces.h [new file with mode: 0644]
include/asm-mips/mach-ja/cpu-feature-overrides.h
include/asm-mips/mach-mips/cpu-feature-overrides.h [new file with mode: 0644]
include/asm-mips/mach-ocelot3/cpu-feature-overrides.h [new file with mode: 0644]
include/asm-mips/mach-sibyte/cpu-feature-overrides.h [new file with mode: 0644]
include/asm-mips/mach-yosemite/cpu-feature-overrides.h
include/asm-mips/marvell.h
include/asm-mips/mipsregs.h
include/asm-mips/mmu_context.h
include/asm-mips/mmzone.h
include/asm-mips/msc01_ic.h [new file with mode: 0644]
include/asm-mips/numnodes.h
include/asm-mips/page.h
include/asm-mips/pci.h
include/asm-mips/pci/bridge.h
include/asm-mips/pci_channel.h [deleted file]
include/asm-mips/pgtable-32.h
include/asm-mips/pgtable-64.h
include/asm-mips/pgtable-bits.h
include/asm-mips/pgtable.h
include/asm-mips/posix_types.h
include/asm-mips/processor.h
include/asm-mips/ptrace.h
include/asm-mips/r4kcache.h
include/asm-mips/serial.h
include/asm-mips/sgi/ioc.h
include/asm-mips/sgiarcs.h
include/asm-mips/siginfo.h
include/asm-mips/sim.h
include/asm-mips/smp.h
include/asm-mips/sn/hub.h
include/asm-mips/sn/sn_private.h
include/asm-mips/socket.h
include/asm-mips/spinlock.h
include/asm-mips/stackframe.h
include/asm-mips/statfs.h
include/asm-mips/system.h
include/asm-mips/thread_info.h
include/asm-mips/titan_dep.h
include/asm-mips/tx4927/smsc_fdc37m81x.h [new file with mode: 0644]
include/asm-mips/tx4927/tx4927.h
include/asm-mips/uaccess.h
include/asm-mips/unistd.h
include/asm-mips/war.h

index ecad69906ff8b59915e909b0112ea65fcf4b2de5..8c253f431c9a3b7f0b335eeb2e700c7b7cf3a5a1 100644 (file)
@@ -11,7 +11,7 @@ config MIPS64
          only select this option if you have hardware that actually has a
          64-bit processor and if your application will actually benefit from
          64-bit processing, otherwise say N.  You must say Y for kernels for
-         SGI IP27 (Origin 200 and 2000).  If in doubt say N.
+         SGI IP27 (Origin 200 and 2000) and SGI IP32 (O2).  If in doubt say N.
 
 config 64BIT
        def_bool MIPS64
@@ -66,14 +66,6 @@ config OLIVETTI_M700
          the MIPS architecture, check out the Linux/MIPS FAQ on the WWW at
          <http://www.linux-mips.org/>.
 
-config BAGET_MIPS
-       bool "Support for BAGET MIPS series (EXPERIMENTAL)"
-       depends on MIPS32 && EXPERIMENTAL
-       help
-         This enables support for the Baget, a Russian embedded system.  For
-         more details about the Baget see the Linux/MIPS FAQ on
-         <http://www.linux-mips.org/>.
-
 config MACH_VR41XX
        bool "Support for NEC VR41XX-based machines"
 
@@ -146,6 +138,7 @@ config TOSHIBA_JMR3927
        depends on MIPS32
        select DMA_NONCOHERENT
        select HW_HAS_PCI
+       select SWAP_IO_SPACE
 
 config MIPS_COBALT
        bool "Support for Cobalt Server (EXPERIMENTAL)"
@@ -198,6 +191,7 @@ config MIPS_EV96100
        select IRQ_CPU
        select MIPS_GT96100
        select RM7000_CPU_SCACHE
+       select SWAP_IO_SPACE
        help
          This is an evaluation board based on the Galileo GT-96100 LAN/WAN
          communications controllers containing a MIPS R5000 compatible core
@@ -237,13 +231,6 @@ config LASAT_SYSCTL
        bool "LASAT sysctl interface"
        depends on LASAT
 
-config HP_LASERJET
-       bool "Support for Hewlett Packard LaserJet board"
-       depends on BROKEN
-       select DMA_NONCOHERENT
-       select HW_HAS_PCI
-       select IRQ_CPU
-
 config MIPS_ITE8172
        bool "Support for ITE 8172G board"
        select DMA_NONCOHERENT
@@ -268,6 +255,7 @@ config MIPS_ATLAS
        bool "Support for MIPS Atlas board"
        select DMA_NONCOHERENT
        select HW_HAS_PCI
+       select SWAP_IO_SPACE
        help
          This enables support for the QED R5231-based MIPS Atlas evaluation
          board.
@@ -277,6 +265,7 @@ config MIPS_MALTA
        select HAVE_STD_PC_SERIAL_PORT
        select DMA_NONCOHERENT
        select HW_HAS_PCI
+       select SWAP_IO_SPACE
        help
          This enables support for the VR5000-based MIPS Malta evaluation
          board.
@@ -294,6 +283,7 @@ config MOMENCO_OCELOT
        select IRQ_CPU
        select IRQ_CPU_RM7K
        select RM7000_CPU_SCACHE
+       select SWAP_IO_SPACE
        help
          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
@@ -306,6 +296,7 @@ config MOMENCO_OCELOT_G
        select IRQ_CPU_RM7K
        select PCI_MARVELL
        select RM7000_CPU_SCACHE
+       select SWAP_IO_SPACE
        help
          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
@@ -318,10 +309,25 @@ config MOMENCO_OCELOT_C
        select IRQ_MV64340
        select PCI_MARVELL
        select RM7000_CPU_SCACHE
+       select SWAP_IO_SPACE
        help
          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
 
+config MOMENCO_OCELOT_3
+       bool "Support for Momentum Ocelot-3 board"
+       select DMA_NONCOHERENT
+       select HW_HAS_PCI
+       select IRQ_CPU
+       select IRQ_CPU_RM7K
+       select IRQ_MV64340
+       select PCI_MARVELL
+       select RM7000_CPU_SCACHE
+       select SWAP_IO_SPACE
+       help
+         The Ocelot-3 is based off Discovery III System Controller and
+         PMC-Sierra Rm79000 core.
+
 config MOMENCO_JAGUAR_ATX
        bool "Support for Momentum Jaguar board"
        select DMA_NONCOHERENT
@@ -332,6 +338,7 @@ config MOMENCO_JAGUAR_ATX
        select LIMITED_DMA
        select PCI_MARVELL
        select RM7000_CPU_SCACHE
+       select SWAP_IO_SPACE
        help
          The Jaguar ATX is a MIPS-based Single Board Computer (SBC) made by
          Momentum Computer <http://www.momenco.com/>.
@@ -349,6 +356,7 @@ config PMC_YOSEMITE
        select HW_HAS_PCI
        select IRQ_CPU
        select IRQ_CPU_RM7K
+       select SWAP_IO_SPACE
        help
          Yosemite is an evaluation board for the RM9000x2 processor
          manufactured by PMC-Sierra
@@ -411,6 +419,7 @@ config SGI_IP22
        select DMA_NONCOHERENT
        select IP22_CPU_SCACHE
        select IRQ_CPU
+       select SWAP_IO_SPACE
        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
@@ -421,6 +430,7 @@ config SGI_IP27
        depends on MIPS64
        select DMA_IP27
        select HW_HAS_PCI
+       select PCI_DOMAINS
        help
          This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
          workstations.  To compile a Linux kernel that runs on these, say Y
@@ -462,9 +472,9 @@ config MAPPED_KERNEL
        bool "Mapped kernel support"
        depends on SGI_IP27
        help
-         Change the way a Linux kernel is loaded unto memory on a MIPS64
+         Change the way a Linux kernel is loaded into memory on a MIPS64
          machine.  This is required in order to support text replication and
-         NUMA.  If you need to undersatand it, read the source code.
+         NUMA.  If you need to understand it, read the source code.
 
 config REPLICATE_KTEXT
        bool "Kernel text replication support"
@@ -483,7 +493,7 @@ config REPLICATE_EXHANDLERS
 
 config SGI_IP32
        bool "Support for SGI IP32 (O2) (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
+       depends on MIPS64 && EXPERIMENTAL
        select DMA_NONCOHERENT
        select HW_HAS_PCI
        select R5000_CPU_SCACHE
@@ -529,24 +539,27 @@ config MIPS_PB1000
        depends on SOC_AU1000
        select DMA_NONCOHERENT
        select HW_HAS_PCI
+       select SWAP_IO_SPACE
 
 config MIPS_PB1100
        bool "PB1100 board"
        depends on SOC_AU1100
        select DMA_NONCOHERENT
        select HW_HAS_PCI
+       select SWAP_IO_SPACE
 
 config MIPS_PB1500
        bool "PB1500 board"
        depends on SOC_AU1500
-       select DMA_NONCOHERENT
+       select DMA_COHERENT
        select HW_HAS_PCI
 
 config MIPS_PB1550
        bool "PB1550 board"
        depends on SOC_AU1550
-       select DMA_NONCOHERENT
+       select DMA_COHERENT
        select HW_HAS_PCI
+       select MIPS_DISABLE_OBSOLETE_IDE
 
 config MIPS_DB1000
        bool "DB1000 board"
@@ -562,13 +575,16 @@ config MIPS_DB1100
 config MIPS_DB1500
        bool "DB1500 board"
        depends on SOC_AU1500
-       select DMA_NONCOHERENT
+       select DMA_COHERENT
        select HW_HAS_PCI
+       select MIPS_DISABLE_OBSOLETE_IDE
 
 config MIPS_DB1550
        bool "DB1550 board"
        depends on SOC_AU1550
        select HW_HAS_PCI
+       select DMA_COHERENT
+       select MIPS_DISABLE_OBSOLETE_IDE
 
 config MIPS_BOSPORUS
        bool "Bosporus board"
@@ -596,6 +612,7 @@ config SIBYTE_SB1xxx_SOC
        bool "Support for Broadcom BCM1xxx SOCs (EXPERIMENTAL)"
        depends on EXPERIMENTAL
        select DMA_COHERENT
+       select SWAP_IO_SPACE
 
 choice
        prompt "BCM1xxx SOC-based board"
@@ -817,7 +834,16 @@ config TOSHIBA_RBTX4927
        depends on MIPS32
        select DMA_NONCOHERENT
        select HW_HAS_PCI
+       select I8259
        select ISA
+       select SWAP_IO_SPACE
+       help
+         This Toshiba board is based on the TX4927 processor. Say Y here to
+         support this machine type
+
+config TOSHIBA_FPCIB0
+       bool "FPCIB0 Backplane Support"
+       depends on TOSHIBA_RBTX4927
 
 config RWSEM_GENERIC_SPINLOCK
        bool
@@ -881,10 +907,13 @@ config MIPS_NILE4
        depends on LASAT
        default y
 
+config MIPS_DISABLE_OBSOLETE_IDE
+       bool
+
 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 || SOC_AU1X00 || NEC_OSPREY || 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
+       default y if ACER_PICA_61 || CASIO_E55 || DDB5074 || DDB5476 || DDB5477 || MACH_DECSTATION || IBM_WORKPAD || LASAT || MIPS_COBALT || MIPS_ITE8172 || MIPS_IVR || SOC_AU1X00 || NEC_OSPREY || OLIVETTI_M700 || SNI_RM200_PCI || VICTOR_MPC30X || ZAO_CAPCELLA
+       default n if 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
          byte order. These modes require different kernels. Say Y if your
@@ -934,8 +963,6 @@ config ITE_BOARD_GEN
 
 config SWAP_IO_SPACE
        bool
-       depends on TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || SIBYTE_SB1xxx_SOC || SGI_IP22 || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_OCELOT || MOMENCO_JAGUAR_ATX || MIPS_MALTA || MIPS_ATLAS || MIPS_EV96100 || MIPS_PB1100 || MIPS_PB1000
-       default y
 
 #
 # Unfortunately not all GT64120 systems run the chip at the same clock.
@@ -984,7 +1011,7 @@ config IT8712
 
 config BOOT_ELF32
        bool
-       depends on MACH_DECSTATION || MIPS_ATLAS || MIPS_MALTA || MOMENCO_JAGUAR_ATX || SIBYTE_SB1xxx_SOC || SGI_IP32 || SGI_IP22 || SNI_RM200_PCI
+       depends on MACH_DECSTATION || MIPS_ATLAS || MIPS_MALTA || MOMENCO_JAGUAR_ATX || MOMENCO_OCELOT_3 || SIBYTE_SB1xxx_SOC || SGI_IP32 || SGI_IP22 || SNI_RM200_PCI
        default y
 
 config MIPS_L1_CACHE_SHIFT
@@ -1033,11 +1060,6 @@ config FB
          (e.g. an accelerated X server) and that are not frame buffer
          device-aware may cause unexpected results. If unsure, say N.
 
-config FB_G364
-       bool
-       depends on MIPS_MAGNUM_4000 || OLIVETTI_M700
-       default y
-
 config HAVE_STD_PC_SERIAL_PORT
        bool
 
@@ -1156,9 +1178,9 @@ config CPU_R6000
          processors are extremly rare and the support for them is incomplete.
 
 config CPU_NEVADA
-       bool "R52xx"
+       bool "RM52xx"
        help
-         MIPS Technologies R52x0-series ("Nevada") processors.
+         QED / PMC-Sierra RM52xx-series ("Nevada") processors.
 
 config CPU_R8000
        bool "R8000"
@@ -1333,7 +1355,7 @@ config CPU_HAS_SYNC
 #
 config HIGHMEM
        bool "High Memory Support"
-       depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(BAGET_MIPS || MACH_DECSTATION || MOMENCO_JAGUAR_ATX)
+       depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(MACH_DECSTATION || MOMENCO_JAGUAR_ATX)
 
 config SMP
        bool "Multi-Processing support"
@@ -1420,6 +1442,10 @@ config PCI
          information about which PCI hardware does work under Linux and which
          doesn't.
 
+config PCI_DOMAINS
+       bool
+       depends on PCI
+
 source "drivers/pci/Kconfig"
 
 #
@@ -1486,9 +1512,24 @@ config TRAD_SIGNALS
        bool
        default y if MIPS32
 
+config BUILD_ELF64
+       bool "Use 64-bit ELF format for building"
+       depends on MIPS64
+       help
+         A 64-bit kernel is usually built using the 64-bit ELF binary object
+         format as it's one that allows arbitrary 64-bit constructs.  For
+         kernels that are loaded within the KSEG compatibility segments the
+         32-bit ELF format can optionally be used resulting in a somewhat
+         smaller binary, but this option is not explicitly supported by the
+         toolchain and since binutils 2.14 it does not even work at all.
+
+         Say Y to use the 64-bit format or N to use the 32-bit one.
+
+         If unsure say Y.
+
 config BINFMT_IRIX
        bool "Include IRIX binary compatibility"
-       depends on !CPU_LITTLE_ENDIAN && MIPS32
+       depends on !CPU_LITTLE_ENDIAN && MIPS32 && BROKEN
 
 config MIPS32_COMPAT
        bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
@@ -1534,24 +1575,6 @@ config PM
 
 endmenu
 
-menu "MIPS initrd options"
-       depends on BLK_DEV_INITRD
-
-config EMBEDDED_RAMDISK
-       bool "Embed root filesystem ramdisk into the kernel"
-
-config EMBEDDED_RAMDISK_IMAGE
-       string "Filename of gziped ramdisk image"
-       depends on EMBEDDED_RAMDISK
-       default "ramdisk.gz"
-       help
-         This is the filename of the ramdisk image to be built into the
-         kernel.  Relative pathnames are relative to arch/mips/ramdisk/.
-         The ramdisk image is not part of the kernel distribution; you must
-         provide one yourself.
-
-endmenu
-
 source "drivers/Kconfig"
 
 source "fs/Kconfig"
@@ -1563,3 +1586,14 @@ source "security/Kconfig"
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+#
+# Use the generic interrupt handling code in kernel/irq/:
+#
+config GENERIC_HARDIRQS
+       bool
+       default y
+
+config GENERIC_IRQ_PROBE
+       bool
+       default y
index 8340031df7f418771fa41154e35128fd96991b5a..d90281aceaa1f868bc910fba178efb6f6689f2e3 100644 (file)
@@ -5,13 +5,19 @@
 #
 # Copyright (C) 1994, 95, 96, 2003 by Ralf Baechle
 # DECStation modifications by Paul M. Antoine, 1996
-# Copyright (C) 2002, 2003  Maciej W. Rozycki
+# Copyright (C) 2002, 2003, 2004  Maciej W. Rozycki
 #
 # This file is included by the global makefile so that you can add your own
 # architecture-specific flags and dependencies. Remember to do have actions
 # for "archclean" cleaning up for this architecture.
 #
 
+as-option = $(shell if $(CC) $(CFLAGS) $(1) -Wa,-Z -c -o /dev/null \
+            -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \
+            else echo "$(2)"; fi ;)
+
+cflags-y :=
+
 #
 # Select the object file format to substitute into the linker script.
 #
@@ -20,22 +26,24 @@ ifdef CONFIG_CPU_LITTLE_ENDIAN
 64bit-tool-prefix      = mips64el-linux-
 32bit-bfd              = elf32-tradlittlemips
 64bit-bfd              = elf64-tradlittlemips
+32bit-emul             = elf32ltsmip
+64bit-emul             = elf64ltsmip
 else
 32bit-tool-prefix      = mips-linux-
 64bit-tool-prefix      = mips64-linux-
 32bit-bfd              = elf32-tradbigmips
 64bit-bfd              = elf64-tradbigmips
+32bit-emul             = elf32btsmip
+64bit-emul             = elf64btsmip
 endif
 
 ifdef CONFIG_MIPS32
 gcc-abi                        = 32
-gas-abi                        = 32
 tool-prefix            = $(32bit-tool-prefix)
 UTS_MACHINE            := mips
 endif
 ifdef CONFIG_MIPS64
 gcc-abi                        = 64
-gas-abi                        = 32
 tool-prefix            = $(64bit-tool-prefix)
 UTS_MACHINE            := mips64
 endif
@@ -44,6 +52,20 @@ ifdef CONFIG_CROSSCOMPILE
 CROSS_COMPILE          := $(tool-prefix)
 endif
 
+ifdef CONFIG_BUILD_ELF64
+gas-abi                        = 64
+ld-emul                        = $(64bit-emul)
+vmlinux-32             = vmlinux.32
+vmlinux-64             = vmlinux
+else
+gas-abi                        = 32
+ld-emul                        = $(32bit-emul)
+vmlinux-32             = vmlinux
+vmlinux-64             = vmlinux.64
+
+cflags-$(CONFIG_MIPS64)        += $(call cc-option,-mno-explicit-relocs)
+endif
+
 #
 # GCC uses -G 0 -mabicalls -fpic as default.  We don't want PIC in the kernel
 # code since it only slows down the whole thing.  At some point we might make
@@ -54,7 +76,7 @@ endif
 # machines may also.  Since BFD is incredibly buggy with respect to
 # crossformat linking we rely on the elf2ecoff tool for format conversion.
 #
-cflags-y                       := -I $(TOPDIR)/include/asm/gcc
+cflags-y                       += -I $(TOPDIR)/include/asm/gcc
 cflags-y                       += -G 0 -mno-abicalls -fno-pic -pipe
 cflags-y                       += $(call cc-option, -finline-limit=100000)
 LDFLAGS_vmlinux                        += -G 0 -static -n
@@ -141,6 +163,10 @@ cflags-$(CONFIG_CPU_R4X00) += \
                        $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \
                        -Wa,--trap
 
+cflags-$(CONFIG_CPU_TX49XX)    += \
+                       $(call set_gccflags,r4600,mips3,r4600,mips3,mips2)  \
+                       -Wa,--trap
+
 cflags-$(CONFIG_CPU_MIPS32)    += \
                        $(call set_gccflags,mips32,mips32,r4600,mips3,mips2) \
                        -Wa,--trap
@@ -188,14 +214,6 @@ MODFLAGS   += -msb1-pass1-workarounds
 endif
 endif
 
-#
-# ramdisk/initrd support
-# You need a compressed ramdisk image, named
-# CONFIG_EMBEDDED_RAMDISK_IMAGE. Relative pathnames 
-# are relative to arch/mips/ramdisk/.
-#
-core-$(CONFIG_EMBEDDED_RAMDISK)        += arch/mips/ramdisk/
-
 #
 # Firmware support
 #
@@ -211,7 +229,7 @@ libs-$(CONFIG_SIBYTE_CFE)   += arch/mips/sibyte/cfe/
 #
 core-$(CONFIG_MACH_JAZZ)       += arch/mips/jazz/
 cflags-$(CONFIG_MACH_JAZZ)     += -Iinclude/asm-mips/mach-jazz
-load-$(CONFIG_MACH_JAZZ)       += 0x80080000
+load-$(CONFIG_MACH_JAZZ)       += 0xffffffff80080000
 
 #
 # Common Alchemy Au1x00 stuff
@@ -224,87 +242,88 @@ cflags-$(CONFIG_SOC_AU1X00)       += -Iinclude/asm-mips/mach-au1x00
 #
 libs-$(CONFIG_MIPS_PB1000)     += arch/mips/au1000/pb1000/
 cflags-$(CONFIG_MIPS_PB1000)   += -Iinclude/asm-mips/mach-pb1x00
-load-$(CONFIG_MIPS_PB1000)     += 0x80100000
+load-$(CONFIG_MIPS_PB1000)     += 0xffffffff80100000
 
 #
 # AMD Alchemy Pb1100 eval board
 #
 libs-$(CONFIG_MIPS_PB1100)     += arch/mips/au1000/pb1100/
 cflags-$(CONFIG_MIPS_PB1100)   += -Iinclude/asm-mips/mach-pb1x00
-load-$(CONFIG_MIPS_PB1100)     += 0x80100000
+load-$(CONFIG_MIPS_PB1100)     += 0xffffffff80100000
 
 #
 # AMD Alchemy Pb1500 eval board
 #
 libs-$(CONFIG_MIPS_PB1500)     += arch/mips/au1000/pb1500/
 cflags-$(CONFIG_MIPS_PB1500)   += -Iinclude/asm-mips/mach-pb1x00
-load-$(CONFIG_MIPS_PB1500)     += 0x80100000
+load-$(CONFIG_MIPS_PB1500)     += 0xffffffff80100000
 
 #
 # 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
+load-$(CONFIG_MIPS_PB1550)     += 0xffffffff80100000
 
 #
 # AMD Alchemy Db1000 eval board
 #
 libs-$(CONFIG_MIPS_DB1000)     += arch/mips/au1000/db1x00/
 cflags-$(CONFIG_MIPS_DB1000)   += -Iinclude/asm-mips/mach-db1x00
-load-$(CONFIG_MIPS_DB1000)     += 0x80100000
+load-$(CONFIG_MIPS_DB1000)     += 0xffffffff80100000
 
 #
 # AMD Alchemy Db1100 eval board
 #
 libs-$(CONFIG_MIPS_DB1100)     += arch/mips/au1000/db1x00/
 cflags-$(CONFIG_MIPS_DB1100)   += -Iinclude/asm-mips/mach-db1x00
-load-$(CONFIG_MIPS_DB1100)     += 0x80100000
+load-$(CONFIG_MIPS_DB1100)     += 0xffffffff80100000
 
 #
 # AMD Alchemy Db1500 eval board
 #
 libs-$(CONFIG_MIPS_DB1500)     += arch/mips/au1000/db1x00/
 cflags-$(CONFIG_MIPS_DB1500)   += -Iinclude/asm-mips/mach-db1x00
-load-$(CONFIG_MIPS_DB1500)     += 0x80100000
+load-$(CONFIG_MIPS_DB1500)     += 0xffffffff80100000
+
+#
+# AMD Alchemy Db1550 eval board
+#
+libs-$(CONFIG_MIPS_DB1550)     += arch/mips/au1000/db1x00/
+cflags-$(CONFIG_MIPS_DB1550)   += -Iinclude/asm-mips/mach-db1x00
+load-$(CONFIG_MIPS_DB1550)     += 0xffffffff80100000
 
 #
 # AMD Alchemy Bosporus eval board
 #
 libs-$(CONFIG_MIPS_BOSPORUS)   += arch/mips/au1000/db1x00/
 cflags-$(CONFIG_MIPS_BOSPORUS) += -Iinclude/asm-mips/mach-db1x00
-load-$(CONFIG_MIPS_BOSPORUS)   += 0x80100000
+load-$(CONFIG_MIPS_BOSPORUS)   += 0xffffffff80100000
 
 #
 # AMD Alchemy Mirage eval board
 #
 libs-$(CONFIG_MIPS_MIRAGE)     += arch/mips/au1000/db1x00/
 cflags-$(CONFIG_MIPS_MIRAGE)   += -Iinclude/asm-mips/mach-db1x00
-load-$(CONFIG_MIPS_MIRAGE)     += 0x80100000
+load-$(CONFIG_MIPS_MIRAGE)     += 0xffffffff80100000
 
 #
 # 4G-Systems eval board
 #
 libs-$(CONFIG_MIPS_MTX1)       += arch/mips/au1000/mtx-1/
-load-$(CONFIG_MIPS_MTX1)       += 0x80100000
+load-$(CONFIG_MIPS_MTX1)       += 0xffffffff80100000
 
 #
 # MyCable eval board
 #
 libs-$(CONFIG_MIPS_XXS1500)    += arch/mips/au1000/xxs1500/
-load-$(CONFIG_MIPS_XXS1500)    += 0x80100000
-
-#
-# Baget/MIPS
-#
-libs-$(CONFIG_BAGET_MIPS)      += arch/mips/baget/ arch/mips/baget/prom/
-load-$(CONFIG_BAGET_MIPS)      += 0x80001000
+load-$(CONFIG_MIPS_XXS1500)    += 0xffffffff80100000
 
 #
 # Cobalt Server
 #
 core-$(CONFIG_MIPS_COBALT)     += arch/mips/cobalt/
-load-$(CONFIG_MIPS_COBALT)     += 0x80080000
+load-$(CONFIG_MIPS_COBALT)     += 0xffffffff80080000
 
 #
 # DECstation family
@@ -312,7 +331,7 @@ load-$(CONFIG_MIPS_COBALT)  += 0x80080000
 core-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/
 cflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec
 libs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/
-load-$(CONFIG_MACH_DECSTATION) += 0x80040000
+load-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000
 CLEAN_FILES                    += drivers/tc/lk201-map.c
 
 #
@@ -321,33 +340,27 @@ CLEAN_FILES                       += drivers/tc/lk201-map.c
 core-$(CONFIG_MIPS_EV64120)    += arch/mips/gt64120/ev64120/
 core-$(CONFIG_MIPS_EV64120)    += arch/mips/gt64120/common/
 cflags-$(CONFIG_MIPS_EV64120)  += -Iinclude/asm-mips/mach-ev64120
-load-$(CONFIG_MIPS_EV64120)    += 0x80100000
+load-$(CONFIG_MIPS_EV64120)    += 0xffffffff80100000
 
 #
 # Galileo EV96100 Board
 #
 core-$(CONFIG_MIPS_EV96100)    += arch/mips/galileo-boards/ev96100/
 cflags-$(CONFIG_MIPS_EV96100)  += -Iinclude/asm-mips/mach-ev96100
-load-$(CONFIG_MIPS_EV96100)    += 0x80100000
+load-$(CONFIG_MIPS_EV96100)    += 0xffffffff80100000
 
 #
 # Globespan IVR eval board with QED 5231 CPU
 #
 core-$(CONFIG_ITE_BOARD_GEN)   += arch/mips/ite-boards/generic/
 core-$(CONFIG_MIPS_IVR)                += arch/mips/ite-boards/ivr/
-load-$(CONFIG_MIPS_IVR)                += 0x80100000
-
-#
-# HP LaserJet
-#
-core-$(CONFIG_HP_LASERJET)     += arch/mips/hp-lj/
-load-$(CONFIG_HP_LASERJET)     += 0x80030000
+load-$(CONFIG_MIPS_IVR)                += 0xffffffff80100000
 
 #
 # ITE 8172 eval board with QED 5231 CPU
 #
 core-$(CONFIG_MIPS_ITE8172)    += arch/mips/ite-boards/qed-4n-s01b/
-load-$(CONFIG_MIPS_ITE8172)    += 0x80100000
+load-$(CONFIG_MIPS_ITE8172)    += 0xffffffff80100000
 
 #
 # For all MIPS, Inc. eval boards
@@ -360,20 +373,20 @@ core-$(CONFIG_MIPS_BOARDS_GEN)    += arch/mips/mips-boards/generic/
 core-$(CONFIG_MIPS_ATLAS)      += arch/mips/mips-boards/atlas/
 cflags-$(CONFIG_MIPS_ATLAS)    += -Iinclude/asm-mips/mach-atlas
 cflags-$(CONFIG_MIPS_ATLAS)    += -Iinclude/asm-mips/mach-mips
-load-$(CONFIG_MIPS_ATLAS)      += 0x80100000
+load-$(CONFIG_MIPS_ATLAS)      += 0xffffffff80100000
 
 #
 # MIPS Malta board
 #
 core-$(CONFIG_MIPS_MALTA)      += arch/mips/mips-boards/malta/
 cflags-$(CONFIG_MIPS_MALTA)    += -Iinclude/asm-mips/mach-mips
-load-$(CONFIG_MIPS_MALTA)      += 0x80100000
+load-$(CONFIG_MIPS_MALTA)      += 0xffffffff80100000
 
 #
 # MIPS SEAD board
 #
 core-$(CONFIG_MIPS_SEAD)       += arch/mips/mips-boards/sead/
-load-$(CONFIG_MIPS_SEAD)       += 0x80100000
+load-$(CONFIG_MIPS_SEAD)       += 0xffffffff80100000
 
 #
 # Momentum Ocelot board
@@ -384,7 +397,7 @@ load-$(CONFIG_MIPS_SEAD)    += 0x80100000
 core-$(CONFIG_MOMENCO_OCELOT)  += arch/mips/gt64120/common/ \
                                   arch/mips/gt64120/momenco_ocelot/
 cflags-$(CONFIG_MOMENCO_OCELOT)        += -Iinclude/asm-mips/mach-ocelot
-load-$(CONFIG_MOMENCO_OCELOT)  += 0x80100000
+load-$(CONFIG_MOMENCO_OCELOT)  += 0xffffffff80100000
 
 #
 # Momentum Ocelot-G board
@@ -393,7 +406,7 @@ load-$(CONFIG_MOMENCO_OCELOT)       += 0x80100000
 # mips_io_port_base.
 #
 core-$(CONFIG_MOMENCO_OCELOT_G)        += arch/mips/momentum/ocelot_g/
-load-$(CONFIG_MOMENCO_OCELOT_G)        += 0x80100000
+load-$(CONFIG_MOMENCO_OCELOT_G)        += 0xffffffff80100000
 
 #
 # Momentum Ocelot-C and -CS boards
@@ -401,14 +414,21 @@ load-$(CONFIG_MOMENCO_OCELOT_G)   += 0x80100000
 # The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the
 # mips_io_port_base.
 core-$(CONFIG_MOMENCO_OCELOT_C)        += arch/mips/momentum/ocelot_c/
-load-$(CONFIG_MOMENCO_OCELOT_C)        += 0x80100000
+load-$(CONFIG_MOMENCO_OCELOT_C)        += 0xffffffff80100000
 
 #
 # PMC-Sierra Yosemite
 #
 core-$(CONFIG_PMC_YOSEMITE)    += arch/mips/pmc-sierra/yosemite/
 cflags-$(CONFIG_PMC_YOSEMITE)  += -Iinclude/asm-mips/mach-yosemite
-load-$(CONFIG_PMC_YOSEMITE)    += 0x80100000
+load-$(CONFIG_PMC_YOSEMITE)    += 0xffffffff80100000
+
+#
+# Momentum Ocelot-3
+#
+core-$(CONFIG_MOMENCO_OCELOT_3)        += arch/mips/momentum/ocelot_3/
+cflags-$(CONFIG_MOMENCO_OCELOT_3)      += -Iinclude/asm-mips/mach-ocelot3
+load-$(CONFIG_MOMENCO_OCELOT_3)        += 0xffffffff80100000
 
 #
 # Momentum Jaguar ATX
@@ -416,9 +436,9 @@ load-$(CONFIG_PMC_YOSEMITE) += 0x80100000
 core-$(CONFIG_MOMENCO_JAGUAR_ATX)      += arch/mips/momentum/jaguar_atx/
 cflags-$(CONFIG_MOMENCO_JAGUAR_ATX)    += -Iinclude/asm-mips/mach-ja
 #ifdef CONFIG_JAGUAR_DMALOW
-#load-$(CONFIG_MOMENCO_JAGUAR_ATX)     += 0x88000000
+#load-$(CONFIG_MOMENCO_JAGUAR_ATX)     += 0xffffffff88000000
 #else
-load-$(CONFIG_MOMENCO_JAGUAR_ATX)      += 0x80100000
+load-$(CONFIG_MOMENCO_JAGUAR_ATX)      += 0xffffffff80100000
 #endif
 
 #
@@ -430,30 +450,30 @@ core-$(CONFIG_DDB5XXX_COMMON)     += arch/mips/ddb5xxx/common/
 # NEC DDB Vrc-5074
 #
 core-$(CONFIG_DDB5074)         += arch/mips/ddb5xxx/ddb5074/
-load-$(CONFIG_DDB5074)         += 0x80080000
+load-$(CONFIG_DDB5074)         += 0xffffffff80080000
 
 #
 # NEC DDB Vrc-5476
 #
 core-$(CONFIG_DDB5476)         += arch/mips/ddb5xxx/ddb5476/
-load-$(CONFIG_DDB5476)         += 0x80080000
+load-$(CONFIG_DDB5476)         += 0xffffffff80080000
 
 #
 # NEC DDB Vrc-5477
 #
 core-$(CONFIG_DDB5477)         += arch/mips/ddb5xxx/ddb5477/
-load-$(CONFIG_DDB5477)         += 0x80100000
+load-$(CONFIG_DDB5477)         += 0xffffffff80100000
 
 core-$(CONFIG_LASAT)           += arch/mips/lasat/
 cflags-$(CONFIG_LASAT)         += -Iinclude/asm-mips/mach-lasat
-load-$(CONFIG_LASAT)           += 0x80000000
+load-$(CONFIG_LASAT)           += 0xffffffff80000000
 
 #
 # NEC Osprey (vr4181) board
 #
 core-$(CONFIG_NEC_OSPREY)      += arch/mips/vr4181/common/ \
                                   arch/mips/vr4181/osprey/
-load-$(CONFIG_NEC_OSPREY)      += 0x80002000
+load-$(CONFIG_NEC_OSPREY)      += 0xffffffff80002000
 
 #
 # Common VR41xx
@@ -465,71 +485,84 @@ cflags-$(CONFIG_MACH_VR41XX)      += -Iinclude/asm-mips/mach-vr41xx
 # ZAO Networks Capcella (VR4131)
 #
 core-$(CONFIG_ZAO_CAPCELLA)    += arch/mips/vr41xx/zao-capcella/
-load-$(CONFIG_ZAO_CAPCELLA)    += 0x80000000
+load-$(CONFIG_ZAO_CAPCELLA)    += 0xffffffff80000000
 
 #
 # Victor MP-C303/304 (VR4122)
 #
 core-$(CONFIG_VICTOR_MPC30X)   += arch/mips/vr41xx/victor-mpc30x/
-load-$(CONFIG_VICTOR_MPC30X)   += 0x80001000
+load-$(CONFIG_VICTOR_MPC30X)   += 0xffffffff80001000
 
 #
 # IBM WorkPad z50 (VR4121)
 #
 core-$(CONFIG_IBM_WORKPAD)     += arch/mips/vr41xx/ibm-workpad/
-load-$(CONFIG_IBM_WORKPAD)     += 0x80004000
+load-$(CONFIG_IBM_WORKPAD)     += 0xffffffff80004000
 
 #
 # CASIO CASSIPEIA E-55/65 (VR4111)
 #
 core-$(CONFIG_CASIO_E55)       += arch/mips/vr41xx/casio-e55/
-load-$(CONFIG_CASIO_E55)       += 0x80004000
+load-$(CONFIG_CASIO_E55)       += 0xffffffff80004000
 
 #
 # TANBAC TB0226 Mbase (VR4131)
 #
 core-$(CONFIG_TANBAC_TB0226)   += arch/mips/vr41xx/tanbac-tb0226/
-load-$(CONFIG_TANBAC_TB0226)   += 0x80000000
+load-$(CONFIG_TANBAC_TB0226)   += 0xffffffff80000000
 
 #
 # TANBAC TB0229 VR4131DIMM (VR4131)
 #
 core-$(CONFIG_TANBAC_TB0229)   += arch/mips/vr41xx/tanbac-tb0229/
-load-$(CONFIG_TANBAC_TB0229)   += 0x80000000
+load-$(CONFIG_TANBAC_TB0229)   += 0xffffffff80000000
 
 #
 # SGI IP22 (Indy/Indigo2)
 #
-# Set the load address to >= 0x88069000 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.
+# Set the load address to >= 0xffffffff88069000 if you want to leave space for
+# symmon, 0xffffffff80002000 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.
 #
 core-$(CONFIG_SGI_IP22)                += arch/mips/sgi-ip22/
 cflags-$(CONFIG_SGI_IP22)      += -Iinclude/asm-mips/mach-ip22
 ifdef CONFIG_MIPS32
-load-$(CONFIG_SGI_IP22)                += 0x88002000
+load-$(CONFIG_SGI_IP22)                += 0xffffffff88002000
 endif
 ifdef CONFIG_MIPS64
-load-$(CONFIG_SGI_IP22)                += 0x88004000
+load-$(CONFIG_SGI_IP22)                += 0xffffffff88004000
 endif
 
 #
 # SGI-IP27 (Origin200/2000)
 #
 # Set the load address to >= 0xc000000000300000 if you want to leave space for
-# symmon, 0xc00000000001c000 for production kernels.  Note that the value
-# must be 16kb aligned or the handling of the current variable will break.
+# symmon, 0xc00000000001c000 for production kernels.  Note that the value must
+# be 16kb aligned or the handling of the current variable will break.
 #
 ifdef CONFIG_SGI_IP27
 core-$(CONFIG_SGI_IP27)                += arch/mips/sgi-ip27/
 cflags-$(CONFIG_SGI_IP27)      += -Iinclude/asm-mips/mach-ip27
-#load-$(CONFIG_SGI_IP27)       += 0xa80000000001c000
+ifdef CONFIG_BUILD_ELF64
+ifdef CONFIG_MAPPED_KERNEL
+load-$(CONFIG_SGI_IP27)                += 0xc00000004001c000
+OBJCOPYFLAGS                   := --change-addresses=0x3fffffff80000000
+dataoffset-$(CONFIG_SGI_IP27)  += 0x01000000
+else
+load-$(CONFIG_SGI_IP27)                += 0xa80000000001c000
+OBJCOPYFLAGS                   := --change-addresses=0x57ffffff80000000
+endif
+else
 ifdef CONFIG_MAPPED_KERNEL
-load-$(CONFIG_SGI_IP27)                += 0xc001c000
+load-$(CONFIG_SGI_IP27)                += 0xffffffffc001c000
+OBJCOPYFLAGS                   := --change-addresses=0xc000000080000000
 dataoffset-$(CONFIG_SGI_IP27)  += 0x01000000
 else
-load-$(CONFIG_SGI_IP27)                += 0x8001c000
+load-$(CONFIG_SGI_IP27)                += 0xffffffff8001c000
+OBJCOPYFLAGS                   := --change-addresses=0xa800000080000000
+endif
 endif
 endif
 
@@ -537,18 +570,13 @@ endif
 # SGI-IP32 (O2)
 #
 # 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
+# 0xffffffff80004000 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.
+# will break.
 #
 core-$(CONFIG_SGI_IP32)                += arch/mips/sgi-ip32/
 cflags-$(CONFIG_SGI_IP32)      += -Iinclude/asm-mips/mach-ip32
-ifdef CONFIG_MIPS32
-load-$(CONFIG_SGI_IP32)                += 0x80002000
-endif
-ifdef CONFIG_MIPS64
-load-$(CONFIG_SGI_IP32)                += 0x80004000
-endif
+load-$(CONFIG_SGI_IP32)                += 0xffffffff80004000
 
 #
 # Sibyte SB1250 SOC
@@ -558,8 +586,10 @@ endif
 # removed (as happens, even if they have __initcall/module_init)
 #
 core-$(CONFIG_SIBYTE_BCM112X)  += arch/mips/sibyte/sb1250/
+cflags-$(CONFIG_SIBYTE_BCM112X)        += -Iinclude/asm-mips/mach-sibyte
 
 core-$(CONFIG_SIBYTE_SB1250)   += arch/mips/sibyte/sb1250/
+cflags-$(CONFIG_SIBYTE_SB1250) += -Iinclude/asm-mips/mach-sibyte
 
 #
 # Sibyte BCM91120x (Carmel) board
@@ -569,31 +599,31 @@ core-$(CONFIG_SIBYTE_SB1250)      += arch/mips/sibyte/sb1250/
 # Sibyte SWARM board
 #
 libs-$(CONFIG_SIBYTE_CARMEL)   += arch/mips/sibyte/swarm/
-load-$(CONFIG_SIBYTE_CARMEL)   := 0x80100000
+load-$(CONFIG_SIBYTE_CARMEL)   := 0xffffffff80100000
 libs-$(CONFIG_SIBYTE_CRHINE)   += arch/mips/sibyte/swarm/
-load-$(CONFIG_SIBYTE_CRHINE)   := 0x80100000
+load-$(CONFIG_SIBYTE_CRHINE)   := 0xffffffff80100000
 libs-$(CONFIG_SIBYTE_CRHONE)   += arch/mips/sibyte/swarm/
-load-$(CONFIG_SIBYTE_CRHONE)   := 0x80100000
+load-$(CONFIG_SIBYTE_CRHONE)   := 0xffffffff80100000
 libs-$(CONFIG_SIBYTE_RHONE)    += arch/mips/sibyte/swarm/
-load-$(CONFIG_SIBYTE_RHONE)    := 0x80100000
+load-$(CONFIG_SIBYTE_RHONE)    := 0xffffffff80100000
 libs-$(CONFIG_SIBYTE_SENTOSA)  += arch/mips/sibyte/swarm/
-load-$(CONFIG_SIBYTE_SENTOSA)  := 0x80100000
+load-$(CONFIG_SIBYTE_SENTOSA)  := 0xffffffff80100000
 libs-$(CONFIG_SIBYTE_SWARM)    += arch/mips/sibyte/swarm/
-load-$(CONFIG_SIBYTE_SWARM)    := 0x80100000
+load-$(CONFIG_SIBYTE_SWARM)    := 0xffffffff80100000
 
 #
 # SNI RM200 PCI
 #
 core-$(CONFIG_SNI_RM200_PCI)   += arch/mips/sni/
 cflags-$(CONFIG_SNI_RM200_PCI) += -Iinclude/asm-mips/mach-rm200
-load-$(CONFIG_SNI_RM200_PCI)   += 0x80600000
+load-$(CONFIG_SNI_RM200_PCI)   += 0xffffffff80600000
 
 #
 # Toshiba JMR-TX3927 board
 #
 core-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \
                                   arch/mips/jmr3927/common/
-load-$(CONFIG_TOSHIBA_JMR3927) += 0x80050000
+load-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000
 
 #
 # Toshiba RBTX4927 board or
@@ -601,20 +631,11 @@ load-$(CONFIG_TOSHIBA_JMR3927)    += 0x80050000
 #
 core-$(CONFIG_TOSHIBA_RBTX4927)        += arch/mips/tx4927/toshiba_rbtx4927/
 core-$(CONFIG_TOSHIBA_RBTX4927)        += arch/mips/tx4927/common/
-load-$(CONFIG_TOSHIBA_RBTX4927)        += 0x80020000
+load-$(CONFIG_TOSHIBA_RBTX4927)        += 0xffffffff80020000
 
 cflags-y                       += -Iinclude/asm-mips/mach-generic
 drivers-$(CONFIG_PCI)          += arch/mips/pci/
 
-ifdef CONFIG_MIPS32
-build-bfd              = $(32bit-bfd)
-cflags-y               += $(32bit-isa-y)
-endif
-ifdef CONFIG_MIPS64
-build-bfd              = $(64bit-bfd)
-cflags-y               += $(64bit-isa-y)
-endif
-
 ifdef CONFIG_MIPS32
 ifdef CONFIG_CPU_LITTLE_ENDIAN
 JIFFIES                        = jiffies_64
@@ -625,16 +646,12 @@ else
 JIFFIES                        = jiffies_64
 endif
 
-#
-# Some machines like the Indy need 32-bit ELF binaries for booting purposes.
-# Other need ECOFF, so we build a 32-bit ELF binary for them which we then
-# convert to ECOFF using elf2ecoff.
-#
-# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit
-# ELF files from 32-bit files by conversion.
-#
-#AS += -64
-#LDFLAGS += -m elf64bmip
+AFLAGS         += $(cflags-y)
+CFLAGS         += $(cflags-y)
+
+LDFLAGS                        += -m $(ld-emul)
+
+OBJCOPYFLAGS           += --remove-section=.reginfo
 
 #
 # Choosing incompatible machines durings configuration will result in
@@ -643,15 +660,11 @@ endif
 #
 
 CPPFLAGS_vmlinux.lds := \
+       $(CFLAGS) \
        -D"LOADADDR=$(load-y)" \
        -D"JIFFIES=$(JIFFIES)" \
        -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)"
 
-AFLAGS         += $(cflags-y)
-CFLAGS         += $(cflags-y)
-
-LDFLAGS                        += --oformat $(32bit-bfd)
-
 head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o
 
 libs-y                 += arch/mips/lib/
@@ -660,44 +673,44 @@ libs-$(CONFIG_MIPS64)     += arch/mips/lib-64/
 
 core-y                 += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/
 
-ifdef CONFIG_BAGET_MIPS
-
-BAGETBOOT = $(MAKE) -C arch/$(ARCH)/baget
-
-balo: vmlinux
-       $(BAGETBOOT) balo
-
-endif
-
 ifdef CONFIG_LASAT
 rom.bin rom.sw: vmlinux
        $(call descend,arch/mips/lasat/image,$@)
 endif
 
-ifdef CONFIG_MAPPED_KERNEL
-vmlinux.64: vmlinux
-       $(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo \
-               --change-addresses=0xc000000080000000 $< $@
-else
+#
+# Some machines like the Indy need 32-bit ELF binaries for booting purposes.
+# Other need ECOFF, so we build a 32-bit ELF binary for them which we then
+# convert to ECOFF using elf2ecoff.
+#
+vmlinux.32: vmlinux
+       $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@
+
+#
+# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit
+# ELF files from 32-bit files by conversion.
+#
 vmlinux.64: vmlinux
-       $(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo \
-               --change-addresses=0xa800000080000000 $< $@
-endif
+       $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@
 
-makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot $(1)
+makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1)
 
-ifdef CONFIG_SGI_IP27
-all:   vmlinux.64
+ifdef CONFIG_BOOT_ELF32
+all:   $(vmlinux-32)
+endif
+
+ifdef CONFIG_BOOT_ELF64
+all:   $(vmlinux-64)
 endif
 
 ifdef CONFIG_SNI_RM200_PCI
 all:   vmlinux.ecoff
 endif
 
-vmlinux.ecoff vmlinux.rm200: vmlinux
+vmlinux.ecoff vmlinux.rm200: $(vmlinux-32)
        +@$(call makeboot,$@)
 
-vmlinux.srec: vmlinux
+vmlinux.srec: $(vmlinux-32)
        +@$(call makeboot,$@)
 
 CLEAN_FILES += vmlinux.ecoff \
@@ -707,7 +720,6 @@ CLEAN_FILES += vmlinux.ecoff \
 
 archclean:
        @$(MAKE) $(clean)=arch/mips/boot
-       @$(MAKE) $(clean)=arch/mips/baget
        @$(MAKE) $(clean)=arch/mips/lasat
 
 # Generate <asm/offset.h 
@@ -762,5 +774,6 @@ CLEAN_FILES += include/asm-$(ARCH)/offset.h.tmp \
               include/asm-$(ARCH)/offset.h \
               include/asm-$(ARCH)/reg.h.tmp \
               include/asm-$(ARCH)/reg.h \
+              vmlinux.32 \
               vmlinux.64 \
               vmlinux.ecoff
index 4439d7fa28423a703b9f61d0692bb377fc33a539..0dd7a345eb797574cd106833df7e9488ebaa3930 100644 (file)
@@ -45,7 +45,7 @@ static struct smatch mach_table[] = {
                MACH_SGI_IP28,
                PROM_FLAG_ARCS
        }, {    "SGI-IP32",
-               "SGI IP32",
+               "SGI O2",
                MACH_GROUP_SGI,
                MACH_SGI_IP32,
                PROM_FLAG_ARCS
index f34abfdd700852451a0cf9b5fefd1e5f81150adb..84867de22028e698ba52fa9ed657863400cd3754 100644 (file)
@@ -104,5 +104,5 @@ ArcFlushAllCaches(VOID)
 
 DISPLAY_STATUS * __init ArcGetDisplayStatus(ULONG FileID)
 {
-       return ARC_CALL1(GetDisplayStatus, FileID);
+       return (DISPLAY_STATUS *) ARC_CALL1(GetDisplayStatus, FileID);
 }
index f228e8eeeed09c1fc11b2d2e508d7c7feb50e0a1..594b75e5e0800f52201bde1290da0a480723d25e 100644 (file)
@@ -7,14 +7,9 @@
 #
 
 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 cputable.o
+       au1xxx_irqmap.o clocks.o platform.o power.o setup.o \
+       sleeper.o cputable.o dma.o dbdma.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
index 2043ec5205c7f9e2564ee25c2bf3b63785eb02b7..0b00df88e8f5e4ed3c5af7f625a1b48eba7efbbe 100644 (file)
@@ -91,10 +91,10 @@ au1xxx_irq_map_t au1xxx_ic0_map[] = {
 
 #elif defined(CONFIG_SOC_AU1500)
 
-       { AU1000_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1500_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},
+       { AU1500_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},
@@ -117,16 +117,16 @@ au1xxx_irq_map_t au1xxx_ic0_map[] = {
        { 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},
+       { AU1500_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1500_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},
+       { AU1100_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1100_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1100_SD_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1100_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},
@@ -151,9 +151,9 @@ au1xxx_irq_map_t au1xxx_ic0_map[] = {
        { 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},
+       { AU1100_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 },*/
+       { AU1100_LCD_INT, INTC_INT_HIGH_LEVEL, 0},
        { AU1000_AC97C_INT, INTC_INT_RISE_EDGE, 0 },
 
 #elif defined(CONFIG_SOC_AU1550)
@@ -187,6 +187,32 @@ au1xxx_irq_map_t au1xxx_ic0_map[] = {
        { AU1550_MAC0_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
        { AU1550_MAC1_DMA_INT, INTC_INT_HIGH_LEVEL, 0},
 
+#elif defined(CONFIG_SOC_AU1200)
+
+       { AU1200_UART0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_SWT_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_SD_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_DDMA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_MAE_BE_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1200_UART1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_MAE_FE_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1200_PSC0_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_PSC1_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_AES_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_CAMERA_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_TOY_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_TOY_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_TOY_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_TOY_MATCH2_INT, INTC_INT_RISE_EDGE, 1 },
+       { AU1200_RTC_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_RTC_MATCH0_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_RTC_MATCH1_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_RTC_MATCH2_INT, INTC_INT_RISE_EDGE, 0 },
+       { AU1200_NAND_INT, INTC_INT_RISE_EDGE, 0},
+       { AU1200_USB_INT, INTC_INT_HIGH_LEVEL, 0 },
+       { AU1200_LCD_INT, INTC_INT_HIGH_LEVEL, 0},
+       { AU1200_MAE_BOTH_INT, INTC_INT_HIGH_LEVEL, 0},
+
 #else
 #error "Error: Unknown Alchemy SOC"
 #endif
index 26744b317175a93af7f1df1c32235ecee1cca050..84e6cf36ff3847066c7b44eb69e166788f5b2514 100644 (file)
@@ -39,6 +39,7 @@ struct cpu_spec       cpu_specs[] = {
     { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1 },
     { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1 },
     { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1 },
+    { 0xffffffff, 0x04030200, "Au1200 AA", 0, 1 },
     { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0 },
 };
 
index 9f6c61c255e845b5de265e94e3141d1264e86754..defdf5b382695963c23027886df95faa97483838 100644 (file)
 #include <linux/spinlock.h>
 #include <linux/string.h>
 #include <linux/delay.h>
+#include <linux/interrupt.h>
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-au1x00/au1xxx_dbdma.h>
 #include <asm/system.h>
 
+#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
+
 /*
  * The Descriptor Based DMA supports up to 16 channels.
  *
@@ -63,6 +66,7 @@ static int dbdma_initialized;
 static void au1xxx_dbdma_init(void);
 
 typedef struct dbdma_device_table {
+       u32             dev_id;
        u32             dev_flags;
        u32             dev_tsize;
        u32             dev_devwidth;
@@ -89,64 +93,116 @@ typedef struct dbdma_chan_config {
 #define DEV_FLAGS_IN           (1 << 3)
 
 static dbdev_tab_t dbdev_tab[] = {
+#ifdef CONFIG_SOC_AU1550
        /* 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 },
+       { DSCR_CMD0_UART0_TX, DEV_FLAGS_OUT, 0, 8, 0x11100004, 0, 0 },
+       { DSCR_CMD0_UART0_RX, DEV_FLAGS_IN, 0, 8, 0x11100000, 0, 0 },
+       { DSCR_CMD0_UART3_TX, DEV_FLAGS_OUT, 0, 8, 0x11400004, 0, 0 },
+       { DSCR_CMD0_UART3_RX, 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 },
+       { DSCR_CMD0_DMA_REQ0, 0, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_DMA_REQ1, 0, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_DMA_REQ2, 0, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_DMA_REQ3, 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 },
+       { DSCR_CMD0_USBDEV_RX0, DEV_FLAGS_IN, 4, 8, 0x10200000, 0, 0 },
+       { DSCR_CMD0_USBDEV_TX0, DEV_FLAGS_OUT, 4, 8, 0x10200004, 0, 0 },
+       { DSCR_CMD0_USBDEV_TX1, DEV_FLAGS_OUT, 4, 8, 0x10200008, 0, 0 },
+       { DSCR_CMD0_USBDEV_TX2, DEV_FLAGS_OUT, 4, 8, 0x1020000c, 0, 0 },
+       { DSCR_CMD0_USBDEV_RX3, DEV_FLAGS_IN, 4, 8, 0x10200010, 0, 0 },
+       { DSCR_CMD0_USBDEV_RX4, 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 },
+       { DSCR_CMD0_PSC0_TX, DEV_FLAGS_OUT, 0, 0, 0x11a0001c, 0, 0 },
+       { DSCR_CMD0_PSC0_RX, 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 },
+       { DSCR_CMD0_PSC1_TX, DEV_FLAGS_OUT, 0, 0, 0x11b0001c, 0, 0 },
+       { DSCR_CMD0_PSC1_RX, 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 },
+       { DSCR_CMD0_PSC2_TX, DEV_FLAGS_OUT, 0, 0, 0x10a0001c, 0, 0 },
+       { DSCR_CMD0_PSC2_RX, 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 },
+       { DSCR_CMD0_PSC3_TX, DEV_FLAGS_OUT, 0, 0, 0x10b0001c, 0, 0 },
+       { DSCR_CMD0_PSC3_RX, DEV_FLAGS_IN, 0, 0, 0x10b0001c, 0, 0 },
 
-       { 0, 0, 0, 0x00000000, 0, 0 },  /* PCI */
-       { 0, 0, 0, 0x00000000, 0, 0 },  /* NAND */
+       { DSCR_CMD0_PCI_WRITE, 0, 0, 0, 0x00000000, 0, 0 },     /* PCI */
+       { DSCR_CMD0_NAND_FLASH, 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 },
+       { DSCR_CMD0_MAC0_RX, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_MAC0_TX, 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 },
+       { DSCR_CMD0_MAC1_RX, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_MAC1_TX, DEV_FLAGS_OUT, 0, 0, 0x00000000, 0, 0 },
+
+#endif /* CONFIG_SOC_AU1550 */
+
+#ifdef CONFIG_SOC_AU1200
+       { DSCR_CMD0_UART0_TX, DEV_FLAGS_OUT, 0, 8, 0x11100004, 0, 0 },
+       { DSCR_CMD0_UART0_RX, DEV_FLAGS_IN, 0, 8, 0x11100000, 0, 0 },
+       { DSCR_CMD0_UART1_TX, DEV_FLAGS_OUT, 0, 8, 0x11200004, 0, 0 },
+       { DSCR_CMD0_UART1_RX, DEV_FLAGS_IN, 0, 8, 0x11200000, 0, 0 },
+
+       { DSCR_CMD0_DMA_REQ0, 0, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_DMA_REQ1, 0, 0, 0, 0x00000000, 0, 0 },
+
+       { DSCR_CMD0_MAE_BE, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_MAE_FE, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_MAE_BOTH, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_LCD, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+
+       { DSCR_CMD0_SDMS_TX0, DEV_FLAGS_OUT, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_SDMS_RX0, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_SDMS_TX1, DEV_FLAGS_OUT, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_SDMS_RX1, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+
+       { DSCR_CMD0_AES_TX, DEV_FLAGS_OUT, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_AES_RX, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+
+       { DSCR_CMD0_PSC0_TX, DEV_FLAGS_OUT, 0, 0, 0x11a0001c, 0, 0 },
+       { DSCR_CMD0_PSC0_RX, DEV_FLAGS_IN, 0, 0, 0x11a0001c, 0, 0 },
+       { DSCR_CMD0_PSC0_SYNC, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+
+       { DSCR_CMD0_PSC1_TX, DEV_FLAGS_OUT, 0, 0, 0x11b0001c, 0, 0 },
+       { DSCR_CMD0_PSC1_RX, DEV_FLAGS_IN, 0, 0, 0x11b0001c, 0, 0 },
+       { DSCR_CMD0_PSC1_SYNC, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+
+       { DSCR_CMD0_CIM_RXA, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_CIM_RXB, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_CIM_RXC, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_CIM_SYNC, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
 
-       /* reserved */
-       { DEV_FLAGS_INUSE, 0, 0, 0x00000000, 0, 0 },
-       { DEV_FLAGS_INUSE, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_NAND_FLASH, DEV_FLAGS_IN, 0, 0, 0x00000000, 0, 0 },
 
-       /* Memory */
-       { DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },   /* throttle */
-       { DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },   /* always */
+#endif // CONFIG_SOC_AU1200
+
+       { DSCR_CMD0_THROTTLE, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+       { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
 };
 
+#define DBDEV_TAB_SIZE (sizeof(dbdev_tab) / sizeof(dbdev_tab_t))
+
 static chan_tab_t *chan_tab_ptr[NUM_DBDMA_CHANS];
 
+static dbdev_tab_t *
+find_dbdev_id (u32 id)
+{
+       int i;
+       dbdev_tab_t *p;
+       for (i = 0; i < DBDEV_TAB_SIZE; ++i) {
+               p = &dbdev_tab[i];
+               if (p->dev_id == id)
+                       return p;
+       }
+       return NULL;
+}
+
 /* Allocate a channel and return a non-zero descriptor if successful.
 */
 u32
@@ -172,8 +228,9 @@ au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
        if ((srcid > DSCR_NDEV_IDS) || (destid > DSCR_NDEV_IDS))
                return 0;
 
-       stp = &dbdev_tab[srcid];
-       dtp = &dbdev_tab[destid];
+       if ((stp = find_dbdev_id(srcid)) == NULL) return 0;
+       if ((dtp = find_dbdev_id(destid)) == NULL) return 0;
+
        used = 0;
        rv = 0;
 
@@ -212,7 +269,7 @@ au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
                                /* If kmalloc fails, it is caught below same
                                 * as a channel not available.
                                 */
-                               ctp = (chan_tab_t *)kmalloc(sizeof(chan_tab_t), GFP_KERNEL);
+                               ctp = kmalloc(sizeof(chan_tab_t), GFP_KERNEL);
                                chan_tab_ptr[i] = ctp;
                                ctp->chan_index = chan = i;
                                break;
@@ -313,7 +370,7 @@ au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
         * 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);
+       desc_base = kmalloc(entries * sizeof(au1x_ddma_desc_t), GFP_KERNEL);
        if (desc_base == 0)
                return 0;
 
@@ -324,7 +381,7 @@ au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
                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)
+               if ((desc_base = kmalloc(i, GFP_KERNEL)) == 0)
                        return 0;
 
                desc_base = ALIGN_ADDR(desc_base, sizeof(au1x_ddma_desc_t));
@@ -337,8 +394,8 @@ au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
 
        /* Initialize the rings with as much information as we know.
         */
-       srcid = stp - dbdev_tab;        /* Index is channel device ID */
-       destid = dtp - dbdev_tab;
+       srcid = stp->dev_id;
+       destid = dtp->dev_id;
 
        cmd0 = cmd1 = src1 = dest1 = 0;
        src0 = dest0 = 0;
@@ -691,7 +748,7 @@ au1xxx_dbdma_chan_free(u32 chanid)
        kfree(ctp);
 }
 
-static void
+static irqreturn_t
 dbdma_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
        u32     intstat;
@@ -718,6 +775,7 @@ dbdma_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 
        ctp->cur_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
 
+       return IRQ_HANDLED;
 }
 
 static void
@@ -773,3 +831,6 @@ au1xxx_dbdma_dump(u32 chanid)
                dp = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
        } while (dp != ctp->chan_desc_base);
 }
+
+#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */
+
index f364091d0d13f2fda9e5e21bc3abc064009cf0d9..0035a9bbefb858cde96a5d7bdac53d64e7dd7129 100644 (file)
@@ -30,6 +30,7 @@
  *
  */
 
+#include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
@@ -37,6 +38,7 @@
 #include <linux/string.h>
 #include <linux/delay.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
 #include <asm/system.h>
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-au1x00/au1000_dma.h>
@@ -71,6 +73,7 @@ struct dma_chan au1000_dma_table[NUM_AU1000_DMA_CHANNELS] = {
       {.dev_id = -1,},
       {.dev_id = -1,}
 };
+EXPORT_SYMBOL(au1000_dma_table);
 
 // Device FIFO addresses and default DMA modes
 static const struct dma_dev {
@@ -216,6 +219,7 @@ int request_au1000_dma(int dev_id, const char *dev_str,
 
        return i;
 }
+EXPORT_SYMBOL(request_au1000_dma);
 
 void free_au1000_dma(unsigned int dmanr)
 {
@@ -233,4 +237,6 @@ void free_au1000_dma(unsigned int dmanr)
        chan->irq_dev = NULL;
        chan->dev_id = -1;
 }
+EXPORT_SYMBOL(free_au1000_dma);
+
 #endif // AU1000 AU1500 AU1100
index 989b7b5bb2b022e2dfe11a349751936a611dc456..a19bb7e45f06b4d12355ac9a13c739b0a5f5b70a 100644 (file)
 #define EXT_INTC1_REQ1 5 /* IP 5 */
 #define MIPS_TIMER_IP  7 /* IP 7 */
 
-#ifdef CONFIG_KGDB
-extern void breakpoint(void);
-#endif
-
 extern asmlinkage void au1000_IRQ(void);
 extern void set_debug_traps(void);
 extern irq_cpustat_t irq_stat [NR_CPUS];
@@ -84,7 +80,6 @@ static inline void mask_and_ack_either_edge_irq(unsigned int irq_nr);
 inline void local_enable_irq(unsigned int irq_nr);
 inline void local_disable_irq(unsigned int irq_nr);
 
-extern void __init init_generic_irq(void);
 void   (*board_init_irq)(void);
 
 #ifdef CONFIG_PM
@@ -420,7 +415,7 @@ static void setup_local_irq(unsigned int irq_nr, int type, int int_req)
 }
 
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
        unsigned long cp0_status;
@@ -434,8 +429,6 @@ void __init init_IRQ(void)
        memset(irq_desc, 0, sizeof(irq_desc));
        set_except_vector(0, au1000_IRQ);
 
-       init_generic_irq();
-
        /* Initialize interrupt controllers to a safe state.
        */
        au_writel(0xffffffff, IC0_CFG0CLR);
@@ -482,13 +475,6 @@ void __init init_IRQ(void)
        */
        if (board_init_irq)
                (*board_init_irq)();
-
-#ifdef CONFIG_KGDB
-       /* If local serial I/O used for debug port, enter kgdb at once */
-       puts("Waiting for kgdb to connect...");
-       set_debug_traps();
-       breakpoint();
-#endif
 }
 
 
index d5ccbd221f4a61c1dc2c0f8fb518a30dd283e506..7e187a00fac036f75a184eb1e8c706cac258c999 100644 (file)
@@ -6,6 +6,8 @@
  * Author: MontaVista Software, Inc.
  *             ppopov@mvista.com or source@mvista.com
  *
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
+ *
  *  Support for all devices (greater than 16) added by David Gathright.
  *
  *  This program is free software; you can redistribute  it and/or modify it
@@ -35,7 +37,6 @@
 #include <linux/init.h>
 
 #include <asm/mach-au1x00/au1000.h>
-#include <asm/pci_channel.h>
 
 /* TBD */
 static struct resource pci_io_resource = {
@@ -67,15 +68,12 @@ static unsigned long virt_io_addr;
 static int __init au1x_pci_setup(void)
 {
 #if defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550)
-       int i;
-       struct pci_dev *dev;
-       
        virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START, 
                        Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1);
 
        if (!virt_io_addr) {
                printk(KERN_ERR "Unable to ioremap pci space\n");
-               return;
+               return 1;
        }
 
 #ifdef CONFIG_DMA_NONCOHERENT
diff --git a/arch/mips/au1000/common/platform.c b/arch/mips/au1000/common/platform.c
new file mode 100644 (file)
index 0000000..22acce0
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Platform device support for Au1x00 SoCs.
+ *
+ * Copyright 2004, Matt Porter <mporter@kernel.crashing.org>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+#include <linux/config.h>
+#include <linux/device.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/resource.h>
+
+#include <asm/mach-au1x00/au1000.h>
+
+static struct resource au1xxx_usb_ohci_resources[] = {
+       [0] = {
+               .start          = USB_OHCI_BASE,
+               .end            = USB_OHCI_BASE + USB_OHCI_LEN,
+               .flags          = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start          = AU1000_USB_HOST_INT,
+               .end            = AU1000_USB_HOST_INT,
+               .flags          = IORESOURCE_IRQ,
+       },
+};
+
+/* The dmamask must be set for OHCI to work */
+static u64 ohci_dmamask = ~(u32)0;
+
+static struct platform_device au1xxx_usb_ohci_device = {
+       .name           = "au1xxx-ohci",
+       .id             = 0,
+       .dev = {
+               .dma_mask               = &ohci_dmamask,
+               .coherent_dma_mask      = 0xffffffff,
+       },
+       .num_resources  = ARRAY_SIZE(au1xxx_usb_ohci_resources),
+       .resource       = au1xxx_usb_ohci_resources,
+};
+
+static struct platform_device *au1xxx_platform_devices[] __initdata = {
+       &au1xxx_usb_ohci_device,
+};
+
+int au1xxx_platform_init(void)
+{
+       return platform_add_devices(au1xxx_platform_devices, ARRAY_SIZE(au1xxx_platform_devices));
+}
+
+arch_initcall(au1xxx_platform_init);
index 7d3a509a1811454775c3ccec57a8ec05b24b06c2..c2ae4624b77b44625cfc0bbb5f81cb092301a660 100644 (file)
@@ -92,7 +92,7 @@ puts(unsigned char *cp)
 }
 
 void
-fputs(unsigned char *cp)
+fputs(const char *cp)
 {
     unsigned char ch;
     int i = 0;
index 5bbc6cf059f16dfa0c19e7354cfcb68bb7f75c5a..65b84db800e4d63ff65d94ebc38df9a47e000fd1 100644 (file)
@@ -43,6 +43,7 @@ extern void (*flush_cache_all)(void);
 void au1000_restart(char *command)
 {
        /* Set all integrated peripherals to disabled states */
+       extern void board_reset (void);
        u32 prid = read_c0_prid();
 
        printk(KERN_NOTICE "\n** Resetting Integrated Peripherals\n");
@@ -154,18 +155,10 @@ void au1000_restart(char *command)
        flush_cache_all();
        write_c0_wired(0);
 
-#if defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-       /* Do a HW reset if the board can do it */
-
-       au_writel(0x00000000, 0xAE00001C);
-#endif
-
-#if defined(CONFIG_MIPS_PB1550)
-        /* reset entire system */
-       au_writew(au_readw(0xAF00001C) & ~(1<<15), 0xAF00001C);
-       au_sync();
-#endif
+       /* Give board a chance to do a hardware reset */
+       board_reset();
 
+       /* Jump to the beggining in case board_reset() is empty */
        __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
index d4c92fa67d5e5903cfd2233f74f663a660b46e25..dbc8b1bda9637efd339ebd70c97d72c20b87e161 100644 (file)
@@ -3,6 +3,8 @@
  * Author: MontaVista Software, Inc.
  *             ppopov@mvista.com or source@mvista.com
  *
+ * Updates to 2.6, Pete Popov, Embedded Alley Solutions, 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
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/time.h>
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
 extern char * __init prom_getcmdline(void);
 extern void __init board_setup(void);
 extern void au1000_restart(char *);
@@ -56,12 +53,9 @@ 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) || 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
 extern void au1xxx_time_init(void);
 extern void au1xxx_timer_setup(struct irqaction *irq);
+extern void set_cpuspec(void);
 
 static int __init au1x00_setup(void)
 {
@@ -76,7 +70,7 @@ static int __init au1x00_setup(void)
 
        prid = read_c0_prid();
        cpupll = (au_readl(0xB1900060) & 0x3F) * 12;
-       printk("(PRId %08X) @ %dMHZ\n", prid, cpupll);
+       printk("(PRId %08lx) @ %ldMHZ\n", prid, cpupll);
 
        bclk = sp->cpu_bclk;
        if (bclk)
@@ -146,9 +140,6 @@ 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) || defined(CONFIG_SOC_AU1550))
-       fixup_bigphys_addr = au1500_fixup_bigphys_addr;
-#endif
 
        /* IO/MEM resources. */
        set_io_port_base(0);
@@ -157,62 +148,48 @@ static int __init au1x00_setup(void)
        iomem_resource.start = IOMEM_RESOURCE_START;
        iomem_resource.end = IOMEM_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
-
-#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
-#ifdef CONFIG_USB_OHCI
-       if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
-               char usb_args[80];
-               argptr = prom_getcmdline();
-               memset(usb_args, 0, sizeof(usb_args));
-               sprintf(usb_args, " usb_ohci=base:0x%x,len:0x%x,irq:%d",
-                       USB_OHCI_BASE, USB_OHCI_LEN, AU1000_USB_HOST_INT);
-               strcat(argptr, usb_args);
-       }
-#endif
-
-#ifdef CONFIG_USB_OHCI
-       /* enable host controller and wait for reset done */
-       au_writel(0x08, USB_HOST_CONFIG);
-       udelay(1000);
-       au_writel(0x0E, USB_HOST_CONFIG);
-       udelay(1000);
-       au_readl(USB_HOST_CONFIG); /* throw away first read */
-       while (!(au_readl(USB_HOST_CONFIG) & 0x10))
-               au_readl(USB_HOST_CONFIG);
-#endif
-#endif /* defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE) */
-
        while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_E0S);
        au_writel(SYS_CNTRL_E0 | SYS_CNTRL_EN0, SYS_COUNTER_CNTRL);
        au_sync();
        while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T0S);
        au_writel(0, SYS_TOYTRIM);
+
        return 0;
 }
 
 early_initcall(au1x00_setup);
 
-#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)
+#if defined(CONFIG_64BIT_PHYS_ADDR)
+/* This routine should be valid for all Au1x based boards */
+phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size)
 {
-       u32 pci_start = (u32)Au1500_PCI_MEM_START;
-       u32 pci_end = (u32)Au1500_PCI_MEM_END;
+       u32 start, end;
 
        /* Don't fixup 36 bit addresses */
        if ((phys_addr >> 32) != 0) return phys_addr;
 
+#ifdef CONFIG_PCI
+       start = (u32)Au1500_PCI_MEM_START;
+       end = (u32)Au1500_PCI_MEM_END;
        /* check for pci memory window */
-       if ((phys_addr >= pci_start) && ((phys_addr + size) < pci_end)) {
-               return (phys_t)((phys_addr - pci_start) +
-                                    Au1500_PCI_MEM_START);
+       if ((phys_addr >= start) && ((phys_addr + size) < end)) {
+               return (phys_t)((phys_addr - start) + Au1500_PCI_MEM_START);
        }
-       else 
-               return phys_addr;
+#endif
+
+       /* All Au1x SOCs have a pcmcia controller */
+       /* We setup our 32 bit pseudo addresses to be equal to the
+        * 36 bit addr >> 4, to make it easier to check the address
+        * and fix it.
+        * The Au1x socket 0 phys attribute address is 0xF 4000 0000.
+        * The pseudo address we use is 0xF400 0000. Any address over
+        * 0xF400 0000 is a pcmcia pseudo address.
+        */
+       if ((phys_addr >= 0xF4000000) && (phys_addr < 0xFFFFFFFF)) {
+               return (phys_t)(phys_addr << 4);
+       }
+
+       /* default nop */
+       return phys_addr;
 }
 #endif
index d9f4c1bb6ecb508567cc56e0c19018b83612a7e2..0d4dd7cc566c24aa7f74b03b94fed4f01937c17e 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/spinlock.h>
 #include <linux/hardirq.h>
 
+#include <asm/compiler.h>
 #include <asm/mipsregs.h>
 #include <asm/ptrace.h>
 #include <asm/time.h>
@@ -351,9 +352,9 @@ static unsigned long do_fast_cp0_gettimeoffset(void)
 
        __asm__("multu\t%1,%2\n\t"
                "mfhi\t%0"
-               :"=r" (res)
-               :"r" (count),
-                "r" (quotient));
+               : "=r" (res)
+               : "r" (count), "r" (quotient)
+               : "hi", "lo", GCC_REG_ACCUM);
 
        /*
         * Due to possible jiffies inconsistencies, we need to check 
index 21e2a91aadbe3faf1017d4f43abf9519959afb85..a73a31655c572cad79191356234fc3cafa39531d 100644 (file)
@@ -61,8 +61,6 @@
 #define vdbg(fmt, arg...) do {} while (0)
 #endif
 
-#define MAX(a,b)       (((a)>(b))?(a):(b))
-
 #define ALLOC_FLAGS (in_interrupt () ? GFP_ATOMIC : GFP_KERNEL)
 
 #define EP_FIFO_DEPTH 8
@@ -211,9 +209,8 @@ dump_setup(struct usb_ctrlrequest* s)
 static inline usbdev_pkt_t *
 alloc_packet(endpoint_t * ep, int data_size, void* data)
 {
-       usbdev_pkt_t* pkt =
-               (usbdev_pkt_t *)kmalloc(sizeof(usbdev_pkt_t) + data_size,
-                                       ALLOC_FLAGS);
+       usbdev_pkt_t* pkt = kmalloc(sizeof(usbdev_pkt_t) + data_size,
+                                   ALLOC_FLAGS);
        if (!pkt)
                return NULL;
        pkt->ep_addr = ep->address;
index 541837dba3581ba934b6a98227794d544c426d6d..ac05ba0ff63f3db9ea05b9f82f9b3a1c099a1591 100644 (file)
 /* not correct for db1550 */
 static BCSR * const bcsr = (BCSR *)0xAE000000;
 
+void board_reset (void)
+{
+       /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
+       au_writel(0x00000000, 0xAE00001C);
+}
+
 void __init board_setup(void)
 {
        u32 pin_func;
index 84e1e41191bab6c0c6e618b36edf452d184de505..904417af80aa66b48baae5c29641603debddf064 100644 (file)
 
 extern struct rtc_ops no_rtc_ops;
 
+void board_reset (void)
+{
+}
+
 void __init board_setup(void)
 {
        u32 pin_func;
index ab53e1a6c03688c578aa67676bd4b578e80f50d8..042378699c02cf84f076db4a6ccd40543c823b6d 100644 (file)
     !!! I shall not define symbols starting with CONFIG_ !!!
 #endif
 
+void board_reset (void)
+{
+}
+
 void __init board_setup(void)
 {
        u32 pin_func, static_cfg0;
index abe5f47bcdf9869a21bb04dd1a0995f31ab9828b..e57c364bd8d2e57f095cddd7751e78346194a4df 100644 (file)
@@ -37,8 +37,8 @@
 #include <asm/mipsregs.h>
 #include <asm/reboot.h>
 #include <asm/pgtable.h>
-#include <asm/au1000.h>
-#include <asm/pb1100.h>
+#include <asm/mach-au1x00/au1000.h>
+#include <asm/mach-pb1x00/pb1100.h>
 
 #ifdef CONFIG_USB_OHCI
 // Enable the workaround for the OHCI DoneHead
     !!! I shall not define symbols starting with CONFIG_ !!!
 #endif
 
+void board_reset (void)
+{
+    /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
+    au_writel(0x00000000, 0xAE00001C);
+}
+
 void __init board_setup(void)
 {
        u32 pin_func;
index bfb389e7e17cbf4277f045afdf5356db3e2d154d..43be7158b9ab7e3a58c9ddcd9097cf53c4fdbbf3 100644 (file)
@@ -45,7 +45,7 @@
 #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[] = {
        { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card Fully_Interted#
index 5b7ee00dcee5ed8bd1842cb56746f3ccedec85a5..9dd0106dc53baedb5ebc145be0e05acf260ee3f4 100644 (file)
     !!! I shall not define symbols starting with CONFIG_ !!!
 #endif
 
+void board_reset (void)
+{
+    /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
+    au_writel(0x00000000, 0xAE00001C);
+}
+
 void __init board_setup(void)
 {
        u32 pin_func;
index 6cd5cc801c973c0688559b5028591d54360b2c9b..654fd311a3c953ccb02a44843fcc40987ff10401 100644 (file)
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-pb1x00/pb1550.h>
 
+void board_reset (void)
+{
+    /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
+       au_writew(au_readw(0xAF00001C) & ~(1<<15), 0xAF00001C);
+}
+
 void __init board_setup(void)
 {
        u32 pin_func;
index 3dcaef1bdea31f28c1a2977ad25255daf17592c8..9dadc82536f45f8ed49243a2ee462508db3dabd8 100644 (file)
 #include <asm/pgtable.h>
 #include <asm/au1000.h>
 
+void board_reset (void)
+{
+       /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
+       au_writel(0x00000000, 0xAE00001C);
+}
+
 void __init board_setup(void)
 {
        u32 pin_func;
diff --git a/arch/mips/baget/Makefile b/arch/mips/baget/Makefile
deleted file mode 100644 (file)
index 6890c3a..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Makefile for the Baget specific kernel interface routines
-# under Linux.
-#
-
-obj-y                  := baget.o print.o setup.o time.o irq.o bagetIRQ.o \
-                          reset.o
-obj-$(CONFIG_VAC_RTC)  += vacrtc.o
-
-EXTRA_AFLAGS := $(CFLAGS)
-
-bagetIRQ.o : bagetIRQ.S
-       $(CC) $(CFLAGS) -c -o $@ $<
-
-##################### Baget Loader stuff ########################
-
-image: ../../../vmlinux
-       cp -f $< $@
-
-image.bin: image
-       $(OBJCOPY) -O binary $< $@
-
-ramdisk.bin:
-       echo "Dummy ramdisk used. Provide your own if needed !" > $@
-
-dummy.c:
-       touch $@
-
-dummy.o: dummy.c image.bin ramdisk.bin
-       $(CC) $(CFLAGS) -c -o $@ $<
-       $(OBJCOPY) --add-section=.vmlinux=image.bin \
-                   --add-section=.ramdisk=ramdisk.bin   $@
-
-balo.h: image
-       $(NM) $< | awk ' \
-       BEGIN               { printf "/* DO NOT EDIT THIS FILE */\n" }    \
-       /_ftext/            { printf "#define LOADADDR 0x%s\n", $$1     } \
-       /kernel_entry/      { printf "#define START 0x%s\n", $$1 }        \
-       /balo_ramdisk_base/ { printf "#define RAMDISK_BASE 0x%s\n", $$1 } \
-       /balo_ramdisk_size/ { printf "#define RAMDISK_SIZE 0x%s\n", $$1 } \
-                       ' > $@
-balo.o:   balo.c balo.h
-       $(CC) $(CFLAGS) -c $<
-
-balo_supp.o: balo_supp.S
-       $(CC) $(CFLAGS) -c $<
-
-balo:   balo.o dummy.o balo_supp.o print.o
-       $(LD) $(LDFLAGS) -T ld.script.balo -o $@ $^
-
-clean:
-       rm -f balo balo.h dummy.c image image.bin
-
diff --git a/arch/mips/baget/baget.c b/arch/mips/baget/baget.c
deleted file mode 100644 (file)
index 76da723..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * baget.c: Baget low level stuff
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- *
- */
-#include <stdarg.h>
-
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <asm/system.h>
-#include <asm/bootinfo.h>
-#include <asm/mipsregs.h>
-#include <asm/pgtable.h>
-
-#include <asm/baget/baget.h>
-
-/*
- *  Following code is based on routines from 'mm/vmalloc.c'
- *  Additional parameters  ioaddr  is needed to iterate across real I/O address.
- */
-static inline int alloc_area_pte(pte_t * pte, unsigned long address,
-                                unsigned long size, unsigned long ioaddr)
-{
-        unsigned long end;
-
-        address &= ~PMD_MASK;
-        end = address + size;
-        if (end > PMD_SIZE)
-                end = PMD_SIZE;
-        while (address < end) {
-                unsigned long page;
-                if (!pte_none(*pte))
-                        printk("kseg2_alloc_io: page already exists\n");
-               /*
-                *  For MIPS looks pretty to have transparent mapping
-                *  for KSEG2 areas  -- user can't access one, and no
-                *  problems with  virtual <--> physical  translation.
-                */
-                page = ioaddr & PAGE_MASK;
-
-                set_pte(pte, __pte(page | pgprot_val(PAGE_USERIO) |
-                                 _PAGE_GLOBAL | __READABLE | __WRITEABLE));
-                address += PAGE_SIZE;
-               ioaddr  += PAGE_SIZE;
-                pte++;
-        }
-        return 0;
-}
-
-static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address,
-                                unsigned long size, unsigned long ioaddr)
-{
-        unsigned long end;
-
-        address &= ~PGDIR_MASK;
-        end = address + size;
-        if (end > PGDIR_SIZE)
-                end = PGDIR_SIZE;
-        while (address < end) {
-                pte_t * pte = pte_alloc_kernel(pmd, address);
-                if (!pte)
-                        return -ENOMEM;
-                if (alloc_area_pte(pte, address, end - address, ioaddr))
-                        return -ENOMEM;
-                address = (address + PMD_SIZE) & PMD_MASK;
-               ioaddr  += PMD_SIZE;
-                pmd++;
-        }
-        return 0;
-}
-
-int kseg2_alloc_io (unsigned long address, unsigned long size)
-{
-        pgd_t * dir;
-        unsigned long end = address + size;
-
-        dir = pgd_offset_k(address);
-        flush_cache_all();
-        while (address < end) {
-                pmd_t *pmd;
-                pgd_t olddir = *dir;
-
-                pmd = pmd_alloc_kernel(dir, address);
-                if (!pmd)
-                        return -ENOMEM;
-                if (alloc_area_pmd(pmd, address, end - address, address))
-                        return -ENOMEM;
-                if (pgd_val(olddir) != pgd_val(*dir))
-                        set_pgdir(address, *dir);
-                address = (address + PGDIR_SIZE) & PGDIR_MASK;
-                dir++;
-        }
-        flush_tlb_all();
-        return 0;
-}
diff --git a/arch/mips/baget/bagetIRQ.S b/arch/mips/baget/bagetIRQ.S
deleted file mode 100644 (file)
index da066d5..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * bagetIRQ.S: Interrupt exception dispatch code for Baget/MIPS
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#include <asm/asm.h>
-#include <asm/mipsregs.h>
-#include <asm/regdef.h>
-#include <asm/stackframe.h>
-#include <asm/addrspace.h>
-
-       .text
-       .set    mips1
-       .set    reorder
-       .set    macro
-       .set    noat
-       .align  5
-
-NESTED(bagetIRQ, PT_SIZE, sp)
-       SAVE_ALL
-       CLI                             # Important: mark KERNEL mode !
-
-       la      a1, baget_interrupt
-       .set    push
-       .set    noreorder
-       jal     a1
-       .set    pop
-       move    a0, sp
-
-       la      a1, ret_from_irq
-       jr      a1
-END(bagetIRQ)
-
-#define DBE_HANDLER       0x1C
-
-NESTED(try_read, PT_SIZE, sp)
-       mfc0    t3, CP0_STATUS          # save flags and
-       CLI                             #  disable interrupts
-
-       li      t0, KSEG2
-       sltu    t1, t0, a0              # Is it KSEG2 address ?
-       beqz    t1, mapped              # No - already mapped !
-
-       move    t0, a0
-       ori     t0, 0xfff
-       xori    t0, 0xfff               # round address to page
-
-       ori     t1, t0, 0xf00           # prepare EntryLo (N,V,D,G)
-
-       mfc0    t2,   CP0_ENTRYHI       # save ASID value
-       mtc0    zero, CP0_INDEX
-       mtc0    t0,   CP0_ENTRYHI       # Load MMU values ...
-       mtc0    t1,   CP0_ENTRYLO0
-       nop                             # let it understand
-       nop
-       tlbwi                           # ... and write ones
-       nop
-       nop
-       mtc0    t2,  CP0_ENTRYHI
-
-mapped:
-       la      t0, exception_handlers
-       lw      t1, DBE_HANDLER(t0)     # save real handler
-       la      t2, dbe_handler
-       sw      t2, DBE_HANDLER(t0)     # set temporary local handler
-       li      v0, -1                  # default (failure) value
-
-       li      t2, 1
-       beq     t2, a1, 1f
-       li      t2, 2
-       beq     t2, a1, 2f
-       li      t2, 4
-       beq     t2, a1, 4f
-       b       out
-
-1:     lbu     v0, (a0)                # byte
-       b       out
-
-2:     lhu     v0, (a0)                # short
-       b       out
-
-4:     lw      v0, (a0)                # word
-
-out:
-       sw      t1, DBE_HANDLER(t0)     # restore real handler
-       mtc0    t3, CP0_STATUS          # restore CPU flags
-       jr      ra
-
-dbe_handler:
-       li      v0, -1                  # mark our failure
-       .set    push
-       .set    noreorder
-       b       out                     # "no problems !"
-       rfe                             #   return from trap
-       .set    pop
-END(try_read)
diff --git a/arch/mips/baget/balo.c b/arch/mips/baget/balo.c
deleted file mode 100644 (file)
index f198fd2..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * balo.c: BAget LOader
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#include <linux/kernel.h>
-#include <asm/system.h>
-#include <asm/ptrace.h>
-#include <asm/addrspace.h>
-
-#include <asm/baget/baget.h>
-
-#include "balo.h"  /* Includes some kernel symbol values */
-
-static char *banner = "\nBaget Linux Loader v0.2\n";
-
-static void mem_move (long *to, long *from, long size)
-{
-       while (size > 0) {
-               *to++ = *from++;
-               size -= sizeof(long);
-       }
-}
-
-static volatile int *mem_limit     = (volatile int*)KSEG1;
-static volatile int *mem_limit_dbe = (volatile int*)KSEG1;
-
-static int can_write (volatile int* p) {
-        return p <  (int*)(KSEG1+BALO_OFFSET) ||
-               p >= (int*)(KSEG1+BALO_OFFSET+BALO_SIZE);
-}
-
-static volatile enum balo_state_enum {
-       BALO_INIT,
-       MEM_INIT,
-       MEM_PROBE,
-       START_KERNEL
-} balo_state = BALO_INIT;
-
-
-static __inline__ void reset_and_jump(int start, int mem_upper)
-{
-       unsigned long tmp;
-
-       __asm__ __volatile__(
-                ".set\tnoreorder\n\t"
-                ".set\tnoat\n\t"
-                "mfc0\t$1, $12\n\t"
-                "nop\n\t"
-                "nop\n\t"
-                "nop\n\t"
-                "ori\t$1, $1, 0xff00\n\t"
-                "xori\t$1, $1, 0xff00\n\t"
-                "mtc0\t$1, $12\n\t"
-                "nop\n\t"
-                "nop\n\t"
-                "nop\n\t"
-               "move\t%0, %2\n\t"
-               "jr\t%1\n\t"
-               "nop\n\t"
-                ".set\tat\n\t"
-                ".set\treorder"
-                : "=&r" (tmp)
-                : "Ir" (start), "Ir" (mem_upper)
-                : "memory");
-}
-
-static void start_kernel(void)
-{
-       extern char _vmlinux_start, _vmlinux_end;
-       extern char _ramdisk_start, _ramdisk_end;
-
-        outs( "Relocating Linux... " );
-       mem_move((long*)KSEG0, (long*)&_vmlinux_start,
-                 &_vmlinux_end-&_vmlinux_start);
-       outs("done.\n");
-
-       if (&_ramdisk_start != &_ramdisk_end) {
-               outs("Setting up RAMDISK... ");
-               if (*(unsigned long*)RAMDISK_BASE != 0xBA) {
-                       outs("Bad RAMDISK_BASE signature in system image.\n");
-                        balo_hungup();
-               }
-               *(unsigned long*)RAMDISK_BASE = (unsigned long)&_ramdisk_start;
-               *(unsigned long*)RAMDISK_SIZE = &_ramdisk_end -&_ramdisk_start;
-               outs("done.\n");
-       }
-
-       {
-               extern void flush_cache_low(int isize, int dsize);
-               flush_cache_low(256*1024,256*1024);
-       }
-
-        balo_printf( "Kernel entry: %x\n\n", START);
-       balo_state = START_KERNEL;
-       reset_and_jump(START, (int)mem_limit-KSEG1+KSEG0);
-}
-
-
-static void mem_probe(void)
-{
-       balo_state = MEM_PROBE;
-       outs("RAM: <");
-       while(mem_limit < mem_limit_dbe) {
-                if (can_write(mem_limit) && *mem_limit != 0)
-                        break; /* cycle found */
-               outc('.');
-               if (can_write(mem_limit))
-                        *mem_limit = -1; /* mark */
-                mem_limit += 0x40000;
-       }
-       outs(">\n");
-       start_kernel();
-}
-
-volatile unsigned int int_cause;
-volatile unsigned int epc;
-volatile unsigned int badvaddr;
-
-static void print_regs(void)
-{
-        balo_printf("CAUSE=%x EPC=%x BADVADDR=%x\n",
-                    int_cause, epc, badvaddr);
-}
-
-void int_handler(struct pt_regs *regs)
-{
-        switch (balo_state) {
-       case BALO_INIT:
-                balo_printf("\nBALO: trap in balo itself.\n");
-               print_regs();
-                balo_hungup();
-               break;
-       case MEM_INIT:
-                if ((int_cause & CAUSE_MASK) != CAUSE_DBE) {
-                        balo_printf("\nBALO: unexpected trap during memory init.\n");
-                       print_regs();
-                        balo_hungup();
-               } else {
-                       mem_probe();
-               }
-               break;
-       case MEM_PROBE:
-                balo_printf("\nBALO: unexpected trap during memory probe.\n");
-               print_regs();
-                balo_hungup();
-               break;
-       case START_KERNEL:
-                balo_printf("\nBALO: unexpected kernel trap.\n");
-               print_regs();
-                balo_hungup();
-               break;
-       }
-        balo_printf("\nBALO: unexpected return from handler.\n");
-       print_regs();
-        balo_hungup();
-}
-
-static void mem_init(void)
-{
-       balo_state = MEM_INIT;
-
-       while(1) {
-               *mem_limit_dbe;
-               if (can_write(mem_limit_dbe))
-                       *mem_limit_dbe = 0;
-
-               mem_limit_dbe += 0x40000; /* +1M */
-       }
-        /*  no return: must go to int_handler */
-}
-
-void balo_entry(void)
-{
-        extern void except_vec3_generic(void);
-
-       cli();
-       outs(banner);
-        memcpy((void *)(KSEG0 + 0x80), &except_vec3_generic, 0x80);
-       mem_init();
-}
-
-/* Needed for linking */
-
-int vsprintf(char *buf, const char *fmt, va_list arg)
-{
-       outs("BALO: vsprintf called.\n");
-       balo_hungup();
-       return 0;
-}
diff --git a/arch/mips/baget/balo_supp.S b/arch/mips/baget/balo_supp.S
deleted file mode 100644 (file)
index b2d935d..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * balo_supp.S: BAget Loader supplement
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#include <asm/asm.h>
-#include <asm/regdef.h>
-#include <asm/stackframe.h>
-#include <asm/mipsregs.h>
-#include <asm/addrspace.h>
-
-       .text
-       .set    mips1
-
-       /* General exception vector. */
-NESTED(except_vec3_generic, 0, sp)
-       .set    noat
-       la      k0, except_vec3_generic_code
-       jr      k0
-END(except_vec3_generic)
-
-NESTED(except_vec3_generic_code, 0, sp)
-       SAVE_ALL
-       mfc0    k1, CP0_CAUSE
-       la      k0, int_cause
-       sw      k1, (k0)
-
-        mfc0    k1, CP0_EPC
-        la      k0, epc
-        sw      k1, (k0)
-
-        mfc0    k1, CP0_BADVADDR
-        la      k0, badvaddr
-        sw      k1, (k0)
-
-       la      k0, int_handler
-        .set    noreorder
-       jal     k0
-        .set    reorder
-       move    a0, sp
-
-        RESTORE_ALL_AND_RET
-END(except_vec3_generic_code)
-
-        .align  5
-NESTED(flush_cache_low, PT_SIZE, sp)
-        .set    at
-        .set    macro
-        .set    noreorder
-
-        move    t1, a0  # ISIZE
-        move    t2, a1  # DSIZE
-
-        mfc0    t3, CP0_STATUS       # Save the status register.
-        mtc0    zero, CP0_STATUS     # Disable interrupts.
-        la      v0, 1f
-        or      v0, KSEG1            # Run uncached.
-        j       v0
-        nop
-/*
- * Flush the instruction cache.
- */
-1:
-        li      v0, ST0_DE | ST0_CE
-        mtc0    v0, CP0_STATUS       # Isolate and swap caches.
-        li      t0, KSEG1
-        subu    t0, t0, t1
-        li      t1, KSEG1
-        la      v0, 1f                          # Run cached
-        j       v0
-        nop
-1:
-        addu    t0, t0, 64
-        sb      zero, -64(t0)
-        sb      zero, -60(t0)
-        sb      zero, -56(t0)
-        sb      zero, -52(t0)
-        sb      zero, -48(t0)
-        sb      zero, -44(t0)
-        sb      zero, -40(t0)
-        sb      zero, -36(t0)
-        sb      zero, -32(t0)
-        sb      zero, -28(t0)
-        sb      zero, -24(t0)
-        sb      zero, -20(t0)
-        sb      zero, -16(t0)
-        sb      zero, -12(t0)
-        sb      zero, -8(t0)
-        bne     t0, t1, 1b
-        sb      zero, -4(t0)
-
-        la      v0, 1f
-        or      v0, KSEG1
-        j       v0                              # Run uncached
-        nop
-/*
- * Flush the data cache.
- */
-1:
-        li      v0, ST0_DE
-        mtc0    v0, CP0_STATUS       # Isolate and swap back caches
-        li      t0, KSEG1
-        subu    t0, t0, t2
-        la      v0, 1f
-        j       v0                              # Back to cached mode
-        nop
-1:
-        addu    t0, t0, 64
-        sb      zero, -64(t0)
-        sb      zero, -60(t0)
-        sb      zero, -56(t0)
-        sb      zero, -52(t0)
-        sb      zero, -48(t0)
-        sb      zero, -44(t0)
-        sb      zero, -40(t0)
-        sb      zero, -36(t0)
-        sb      zero, -32(t0)
-        sb      zero, -28(t0)
-        sb      zero, -24(t0)
-        sb      zero, -20(t0)
-        sb      zero, -16(t0)
-        sb      zero, -12(t0)
-        sb      zero, -8(t0)
-        bne     t0, t1, 1b
-        sb      zero, -4(t0)
-
-        nop                                     # Insure isolated stores
-        nop                                     #   out of pipe.
-        nop
-        nop
-        mtc0    t3, CP0_STATUS                 # Restore status reg.
-        nop                                    # Insure cache unisolated.
-        nop
-        nop
-        nop
-        j       ra
-        nop
-END(flush_cache_low)
-
-/* To satisfy macros only */
-EXPORT(kernelsp)
-       PTR     0x80001000
diff --git a/arch/mips/baget/irq.c b/arch/mips/baget/irq.c
deleted file mode 100644 (file)
index 341562d..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Code to handle Baget/MIPS IRQs plus some generic interrupt stuff.
- *
- * Copyright (C) 1998 Vladimir Roganov & Gleb Raiko
- *      Code (mostly sleleton and comments) derived from DECstation IRQ
- *      handling.
- */
-#include <linux/errno.h>
-#include <linux/init.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 <linux/bitops.h>
-
-#include <asm/bootinfo.h>
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/mipsregs.h>
-#include <asm/system.h>
-
-#include <asm/baget/baget.h>
-
-volatile unsigned long irq_err_count;
-
-/*
- * This table is a correspondence between IRQ numbers and CPU PILs
- */
-
-static int irq_to_pil_map[BAGET_IRQ_NR] = {
-       7/*fixme: dma_err -1*/,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 0x00 - 0x0f */
-       -1,-1,-1,-1, 3,-1,-1,-1, 2, 2, 2,-1, 3,-1,-1,3/*fixme: lance*/, /* 0x10 - 0x1f */
-        -1,-1,-1,-1,-1,-1, 5,-1,-1,-1,-1,-1, 7,-1,-1,-1, /* 0x20 - 0x2f */
-       -1, 3, 2/*fixme systimer:3*/, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3  /* 0x30 - 0x3f */
-};
-
-static inline int irq_to_pil(int irq_nr)
-{
-       int pil = -1;
-
-       if (irq_nr >= BAGET_IRQ_NR)
-               baget_printk("irq_to_pil: too large irq_nr = 0x%x\n", irq_nr);
-       else {
-               pil = irq_to_pil_map[irq_nr];
-               if (pil == -1)
-                       baget_printk("irq_to_pil: unknown irq = 0x%x\n", irq_nr);
-       }
-
-       return pil;
-}
-
-/* Function for careful CP0 interrupt mask access */
-
-static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
-{
-       unsigned long status = read_c0_status();
-       status &= ~((clr_mask & 0xFF) << 8);
-       status |=   (set_mask & 0xFF) << 8;
-       write_c0_status(status);
-}
-
-/*
- *  These two functions may be used for unconditional IRQ
- *  masking via their PIL protection.
- */
-
-static inline void mask_irq(unsigned int irq_nr)
-{
-        modify_cp0_intmask(irq_to_pil(irq_nr), 0);
-}
-
-static inline void unmask_irq(unsigned int irq_nr)
-{
-       modify_cp0_intmask(0, irq_to_pil(irq_nr));
-}
-
-/*
- * The following section is introduced for masking/unasking IRQ
- * only while no more IRQs uses same CPU PIL.
- *
- * These functions are used in request_irq, free_irq, but it looks
- * they cannot change something: CP0_STATUS is private for any
- * process, and their action is invisible for system.
- */
-
-static volatile unsigned int pil_in_use[BAGET_PIL_NR] = { 0, };
-
-void mask_irq_count(int irq_nr)
-{
-       unsigned long flags;
-       int pil = irq_to_pil(irq_nr);
-
-       local_irq_save(flags);
-       if (!--pil_in_use[pil])
-               mask_irq(irq_nr);
-       local_irq_restore(flags);
-}
-
-void unmask_irq_count(int irq_nr)
-{
-       unsigned long flags;
-       int pil = irq_to_pil(irq_nr);
-
-       local_irq_save(flags);
-       if (!pil_in_use[pil]++)
-               unmask_irq(irq_nr);
-       local_irq_restore(flags);
-}
-
-/*
- * Two functions below are exported versions of mask/unmask IRQ
- */
-
-void disable_irq(unsigned int irq_nr)
-{
-       unsigned long flags;
-
-       local_irq_save(flags);
-       mask_irq(irq_nr);
-       local_irq_restore(flags);
-}
-
-void enable_irq(unsigned int irq_nr)
-{
-       unsigned long flags;
-
-       local_irq_save(flags);
-       unmask_irq(irq_nr);
-       local_irq_restore(flags);
-}
-
-/*
- * Pointers to the low-level handlers: first the general ones, then the
- * fast ones, then the bad ones.
- */
-static struct irqaction *irq_action[BAGET_IRQ_NR] = { NULL, };
-
-int get_irq_list(char *buf)
-{
-       int i, len = 0;
-       struct irqaction * action;
-       unsigned long flags;
-
-       for (i = 0 ; i < BAGET_IRQ_NR ; i++) {
-               local_irq_save(flags);
-               action = irq_action[i];
-               if (!action)
-                       gotos skip;
-               len += sprintf(buf+len, "%2d: %8d %c %s",
-                       i, kstat_this_cpu.irqs[i],
-                       (action->flags & SA_INTERRUPT) ? '+' : ' ',
-                       action->name);
-               for (action=action->next; action; action = action->next) {
-                       len += sprintf(buf+len, ",%s %s",
-                               (action->flags & SA_INTERRUPT) ? " +" : "",
-                               action->name);
-               }
-               len += sprintf(buf+len, "\n");
-skip:
-               local_irq_restore(flags);
-       }
-       return len;
-}
-
-
-/*
- * do_IRQ handles IRQ's that have been installed without the
- * SA_INTERRUPT flag: it uses the full signal-handling return
- * and runs with other interrupts enabled. All relatively slow
- * IRQ's should use this format: notably the keyboard/timer
- * routines.
- */
-static void do_IRQ(int irq, struct pt_regs * regs)
-{
-       struct irqaction *action;
-       int ret, do_random, cpu;
-
-       cpu = smp_processor_id();
-       irq_enter();
-       kstat_cpus(cpu).irqs[irq]++;
-
-       mask_irq(irq);
-       action = *(irq + irq_action);
-       if (action) {
-               if (!(action->flags & SA_INTERRUPT))
-                       local_irq_enable();
-               action = *(irq + irq_action);
-               do_random = 0;
-               do {
-                       ret = action->handler(irq, action->dev_id, regs);
-                       if (ret == IRQ_HANDLED)
-                               do_random |= action->flags;
-                       action = action->next;
-               } while (action);
-               if (do_random & SA_SAMPLE_RANDOM)
-                       add_interrupt_randomness(irq);
-               local_irq_disable();
-       } else {
-               printk("do_IRQ: Unregistered IRQ (0x%X) occurred\n", irq);
-       }
-       unmask_irq(irq);
-       irq_exit();
-
-       /* unmasking and bottom half handling is done magically for us. */
-}
-
-/*
- *  What to do in case of 'no VIC register available' for current interrupt
- */
-static void vic_reg_error(unsigned long address, unsigned char active_pils)
-{
-       printk("\nNo VIC register found: reg=%08lx active_pils=%02x\n"
-              "Current interrupt mask from CP0_CAUSE: %02x\n",
-              address, 0xff & active_pils,
-              0xff & (read_c0_cause()>>8));
-       { int i; for (i=0; i<10000; i++) udelay(1000); }
-}
-
-static char baget_fpu_irq = BAGET_FPU_IRQ;
-#define BAGET_INT_FPU {(unsigned long)&baget_fpu_irq, 1}
-
-/*
- *  Main interrupt handler: interrupt demultiplexer
- */
-asmlinkage void baget_interrupt(struct pt_regs *regs)
-{
-       static struct baget_int_reg int_reg[BAGET_PIL_NR] = {
-               BAGET_INT_NONE, BAGET_INT_NONE, BAGET_INT0_ACK, BAGET_INT1_ACK,
-               BAGET_INT_NONE, BAGET_INT_FPU,  BAGET_INT_NONE, BAGET_INT5_ACK
-       };
-       unsigned char active_pils;
-       while ((active_pils = read_c0_cause()>>8)) {
-               int pil;
-               struct baget_int_reg* reg;
-
-                for (pil = 0; pil < BAGET_PIL_NR; pil++) {
-                        if (!(active_pils & (1<<pil))) continue;
-
-                       reg = &int_reg[pil];
-
-                       if (reg->address) {
-                                extern int try_read(unsigned long,int);
-                               int irq  = try_read(reg->address, reg->size);
-
-                               if (irq != -1)
-                                     do_IRQ(BAGET_IRQ_MASK(irq), regs);
-                               else
-                                     vic_reg_error(reg->address, active_pils);
-                       } else {
-                               printk("baget_interrupt: unknown interrupt "
-                                      "(pil = %d)\n", pil);
-                       }
-               }
-       }
-}
-
-/*
- * Idea is to put all interrupts
- * in a single table and differenciate them just by number.
- */
-int setup_baget_irq(int irq, struct irqaction * new)
-{
-       int shared = 0;
-       struct irqaction *old, **p;
-       unsigned long flags;
-
-       p = irq_action + irq;
-       if ((old = *p) != NULL) {
-               /* Can't share interrupts unless both agree to */
-               if (!(old->flags & new->flags & SA_SHIRQ))
-                       return -EBUSY;
-
-               /* Can't share interrupts unless both are same type */
-               if ((old->flags ^ new->flags) & SA_INTERRUPT)
-                       return -EBUSY;
-
-               /* add new interrupt at end of irq queue */
-               do {
-                       p = &old->next;
-                       old = *p;
-               } while (old);
-               shared = 1;
-       }
-
-       if (new->flags & SA_SAMPLE_RANDOM)
-               rand_initialize_irq(irq);
-
-       local_irq_save(flags);
-       *p = new;
-       local_irq_restore(flags);
-
-       if (!shared) {
-               unmask_irq_count(irq);
-       }
-
-       return 0;
-}
-
-int request_irq(unsigned int irq,
-               void (*handler)(int, void *, struct pt_regs *),
-               unsigned long irqflags,
-               const char * devname,
-               void *dev_id)
-{
-       int retval;
-       struct irqaction * action;
-
-       if (irq >= BAGET_IRQ_NR)
-               return -EINVAL;
-       if (!handler)
-               return -EINVAL;
-       if (irq_to_pil_map[irq] < 0)
-               return -EINVAL;
-
-       action = (struct irqaction *)
-                       kmalloc(sizeof(struct irqaction), GFP_KERNEL);
-       if (!action)
-               return -ENOMEM;
-
-       action->handler = handler;
-       action->flags = irqflags;
-       cpus_clear(action->mask);
-       action->name = devname;
-       action->next = NULL;
-       action->dev_id = dev_id;
-
-       retval = setup_baget_irq(irq, action);
-
-       if (retval)
-               kfree(action);
-
-       return retval;
-}
-
-EXPORT_SYMBOL(request_irq);
-
-void free_irq(unsigned int irq, void *dev_id)
-{
-       struct irqaction * action, **p;
-       unsigned long flags;
-
-       if (irq >= BAGET_IRQ_NR)
-               printk("Trying to free IRQ%d\n",irq);
-
-       for (p = irq + irq_action; (action = *p) != NULL; p = &action->next) {
-               if (action->dev_id != dev_id)
-                       continue;
-
-               /* Found it - now free it */
-               local_irq_save(flags);
-               *p = action->next;
-               if (!irq[irq_action])
-                       unmask_irq_count(irq);
-               local_irq_restore(flags);
-               kfree(action);
-               return;
-       }
-       printk("Trying to free free IRQ%d\n",irq);
-}
-
-EXPORT_SYMBOL(free_irq);
-
-unsigned long probe_irq_on (void)
-{
-       /* TODO */
-       return 0;
-}
-
-EXPORT_SYMBOL(probe_irq_on);
-
-int probe_irq_off (unsigned long irqs)
-{
-       /* TODO */
-       return 0;
-}
-
-EXPORT_SYMBOL(probe_irq_off);
-
-
-static void write_err_interrupt(int irq, void *dev_id, struct pt_regs * regs)
-{
-       *(volatile char*) BAGET_WRERR_ACK = 0;
-}
-
-static struct irqaction irq0  =
-{ write_err_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "bus write error", NULL, NULL};
-
-void __init init_IRQ(void)
-{
-       irq_setup();
-
-       /* Enable access to VIC interrupt registers */
-       vac_outw(0xacef | 0x8200, VAC_PIO_FUNC);
-
-       /* Enable interrupts for pils 2 and 3 (lines 0 and 1) */
-       modify_cp0_intmask(0, (1<<2)|(1<<3));
-
-       if (setup_baget_irq(0, &irq0) < 0)
-               printk("init_IRQ: unable to register write_err irq\n");
-}
diff --git a/arch/mips/baget/ld.script.balo b/arch/mips/baget/ld.script.balo
deleted file mode 100644 (file)
index 28e7f81..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-OUTPUT_FORMAT("elf32-tradbigmips")
-OUTPUT_ARCH(mips)
-ENTRY(balo_entry)
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = 0x80400000;
-  .rel.text      : { *(.rel.text)      }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)      }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)       }
-  .rela.got      : { *(.rela.got)      }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.init      : { *(.rel.init)      }
-  .rela.init     : { *(.rela.init)     }
-  .rel.fini      : { *(.rel.fini)      }
-  .rela.fini     : { *(.rela.fini)     }
-  .rel.bss       : { *(.rel.bss)       }
-  .rela.bss      : { *(.rela.bss)      }
-  .rel.plt       : { *(.rel.plt)       }
-  .rela.plt      : { *(.rela.plt)      }
-  .init          : { *(.init)          } =0
-  .text      :
-  {
-    _ftext = . ;
-    *(.text)
-    *(.rodata)
-    *(.rodata.*)
-    *(.rodata1)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-
-  _etext = .;
-  PROVIDE (etext = .);
-
-  /* Startup code */
-  . = ALIGN(4096);
-  __init_begin = .;
-  *(.text.init)
-  *(.data.init)
-  . = ALIGN(4096);     /* Align double page for init_task_union */
-  __init_end = .;
-
-   *(.fini)
-  *(.reginfo)
-  /* Adjust the address for the data segment.  We want to adjust up to
-     the same address within the page on the next page up.  It would
-     be more correct to do this:
-       . = .;
-     The current expression does not correctly handle the case of a
-     text segment ending precisely at the end of a page; it causes the
-     data segment to skip a page.  The above expression does not have
-     this problem, but it will currently (2/95) cause BFD to allocate
-     a single segment, combining both text and data, for this case.
-     This will prevent the text segment from being shared among
-     multiple executions of the program; I think that is more
-     important than losing a page of the virtual address space (note
-     that no actual memory is lost; the page which is skipped can not
-     be referenced).  */
-  . = .;
-    _fdata = . ;
-    *(.data)
-    CONSTRUCTORS
-
-  *(.data1)
-  _gp = . + 0x8000;
-  *(.lit8)
-  *(.lit4)
-  *(.ctors)
-  *(.dtors)
-  *(.got.plt) *(.got)
-  *(.dynamic)
-  /* We want the small data sections together, so single-instruction offsets
-     can access them all, and initialized data all before uninitialized, so
-     we can shorten the on-disk segment size.  */
-  *(.sdata)
-  _edata  =  .;
-  PROVIDE (edata = .);
-
-  __bss_start = .;
-  _fbss = .;
-
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-  _end = . ;
-  PROVIDE (end = .);
-   *(.sbss)
-   *(.scommon)
-
-  /* These are needed for ELF backends which have not yet been
-     converted to the new style linker.  */
-  *(.stab)
-  *(.stabstr)
-  /* DWARF debug sections.
-     Symbols in the .debug DWARF section are relative to the beginning of the
-     section so we begin .debug at 0.  It's not clear yet what needs to happen
-     for the others.   */
-  *(.debug)
-  *(.debug_srcinfo)
-  *(.debug_aranges)
-  *(.debug_pubnames)
-  *(.debug_sfnames)
-  *(.line)
-  /* These must appear regardless of  .  */
-  *(.gptab.data) *(.gptab.sdata)
-  *(.gptab.bss) *(.gptab.sbss)
-
-  _vmlinux_start = .;
-  *(.vmlinux)
-  _vmlinux_end = .;
-
-  _ramdisk_start = .;
-  *(.ramdisk)
-  _ramdisk_end = .;
-
-} =0
-
-}
diff --git a/arch/mips/baget/print.c b/arch/mips/baget/print.c
deleted file mode 100644 (file)
index 50f0dfa..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * print.c: Simple print fascility
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#include <stdarg.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-
-#include <asm/baget/baget.h>
-
-/*
- *  Define this to see 'baget_printk' (debug) messages
- */
-// #define BAGET_PRINTK
-
-/*
- *  This function is same for BALO and Linux baget_printk,
- *  and normally prints characted to second (UART A) console.
- */
-
-static void delay(void) {}
-
-static void outc_low(char c)
-{
-        int i;
-        vac_outb(c, VAC_UART_B_TX);
-        for (i=0; i<10000; i++)
-                delay();
-}
-
-void outc(char c)
-{
-        if (c == '\n')
-                outc_low('\r');
-        outc_low(c);
-}
-
-void outs(char *s)
-{
-        while(*s) outc(*s++);
-}
-
-void baget_write(char *s, int l)
-{
-        while(l--)
-                outc(*s++);
-}
-
-int baget_printk(const char *fmt, ...)
-{
-#ifdef BAGET_PRINTK
-        va_list args;
-        int i;
-        static char buf[1024];
-
-        va_start(args, fmt);
-        i = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf)-4 */
-        va_end(args);
-        baget_write(buf, i);
-        return i;
-#else
-       return 0;
-#endif
-}
-
-static __inline__ void puthex( int a )
-{
-        static char s[9];
-        static char e[] = "0123456789ABCDEF";
-        int i;
-        for( i = 7; i >= 0; i--, a >>= 4 ) s[i] = e[a & 0x0F];
-        s[8] = '\0';
-        outs( s );
-}
-
-void __init balo_printf( char *f, ... )
-{
-        int *arg = (int*)&f + 1;
-        char c;
-        int format = 0;
-
-        while((c = *f++) != 0) {
-                switch(c) {
-                default:
-                        if(format) {
-                                outc('%');
-                                format = 0;
-                        }
-                        outc( c );
-                        break;
-                case '%':
-                        if( format ){
-                                format = 0;
-                                outc(c);
-                        } else format = 1;
-                        break;
-                case 'x':
-                        if(format) puthex( *arg++ );
-                        else outc(c);
-                        format = 0;
-                        break;
-                case 's':
-                        if( format ) outs((char *)*arg++);
-                        else outc(c);
-                        format = 0;
-                        break;
-                }
-        }
-}
-
-void __init balo_hungup(void)
-{
-        outs("Hunging up.\n");
-        while(1);
-}
diff --git a/arch/mips/baget/prom/Makefile b/arch/mips/baget/prom/Makefile
deleted file mode 100644 (file)
index 3eb9165..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for the Baget/MIPS prom emulator library routines.
-#
-
-lib-y  := init.o
diff --git a/arch/mips/baget/prom/init.c b/arch/mips/baget/prom/init.c
deleted file mode 100644 (file)
index 647c3a5..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * init.c: PROM library initialisation code.
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#include <linux/init.h>
-#include <asm/addrspace.h>
-#include <asm/bootinfo.h>
-
-const char *get_system_type(void)
-{
-       /* Should probably return one of "BT23-201", "BT23-202" */
-       return "Baget";
-}
-
-void __init prom_init(void)
-{
-       mem_upper = PHYSADDR(fw_arg0);
-
-       mips_machgroup  = MACH_GROUP_UNKNOWN;
-       mips_machtype   = MACH_UNKNOWN;
-       arcs_cmdline[0] = 0;
-
-       vac_memory_upper = mem_upper;
-
-       add_memory_region(0, mem_upper, BOOT_MEM_RAM);
-}
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
diff --git a/arch/mips/baget/reset.c b/arch/mips/baget/reset.c
deleted file mode 100644 (file)
index e932ba2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <linux/kernel.h>
-#include <asm/system.h>
-#include <asm/baget/baget.h>
-
-
-#define R3000_RESET_VEC  0xbfc00000
-typedef void vector(void);
-
-
-static void baget_reboot(char *from_fun)
-{
-       cli();
-       baget_printk("\n%s: jumping to RESET code...\n", from_fun);
-       (*(vector*)R3000_RESET_VEC)();
-}
-
-/* fixme: proper functionality */
-
-void baget_machine_restart(char *command)
-{
-       baget_reboot("restart");
-}
-
-void baget_machine_halt(void)
-{
-       baget_reboot("halt");
-}
-
-void baget_machine_power_off(void)
-{
-       baget_reboot("power off");
-}
diff --git a/arch/mips/baget/setup.c b/arch/mips/baget/setup.c
deleted file mode 100644 (file)
index 71349fc..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-/*
- * setup.c: Baget/MIPS specific setup, including init of the feature struct.
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <asm/irq.h>
-#include <asm/addrspace.h>
-#include <asm/reboot.h>
-
-#include <asm/baget/baget.h>
-
-long int vac_memory_upper;
-
-#define CACHEABLE_STR(val) ((val) ? "not cached" : "cached")
-
-static void __init vac_show(void)
-{
-       int i;
-       unsigned short val, decode = vac_inw(VAC_DECODE_CTRL);
-       unsigned short a24_base = vac_inw(VAC_A24_BASE);
-       unsigned long  a24_addr = ((unsigned long)
-                                          (a24_base & VAC_A24_MASK)) << 16;
-       char *decode_mode[]  = { "eprom", "vsb", "shared", "dram" };
-       char *address_mode[] = { "", ", A16", ", A32/A24", ", A32/A24/A16" };
-       char *state[] = { "", " on write", " on read", " on read/write", };
-       char *region_mode[] = { "inactive", "shared", "vsb", "vme" };
-       char *asiz[]        = { "user", "A32", "A16", "A24" };
-       unsigned short regs[] = { VAC_REG1,     VAC_REG2, VAC_REG3  };
-       unsigned short bndr[] = { VAC_DRAM_MASK,VAC_BNDR2,VAC_BNDR3 };
-       unsigned short io_sels[] = { VAC_IOSEL0_CTRL,
-                                    VAC_IOSEL1_CTRL,
-                                    VAC_IOSEL2_CTRL,
-                                    VAC_IOSEL3_CTRL,
-                                    VAC_IOSEL4_CTRL,
-                                    VAC_IOSEL5_CTRL };
-
-       printk("[DSACKi %s, DRAMCS%s qualified, boundary%s qualified%s]\n",
-              (decode & VAC_DECODE_DSACKI)     ? "on" : "off",
-              (decode & VAC_DECODE_QFY_DRAMCS) ? ""   : " not",
-              (decode & VAC_DECODE_QFY_BNDR)   ? ""   : " not",
-              (decode & VAC_DECODE_FPUCS)      ? ", fpu" : "");
-
-       printk("slave0 ");
-       if (decode & VAC_DECODE_RDR_SLSEL0)
-               printk("at %08lx (%d MB)\t[dram %s]\n",
-                      ((unsigned long)vac_inw(VAC_SLSEL0_BASE))<<16,
-                      ((0xffff ^ vac_inw(VAC_SLSEL0_MASK)) + 1) >> 4,
-                      (decode & VAC_DECODE_QFY_SLSEL0) ? "qualified" : "");
-       else
-               printk("off\n");
-
-       printk("slave1 ");
-       if (decode & VAC_DECODE_RDR_SLSEL1)
-               printk("at %08lx (%d MB)\t[%s%s, %s]\n",
-                      ((unsigned long)vac_inw(VAC_SLSEL1_BASE))<<16,
-                      ((0xffff ^ vac_inw(VAC_SLSEL1_MASK)) + 1) >> 4,
-                      decode_mode[VAC_DECODE_MODE_VAL(decode)],
-                      address_mode[VAC_DECODE_CMP_SLSEL1_VAL(decode)],
-                      (decode & VAC_DECODE_QFY_SLSEL1) ? "qualified" : "");
-       else
-               printk("off\n");
-
-       printk("icf global at %04x, module at %04x [%s]\n",
-                      ((unsigned int)
-                       VAC_ICFSEL_GLOBAL_VAL(vac_inw(VAC_ICFSEL_BASE)))<<4,
-                      ((unsigned int)
-                       VAC_ICFSEL_MODULE_VAL(vac_inw(VAC_ICFSEL_BASE)))<<4,
-                      (decode & VAC_DECODE_QFY_ICFSEL) ? "qualified" : "");
-
-
-       printk("region0 at 00000000 (%dMB)\t[dram, %s, delay %d cpuclk"
-              ", cached]\n",
-              (vac_inw(VAC_DRAM_MASK)+1)>>4,
-              (decode & VAC_DECODE_DSACK) ? "D32" : "3state",
-              VAC_DECODE_CPUCLK_VAL(decode));
-
-       for (i = 0; i < sizeof(regs)/sizeof(regs[0]); i++) {
-               unsigned long from =
-                       ((unsigned long)vac_inw(bndr[i]))<<16;
-               unsigned long to   =
-                       ((unsigned long)
-                        ((i+1 == sizeof(bndr)/sizeof(bndr[0])) ?
-                         0xff00 : vac_inw(bndr[i+1])))<<16;
-
-
-               val = vac_inw(regs[i]);
-               printk("region%d at %08lx (%dMB)\t[%s %s/%s, %s]\n",
-                      i+1,
-                      from,
-                      (unsigned int)((to - from) >> 20),
-                      region_mode[VAC_REG_MODE(val)],
-                      asiz[VAC_REG_ASIZ_VAL(val)],
-                      ((val & VAC_REG_WORD) ?  "D16" : "D32"),
-                      CACHEABLE_STR(val&VAC_A24_A24_CACHINH));
-
-               if (a24_addr >= from && a24_addr < to)
-                       printk("\ta24 at %08lx (%dMB)\t[vme, A24/%s, %s]\n",
-                              a24_addr,
-                              min((unsigned int)(a24_addr - from)>>20, 32U),
-                              (a24_base & VAC_A24_DATAPATH) ?  "user" :
-                              ((a24_base & VAC_A24_D32_ENABLE)  ?
-                               "D32" : "D16"),
-                              CACHEABLE_STR(a24_base & VAC_A24_A24_CACHINH));
-       }
-
-       printk("region4 at ff000000 (15MB)\t[eprom]\n");
-       val = vac_inw(VAC_EPROMCS_CTRL);
-       printk("\t[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
-              "read %d%s, write %d%s, assert %d%s]\n",
-              VAC_CTRL_DELAY_DSACKI_VAL(val),
-              state[val & (VAC_CTRL_IORD|VAC_CTRL_IOWR)],
-              (val & VAC_CTRL_DSACK0) ? "dsack0*, " : "",
-              (val & VAC_CTRL_DSACK1) ? "dsack1*, " : "",
-              VAC_CTRL_RECOVERY_IOSELI_VAL(val),
-              VAC_CTRL_DELAY_IORD_VAL(val)/2,
-              (VAC_CTRL_DELAY_IORD_VAL(val)&1) ? ".5" : "",
-              VAC_CTRL_DELAY_IOWR_VAL(val)/2,
-              (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
-              VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
-              (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "");
-
-       printk("region5 at fff00000 (896KB)\t[local io, %s]\n",
-              CACHEABLE_STR(vac_inw(VAC_A24_BASE) & VAC_A24_IO_CACHINH));
-
-       for (i = 0; i < sizeof(io_sels)/sizeof(io_sels[0]); i++) {
-               val = vac_inw(io_sels[i]);
-               printk("\tio%d[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
-                      "\n\t read %d%s cpuclk, write %d%s cpuclk, "
-                      "assert %d%s%s cpuclk]\n",
-                      i,
-                      VAC_CTRL_DELAY_DSACKI_VAL(val),
-                      state[val & (VAC_CTRL_IORD|VAC_CTRL_IOWR)],
-                      (val & VAC_CTRL_DSACK0) ? "dsack0*, " : "",
-                      (val & VAC_CTRL_DSACK1) ? "dsack1*, " : "",
-                      VAC_CTRL_RECOVERY_IOSELI_VAL(val),
-                      VAC_CTRL_DELAY_IORD_VAL(val)/2,
-                      (VAC_CTRL_DELAY_IORD_VAL(val)&1) ? ".5" : "",
-                      VAC_CTRL_DELAY_IOWR_VAL(val)/2,
-                      (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
-                      VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
-                      (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "",
-                      (vac_inw(VAC_DEV_LOC) & VAC_DEV_LOC_IOSEL(i)) ?
-                         ", id" : "");
-       }
-
-       printk("region6 at fffe0000 (128KB)\t[vme, A16/%s, "
-              "not cached]\n",
-              (a24_base & VAC_A24_A16D32_ENABLE) ?
-              ((a24_base & VAC_A24_A16D32) ? "D32" : "D16") : "user");
-
-       val = vac_inw(VAC_SHRCS_CTRL);
-       printk("shared[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
-              "read %d%s, write %d%s, assert %d%s]\n",
-              VAC_CTRL_DELAY_DSACKI_VAL(val),
-              state[val & (VAC_CTRL_IORD|VAC_CTRL_IOWR)],
-              (val & VAC_CTRL_DSACK0) ? "dsack0*, " : "",
-              (val & VAC_CTRL_DSACK1) ? "dsack1*, " : "",
-              VAC_CTRL_RECOVERY_IOSELI_VAL(val),
-              VAC_CTRL_DELAY_IORD_VAL(val)/2,
-              (VAC_CTRL_DELAY_IORD_VAL(val)&1) ? ".5" : "",
-              VAC_CTRL_DELAY_IOWR_VAL(val)/2,
-              (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
-              VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
-              (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "");
-}
-
-static void __init vac_init(void)
-{
-       unsigned short mem_limit = (vac_memory_upper >> 16);
-
-       switch(vac_inw(VAC_ID)) {
-       case 0x1AC0:
-               printk("VAC068-F5: ");
-               break;
-       case 0x1AC1:
-               printk("VAC068A: ");
-               break;
-       default:
-               panic("Unknown VAC revision number");
-       }
-
-       vac_outw(mem_limit-1, VAC_DRAM_MASK);
-       vac_outw(mem_limit, VAC_BNDR2);
-       vac_outw(mem_limit, VAC_BNDR3);
-       vac_outw(((BAGET_A24M_BASE>>16)&~VAC_A24_D32_ENABLE)|VAC_A24_DATAPATH,
-                VAC_A24_BASE);
-       vac_outw(VAC_REG_INACTIVE|VAC_REG_ASIZ0,VAC_REG1);
-       vac_outw(VAC_REG_INACTIVE|VAC_REG_ASIZ0,VAC_REG2);
-       vac_outw(VAC_REG_MWB|VAC_REG_ASIZ1,VAC_REG3);
-       vac_outw(BAGET_A24S_BASE>>16,VAC_SLSEL0_BASE);
-       vac_outw(BAGET_A24S_MASK>>16,VAC_SLSEL0_MASK);
-       vac_outw(BAGET_A24S_BASE>>16,VAC_SLSEL1_BASE);
-       vac_outw(BAGET_A24S_MASK>>16,VAC_SLSEL1_MASK);
-       vac_outw(BAGET_GSW_BASE|BAGET_MSW_BASE(0),VAC_ICFSEL_BASE);
-       vac_outw(VAC_DECODE_FPUCS|
-                VAC_DECODE_CPUCLK(3)|
-                VAC_DECODE_RDR_SLSEL0|VAC_DECODE_RDR_SLSEL1|
-                VAC_DECODE_DSACK|
-                VAC_DECODE_QFY_BNDR|
-                VAC_DECODE_QFY_ICFSEL|
-                VAC_DECODE_QFY_SLSEL1|VAC_DECODE_QFY_SLSEL0|
-                VAC_DECODE_CMP_SLSEL1_HI|
-                VAC_DECODE_DRAMCS|
-                VAC_DECODE_QFY_DRAMCS|
-                VAC_DECODE_DSACKI,VAC_DECODE_CTRL);
-       vac_outw(VAC_PIO_FUNC_UART_A_TX|VAC_PIO_FUNC_UART_A_RX|
-                VAC_PIO_FUNC_UART_B_TX|VAC_PIO_FUNC_UART_B_RX|
-                VAC_PIO_FUNC_IOWR|
-                VAC_PIO_FUNC_IOSEL3|
-                VAC_PIO_FUNC_IRQ7|VAC_PIO_FUNC_IRQ10|VAC_PIO_FUNC_IRQ11|
-                VAC_PIO_FUNC_IOSEL2|
-                VAC_PIO_FUNC_FCIACK,VAC_PIO_FUNC);
-       vac_outw(VAC_PIO_DIR_FCIACK |
-                VAC_PIO_DIR_OUT(0) |
-                VAC_PIO_DIR_OUT(1) |
-                VAC_PIO_DIR_OUT(2) |
-                VAC_PIO_DIR_OUT(3) |
-                VAC_PIO_DIR_IN(4)  |
-                VAC_PIO_DIR_OUT(5) |
-                VAC_PIO_DIR_OUT(6) |
-                VAC_PIO_DIR_OUT(7) |
-                VAC_PIO_DIR_OUT(8) |
-                VAC_PIO_DIR_IN(9)  |
-                VAC_PIO_DIR_OUT(10)|
-                VAC_PIO_DIR_OUT(11)|
-                VAC_PIO_DIR_OUT(12)|
-                VAC_PIO_DIR_OUT(13),VAC_PIO_DIRECTION);
-       vac_outw(VAC_DEV_LOC_IOSEL(2),VAC_DEV_LOC);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(1)|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_SHRCS_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(1)|
-                VAC_CTRL_DSACK0|VAC_CTRL_DSACK1|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_EPROMCS_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(2)|
-                VAC_CTRL_DSACK0|VAC_CTRL_DSACK1|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_IOSEL0_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(2)|
-                VAC_CTRL_DSACK0|VAC_CTRL_DSACK1|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_IOSEL1_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(2)|
-                VAC_CTRL_DSACK0|VAC_CTRL_DSACK1|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_IOSEL2_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(2)|
-                VAC_CTRL_DSACK0|VAC_CTRL_DSACK1|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_IOSEL3_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(2)|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_IOSEL4_CTRL);
-       vac_outw(VAC_CTRL_IOWR|
-                VAC_CTRL_DELAY_IOWR(3)|
-                VAC_CTRL_DELAY_IORD(3)|
-                VAC_CTRL_RECOVERY_IOSELI(2)|
-                VAC_CTRL_DELAY_DSACKI(8),VAC_IOSEL5_CTRL);
-
-        vac_show();
-}
-
-static void __init vac_start(void)
-{
-       vac_outw(0, VAC_ID);
-       vac_outw(VAC_INT_CTRL_TIMER_DISABLE|
-                VAC_INT_CTRL_UART_B_DISABLE|
-                VAC_INT_CTRL_UART_A_DISABLE|
-                VAC_INT_CTRL_MBOX_DISABLE|
-                VAC_INT_CTRL_PIO4_DISABLE|
-                VAC_INT_CTRL_PIO7_DISABLE|
-                VAC_INT_CTRL_PIO8_DISABLE|
-                VAC_INT_CTRL_PIO9_DISABLE,VAC_INT_CTRL);
-       vac_outw(VAC_INT_CTRL_TIMER_PIO10|
-                VAC_INT_CTRL_UART_B_PIO7|
-                VAC_INT_CTRL_UART_A_PIO7,VAC_INT_CTRL);
-       /*
-        *  Set quadro speed for both UARTs.
-        *  To do it we need use formulae from VIC/VAC manual,
-        *  keeping in mind Baget's 50MHz frequency...
-        */
-       vac_outw((500000/(384*16))<<8,VAC_CPU_CLK_DIV);
-}
-
-static void __init vic_show(void)
-{
-       unsigned char val;
-       char *timeout[]  = { "4", "16", "32", "64", "128", "256", "disabled" };
-       char *deadlock[] = { "[dedlk only]", "[dedlk only]",
-                            "[dedlk], [halt w/ rmc], [lberr]",
-                            "[dedlk], [halt w/o rmc], [lberr]" };
-
-       val = vic_inb(VIC_IFACE_CFG);
-       if (val & VIC_IFACE_CFG_VME)
-               printk("VMEbus controller ");
-       if (val & VIC_IFACE_CFG_TURBO)
-               printk("turbo ");
-       if (val & VIC_IFACE_CFG_MSTAB)
-               printk("metastability delay ");
-       printk("%s ",
-              deadlock[VIC_IFACE_CFG_DEADLOCK_VAL(val)]);
-
-
-       printk("interrupts: ");
-       val = vic_inb(VIC_ERR_INT);
-       if (!(val & VIC_ERR_INT_SYSFAIL))
-               printk("[sysfail]");
-       if (!(val & VIC_ERR_INT_TIMO))
-               printk("[timeout]");
-       if (!(val & VIC_ERR_INT_WRPOST))
-               printk("[write post]");
-       if (!(val & VIC_ERR_INT_ACFAIL))
-               printk("[acfail] ");
-       printk("\n");
-
-       printk("timeouts: ");
-       val = vic_inb(VIC_XFER_TIMO);
-       printk("local %s, vme %s ",
-              timeout[VIC_XFER_TIMO_LOCAL_PERIOD_VAL(val)],
-              timeout[VIC_XFER_TIMO_VME_PERIOD_VAL(val)]);
-       if (val & VIC_XFER_TIMO_VME)
-               printk("acquisition ");
-       if (val & VIC_XFER_TIMO_ARB)
-               printk("arbitration ");
-       printk("\n");
-
-       val = vic_inb(VIC_LOCAL_TIM);
-       printk("pas time: (%d,%d), ds time: %d\n",
-              VIC_LOCAL_TIM_PAS_ASSERT_VAL(val),
-              VIC_LOCAL_TIM_PAS_DEASSERT_VAL(val),
-              VIC_LOCAT_TIM_DS_DEASSERT_VAL(val));
-
-       val = vic_inb(VIC_BXFER_DEF);
-       printk("dma: ");
-       if (val & VIC_BXFER_DEF_DUAL)
-               printk("[dual path]");
-       if (val & VIC_BXFER_DEF_LOCAL_CROSS)
-               printk("[local boundary cross]");
-       if (val & VIC_BXFER_DEF_VME_CROSS)
-               printk("[vme boundary cross]");
-
-}
-
-static void __init vic_init(void)
-{
-        unsigned char id = vic_inb(VIC_ID);
-        if ((id & 0xf0) != 0xf0)
-                panic("VIC not found");
-        printk(" VIC068A Rev. %X: ", id & 0x0f);
-
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_II);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT1);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT2);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT3);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT4);
-/*
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT5);
-*/
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT6);
-
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT7);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_DMA_INT);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                 VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT1);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                 VIC_INT_HIGH|VIC_INT_DISABLE, VIC_LINT2);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                 VIC_INT_HIGH|VIC_INT_DISABLE, VIC_LINT3);
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                 VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT4);
-/*
-        vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_LEVEL|
-                 VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT5);
-*/
-        vic_outb(VIC_INT_IPL(6)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                 VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT6);
-        vic_outb(VIC_INT_IPL(6)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                 VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT7);
-
-        vic_outb(VIC_INT_IPL(3)|
-                 VIC_INT_SWITCH(0)|
-                 VIC_INT_SWITCH(1)|
-                 VIC_INT_SWITCH(2)|
-                 VIC_INT_SWITCH(3), VIC_ICGS_INT);
-        vic_outb(VIC_INT_IPL(3)|
-                 VIC_INT_SWITCH(0)|
-                 VIC_INT_SWITCH(1)|
-                 VIC_INT_SWITCH(2)|
-                 VIC_INT_SWITCH(3), VIC_ICMS_INT);
-        vic_outb(VIC_INT_IPL(6)|
-                 VIC_ERR_INT_SYSFAIL|
-                 VIC_ERR_INT_TIMO|
-                 VIC_ERR_INT_WRPOST|
-                 VIC_ERR_INT_ACFAIL, VIC_ERR_INT);
-        vic_outb(VIC_ICxS_BASE_ID(0xf), VIC_ICGS_BASE);
-        vic_outb(VIC_ICxS_BASE_ID(0xe), VIC_ICMS_BASE);
-        vic_outb(VIC_LOCAL_BASE_ID(0x6), VIC_LOCAL_BASE);
-        vic_outb(VIC_ERR_BASE_ID(0x3), VIC_ERR_BASE);
-        vic_outb(VIC_XFER_TIMO_VME_PERIOD_32|
-                 VIC_XFER_TIMO_LOCAL_PERIOD_32, VIC_XFER_TIMO);
-        vic_outb(VIC_LOCAL_TIM_PAS_ASSERT(2)|
-                 VIC_LOCAT_TIM_DS_DEASSERT(1)|
-                 VIC_LOCAL_TIM_PAS_DEASSERT(1), VIC_LOCAL_TIM);
-        vic_outb(VIC_BXFER_DEF_VME_CROSS|
-                 VIC_BXFER_DEF_LOCAL_CROSS|
-                 VIC_BXFER_DEF_AMSR|
-                 VIC_BXFER_DEF_DUAL, VIC_BXFER_DEF);
-        vic_outb(VIC_SSxCR0_LOCAL_XFER_SINGLE|
-                 VIC_SSxCR0_A32|VIC_SSxCR0_D32|
-                 VIC_SS0CR0_TIMER_FREQ_NONE, VIC_SS0CR0);
-        vic_outb(VIC_SSxCR1_TF1(0xf)|
-                 VIC_SSxCR1_TF2(0xf), VIC_SS0CR1);
-        vic_outb(VIC_SSxCR0_LOCAL_XFER_SINGLE|
-                 VIC_SSxCR0_A24|VIC_SSxCR0_D32, VIC_SS1CR0);
-        vic_outb(VIC_SSxCR1_TF1(0xf)|
-                 VIC_SSxCR1_TF2(0xf), VIC_SS1CR1);
-         vic_outb(VIC_IFACE_CFG_NOHALT|
-                 VIC_IFACE_CFG_NOTURBO, VIC_IFACE_CFG);
-        vic_outb(VIC_AMS_CODE(0), VIC_AMS);
-        vic_outb(VIC_BXFER_CTRL_INTERLEAVE(0), VIC_BXFER_CTRL);
-        vic_outb(0, VIC_BXFER_LEN_LO);
-        vic_outb(0, VIC_BXFER_LEN_HI);
-        vic_outb(VIC_REQ_CFG_FAIRNESS_DISABLED|
-                 VIC_REQ_CFG_LEVEL(3)|
-                 VIC_REQ_CFG_RR_ARBITRATION, VIC_REQ_CFG);
-        vic_outb(VIC_RELEASE_BLKXFER_BLEN(0)|
-                 VIC_RELEASE_RWD, VIC_RELEASE);
-        vic_outb(VIC_IC6_RUN, VIC_IC6);
-        vic_outb(0, VIC_IC7);
-
-        vic_show();
-}
-
-static void vic_start(void)
-{
-       vic_outb(VIC_INT_IPL(3)|
-                VIC_INT_NOAUTO|
-                VIC_INT_EDGE|
-                VIC_INT_HIGH|
-                VIC_INT_ENABLE, VIC_LINT7);
-}
-
-void __init baget_irq_setup(void)
-{
-       extern void bagetIRQ(void);
-
-        /* Now, it's safe to set the exception vector. */
-       set_except_vector(0, bagetIRQ);
-}
-
-extern void baget_machine_restart(char *command);
-extern void baget_machine_halt(void);
-extern void baget_machine_power_off(void);
-
-static void __init baget_setup(void)
-{
-       printk("BT23/63-201n found.\n");
-       *BAGET_WRERR_ACK = 0;
-       irq_setup = baget_irq_setup;
-
-        _machine_restart   = baget_machine_restart;
-        _machine_halt      = baget_machine_halt;
-        _machine_power_off = baget_machine_power_off;
-
-       vac_init();
-       vic_init();
-       vac_start();
-       vic_start();
-}
-
-early_initcall(baget_setup);
diff --git a/arch/mips/baget/time.c b/arch/mips/baget/time.c
deleted file mode 100644 (file)
index e715cb6..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * time.c: Baget/MIPS specific time handling details
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/kernel.h>
-#include <linux/param.h>
-#include <linux/string.h>
-#include <linux/mm.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/timex.h>
-#include <linux/spinlock.h>
-
-#include <asm/bootinfo.h>
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/ptrace.h>
-#include <asm/system.h>
-
-#include <asm/baget/baget.h>
-
-/*
- *  To have precision clock, we need to fix available clock frequency
- */
-#define FREQ_NOM  79125  /* Baget frequency ratio */
-#define FREQ_DEN  10000
-
-static inline int timer_intr_valid(void)
-{
-       static unsigned long long ticks, valid_ticks;
-
-       if (ticks++ * FREQ_DEN >= valid_ticks * FREQ_NOM) {
-               /*
-                *  We need no overflow checks,
-                *  due baget unable to work 3000 years...
-                *  At least without reboot...
-                */
-               valid_ticks++;
-               return 1;
-       }
-       return 0;
-}
-
-void static timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
-{
-       if (timer_intr_valid()) {
-               sti();
-               do_timer(regs);
-#ifndef CONFIG_SMP
-               update_process_times(user_mode(regs));
-#endif
-       }
-}
-
-static void __init timer_enable(void)
-{
-       unsigned char ss0cr0 = vic_inb(VIC_SS0CR0);
-       ss0cr0 &= ~VIC_SS0CR0_TIMER_FREQ_MASK;
-       ss0cr0 |= VIC_SS0CR0_TIMER_FREQ_1000HZ;
-       vic_outb(ss0cr0, VIC_SS0CR0);
-
-       vic_outb(VIC_INT_IPL(6)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-                VIC_INT_LOW|VIC_INT_ENABLE, VIC_LINT2);
-}
-
-static struct irqaction timer_irq  =
-{ timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL};
-
-void __init time_init(void)
-{
-       if (setup_baget_irq(BAGET_VIC_TIMER_IRQ, &timer_irq) < 0)
-               printk("time_init: unable request irq for system timer\n");
-       timer_enable();
-       /* We don't call sti() here, because it is too early for baget */
-}
-
-void do_gettimeofday(struct timeval *tv)
-{
-       unsigned long seq;
-
-       do {
-               seq = read_seqbegin(&xtime_lock);
-               tv->tv_sec = xtime.tv_sec;
-               tv->tv_usec = xtime.tv_nsec / 1000;
-       } while (read_seqretry(&xtime_lock, seq));
-}
-
-EXPORT_SYMBOL(do_gettimeofday);
-
-void do_settimeofday(struct timeval *tv)
-{
-       write_seqlock_irq(&xtime_lock);
-       xtime.tv_usec = tv->tv_sec;
-       xtime.tv_nsec = tv->tv_usec;
-       time_adjust = 0;                /* stop active adjtime() */
-       time_status |= STA_UNSYNC;
-       time_maxerror = NTP_PHASE_LIMIT;
-       time_esterror = NTP_PHASE_LIMIT;
-       write_sequnlock_irq(&xtime_lock);
-}
-
-EXPORT_SYMBOL(do_settimeofday);
index c010290e55a64bd70793e0b799711d208c337798..efbeac326815fd24e47fd194375f427bdce3d95c 100644 (file)
@@ -4,6 +4,7 @@
 # for more details.
 #
 # Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle
+# Copyright (C) 2004  Maciej W. Rozycki
 #
 
 #
@@ -19,29 +20,30 @@ endif
 # Drop some uninteresting sections in the kernel.
 # This is only relevant for ELF kernels but doesn't hurt a.out
 #
-drop-sections  = .reginfo .mdebug .comment .note .pdr
+drop-sections  = .reginfo .mdebug .comment .note .pdr .options .MIPS.options
 strip-flags    = $(addprefix --remove-section=,$(drop-sections))
 
+VMLINUX = vmlinux
+
 all: vmlinux.ecoff vmlinux.srec addinitrd
 
-vmlinux.ecoff: $(obj)/elf2ecoff vmlinux
-       $(obj)/elf2ecoff vmlinux vmlinux.ecoff $(E2EFLAGS)
+vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX)
+       $(obj)/elf2ecoff $(VMLINUX) vmlinux.ecoff $(E2EFLAGS)
 
 $(obj)/elf2ecoff: $(obj)/elf2ecoff.c
        $(HOSTCC) -o $@ $^
 
-vmlinux.srec:   vmlinux
-       $(OBJCOPY) -S -O srec $(strip-flags) vmlinux $(obj)/vmlinux.srec
+vmlinux.srec: $(VMLINUX)
+       $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $(obj)/vmlinux.srec
 
 $(obj)/addinitrd: $(obj)/addinitrd.c
        $(HOSTCC) -o $@ $^
 
 archhelp:
        @echo   '* vmlinux.ecoff        - ECOFF boot image'
+       @echo   '* vmlinux.srec         - SREC boot image'
 
 clean-files += addinitrd \
               elf2ecoff \
               vmlinux.ecoff \
-              vmlinux.srec \
-              zImage.tmp \
-              zImage
+              vmlinux.srec
index 38261f1ae2828ddde4da8b3362c45aa9539a638d..8b30333047707b012570875bcf0d3ea82e373d5e 100644 (file)
@@ -2,6 +2,8 @@
  * addinitrd - program to add a initrd image to an ecoff kernel
  *
  * (C) 1999 Thomas Bogendoerfer
+ * minor modifications, cleanup: Guido Guenther <agx@sigxcpu.org>
+ * further cleanup: Maciej W. Rozycki
  */
 
 #include <sys/types.h>
@@ -54,7 +56,7 @@ int main (int argc, char *argv[])
                exit (1);
        }
 
-       if ((fd_vmlinux = open (argv[1],O_RDWR)) < 0)
+       if ((fd_vmlinux = open (argv[1],O_RDONLY)) < 0)
                 die ("open vmlinux");
        if (read (fd_vmlinux, &efile, sizeof efile) != sizeof efile)
                die ("read file header");
@@ -78,6 +80,11 @@ int main (int argc, char *argv[])
                        swab = 1;
        }
 
+       /* make sure we have an empty data segment for the initrd */
+       if (eaout.dsize || esecs[1].s_size) {
+               fprintf (stderr, "Data segment not empty. Giving up!\n");
+               exit (1);
+       }
        if ((fd_initrd = open (argv[2], O_RDONLY)) < 0)
                die ("open initrd");
        if (fstat (fd_initrd, &st) < 0)
index ba46e8f1e955a6e5cc0c922cd827079fe373978b..6d2a81581397a2d9bdfee6d8d46a9ca5987f7ecc 100644 (file)
@@ -87,7 +87,7 @@ asmlinkage void cobalt_irq(struct pt_regs *regs)
        }
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        set_except_vector(0, cobalt_handle_int);
 
index 1c4610673d5db1b6f00299aa80d8eae1620addb1..6b4737e425ed78bbdd04b9fe1d4107bfc787bcb8 100644 (file)
@@ -5,7 +5,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 1996, 1997 by Ralf Baechle
+ * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org)
  * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
  *
  */
@@ -15,7 +15,6 @@
 #include <linux/init.h>
 
 #include <asm/bootinfo.h>
-#include <asm/pci_channel.h>
 #include <asm/time.h>
 #include <asm/io.h>
 #include <asm/irq.h>
index 9e0a5bc52e7b41b8e6f54bc01f9cff30bf166ffc..fe58b60235d50e3944911019a0992fded03b91b6 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:55 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,7 +51,6 @@ CONFIG_IOSCHED_CFQ=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
@@ -62,6 +66,7 @@ CONFIG_MIPS_ATLAS=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -69,7 +74,6 @@ CONFIG_MIPS_ATLAS=y
 # 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
@@ -118,7 +122,6 @@ CONFIG_CPU_HAS_PREFETCH=y
 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)
@@ -135,7 +138,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -144,6 +146,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -175,7 +178,19 @@ CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 # CONFIG_BLK_DEV_INITRD is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -221,7 +236,8 @@ CONFIG_BLK_DEV_SD=y
 # CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_AIC79XX is not set
 # CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
 # CONFIG_SCSI_SATA is not set
 # CONFIG_SCSI_BUSLOGIC is not set
 # CONFIG_SCSI_DMX3191D is not set
@@ -230,12 +246,14 @@ CONFIG_BLK_DEV_SD=y
 # CONFIG_SCSI_FUTURE_DOMAIN is not set
 # CONFIG_SCSI_GDTH is not set
 # CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
 # CONFIG_SCSI_INIA100 is not set
 # CONFIG_SCSI_SYM53C8XX_2 is not set
 # CONFIG_SCSI_IPR is not set
 # CONFIG_SCSI_QLOGIC_ISP is not set
 # CONFIG_SCSI_QLOGIC_FC is not set
 # CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 CONFIG_SCSI_QLA2XXX=y
 # CONFIG_SCSI_QLA21XX is not set
 # CONFIG_SCSI_QLA22XX is not set
@@ -295,10 +313,13 @@ CONFIG_IP_PNP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -316,7 +337,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -439,6 +459,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -473,7 +494,6 @@ 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
@@ -493,7 +513,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -503,6 +522,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -525,7 +549,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -537,6 +560,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -556,6 +581,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -568,7 +594,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -615,6 +642,7 @@ CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -635,13 +663,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -652,6 +682,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/arch/mips/configs/bosporus_defconfig b/arch/mips/configs/bosporus_defconfig
deleted file mode 100644 (file)
index 5bc312a..0000000
+++ /dev/null
@@ -1,671 +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_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HOTPLUG=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=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 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_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_8KB is not set
-# 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 is not set
-# 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_MMU=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_TCIC is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# 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_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_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
-#
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-
-#
-# 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_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_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_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_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT 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)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO 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
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN 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
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE 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
-
-#
-# 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 is not set
-
-#
-# Non-8250 serial port support
-#
-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=y
-# 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
-#
-
-#
-# 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=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_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# 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_SYSFS=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_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_ASCII 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_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Library routines
-#
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
index b59e4538770720939edc2e723dbaaaf0493ac848..24821b6d5959aca12efe5bd02d63c479d23b0d3c 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:55 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 CONFIG_MACH_VR41XX=y
 # CONFIG_CASIO_E55 is not set
 # CONFIG_IBM_WORKPAD is not set
@@ -75,6 +80,7 @@ CONFIG_VRC4173=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -82,7 +88,6 @@ CONFIG_VRC4173=y
 # 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
@@ -122,7 +127,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -147,6 +151,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -175,7 +180,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -193,7 +210,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -257,10 +273,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -278,7 +297,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -400,6 +418,7 @@ CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -434,7 +453,6 @@ 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
@@ -466,7 +484,6 @@ CONFIG_WATCHDOG=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
@@ -476,6 +493,11 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -498,7 +520,6 @@ CONFIG_WATCHDOG=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -510,6 +531,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -529,6 +552,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=y
 CONFIG_AUTOFS4_FS=y
 
@@ -541,7 +565,8 @@ CONFIG_AUTOFS4_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -589,6 +614,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -609,13 +635,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -626,6 +654,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index d47f67bb52ab46ffd8ef75170e83ee9147f0b5a3..05ad5c80fa2824ab09da2c5b60986615a3dd2426 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:55 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,7 +51,6 @@ CONFIG_IOSCHED_CFQ=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=y
@@ -62,6 +66,7 @@ CONFIG_MIPS_COBALT=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -69,7 +74,6 @@ CONFIG_MIPS_COBALT=y
 # 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
@@ -113,7 +117,6 @@ 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)
@@ -138,6 +141,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -167,7 +171,19 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -185,7 +201,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -245,10 +260,13 @@ CONFIG_INET=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -266,7 +284,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -388,6 +405,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -422,7 +440,6 @@ 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
@@ -442,7 +459,6 @@ CONFIG_COBALT_LCD=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
@@ -452,6 +468,11 @@ CONFIG_COBALT_LCD=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -474,7 +495,6 @@ CONFIG_COBALT_LCD=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -486,6 +506,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -509,6 +531,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -521,7 +544,8 @@ CONFIG_FS_POSIX_ACL=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -566,6 +590,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -586,13 +611,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -603,6 +630,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 62e748bfdcabe578139c14eac9801ea36f2f9f1e..25ff1aa5d0c973b221a2ecdad5fc1c793ca9f8f8 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:56 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_KMOD=y
 # 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=y
 # CONFIG_SOC_AU1100 is not set
@@ -133,7 +138,6 @@ CONFIG_64BIT_PHYS_ADDR=y
 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)
@@ -143,10 +147,16 @@ CONFIG_HW_HAS_PCI=y
 CONFIG_MMU=y
 
 #
-# PCMCIA/CardBus support
+# PCCARD (PCMCIA/CardBus) support
 #
-CONFIG_PCMCIA=m
+CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+
+#
+# PC-card bridges
+#
 # CONFIG_TCIC is not set
 # CONFIG_PCMCIA_AU1X00 is not set
 
@@ -168,6 +178,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 
@@ -193,7 +204,19 @@ 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_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -217,7 +240,6 @@ CONFIG_BLK_DEV_LOOP=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -251,6 +273,9 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 
 #
 # IP: Virtual Server Configuration
@@ -264,13 +289,14 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 # CONFIG_IP_NF_CONNTRACK is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
 # 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
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -288,7 +314,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -316,7 +341,7 @@ CONFIG_NETDEVICES=y
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
+CONFIG_MII=m
 CONFIG_MIPS_AU1X00_ENET=y
 
 #
@@ -341,13 +366,13 @@ CONFIG_MIPS_AU1X00_ENET=y
 #
 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
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
 
 #
 # Wan interfaces
@@ -401,6 +426,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -436,7 +462,6 @@ 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
@@ -450,19 +475,17 @@ CONFIG_LEGACY_PTY_COUNT=256
 CONFIG_RTC=y
 # 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_SYNCLINK_CS=m
 # CONFIG_RAW_DRIVER is not set
 
 #
@@ -470,6 +493,11 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -492,7 +520,6 @@ CONFIG_RTC=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -503,6 +530,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -535,6 +564,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -547,7 +577,8 @@ CONFIG_AUTOFS4_FS=m
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -560,6 +591,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -595,6 +627,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -655,13 +688,15 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -675,14 +710,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
@@ -691,8 +730,10 @@ CONFIG_CRYPTO_CRC32C=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index d6b544edb0d6403dee2c72ad04a1af9bc0583bb0..450a515796cb5f3c56401736d23ab2c3c21559fc 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:56 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_KMOD=y
 # 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=y
@@ -133,7 +138,6 @@ CONFIG_CPU_HAS_PREFETCH=y
 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)
@@ -141,10 +145,16 @@ CONFIG_CPU_HAS_SYNC=y
 CONFIG_MMU=y
 
 #
-# PCMCIA/CardBus support
+# PCCARD (PCMCIA/CardBus) support
 #
-CONFIG_PCMCIA=m
+CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+
+#
+# PC-card bridges
+#
 # CONFIG_TCIC is not set
 # CONFIG_PCMCIA_AU1X00 is not set
 
@@ -166,6 +176,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 
@@ -191,7 +202,19 @@ 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_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -215,7 +238,6 @@ CONFIG_BLK_DEV_LOOP=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -249,6 +271,9 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 
 #
 # IP: Virtual Server Configuration
@@ -262,13 +287,14 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 # CONFIG_IP_NF_CONNTRACK is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
 # 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
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -286,7 +312,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -314,7 +339,7 @@ CONFIG_NETDEVICES=y
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
+CONFIG_MII=m
 # CONFIG_MIPS_AU1X00_ENET is not set
 
 #
@@ -339,13 +364,13 @@ CONFIG_NET_ETHERNET=y
 #
 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
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
 
 #
 # Wan interfaces
@@ -399,6 +424,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -431,7 +457,6 @@ CONFIG_HW_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -445,19 +470,17 @@ CONFIG_LEGACY_PTY_COUNT=256
 CONFIG_RTC=y
 # 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_SYNCLINK_CS=m
 # CONFIG_RAW_DRIVER is not set
 
 #
@@ -465,6 +488,11 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -487,7 +515,6 @@ CONFIG_RTC=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -498,6 +525,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -530,6 +559,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -542,7 +572,8 @@ CONFIG_AUTOFS4_FS=m
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -555,6 +586,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -590,6 +622,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -650,13 +683,15 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -670,14 +705,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
@@ -686,8 +725,10 @@ CONFIG_CRYPTO_CRC32C=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 97a22cb43691022e8eb2cddb16e058e2aa164522..54112075ea4854d460124665c0d0721eeeb47117 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:56 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_KMOD=y
 # 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
@@ -97,7 +102,8 @@ CONFIG_MIPS_DB1500=y
 # CONFIG_TOSHIBA_RBTX4927 is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
+CONFIG_DMA_COHERENT=y
+CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
 CONFIG_CPU_LITTLE_ENDIAN=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
@@ -133,26 +139,38 @@ CONFIG_64BIT_PHYS_ADDR=y
 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_HW_HAS_PCI=y
-# CONFIG_PCI is not set
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
 
 #
-# PCMCIA/CardBus support
+# PCCARD (PCMCIA/CardBus) support
 #
-CONFIG_PCMCIA=m
+CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+# CONFIG_YENTA is not set
+# CONFIG_PD6729 is not set
+# CONFIG_I82092 is not set
 # CONFIG_TCIC is not set
-# CONFIG_PCMCIA_AU1X00 is not set
+CONFIG_PCMCIA_AU1X00=m
 
 #
 # PCI Hotplug Support
 #
+# CONFIG_HOTPLUG_PCI is not set
 
 #
 # Executable file formats
@@ -168,6 +186,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 
@@ -197,13 +216,24 @@ CONFIG_MTD_CFI=y
 # CONFIG_MTD_JEDECPROBE is not set
 CONFIG_MTD_GEN_PROBE=y
 # CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
 CONFIG_MTD_CFI_INTELEXT=y
 CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
 # CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
 # 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
@@ -217,7 +247,9 @@ CONFIG_MTD_DB1X00_USER=y
 #
 # Self-contained MTD device drivers
 #
+# CONFIG_MTD_PMC551 is not set
 # CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
 
@@ -246,11 +278,29 @@ CONFIG_MTD_DB1X00_USER=y
 # 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_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -269,12 +319,12 @@ CONFIG_BLK_DEV_IDECS=m
 # 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_IDE_GENERIC is not set
+# CONFIG_BLK_DEV_IDEPCI is not set
 # CONFIG_IDE_ARM is not set
 # CONFIG_BLK_DEV_IDEDMA is not set
 # CONFIG_IDEDMA_AUTO is not set
@@ -302,6 +352,7 @@ CONFIG_IDE_GENERIC=y
 #
 # I2O device support
 #
+# CONFIG_I2O is not set
 
 #
 # Networking support
@@ -331,6 +382,9 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 
 #
 # IP: Virtual Server Configuration
@@ -344,13 +398,14 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 # CONFIG_IP_NF_CONNTRACK is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
 # 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
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -368,7 +423,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -392,24 +446,51 @@ CONFIG_NETDEVICES=y
 # CONFIG_TUN is not set
 # CONFIG_ETHERTAP is not set
 
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET 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_SK98LIN is not set
+# CONFIG_TIGON3 is not set
 
 #
 # Ethernet (10000 Mbit)
 #
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
 
 #
 # Token Ring devices
 #
+# CONFIG_TR is not set
 
 #
 # Wireless LAN (non-hamradio)
@@ -419,20 +500,14 @@ CONFIG_MIPS_AU1X00_ENET=y
 #
 # 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
+# CONFIG_NET_PCMCIA is not set
 
 #
 # Wan interfaces
 #
 # CONFIG_WAN 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
@@ -481,6 +556,8 @@ 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
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -514,7 +591,6 @@ 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
@@ -533,14 +609,13 @@ CONFIG_RTC=y
 #
 # 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_SYNCLINK_CS=m
 # CONFIG_RAW_DRIVER is not set
 
 #
@@ -548,6 +623,11 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -569,11 +649,139 @@ CONFIG_RTC=y
 #
 # Sound
 #
-# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+# CONFIG_SND is not set
+
+#
+# Open Sound System
+#
+CONFIG_SOUND_PRIME=y
+# CONFIG_SOUND_BT878 is not set
+# CONFIG_SOUND_CMPCI is not set
+# CONFIG_SOUND_EMU10K1 is not set
+# CONFIG_SOUND_FUSION is not set
+# CONFIG_SOUND_CS4281 is not set
+# CONFIG_SOUND_ES1370 is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ESSSOLO1 is not set
+# CONFIG_SOUND_MAESTRO is not set
+# CONFIG_SOUND_MAESTRO3 is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_SONICVIBES is not set
+CONFIG_SOUND_AU1000=y
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+# CONFIG_SOUND_OSS is not set
+# CONFIG_SOUND_ALI5455 is not set
+# CONFIG_SOUND_FORTE is not set
+# CONFIG_SOUND_RME96XX is not set
+# CONFIG_SOUND_AD1980 is not set
 
 #
 # USB support
 #
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_UHCI_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_MIDI is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_STORAGE is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+
+#
+# USB Multimedia devices
+#
+# CONFIG_USB_DABUSB is not set
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+
+#
+# USB ATM/DSL drivers
+#
 
 #
 # USB Gadget Support
@@ -606,6 +814,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -618,7 +827,8 @@ CONFIG_AUTOFS4_FS=m
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -631,6 +841,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -668,6 +879,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -728,13 +940,15 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -748,14 +962,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
@@ -764,8 +982,10 @@ CONFIG_CRYPTO_CRC32C=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
new file mode 100644 (file)
index 0000000..73d45f7
--- /dev/null
@@ -0,0 +1,906 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:57 2004
+#
+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_BROKEN_ON_SMP=y
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM 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_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MACH_JAZZ 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_OCELOT_3 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_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 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+CONFIG_MIPS_DB1550=y
+# 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_COHERENT=y
+CONFIG_MIPS_DISABLE_OBSOLETE_IDE=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_8KB is not set
+# 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
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+CONFIG_MMU=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+# CONFIG_YENTA is not set
+# CONFIG_PD6729 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_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+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 is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_DB1550=y
+CONFIG_MTD_DB1550_BOOT=y
+CONFIG_MTD_DB1550_USER=y
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_AU1550=m
+# CONFIG_MTD_NAND_DISKONCHIP 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_SX8 is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+
+#
+# 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_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+# 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
+
+#
+# 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_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 is not set
+# 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_IDE_ARM 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
+#
+
+#
+# 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
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 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_CONNTRACK_MARK=y
+# 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=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_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
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT 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
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+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_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN 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
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE 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
+CONFIG_SERIO_RAW=m
+
+#
+# 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
+
+#
+# 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_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 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
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+
+#
+# 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_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+# 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_DNOTIFY=y
+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_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+# CONFIG_DEVFS_FS is not set
+CONFIG_DEVPTS_FS_XATTR=y
+CONFIG_DEVPTS_FS_SECURITY=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR 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_JFFS_FS is not set
+# CONFIG_JFFS2_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_RPCSEC_GSS_SPKM3 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_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_ASCII 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_DEBUG_KERNEL is not set
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE=""
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
+# 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_WP512=m
+# 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=m
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
+# CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 07803efb628cc96d072ec18bc4a51ccb3806f1aa..231976bc8e5e9a24b742268118be2be753db325e 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:57 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,7 +51,6 @@ CONFIG_IOSCHED_CFQ=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
@@ -62,6 +66,7 @@ CONFIG_IOSCHED_CFQ=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -69,7 +74,6 @@ CONFIG_DDB5476=y
 # 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
@@ -114,7 +118,6 @@ 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)
@@ -140,6 +143,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -170,7 +174,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -188,7 +204,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -257,10 +272,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -278,7 +296,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -407,6 +424,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -441,7 +459,6 @@ 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
@@ -461,7 +478,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -471,6 +487,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -488,6 +509,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # Graphics support
 #
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
 # CONFIG_FB_CIRRUS is not set
 # CONFIG_FB_PM2 is not set
 # CONFIG_FB_CYBER2000 is not set
@@ -499,6 +522,7 @@ CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_FB_RADEON is not set
 # CONFIG_FB_ATY128 is not set
 # CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
 # CONFIG_FB_SIS is not set
 # CONFIG_FB_NEOMAGIC is not set
 # CONFIG_FB_KYRO is not set
@@ -530,6 +554,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -549,6 +575,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -561,7 +588,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -607,6 +635,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -627,13 +656,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE="ip=any"
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -644,6 +675,8 @@ CONFIG_CMDLINE="ip=any"
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index c09e58c63227db03f4e3eef74d5cc4674aa806c1..1b0c45ace14adae8eefa67dea45eed477c8a3349 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:58 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,7 +51,6 @@ CONFIG_IOSCHED_CFQ=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
@@ -62,6 +66,7 @@ CONFIG_IOSCHED_CFQ=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -70,7 +75,6 @@ CONFIG_DDB5477=y
 CONFIG_DDB5477_BUS_FREQUENCY=0
 # 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
@@ -114,7 +118,6 @@ 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)
@@ -139,6 +142,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -167,7 +171,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -225,10 +241,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -246,7 +265,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -308,7 +326,6 @@ CONFIG_PCNET32=y
 # CONFIG_SUNDANCE is not set
 # CONFIG_TLAN is not set
 # CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
 # CONFIG_LAN_SAA9730 is not set
 
 #
@@ -322,6 +339,7 @@ CONFIG_PCNET32=y
 # CONFIG_YELLOWFIN is not set
 # CONFIG_R8169 is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
 # CONFIG_TIGON3 is not set
 
 #
@@ -388,6 +406,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -422,7 +441,6 @@ 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
@@ -442,7 +460,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -452,6 +469,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -474,7 +496,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -486,6 +507,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -505,6 +528,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=y
 CONFIG_AUTOFS4_FS=y
 
@@ -517,7 +541,8 @@ CONFIG_AUTOFS4_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -565,6 +590,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -585,13 +611,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE="ip=any"
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -602,6 +630,8 @@ CONFIG_CMDLINE="ip=any"
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index e7dc8efb05cc0cf92d6e1a4e27a9cfd636e060f0..cb0e8621df4337885fb03d7182800b5eb09c9e70 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:58 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_MACH_DECSTATION=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_MACH_DECSTATION=y
 # 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
@@ -116,7 +121,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_WB=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -138,6 +142,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -161,7 +166,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -201,9 +218,8 @@ CONFIG_SCSI_CONSTANTS=y
 #
 CONFIG_SCSI_DECNCR=y
 # CONFIG_SCSI_DECSII is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 # CONFIG_SCSI_DEBUG is not set
 
 #
@@ -218,7 +234,6 @@ CONFIG_SCSI_DECNCR=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -251,10 +266,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -272,7 +290,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -365,6 +382,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -398,7 +416,6 @@ 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
@@ -413,12 +430,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -428,6 +443,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -450,7 +470,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -461,6 +480,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -484,6 +505,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -496,7 +518,8 @@ CONFIG_FS_POSIX_ACL=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -569,13 +592,15 @@ CONFIG_ULTRIX_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -586,6 +611,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index b771f906f399f2f1055c306ac9ff6039bf28fb40..86d99fa96a651b64f97dd9c66c9ff8a9e098ce8f 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:58 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 CONFIG_MACH_VR41XX=y
 CONFIG_CASIO_E55=y
 # CONFIG_IBM_WORKPAD is not set
@@ -74,6 +79,7 @@ CONFIG_CASIO_E55=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -81,7 +87,6 @@ CONFIG_CASIO_E55=y
 # 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
@@ -121,7 +126,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -143,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -168,7 +173,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -186,7 +203,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -220,7 +236,6 @@ CONFIG_IDE_GENERIC=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -251,10 +266,13 @@ CONFIG_IP_MULTICAST=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -272,7 +290,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -380,6 +397,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -414,7 +432,6 @@ 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
@@ -442,12 +459,10 @@ CONFIG_WATCHDOG=y
 # 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
@@ -457,6 +472,11 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -490,6 +510,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -509,6 +531,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=y
 CONFIG_AUTOFS4_FS=y
 
@@ -521,7 +544,8 @@ CONFIG_AUTOFS4_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -568,6 +592,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -588,13 +613,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -605,6 +632,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 54162900411a16d95ff47880b23970bc06f106ea..b23653bcca7d004a7cfaaed5e8922e01b8d29147 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:59 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_KMOD is not set
 
 #
 # 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
@@ -68,6 +73,7 @@ CONFIG_MIPS_EV64120=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -75,7 +81,6 @@ CONFIG_MIPS_EV64120=y
 # 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
@@ -121,7 +126,6 @@ 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)
@@ -138,7 +142,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -147,6 +150,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -175,7 +179,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -232,10 +248,13 @@ CONFIG_IP_PNP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -253,7 +272,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -382,6 +400,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -416,7 +435,6 @@ 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
@@ -436,7 +454,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -446,6 +463,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -468,7 +490,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -480,6 +501,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -499,6 +522,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -511,7 +535,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -557,6 +582,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -577,13 +603,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/disk2/fs.gal ip=192.168.1.211:192.168.1.1:::gt::"
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -594,6 +622,8 @@ CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/d
 #
 # Library routines
 #
-CONFIG_CRC16=y
+CONFIG_CRC_CCITT=y
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index eb13fd96d9774dace5458c6e0a881d06e03aa75c..b3ff846b460448d1321c15f5d55ac6de6ce5c921 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:59 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_KMOD is not set
 
 #
 # 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
@@ -67,6 +72,7 @@ CONFIG_MIPS_EV96100=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_MIPS_EV96100=y
 # 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
@@ -123,7 +128,6 @@ 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)
@@ -138,7 +142,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -147,6 +150,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -170,7 +174,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -194,7 +210,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -226,10 +241,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -247,7 +265,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -340,6 +357,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -374,7 +392,6 @@ 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
@@ -389,12 +406,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -404,6 +419,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -426,7 +446,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -437,6 +456,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -456,6 +477,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -468,7 +490,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -514,6 +537,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -534,13 +558,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -551,6 +577,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 8bc7792d6cf6bd1c2b49b4e1d3323c033893e515..5e667febe930227a4c58b44ebaa61d7626843fb1 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:59 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,6 +27,7 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -32,11 +35,13 @@ CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,13 +51,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -68,6 +73,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -75,7 +81,6 @@ CONFIG_KMOD=y
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
 CONFIG_SGI_IP22=y
-# 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
@@ -126,7 +131,6 @@ 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)
@@ -140,7 +144,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_MISC=m
 CONFIG_TRAD_SIGNALS=y
-CONFIG_BINFMT_IRIX=y
 
 #
 # Device Drivers
@@ -149,6 +152,7 @@ CONFIG_BINFMT_IRIX=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -172,7 +176,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -212,9 +228,8 @@ CONFIG_SCSI_SPI_ATTRS=m
 # SCSI low-level drivers
 #
 CONFIG_SGIWD93_SCSI=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 # CONFIG_SCSI_DEBUG is not set
 
 #
@@ -229,7 +244,6 @@ CONFIG_SGIWD93_SCSI=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -263,6 +277,9 @@ CONFIG_IP_PNP_BOOTP=y
 CONFIG_INET_AH=m
 CONFIG_INET_ESP=m
 CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
 
 #
 # IP: Virtual Server Configuration
@@ -302,6 +319,7 @@ CONFIG_IPV6_PRIVACY=y
 CONFIG_INET6_AH=m
 CONFIG_INET6_ESP=m
 CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
 CONFIG_IPV6_TUNNEL=m
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
@@ -310,6 +328,9 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
 CONFIG_IP_NF_FTP=m
 CONFIG_IP_NF_IRC=m
 CONFIG_IP_NF_TFTP=m
@@ -334,8 +355,17 @@ CONFIG_IP_NF_MATCH_HELPER=m
 CONFIG_IP_NF_MATCH_STATE=m
 CONFIG_IP_NF_MATCH_CONNTRACK=m
 CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
 CONFIG_IP_NF_FILTER=m
 CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
 CONFIG_IP_NF_NAT=m
 CONFIG_IP_NF_NAT_NEEDED=y
 CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -354,18 +384,15 @@ CONFIG_IP_NF_TARGET_ECN=m
 CONFIG_IP_NF_TARGET_DSCP=m
 CONFIG_IP_NF_TARGET_MARK=m
 CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
 CONFIG_IP_NF_ARPTABLES=m
 CONFIG_IP_NF_ARPFILTER=m
 CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_IP_NF_COMPAT_IPCHAINS=m
-CONFIG_IP_NF_COMPAT_IPFWADM=m
-CONFIG_IP_NF_TARGET_NOTRACK=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
 
 #
 # IPv6: Netfilter Configuration
@@ -414,16 +441,17 @@ CONFIG_SCTP_HMAC_MD5=y
 CONFIG_NET_DIVERT=y
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
 #
 CONFIG_NET_SCHED=y
+# CONFIG_NET_SCH_CLK_JIFFIES is not set
+CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
+# CONFIG_NET_SCH_CLK_CPU is not set
 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
@@ -431,7 +459,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_NETEM=m
 CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
@@ -515,7 +543,7 @@ CONFIG_INPUT=y
 #
 # Userland interfaces
 #
-CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV=m
 CONFIG_INPUT_MOUSEDEV_PSAUX=y
 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
@@ -533,6 +561,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -543,7 +572,10 @@ CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_LKKBD is not set
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_SERIAL=m
+# CONFIG_MOUSE_VSXXXAA is not set
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 # CONFIG_INPUT_MISC is not set
@@ -569,7 +601,6 @@ CONFIG_SERIAL_CORE=m
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -588,16 +619,14 @@ CONFIG_WATCHDOG=y
 # CONFIG_SOFT_WATCHDOG is not set
 CONFIG_INDYDOG=m
 # CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
 CONFIG_SGI_DS1286=m
+# 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=m
@@ -608,6 +637,11 @@ CONFIG_MAX_RAW_DEVS=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -630,7 +664,6 @@ CONFIG_MAX_RAW_DEVS=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_SGI_NEWPORT_CONSOLE=y
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FONT_8x16=y
@@ -652,6 +685,8 @@ CONFIG_LOGO_SGI_CLUT224=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -684,6 +719,7 @@ CONFIG_QUOTA=y
 # CONFIG_QFMT_V1 is not set
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -695,6 +731,7 @@ CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
 CONFIG_ZISOFS_FS=m
 CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
 
 #
 # DOS/FAT/NT Filesystems
@@ -754,10 +791,17 @@ CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_POSIX is not set
 # CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
+CONFIG_CODA_FS=m
+# CONFIG_CODA_FS_OLD_API is not set
 # CONFIG_AFS_FS is not set
 
 #
@@ -827,13 +871,15 @@ CONFIG_NLS_UTF8=m
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -841,30 +887,36 @@ CONFIG_CMDLINE=""
 #
 CONFIG_CRYPTO=y
 CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_MD4=y
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_BLOWFISH=y
-CONFIG_CRYPTO_TWOFISH=y
-CONFIG_CRYPTO_SERPENT=y
-CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_DES=m
+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_TEA=m
 CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_TEST=m
 
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 2962c1db72366d51888c884298ab62379da5f107..6668854ea46184ada1082928e7bc05646bdef18b 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:00 2004
 #
 CONFIG_MIPS=y
 CONFIG_MIPS64=y
@@ -10,11 +12,12 @@ CONFIG_64BIT=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
+CONFIG_LOCK_KERNEL=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
@@ -23,6 +26,7 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=15
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -30,11 +34,13 @@ CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -44,6 +50,7 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 # CONFIG_MODVERSIONS is not set
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 CONFIG_STOP_MACHINE=y
 
@@ -65,6 +72,7 @@ CONFIG_STOP_MACHINE=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -75,7 +83,7 @@ CONFIG_STOP_MACHINE=y
 CONFIG_SGI_IP27=y
 # CONFIG_SGI_SN0_N_MODE is not set
 CONFIG_DISCONTIGMEM=y
-# CONFIG_NUMA is not set
+CONFIG_NUMA=y
 # CONFIG_MAPPED_KERNEL is not set
 # CONFIG_REPLICATE_KTEXT is not set
 # CONFIG_REPLICATE_EXHANDLERS is not set
@@ -124,7 +132,6 @@ CONFIG_CPU_HAS_SYNC=y
 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
 
 #
@@ -132,6 +139,7 @@ CONFIG_NR_CPUS=64
 #
 CONFIG_HW_HAS_PCI=y
 CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
 CONFIG_PCI_LEGACY_PROC=y
 CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
@@ -141,6 +149,7 @@ CONFIG_MMU=y
 #
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
+# CONFIG_BUILD_ELF64 is not set
 CONFIG_MIPS32_COMPAT=y
 CONFIG_COMPAT=y
 CONFIG_MIPS32_O32=y
@@ -154,6 +163,7 @@ CONFIG_BINFMT_ELF32=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -178,10 +188,23 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # 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_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -226,7 +249,8 @@ CONFIG_SCSI_SPI_ATTRS=y
 # CONFIG_SCSI_AIC7XXX is not set
 # CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
 # CONFIG_SCSI_SATA is not set
 # CONFIG_SCSI_BUSLOGIC is not set
 # CONFIG_SCSI_DMX3191D is not set
@@ -235,12 +259,14 @@ CONFIG_SCSI_SPI_ATTRS=y
 # CONFIG_SCSI_FUTURE_DOMAIN is not set
 # CONFIG_SCSI_GDTH is not set
 # CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
 # CONFIG_SCSI_INIA100 is not set
 # CONFIG_SCSI_SYM53C8XX_2 is not set
 # CONFIG_SCSI_IPR is not set
 CONFIG_SCSI_QLOGIC_ISP=y
 # CONFIG_SCSI_QLOGIC_FC is not set
 # CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 CONFIG_SCSI_QLA2XXX=y
 # CONFIG_SCSI_QLA21XX is not set
 # CONFIG_SCSI_QLA22XX is not set
@@ -255,7 +281,21 @@ CONFIG_SCSI_QLA2XXX=y
 #
 # Multi-device support (RAID and LVM)
 #
-# CONFIG_MD is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=y
+CONFIG_MD_RAID1=y
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=y
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
 
 #
 # Fusion MPT device support
@@ -300,10 +340,13 @@ CONFIG_IP_PNP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -321,37 +364,38 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
 #
 CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=y
-CONFIG_NET_SCH_HTB=y
-CONFIG_NET_SCH_HFSC=y
-CONFIG_NET_SCH_CSZ=y
-CONFIG_NET_SCH_PRIO=y
-CONFIG_NET_SCH_RED=y
-CONFIG_NET_SCH_SFQ=y
-CONFIG_NET_SCH_TEQL=y
-CONFIG_NET_SCH_TBF=y
-CONFIG_NET_SCH_GRED=y
-CONFIG_NET_SCH_DSMARK=y
-CONFIG_NET_SCH_DELAY=y
-# CONFIG_NET_SCH_INGRESS is not set
+# CONFIG_NET_SCH_CLK_JIFFIES is not set
+CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=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_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
 CONFIG_NET_CLS=y
-CONFIG_NET_CLS_TCINDEX=y
-CONFIG_NET_CLS_ROUTE4=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
 CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=y
-CONFIG_NET_CLS_U32=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
 # CONFIG_CLS_U32_PERF is not set
 # CONFIG_NET_CLS_IND is not set
-CONFIG_NET_CLS_RSVP=y
-CONFIG_NET_CLS_RSVP6=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
 # CONFIG_NET_CLS_ACT is not set
 CONFIG_NET_CLS_POLICE=y
 
@@ -465,6 +509,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -497,7 +542,6 @@ 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
@@ -509,8 +553,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_WATCHDOG is not set
 # CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
 CONFIG_SGI_IP27_RTC=y
+# CONFIG_GEN_RTC is not set
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
@@ -527,6 +571,11 @@ CONFIG_SGI_IP27_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -554,6 +603,8 @@ CONFIG_SGI_IP27_RTC=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -577,11 +628,17 @@ CONFIG_FS_MBCACHE=y
 # CONFIG_REISERFS_FS is not set
 # CONFIG_JFS_FS is not set
 CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_RT is not set
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_SECURITY=y
+CONFIG_XFS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
-CONFIG_AUTOFS_FS=y
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
 # CONFIG_AUTOFS4_FS is not set
 
 #
@@ -593,7 +650,8 @@ CONFIG_AUTOFS_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -634,13 +692,14 @@ 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_ROOT_NFS is not set
 CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 CONFIG_SUNRPC_GSS=y
 CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -675,13 +734,15 @@ CONFIG_SGI_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -695,24 +756,30 @@ CONFIG_CRYPTO_MD5=y
 CONFIG_CRYPTO_SHA1=y
 CONFIG_CRYPTO_SHA256=y
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_DES=y
 CONFIG_CRYPTO_BLOWFISH=y
 CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_SERPENT=y
-CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_CAST5=y
 CONFIG_CRYPTO_CAST6=y
+CONFIG_CRYPTO_TEA=m
 CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_TEST=m
 
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 7cfe80b94b9dd3fd34ac873ecfaa35a8d6ff9e8e..785a0a217803fa94c20c81c6d0fc23ba8eabb5e1 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:00 2004
 #
 CONFIG_MIPS=y
 CONFIG_MIPS64=y
@@ -10,12 +12,12 @@ CONFIG_64BIT=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -60,6 +65,7 @@ CONFIG_IOSCHED_CFQ=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -114,7 +120,6 @@ 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)
@@ -130,6 +135,7 @@ CONFIG_MMU=y
 #
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_MISC=y
+# CONFIG_BUILD_ELF64 is not set
 CONFIG_MIPS32_COMPAT=y
 CONFIG_COMPAT=y
 CONFIG_MIPS32_O32=y
@@ -143,6 +149,7 @@ CONFIG_BINFMT_ELF32=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -172,6 +179,18 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -217,13 +236,13 @@ CONFIG_SCSI_LOGGING=y
 CONFIG_SCSI_AIC7XXX=y
 CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
 CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
 CONFIG_AIC7XXX_DEBUG_ENABLE=y
 CONFIG_AIC7XXX_DEBUG_MASK=0
 CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
 # CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
 # CONFIG_SCSI_SATA is not set
 # CONFIG_SCSI_BUSLOGIC is not set
 # CONFIG_SCSI_DMX3191D is not set
@@ -232,12 +251,14 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
 # CONFIG_SCSI_FUTURE_DOMAIN is not set
 # CONFIG_SCSI_GDTH is not set
 # CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
 # CONFIG_SCSI_INIA100 is not set
 # CONFIG_SCSI_SYM53C8XX_2 is not set
 # CONFIG_SCSI_IPR is not set
 # CONFIG_SCSI_QLOGIC_ISP is not set
 # CONFIG_SCSI_QLOGIC_FC is not set
 # CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 CONFIG_SCSI_QLA2XXX=y
 # CONFIG_SCSI_QLA21XX is not set
 # CONFIG_SCSI_QLA22XX is not set
@@ -296,10 +317,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -317,7 +341,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -442,6 +465,7 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
 # CONFIG_SERIO_MACEPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -476,7 +500,6 @@ 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
@@ -496,7 +519,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -506,6 +528,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -528,7 +555,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -540,6 +566,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -559,6 +587,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -571,7 +600,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -584,6 +614,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -618,6 +649,7 @@ CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -648,13 +680,15 @@ CONFIG_SGI_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -665,6 +699,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 520acac134f7b15da8b2f387d2323b4c33901381..fab0041d9812155a3be26cc9f82aeac1493e2526 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:00 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -26,17 +28,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,13 +51,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -69,6 +74,7 @@ CONFIG_MIPS_ITE8172=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -76,7 +82,6 @@ CONFIG_MIPS_ITE8172=y
 # 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
@@ -120,7 +125,6 @@ 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)
@@ -143,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -170,13 +175,23 @@ CONFIG_MTD_CFI=y
 # CONFIG_MTD_JEDECPROBE is not set
 CONFIG_MTD_GEN_PROBE=y
 # CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
 CONFIG_MTD_CFI_INTELEXT=y
 # CONFIG_MTD_CFI_AMDSTD is not set
 # CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
 # 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
@@ -185,12 +200,13 @@ CONFIG_MTD_CFI_INTELEXT=y
 CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_PHYSMAP_START=0x8000000
 CONFIG_MTD_PHYSMAP_LEN=0x2000000
-CONFIG_MTD_PHYSMAP_BUSWIDTH=4
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
 
 #
 # Self-contained MTD device drivers
 #
 # CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
 
@@ -223,7 +239,19 @@ 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_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -241,7 +269,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -269,7 +296,6 @@ CONFIG_IDE_GENERIC=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -302,10 +328,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -323,7 +352,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -415,6 +443,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -453,7 +482,6 @@ 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
@@ -468,12 +496,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -483,6 +509,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -505,7 +536,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -525,8 +555,6 @@ CONFIG_SOUND_PRIME=y
 # CONFIG_SOUND_BT878 is not set
 # CONFIG_SOUND_FUSION is not set
 # CONFIG_SOUND_CS4281 is not set
-# CONFIG_SOUND_ESSSOLO1 is not set
-# CONFIG_SOUND_MAESTRO is not set
 # CONFIG_SOUND_SONICVIBES is not set
 CONFIG_SOUND_IT8172=y
 # CONFIG_SOUND_TRIDENT is not set
@@ -538,6 +566,8 @@ CONFIG_SOUND_IT8172=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -557,6 +587,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -569,7 +600,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -617,6 +649,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -637,13 +670,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -654,6 +689,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 8eace13a35a5439daaa0f543e8abc5e824c5da3d..76a9522b0d3f795bb5697c9d5c478049f945f277 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:01 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -26,17 +28,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,13 +51,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -68,6 +73,7 @@ CONFIG_MIPS_IVR=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -75,7 +81,6 @@ CONFIG_MIPS_IVR=y
 # 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
@@ -118,7 +123,6 @@ 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)
@@ -143,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -171,7 +176,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -189,7 +206,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -252,10 +268,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -273,7 +292,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -395,6 +413,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -431,7 +450,6 @@ 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
@@ -450,7 +468,6 @@ CONFIG_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
@@ -460,6 +477,11 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -482,7 +504,6 @@ CONFIG_RTC=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -494,6 +515,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -513,6 +536,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -525,7 +549,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -571,6 +596,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -591,13 +617,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -608,6 +636,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 141dc6da43e06f8a0ffee40c088b0a3b0661ad73..d1b4af87c072cce8a1d46843f50fb742d79a5fbb 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:01 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 # CONFIG_EXPERIMENTAL is not set
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
@@ -24,6 +26,7 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -31,11 +34,13 @@ CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -43,6 +48,7 @@ CONFIG_IOSCHED_CFQ=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
@@ -60,6 +66,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 CONFIG_MOMENCO_JAGUAR_ATX=y
 CONFIG_JAGUAR_DMALOW=y
 # CONFIG_PMC_YOSEMITE is not set
@@ -119,7 +126,6 @@ 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
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -136,7 +142,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -145,6 +150,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -172,7 +178,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -228,7 +246,12 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_NETFILTER is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
 # CONFIG_BRIDGE is not set
 # CONFIG_VLAN_8021Q is not set
 # CONFIG_DECNET is not set
@@ -293,7 +316,6 @@ CONFIG_EEPRO100=y
 # CONFIG_SUNDANCE is not set
 # CONFIG_TLAN is not set
 # CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
 
 #
 # Ethernet (1000 Mbit)
@@ -305,6 +327,7 @@ CONFIG_EEPRO100=y
 # CONFIG_HAMACHI is not set
 # CONFIG_R8169 is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
 # CONFIG_TIGON3 is not set
 CONFIG_MV643XX_ETH=y
 CONFIG_MV643XX_ETH_0=y
@@ -388,7 +411,6 @@ 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
@@ -408,7 +430,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -418,6 +439,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -445,6 +471,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -463,6 +491,7 @@ CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -475,7 +504,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -529,13 +559,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -546,6 +578,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 4580138f2e072a116aae988fd16265c8ed48f9de..5a98bb5044371acaaec8192c518515fdba9db66d 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:01 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,7 +51,6 @@ CONFIG_IOSCHED_CFQ=y
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 # CONFIG_MACH_VR41XX is not set
 CONFIG_TOSHIBA_JMR3927=y
 # CONFIG_MIPS_COBALT is not set
@@ -62,6 +66,7 @@ CONFIG_TOSHIBA_JMR3927=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -69,7 +74,6 @@ CONFIG_TOSHIBA_JMR3927=y
 # 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
@@ -111,7 +115,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 CONFIG_RTC_DS1742=y
 
 #
@@ -129,7 +132,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -138,6 +140,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -166,7 +169,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -224,10 +239,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -245,7 +263,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -367,6 +384,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -415,7 +433,6 @@ CONFIG_TXX927_SERIAL_CONSOLE=y
 # CONFIG_UNIX98_PTYS is not set
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -435,7 +452,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -445,6 +461,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -462,6 +483,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # Graphics support
 #
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
 # CONFIG_FB_CIRRUS is not set
 # CONFIG_FB_PM2 is not set
 # CONFIG_FB_CYBER2000 is not set
@@ -473,6 +496,7 @@ CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_FB_RADEON is not set
 # CONFIG_FB_ATY128 is not set
 # CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
 # CONFIG_FB_SIS is not set
 # CONFIG_FB_NEOMAGIC is not set
 # CONFIG_FB_KYRO is not set
@@ -486,7 +510,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE is not set
 
@@ -504,6 +527,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -522,6 +547,7 @@ CONFIG_DUMMY_CONSOLE=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -534,7 +560,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -578,6 +605,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -598,13 +626,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -615,6 +645,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 3f9fb458bd10df9ddeec3154f86e41c268ff7123..3f1b36a2f727c7d871fa35c5751d1594752c7496 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:02 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -71,6 +76,7 @@ CONFIG_LASAT_SYSCTL=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -78,7 +84,6 @@ CONFIG_LASAT_SYSCTL=y
 # 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
@@ -124,7 +129,6 @@ 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)
@@ -149,6 +153,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -177,13 +182,24 @@ CONFIG_MTD_CFI=y
 # CONFIG_MTD_JEDECPROBE is not set
 CONFIG_MTD_GEN_PROBE=y
 # CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
 # CONFIG_MTD_CFI_INTELEXT is not set
 CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
 # CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
 # 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
@@ -197,6 +213,7 @@ CONFIG_MTD_LASAT=y
 #
 # CONFIG_MTD_PMC551 is not set
 # CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
 
@@ -233,7 +250,19 @@ CONFIG_MTD_LASAT=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -251,7 +280,6 @@ CONFIG_IDEDISK_MULTI_MODE=y
 # 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
@@ -266,7 +294,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
 # CONFIG_BLK_DEV_IDEDMA_FORCED is not set
 CONFIG_IDEDMA_PCI_AUTO=y
 # CONFIG_IDEDMA_ONLYDISK 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
@@ -340,10 +367,13 @@ CONFIG_INET=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -361,7 +391,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -482,6 +511,7 @@ CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -516,7 +546,6 @@ 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
@@ -536,7 +565,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -546,6 +574,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -568,7 +601,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -580,6 +612,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -604,6 +638,7 @@ CONFIG_FS_MBCACHE=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -616,7 +651,8 @@ CONFIG_FS_MBCACHE=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -664,6 +700,7 @@ CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -684,13 +721,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -701,6 +740,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 3259148a2cfce88a0a1dc81a5a9f1855a1faad9f..222a1b5e74ba2d5af45458a62ac655b082b38672 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:02 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_MIPS_MALTA=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_MIPS_MALTA=y
 # 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
@@ -126,7 +131,6 @@ CONFIG_CPU_HAS_PREFETCH=y
 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)
@@ -151,6 +155,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -181,7 +186,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 # CONFIG_BLK_DEV_INITRD is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -238,10 +255,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -259,7 +279,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -321,7 +340,6 @@ CONFIG_PCNET32=y
 # CONFIG_SUNDANCE is not set
 # CONFIG_TLAN is not set
 # CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
 # CONFIG_LAN_SAA9730 is not set
 
 #
@@ -335,6 +353,7 @@ CONFIG_PCNET32=y
 # CONFIG_YELLOWFIN is not set
 # CONFIG_R8169 is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
 # CONFIG_TIGON3 is not set
 
 #
@@ -401,6 +420,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -435,7 +455,6 @@ 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
@@ -454,7 +473,6 @@ CONFIG_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
@@ -464,6 +482,11 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -486,7 +509,6 @@ CONFIG_RTC=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -498,6 +520,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -517,6 +541,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=y
 # CONFIG_AUTOFS4_FS is not set
 
@@ -529,7 +554,8 @@ CONFIG_AUTOFS_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -579,6 +605,7 @@ CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -599,13 +626,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -616,6 +645,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/arch/mips/configs/mirage_defconfig b/arch/mips/configs/mirage_defconfig
deleted file mode 100644 (file)
index 5bc312a..0000000
+++ /dev/null
@@ -1,671 +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_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HOTPLUG=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=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 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_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_8KB is not set
-# 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 is not set
-# 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_MMU=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_TCIC is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# 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_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_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
-#
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-
-#
-# 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_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_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_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_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT 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)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO 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
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN 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
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE 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
-
-#
-# 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 is not set
-
-#
-# Non-8250 serial port support
-#
-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=y
-# 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
-#
-
-#
-# 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=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_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# 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_SYSFS=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_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_ASCII 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_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Library routines
-#
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
index 2c3c1f0a12f88643f4e633635a358f6e6f91facd..f28428979575ae31a3e5a8c977212ab92abb033c 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:02 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 CONFIG_MACH_VR41XX=y
 # CONFIG_CASIO_E55 is not set
 # CONFIG_IBM_WORKPAD is not set
@@ -75,6 +80,7 @@ CONFIG_VRC4173=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -82,7 +88,6 @@ CONFIG_VRC4173=y
 # 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
@@ -122,7 +127,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -147,6 +151,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -175,7 +180,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -234,10 +251,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -255,7 +275,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -377,6 +396,7 @@ CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -411,7 +431,6 @@ 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
@@ -431,7 +450,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -441,6 +459,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -463,7 +486,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -475,6 +497,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -494,6 +518,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=y
 CONFIG_AUTOFS4_FS=y
 
@@ -506,7 +531,8 @@ CONFIG_AUTOFS4_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -552,6 +578,7 @@ CONFIG_LOCKD=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -572,13 +599,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -592,14 +621,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
@@ -608,8 +641,10 @@ CONFIG_CRYPTO_CRC32C=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
deleted file mode 100644 (file)
index 5bc312a..0000000
+++ /dev/null
@@ -1,671 +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_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HOTPLUG=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=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 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_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_8KB is not set
-# 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 is not set
-# 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_MMU=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_TCIC is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# 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_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_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
-#
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-
-#
-# 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_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_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_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_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT 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)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO 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
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN 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
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE 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
-
-#
-# 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 is not set
-
-#
-# Non-8250 serial port support
-#
-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=y
-# 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
-#
-
-#
-# 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=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_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# 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_SYSFS=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_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_ASCII 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_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Library routines
-#
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/ocelot_3_defconfig
new file mode 100644 (file)
index 0000000..37fbacb
--- /dev/null
@@ -0,0 +1,846 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:03 2004
+#
+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_BROKEN_ON_SMP=y
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM 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_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MACH_JAZZ 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_OCELOT_3=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_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 is not set
+CONFIG_IRQ_CPU=y
+CONFIG_IRQ_CPU_RM7K=y
+CONFIG_IRQ_MV64340=y
+CONFIG_PCI_MARVELL=y
+CONFIG_SWAP_IO_SPACE=y
+CONFIG_BOOT_ELF32=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+CONFIG_FB=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_8KB is not set
+# 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 is not set
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+CONFIG_MMU=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# 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_SX8 is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+# CONFIG_CDROM_PKTCDVD is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+# CONFIG_BLK_DEV_SD is not set
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# 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
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_ISP is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
+CONFIG_SCSI_QLA2XXX=m
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_QLA6322 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG 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 is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+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_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_INET_TUNNEL is not set
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_IPV6_TUNNEL 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_CONNTRACK_MARK 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
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_IP6_NF_QUEUE is not set
+# CONFIG_IP6_NF_IPTABLES 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_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_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
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+# CONFIG_ETHERTAP is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# 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_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_DGRS is not set
+# CONFIG_EEPRO100 is not set
+CONFIG_E100=y
+# CONFIG_E100_NAPI is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_8139CP 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
+# CONFIG_LAN_SAA9730 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_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+CONFIG_MV643XX_ETH=y
+CONFIG_MV643XX_ETH_0=y
+CONFIG_MV643XX_ETH_1=y
+CONFIG_MV643XX_ETH_2=y
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+# CONFIG_PPP_BSDCOMP is not set
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE 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 is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input I/O drivers
+#
+# CONFIG_GAMEPORT is not set
+CONFIG_SOUND_GAMEPORT=y
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 is not set
+# CONFIG_SERIO_RAW 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
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+
+#
+# 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=m
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=m
+# 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_REISERFS_FS_XATTR is not set
+# CONFIG_JFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=y
+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_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+CONFIG_DEVFS_MOUNT=y
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS_XATTR=y
+CONFIG_DEVPTS_FS_SECURITY=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR 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=y
+CONFIG_CRAMFS=y
+# 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=y
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_V4 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 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_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_ASCII 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_DEBUG_KERNEL is not set
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE="ip=any root=nfs"
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index c7eb418e3ce8536f2d29bdf658f8dfde6e52e2c9..33d03f45405cf4e2d00ba3e5f36d5f4ff7b17240 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:03 2004
 #
 CONFIG_MIPS=y
 CONFIG_MIPS64=y
@@ -10,12 +12,12 @@ CONFIG_64BIT=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -24,17 +26,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -59,6 +64,7 @@ CONFIG_IOSCHED_CFQ=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 CONFIG_MOMENCO_OCELOT_C=y
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -112,7 +118,6 @@ 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)
@@ -128,6 +133,7 @@ CONFIG_MMU=y
 #
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
+# CONFIG_BUILD_ELF64 is not set
 CONFIG_MIPS32_COMPAT=y
 CONFIG_COMPAT=y
 CONFIG_MIPS32_O32=y
@@ -141,6 +147,7 @@ CONFIG_BINFMT_ELF32=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -169,6 +176,18 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -225,10 +244,13 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -246,7 +268,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -369,6 +390,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -403,7 +425,6 @@ 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
@@ -423,7 +444,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -433,6 +453,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -455,7 +480,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -467,6 +491,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -486,6 +512,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -498,7 +525,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -546,6 +574,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -566,13 +595,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -583,6 +614,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 2f5c2d2f762efac5f0fa4c509901793917c5cb99..62c95e3f37bc2f128889ad8fd8fd860dbc2cc979 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:04 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,7 +51,6 @@ CONFIG_IOSCHED_CFQ=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
@@ -62,6 +66,7 @@ CONFIG_IOSCHED_CFQ=y
 CONFIG_MOMENCO_OCELOT=y
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -69,7 +74,6 @@ CONFIG_MOMENCO_OCELOT=y
 # 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
@@ -121,7 +125,6 @@ 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)
@@ -136,7 +139,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -145,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -168,7 +171,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -192,7 +207,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -224,10 +238,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -245,7 +262,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -337,6 +353,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -371,7 +388,6 @@ 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
@@ -386,12 +402,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -401,6 +415,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -423,7 +442,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -434,6 +452,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -453,6 +473,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -465,7 +486,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -513,6 +535,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -533,13 +556,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -550,6 +575,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index a6e93370fdba98bd69dc1edadb5efe4577100a1c..231afaaf20c3ef46ace87b2e668b2b2cf579eb0b 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:04 2004
 #
 CONFIG_MIPS=y
 CONFIG_MIPS64=y
@@ -10,12 +12,12 @@ CONFIG_64BIT=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -24,17 +26,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -59,6 +64,7 @@ CONFIG_IOSCHED_CFQ=y
 # CONFIG_MOMENCO_OCELOT is not set
 CONFIG_MOMENCO_OCELOT_G=y
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -115,7 +121,6 @@ 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)
@@ -131,6 +136,7 @@ CONFIG_MMU=y
 #
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
+# CONFIG_BUILD_ELF64 is not set
 CONFIG_MIPS32_COMPAT=y
 CONFIG_COMPAT=y
 CONFIG_MIPS32_O32=y
@@ -144,6 +150,7 @@ CONFIG_BINFMT_ELF32=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -172,6 +179,18 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -228,10 +247,13 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -249,7 +271,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -372,6 +393,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -406,7 +428,6 @@ 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
@@ -426,7 +447,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -436,6 +456,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -458,7 +483,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -470,6 +494,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -489,6 +515,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -501,7 +528,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -549,6 +577,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -569,13 +598,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -586,6 +617,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 11564910e39aed2d2d993a2b140a93559c05890a..716470eb23e35364942f31d0bf83e57eb9e0d07b 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:04 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_KMOD=y
 # CONFIG_DDB5477 is not set
 CONFIG_NEC_OSPREY=y
 # 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
@@ -115,7 +120,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -136,6 +140,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -159,7 +164,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -183,7 +200,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -216,10 +232,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -237,7 +256,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -329,6 +347,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -363,7 +382,6 @@ 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
@@ -378,12 +396,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -393,6 +409,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -415,7 +436,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -426,6 +446,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -445,6 +467,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -457,7 +480,8 @@ CONFIG_EXT2_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -505,6 +529,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -525,13 +550,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE="ip=bootp ether=46,0x03fe0300,eth0"
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -542,6 +569,8 @@ CONFIG_CMDLINE="ip=bootp ether=46,0x03fe0300,eth0"
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/arch/mips/configs/pb1000_defconfig b/arch/mips/configs/pb1000_defconfig
deleted file mode 100644 (file)
index 5bc312a..0000000
+++ /dev/null
@@ -1,671 +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_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HOTPLUG=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=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 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_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_8KB is not set
-# 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 is not set
-# 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_MMU=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_TCIC is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# 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_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_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
-#
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-
-#
-# 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_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_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_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_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT 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)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO 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
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN 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
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE 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
-
-#
-# 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 is not set
-
-#
-# Non-8250 serial port support
-#
-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=y
-# 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
-#
-
-#
-# 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=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_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# 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_SYSFS=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_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_ASCII 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_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Library routines
-#
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
index 5bc312a3c7469cd1131e5696ab0e17b7a06e425f..ae56298c64955f3e3dff69ceed7323a00013a5e4 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:05 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,14 +80,32 @@ CONFIG_KMOD=y
 # 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_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=y
+# 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 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_SWAP_IO_SPACE=y
+# CONFIG_AU1000_USB_DEVICE is not set
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
 
@@ -116,19 +140,27 @@ CONFIG_CPU_HAS_PREFETCH=y
 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_HW_HAS_PCI=y
+# CONFIG_PCI is not set
 CONFIG_MMU=y
 
 #
-# PCMCIA/CardBus support
+# PCCARD (PCMCIA/CardBus) support
 #
-CONFIG_PCMCIA=m
+CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+
+#
+# PC-card bridges
+#
 # CONFIG_TCIC is not set
+# CONFIG_PCMCIA_AU1X00 is not set
 
 #
 # PCI Hotplug Support
@@ -148,13 +180,83 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 
 #
 # Memory Technology Devices (MTD)
 #
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+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 is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PB1100=y
+CONFIG_MTD_PB1500_BOOT=y
+CONFIG_MTD_PB1500_USER=y
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
 
 #
 # Parallel port support
@@ -173,7 +275,19 @@ 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_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -197,7 +311,6 @@ CONFIG_BLK_DEV_LOOP=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -231,6 +344,9 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 
 #
 # IP: Virtual Server Configuration
@@ -244,13 +360,14 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 # CONFIG_IP_NF_CONNTRACK is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
 # 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
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -268,7 +385,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -297,6 +413,7 @@ CONFIG_NETDEVICES=y
 #
 CONFIG_NET_ETHERNET=y
 # CONFIG_MII is not set
+# CONFIG_MIPS_AU1X00_ENET is not set
 
 #
 # Ethernet (1000 Mbit)
@@ -318,15 +435,7 @@ CONFIG_NET_ETHERNET=y
 #
 # 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
+# CONFIG_NET_PCMCIA is not set
 
 #
 # Wan interfaces
@@ -380,6 +489,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -397,6 +507,8 @@ CONFIG_VT=y
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
 
 #
 # Serial drivers
@@ -406,10 +518,10 @@ CONFIG_HW_CONSOLE=y
 #
 # Non-8250 serial port support
 #
+# CONFIG_SERIAL_AU1X00 is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -423,19 +535,17 @@ CONFIG_LEGACY_PTY_COUNT=256
 CONFIG_RTC=y
 # 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_SYNCLINK_CS=m
 # CONFIG_RAW_DRIVER is not set
 
 #
@@ -443,6 +553,11 @@ CONFIG_RTC=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -465,7 +580,6 @@ CONFIG_RTC=y
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -476,6 +590,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -508,6 +624,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -520,7 +637,8 @@ CONFIG_AUTOFS4_FS=m
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -533,6 +651,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -546,6 +665,8 @@ CONFIG_RAMFS=y
 # 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 is not set
 CONFIG_CRAMFS=m
 # CONFIG_VXFS_FS is not set
 # CONFIG_HPFS_FS is not set
@@ -568,6 +689,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -628,13 +750,15 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -648,14 +772,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
@@ -664,8 +792,10 @@ CONFIG_CRYPTO_CRC32C=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index aeecf8550f6924bff1e1bf578ed56d88d28f526b..77254620cb210e4ca32f2c45f08a21394feb9c00 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:05 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_KMOD=y
 # 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
@@ -97,7 +102,7 @@ CONFIG_MIPS_PB1500=y
 # CONFIG_TOSHIBA_RBTX4927 is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
+CONFIG_DMA_COHERENT=y
 CONFIG_CPU_LITTLE_ENDIAN=y
 # CONFIG_AU1000_USB_DEVICE is not set
 CONFIG_MIPS_L1_CACHE_SHIFT=5
@@ -134,7 +139,6 @@ CONFIG_64BIT_PHYS_ADDR=y
 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)
@@ -146,10 +150,17 @@ CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
 
 #
-# PCMCIA/CardBus support
+# PCCARD (PCMCIA/CardBus) support
 #
-CONFIG_PCMCIA=m
+CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
 # CONFIG_YENTA is not set
 CONFIG_PD6729=m
 # CONFIG_I82092 is not set
@@ -175,6 +186,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 
@@ -205,7 +217,19 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -219,12 +243,11 @@ CONFIG_BLK_DEV_IDE=y
 # CONFIG_BLK_DEV_IDE_SATA is not set
 CONFIG_BLK_DEV_IDEDISK=y
 # CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_IDECS=m
 # 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
@@ -238,7 +261,6 @@ CONFIG_BLK_DEV_GENERIC=y
 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
@@ -317,6 +339,9 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 
 #
 # IP: Virtual Server Configuration
@@ -330,13 +355,14 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 # CONFIG_IP_NF_CONNTRACK is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
 # 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
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -354,7 +380,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -387,7 +412,7 @@ CONFIG_NETDEVICES=y
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
+CONFIG_MII=m
 CONFIG_MIPS_AU1X00_ENET=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
@@ -434,13 +459,13 @@ CONFIG_MIPS_AU1X00_ENET=y
 #
 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
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
 
 #
 # Wan interfaces
@@ -497,6 +522,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -530,7 +556,6 @@ 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
@@ -550,14 +575,13 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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_SYNCLINK_CS=m
 # CONFIG_RAW_DRIVER is not set
 
 #
@@ -565,6 +589,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -592,6 +621,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -624,6 +655,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -636,7 +668,8 @@ CONFIG_AUTOFS4_FS=m
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -649,6 +682,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -684,6 +718,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -744,13 +779,15 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -764,14 +801,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_CRC32C is not set
@@ -780,8 +821,10 @@ CONFIG_CRYPTO_MICHAEL_MIC=y
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 519cd8f2619da26b9de41dc2c71ac46c974c710a..93a221a73e67887e540a58aa236081e295df5685 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:05 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -67,6 +72,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +80,6 @@ CONFIG_KMOD=y
 # 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
@@ -97,7 +102,8 @@ CONFIG_MIPS_PB1550=y
 # CONFIG_TOSHIBA_RBTX4927 is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
+CONFIG_DMA_COHERENT=y
+CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
 CONFIG_CPU_LITTLE_ENDIAN=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
@@ -133,7 +139,6 @@ CONFIG_64BIT_PHYS_ADDR=y
 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)
@@ -145,15 +150,22 @@ CONFIG_PCI_NAMES=y
 CONFIG_MMU=y
 
 #
-# PCMCIA/CardBus support
+# PCCARD (PCMCIA/CardBus) support
 #
-CONFIG_PCMCIA=m
+CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
+# CONFIG_PCMCIA_OBSOLETE is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
 # CONFIG_YENTA is not set
 CONFIG_PD6729=m
 # CONFIG_I82092 is not set
 # CONFIG_TCIC is not set
-CONFIG_PCMCIA_AU1X00=m
+# CONFIG_PCMCIA_AU1X00 is not set
 
 #
 # PCI Hotplug Support
@@ -174,6 +186,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 
@@ -204,7 +217,19 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -218,12 +243,11 @@ CONFIG_BLK_DEV_IDE=y
 # CONFIG_BLK_DEV_IDE_SATA is not set
 CONFIG_BLK_DEV_IDEDISK=y
 # CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_IDECS=m
 # 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
@@ -237,7 +261,6 @@ CONFIG_BLK_DEV_GENERIC=y
 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
@@ -316,6 +339,9 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 
 #
 # IP: Virtual Server Configuration
@@ -329,13 +355,14 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 # CONFIG_IP_NF_CONNTRACK is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
 # 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
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -353,7 +380,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -431,15 +457,7 @@ CONFIG_MIPS_AU1X00_ENET=y
 #
 # 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
+# CONFIG_NET_PCMCIA is not set
 
 #
 # Wan interfaces
@@ -496,6 +514,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -529,7 +548,6 @@ 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
@@ -549,14 +567,13 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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_SYNCLINK_CS=m
 # CONFIG_RAW_DRIVER is not set
 
 #
@@ -564,6 +581,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -591,6 +613,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -623,6 +647,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -635,7 +660,8 @@ CONFIG_AUTOFS4_FS=m
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -648,6 +674,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -683,6 +710,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 # CONFIG_CIFS is not set
@@ -743,13 +771,15 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -763,14 +793,18 @@ CONFIG_CRYPTO_NULL=y
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 # 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_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 CONFIG_CRYPTO_CRC32C=m
@@ -779,8 +813,10 @@ CONFIG_CRYPTO_CRC32C=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 090c725d56c9942e80ef7d6e317ccc5006f52b1c..755e49bda3f14271949048a1f2d7b1241ea16a61 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:06 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
@@ -26,6 +28,7 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -33,11 +36,13 @@ CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -47,13 +52,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
 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
@@ -69,6 +74,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -76,7 +82,6 @@ CONFIG_KMOD=y
 # 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=y
@@ -127,7 +132,6 @@ 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)
@@ -154,6 +158,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -221,10 +226,23 @@ CONFIG_PARIDE_ON26=m
 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_CRYPTOLOOP=m
 CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_UB=m
 CONFIG_BLK_DEV_RAM=m
 CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -275,7 +293,9 @@ CONFIG_SCSI_SPI_ATTRS=y
 # CONFIG_SCSI_AIC79XX is not set
 # CONFIG_SCSI_DPT_I2O is not set
 # CONFIG_SCSI_IN2000 is not set
-# CONFIG_SCSI_MEGARAID is not set
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
 # CONFIG_SCSI_SATA is not set
 # CONFIG_SCSI_BUSLOGIC is not set
 # CONFIG_SCSI_DMX3191D is not set
@@ -287,6 +307,7 @@ CONFIG_SCSI_SPI_ATTRS=y
 # CONFIG_SCSI_GENERIC_NCR5380 is not set
 # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
 # CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
 # CONFIG_SCSI_INIA100 is not set
 CONFIG_SCSI_PPA=m
 CONFIG_SCSI_IMM=m
@@ -305,6 +326,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
 # CONFIG_SCSI_QLOGIC_ISP is not set
 # CONFIG_SCSI_QLOGIC_FC is not set
 # CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 CONFIG_SCSI_QLA2XXX=y
 # CONFIG_SCSI_QLA21XX is not set
 # CONFIG_SCSI_QLA22XX is not set
@@ -333,14 +355,16 @@ CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
 CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
 CONFIG_MD_RAID5=m
 # CONFIG_MD_RAID6 is not set
 CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_CRYPT is not set
-# CONFIG_DM_SNAPSHOT is not set
-# CONFIG_DM_MIRROR is not set
-# CONFIG_DM_ZERO is not set
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
 
 #
 # Fusion MPT device support
@@ -385,6 +409,9 @@ CONFIG_IP_PIMSM_V2=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
 
 #
 # IP: Virtual Server Configuration
@@ -395,6 +422,7 @@ CONFIG_IPV6_PRIVACY=y
 CONFIG_INET6_AH=m
 CONFIG_INET6_ESP=m
 CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
 CONFIG_IPV6_TUNNEL=m
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
@@ -404,6 +432,9 @@ CONFIG_BRIDGE_NETFILTER=y
 # IP: Netfilter Configuration
 #
 CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
 CONFIG_IP_NF_FTP=m
 CONFIG_IP_NF_IRC=m
 CONFIG_IP_NF_TFTP=m
@@ -429,8 +460,17 @@ CONFIG_IP_NF_MATCH_STATE=m
 CONFIG_IP_NF_MATCH_CONNTRACK=m
 CONFIG_IP_NF_MATCH_OWNER=m
 CONFIG_IP_NF_MATCH_PHYSDEV=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
 CONFIG_IP_NF_FILTER=m
 CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
 CONFIG_IP_NF_NAT=m
 CONFIG_IP_NF_NAT_NEEDED=y
 CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -449,18 +489,15 @@ CONFIG_IP_NF_TARGET_ECN=m
 CONFIG_IP_NF_TARGET_DSCP=m
 CONFIG_IP_NF_TARGET_MARK=m
 CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
 CONFIG_IP_NF_ARPTABLES=m
 CONFIG_IP_NF_ARPFILTER=m
 CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_IP_NF_COMPAT_IPCHAINS=m
-CONFIG_IP_NF_COMPAT_IPFWADM=m
-CONFIG_IP_NF_TARGET_NOTRACK=m
-CONFIG_IP_NF_RAW=m
-# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
-# CONFIG_IP_NF_MATCH_REALM is not set
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
 
 #
 # IPv6: Netfilter Configuration
@@ -480,6 +517,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m
 CONFIG_IP6_NF_MATCH_AHESP=m
 CONFIG_IP6_NF_MATCH_LENGTH=m
 CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
 CONFIG_IP6_NF_FILTER=m
 CONFIG_IP6_NF_TARGET_LOG=m
 CONFIG_IP6_NF_MANGLE=m
@@ -533,16 +571,17 @@ CONFIG_DECNET=m
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
 #
 CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
 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
@@ -550,7 +589,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_NETEM=m
 CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
@@ -664,7 +703,6 @@ CONFIG_EEPRO100=m
 # CONFIG_SUNDANCE is not set
 # CONFIG_TLAN is not set
 # CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
 # CONFIG_LAN_SAA9730 is not set
 # CONFIG_NET_POCKET is not set
 
@@ -679,6 +717,7 @@ CONFIG_EEPRO100=m
 # CONFIG_YELLOWFIN is not set
 # CONFIG_R8169 is not set
 # CONFIG_SK98LIN is not set
+CONFIG_VIA_VELOCITY=m
 # CONFIG_TIGON3 is not set
 
 #
@@ -748,6 +787,7 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 CONFIG_SERIO_PARKBD=m
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -800,7 +840,6 @@ CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
 CONFIG_TIPAR=m
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -820,7 +859,6 @@ CONFIG_RTC=m
 #
 # 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
@@ -830,6 +868,16 @@ CONFIG_RTC=m
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+CONFIG_W1=m
+CONFIG_W1_MATROX=m
+CONFIG_W1_DS9490=m
+CONFIG_W1_DS9490R_BRIDGE=m
+CONFIG_W1_THERM=m
+CONFIG_W1_SMEM=m
+
 #
 # Misc devices
 #
@@ -872,6 +920,9 @@ CONFIG_USB=m
 CONFIG_USB_DEVICEFS=y
 # CONFIG_USB_BANDWIDTH is not set
 # CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Host Controller Drivers
@@ -900,7 +951,7 @@ CONFIG_USB_STORAGE_SDDR55=y
 CONFIG_USB_STORAGE_JUMPSHOT=y
 
 #
-# USB Human Interface Devices (HID)
+# USB Input Devices
 #
 CONFIG_USB_HID=m
 CONFIG_USB_HIDINPUT=y
@@ -941,7 +992,7 @@ CONFIG_USB_DABUSB=m
 #
 
 #
-# USB Network adaptors
+# USB Network Adapters
 #
 CONFIG_USB_CATC=m
 CONFIG_USB_KAWETH=m
@@ -958,6 +1009,7 @@ CONFIG_USB_BELKIN=y
 CONFIG_USB_GENESYS=y
 CONFIG_USB_NET1080=y
 CONFIG_USB_PL2301=y
+CONFIG_USB_KC2190=y
 
 #
 # Intelligent USB Devices/Gadgets
@@ -985,6 +1037,7 @@ CONFIG_USB_SERIAL_GENERIC=y
 CONFIG_USB_SERIAL_BELKIN=m
 CONFIG_USB_SERIAL_WHITEHEAT=m
 CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
 CONFIG_USB_SERIAL_VISOR=m
@@ -992,6 +1045,7 @@ CONFIG_USB_SERIAL_IPAQ=m
 CONFIG_USB_SERIAL_IR=m
 CONFIG_USB_SERIAL_EDGEPORT=m
 CONFIG_USB_SERIAL_EDGEPORT_TI=m
+# CONFIG_USB_SERIAL_IPW is not set
 CONFIG_USB_SERIAL_KEYSPAN_PDA=m
 CONFIG_USB_SERIAL_KEYSPAN=m
 CONFIG_USB_SERIAL_KEYSPAN_MPR=y
@@ -1029,26 +1083,18 @@ CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYTHERM=m
+CONFIG_USB_PHIDGETKIT=m
 CONFIG_USB_PHIDGETSERVO=m
 CONFIG_USB_TEST=m
 
+#
+# USB ATM/DSL drivers
+#
+
 #
 # USB Gadget Support
 #
-CONFIG_USB_GADGET=m
-CONFIG_USB_GADGET_NET2280=y
-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_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-# CONFIG_USB_ETH_RNDIS is not set
-CONFIG_USB_GADGETFS=m
-# CONFIG_USB_FILE_STORAGE is not set
-# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_GADGET is not set
 
 #
 # File systems
@@ -1068,10 +1114,7 @@ CONFIG_REISERFS_FS=m
 CONFIG_REISERFS_FS_XATTR=y
 CONFIG_REISERFS_FS_POSIX_ACL=y
 CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-# CONFIG_JFS_POSIX_ACL is not set
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
+# CONFIG_JFS_FS is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 # CONFIG_XFS_RT is not set
@@ -1082,6 +1125,7 @@ CONFIG_MINIX_FS=m
 CONFIG_ROMFS_FS=m
 # CONFIG_QUOTA is not set
 CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -1093,6 +1137,7 @@ CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
 CONFIG_ZISOFS_FS=m
 CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
 
 #
 # DOS/FAT/NT Filesystems
@@ -1157,10 +1202,12 @@ CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
 CONFIG_SMB_FS=m
 # CONFIG_SMB_NLS_DEFAULT is not set
 CONFIG_CIFS=m
 # CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
 # CONFIG_CIFS_POSIX is not set
 CONFIG_NCP_FS=m
 CONFIG_NCPFS_PACKET_SIGNING=y
@@ -1224,7 +1271,7 @@ CONFIG_NLS_CODEPAGE_874=m
 CONFIG_NLS_ISO8859_8=m
 CONFIG_NLS_CODEPAGE_1250=m
 CONFIG_NLS_CODEPAGE_1251=m
-# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ASCII=m
 CONFIG_NLS_ISO8859_1=m
 CONFIG_NLS_ISO8859_2=m
 CONFIG_NLS_ISO8859_3=m
@@ -1243,13 +1290,15 @@ CONFIG_NLS_UTF8=m
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -1263,6 +1312,7 @@ CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_SHA1=m
 CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_DES=m
 CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_TWOFISH=m
@@ -1270,7 +1320,10 @@ CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 # CONFIG_CRYPTO_CRC32C is not set
@@ -1279,8 +1332,10 @@ CONFIG_CRYPTO_TEST=m
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=m
 CONFIG_ZLIB_DEFLATE=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 41d73cf4584738d6b651ef02ba3f0337c4fc49a9..4254c115c8da1f6d62e1f797041cb2e32bd112f5 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:06 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,11 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
+CONFIG_LOCK_KERNEL=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -24,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=15
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -44,6 +50,7 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 CONFIG_STOP_MACHINE=y
 
@@ -51,7 +58,6 @@ CONFIG_STOP_MACHINE=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
@@ -67,6 +73,7 @@ CONFIG_STOP_MACHINE=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -74,7 +81,6 @@ CONFIG_STOP_MACHINE=y
 # 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=y
 CONFIG_SIBYTE_SWARM=y
@@ -149,7 +155,6 @@ CONFIG_CPU_HAS_SYNC=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -166,12 +171,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
-
-#
-# MIPS initrd options
-#
-# CONFIG_EMBEDDED_RAMDISK is not set
 
 #
 # Device Drivers
@@ -180,6 +179,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -210,7 +210,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=9220
 CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -228,7 +240,6 @@ CONFIG_BLK_DEV_IDECD=y
 CONFIG_BLK_DEV_IDETAPE=y
 CONFIG_BLK_DEV_IDEFLOPPY=y
 # CONFIG_IDE_TASK_IOCTL is not set
-# CONFIG_IDE_TASKFILE_IO is not set
 
 #
 # IDE chipset support/bugfixes
@@ -292,10 +303,13 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -313,7 +327,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -347,7 +360,6 @@ CONFIG_NETDEVICES=y
 #
 CONFIG_NET_ETHERNET=y
 CONFIG_MII=y
-CONFIG_NET_SB1250_MAC=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
 # CONFIG_NET_VENDOR_3COM is not set
@@ -369,6 +381,7 @@ CONFIG_NET_SB1250_MAC=y
 # CONFIG_HAMACHI is not set
 # CONFIG_YELLOWFIN is not set
 # CONFIG_R8169 is not set
+CONFIG_NET_SB1250_MAC=y
 # CONFIG_SK98LIN is not set
 # CONFIG_TIGON3 is not set
 
@@ -428,6 +441,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -458,7 +472,6 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -487,6 +500,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -514,6 +532,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -537,6 +557,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -549,7 +570,8 @@ CONFIG_FS_POSIX_ACL=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -595,6 +617,7 @@ CONFIG_LOCKD_V4=y
 # CONFIG_EXPORTFS is not set
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -615,14 +638,16 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 # CONFIG_SB1XXX_CORELIS is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -636,14 +661,18 @@ CONFIG_CRYPTO_MD5=y
 CONFIG_CRYPTO_SHA1=y
 CONFIG_CRYPTO_SHA256=y
 CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_DES=y
 CONFIG_CRYPTO_BLOWFISH=y
 CONFIG_CRYPTO_TWOFISH=y
 CONFIG_CRYPTO_SERPENT=y
-CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES=m
 # CONFIG_CRYPTO_CAST5 is not set
 # CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_TEA=m
 # CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=y
 # CONFIG_CRYPTO_CRC32C is not set
@@ -652,8 +681,10 @@ CONFIG_CRYPTO_MICHAEL_MIC=y
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index b641d81e4da6e25b41f81a4f97e7b64d378dac9e..71fd23fbc71b88bb5ed1034339213f2b0dd220e1 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:06 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 # CONFIG_SYSVIPC is not set
 # CONFIG_BSD_PROCESS_ACCT is not set
@@ -30,11 +32,13 @@ CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,7 +49,6 @@ CONFIG_IOSCHED_CFQ=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
@@ -61,6 +64,7 @@ CONFIG_MIPS_SEAD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -68,7 +72,6 @@ CONFIG_MIPS_SEAD=y
 # 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
@@ -113,7 +116,6 @@ CONFIG_CPU_HAS_PREFETCH=y
 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)
@@ -127,12 +129,6 @@ CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
 
-#
-# MIPS initrd options
-#
-CONFIG_EMBEDDED_RAMDISK=y
-CONFIG_EMBEDDED_RAMDISK_IMAGE="ramdisk.gz"
-
 #
 # Device Drivers
 #
@@ -140,6 +136,7 @@ CONFIG_EMBEDDED_RAMDISK_IMAGE="ramdisk.gz"
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -165,7 +162,19 @@ CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=18432
 CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -189,7 +198,6 @@ CONFIG_BLK_DEV_INITRD=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -237,6 +245,7 @@ CONFIG_SERIO=y
 # CONFIG_SERIO_I8042 is not set
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=y
 
 #
 # Input Device Drivers
@@ -271,7 +280,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_UNIX98_PTYS is not set
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -286,12 +294,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -301,6 +307,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -322,7 +333,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -333,6 +343,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -356,6 +368,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -368,7 +381,8 @@ CONFIG_FS_POSIX_ACL=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -413,13 +427,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -430,6 +446,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=y
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 9933eede8d9b88d7116b29ab7d141aba3d18b6e8..dc7a5f459b2a6483ed88c6745735729611ab54fd 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:07 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 CONFIG_MACH_VR41XX=y
 # CONFIG_CASIO_E55 is not set
 # CONFIG_IBM_WORKPAD is not set
@@ -73,6 +78,7 @@ CONFIG_TANBAC_TB0226=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -80,7 +86,6 @@ CONFIG_TANBAC_TB0226=y
 # 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
@@ -120,7 +125,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -143,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -168,7 +173,19 @@ CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_RAM=m
 CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -187,7 +204,6 @@ CONFIG_IDEDISK_MULTI_MODE=y
 # CONFIG_BLK_DEV_IDEFLOPPY is not set
 CONFIG_BLK_DEV_IDESCSI=y
 # CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_TASKFILE_IO=y
 
 #
 # IDE chipset support/bugfixes
@@ -230,9 +246,8 @@ CONFIG_SCSI_CONSTANTS=y
 #
 # SCSI low-level drivers
 #
-# CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 # CONFIG_SCSI_DEBUG is not set
 
 #
@@ -247,7 +262,6 @@ CONFIG_SCSI_CONSTANTS=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -270,7 +284,6 @@ CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
 CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_NAT=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
 CONFIG_IP_PNP=y
@@ -285,8 +298,13 @@ CONFIG_SYN_COOKIES=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -304,7 +322,6 @@ CONFIG_SYN_COOKIES=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -403,6 +420,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -437,7 +455,6 @@ 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
@@ -452,12 +469,10 @@ CONFIG_LEGACY_PTY_COUNT=256
 # 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
@@ -467,6 +482,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -484,13 +504,14 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # Graphics support
 #
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
 # CONFIG_FB_VIRTUAL is not set
 
 #
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE is not set
 
@@ -517,6 +538,8 @@ CONFIG_SOUND=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -536,6 +559,7 @@ CONFIG_EXT2_FS=y
 # CONFIG_MINIX_FS is not set
 CONFIG_ROMFS_FS=m
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 CONFIG_AUTOFS4_FS=y
 
@@ -568,6 +592,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -605,6 +630,7 @@ CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 CONFIG_SMB_NLS_DEFAULT=y
 CONFIG_SMB_NLS_REMOTE="cp932"
@@ -666,13 +692,15 @@ CONFIG_NLS_ISO8859_1=m
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -683,8 +711,10 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 5be7f568fa67cdc299464884ea0f211bff33af65..b45434053e6605152a67cde63bc58aca0f39e88c 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:07 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 CONFIG_MACH_VR41XX=y
 # CONFIG_CASIO_E55 is not set
 # CONFIG_IBM_WORKPAD is not set
@@ -75,6 +80,7 @@ CONFIG_VRC4173=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -82,7 +88,6 @@ CONFIG_VRC4173=y
 # 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
@@ -123,7 +128,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -148,6 +152,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -179,7 +184,19 @@ CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 # CONFIG_BLK_DEV_INITRD is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -227,7 +244,6 @@ CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
 CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_NAT=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
 CONFIG_IP_PNP=y
@@ -243,10 +259,13 @@ CONFIG_SYN_COOKIES=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -264,7 +283,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -396,6 +414,7 @@ CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -430,7 +449,6 @@ 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
@@ -450,7 +468,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -460,6 +477,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -482,7 +504,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 
 #
@@ -494,6 +515,8 @@ CONFIG_DUMMY_CONSOLE=y
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -526,6 +549,7 @@ CONFIG_XFS_POSIX_ACL=y
 CONFIG_ROMFS_FS=m
 # CONFIG_QUOTA is not set
 CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 CONFIG_AUTOFS4_FS=y
 
@@ -558,6 +582,7 @@ CONFIG_SYSFS=y
 CONFIG_DEVPTS_FS_XATTR=y
 CONFIG_DEVPTS_FS_SECURITY=y
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -595,6 +620,7 @@ CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 CONFIG_SMB_FS=m
 CONFIG_SMB_NLS_DEFAULT=y
 CONFIG_SMB_NLS_REMOTE="cp932"
@@ -656,13 +682,15 @@ CONFIG_NLS_ISO8859_1=m
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -673,8 +701,10 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+CONFIG_CRC_CCITT=m
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index e0bc0d0b2219721aa98e95fd8551d29f66875f0e..d5b7dfe28f39e16499704de1b43e271b899939c4 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:12:08 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,17 +27,20 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -45,13 +50,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
 CONFIG_MACH_VR41XX=y
 # CONFIG_CASIO_E55 is not set
 CONFIG_IBM_WORKPAD=y
@@ -74,6 +79,7 @@ CONFIG_VRC4171=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -81,7 +87,6 @@ CONFIG_VRC4171=y
 # 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
@@ -121,7 +126,6 @@ CONFIG_PAGE_SIZE_4KB=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_SYNC=y
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -143,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -168,7 +173,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -186,7 +203,6 @@ CONFIG_BLK_DEV_IDEDISK=y
 # 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
@@ -220,7 +236,6 @@ CONFIG_IDE_GENERIC=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -251,10 +266,13 @@ CONFIG_IP_MULTICAST=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_IPV6 is not set
 # CONFIG_NETFILTER is not set
 CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=m
 
 #
 # SCTP Configuration (EXPERIMENTAL)
@@ -272,7 +290,6 @@ CONFIG_XFRM=y
 # CONFIG_NET_DIVERT is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
@@ -380,6 +397,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -414,7 +432,6 @@ 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
@@ -442,12 +459,10 @@ CONFIG_WATCHDOG=y
 # 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
@@ -457,6 +472,11 @@ CONFIG_WATCHDOG=y
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -490,6 +510,8 @@ CONFIG_DUMMY_CONSOLE=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -513,6 +535,7 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=y
 CONFIG_AUTOFS4_FS=y
 
@@ -525,7 +548,8 @@ CONFIG_AUTOFS4_FS=y
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -572,6 +596,7 @@ CONFIG_LOCKD=y
 CONFIG_EXPORTFS=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_CIFS is not set
 # CONFIG_NCP_FS is not set
@@ -592,13 +617,15 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -609,6 +636,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/arch/mips/configs/xxs1500_defconfig b/arch/mips/configs/xxs1500_defconfig
deleted file mode 100644 (file)
index 37fef7b..0000000
+++ /dev/null
@@ -1,671 +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_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HOTPLUG=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=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 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_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_8KB is not set
-# 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 is not set
-# 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_MMU=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_TCIC is not set
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# 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_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_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
-#
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-
-#
-# 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_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_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_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_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT 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)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO 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
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN 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
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE 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
-
-#
-# 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 is not set
-
-#
-# Non-8250 serial port support
-#
-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=y
-# 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
-#
-
-#
-# 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=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_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# 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_SYSFS=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_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_ASCII 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_CRC32C is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Library routines
-#
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
index bf259d8093516e6830b660eb8da1323769472861..6e248a3fe32697b70a8b23453fb2a1737dd703b6 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Fri Nov 26 00:00:39 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 # CONFIG_EXPERIMENTAL is not set
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
-CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
@@ -24,18 +26,22 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
 CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -43,7 +49,9 @@ CONFIG_IOSCHED_CFQ=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
 CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
 
 #
 # Machine selection
@@ -60,6 +68,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 CONFIG_PMC_YOSEMITE=y
 # CONFIG_HYPERTRANSPORT is not set
@@ -76,6 +85,7 @@ CONFIG_DMA_COHERENT=y
 # CONFIG_CPU_LITTLE_ENDIAN is not set
 CONFIG_IRQ_CPU=y
 CONFIG_IRQ_CPU_RM7K=y
+CONFIG_SWAP_IO_SPACE=y
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 # CONFIG_FB is not set
 
@@ -110,9 +120,9 @@ CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 CONFIG_CPU_HAS_SYNC=y
 CONFIG_HIGHMEM=y
-# CONFIG_SMP is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2
 # CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -129,7 +139,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_MISC is not set
 CONFIG_TRAD_SIGNALS=y
-# CONFIG_BINFMT_IRIX is not set
 
 #
 # Device Drivers
@@ -138,7 +147,9 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_DEBUG_DRIVER is not set
 
 #
 # Memory Technology Devices (MTD)
@@ -165,7 +176,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_SX8 is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -222,7 +245,12 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_AH is not set
 # CONFIG_INET_ESP is not set
 # CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+# CONFIG_IP_TCPDIAG_IPV6 is not set
 # CONFIG_NETFILTER is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
 # CONFIG_BRIDGE is not set
 # CONFIG_VLAN_8021Q is not set
 # CONFIG_DECNET is not set
@@ -362,7 +390,6 @@ 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
@@ -382,7 +409,6 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # 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
@@ -392,6 +418,11 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -419,6 +450,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 # USB support
 #
 # CONFIG_USB is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 
 #
 # USB Gadget Support
@@ -437,6 +470,7 @@ CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 
@@ -449,7 +483,8 @@ CONFIG_LEGACY_PTY_COUNT=256
 #
 # DOS/FAT/NT Filesystems
 #
-# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
 # CONFIG_NTFS_FS is not set
 
 #
@@ -460,6 +495,7 @@ CONFIG_PROC_KCORE=y
 CONFIG_SYSFS=y
 # CONFIG_DEVPTS_FS_XATTR is not set
 CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 CONFIG_RAMFS=y
 
@@ -503,13 +539,26 @@ CONFIG_MSDOS_PARTITION=y
 #
 # Kernel hacking
 #
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_DEBUG_INFO is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_KGDB is not set
+# CONFIG_RUNTIME_DEBUG is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -520,6 +569,8 @@ CONFIG_CMDLINE=""
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index b2d4800a64c6144cbf3b79e616b285bbd05742ac..bc44e3032711fa0c977e5ec951cd8bb84a35c9d0 100644 (file)
@@ -2,4 +2,4 @@
 # Makefile for the common code of NEC DDB-Vrc5xxx board
 #
 
-obj-y   += irq.o nile4.o prom.o rtc_ds1386.o
+obj-y   += nile4.o prom.o rtc_ds1386.o
diff --git a/arch/mips/ddb5xxx/common/irq.c b/arch/mips/ddb5xxx/common/irq.c
deleted file mode 100644 (file)
index 737e6e6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2001 MontaVista Software Inc.
- * Author: jsun@mvista.com or jsun@junsun.net
- *
- * arch/mips/ddb5xxx/common/irq.c
- *     Common irq code for DDB boards.  This really should belong
- *     arch/mips/kernel/irq.c.  Need to talk to Ralf.
- *
- * 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/config.h>
-#include <linux/init.h>
-#include <asm/irq.h>
-
-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);
-
-       if (kgdb_flag) {
-               printk("Wait for gdb client connection ...\n");
-               set_debug_traps();
-               breakpoint();
-       }
-#endif
-       /* set up default irq controller */
-       init_generic_irq();
-
-       /* invoke board-specific irq setup */
-       irq_setup();
-}
index 547386de484a93635b6be36c936f06b46405af0c..228117e1b0f2b156b953d6aec1e0159c992d6f1d 100644 (file)
@@ -134,14 +134,8 @@ void ddb_8254timer_irq(void)
        printk("ddb_8254timer_irq called\n");
 }
 
-void __init ddb_irq_setup(void)
+void __init arch_init_irq(void)
 {
-#ifdef CONFIG_KGDB
-       if (remote_debug)
-               set_debug_traps();
-       breakpoint();           /* you may move this line to whereever you want :-) */
-#endif
-
        /* setup cascade interrupts */
        setup_irq(NILE4_IRQ_BASE  + NILE4_INT_INTE, &irq_cascade);
        setup_irq(CPU_IRQ_BASE + CPU_NILE4_CASCADE, &irq_cascade);
@@ -163,6 +157,4 @@ void __init ddb_irq_setup(void)
 
        /* Enable the interrupt cascade */
        nile4_enable_irq(NILE4_IRQ_BASE+IRQ_I8259_CASCADE);
-
-
 }
index 7c99c8192d42e2fa6a4b02f0abd840f10cf125d6..68c127cd70c9eaa072b71b569ad69ff732a0ef8b 100644 (file)
@@ -222,7 +222,6 @@ static hw_irq_controller nile4_irq_controller = {
 void nile4_irq_setup(u32 base) {
 
        int i;
-       extern irq_desc_t irq_desc[];
 
        irq_base=base;
 
@@ -258,7 +257,6 @@ void nile4_irq_setup(u32 base) {
                irq_desc[i].depth = 1;
                irq_desc[i].handler = &nile4_irq_controller;
        }
-
 }
 
 #if defined(CONFIG_RUNTIME_DEBUG)
index d652aec276919ebc3082b8e885de24afc7ed3f00..27f6a66ee7639c5e745e570a5ea8a71c20d93651 100644 (file)
 #include <asm/ddb5xxx/ddb5074.h>
 #include <asm/ddb5xxx/ddb5xxx.h>
 
-#ifdef CONFIG_KGDB
-extern void rs_kgdb_hook(int);
-extern void breakpoint(void);
-#endif
-
 static void (*back_to_prom) (void) = (void (*)(void)) 0xbfc00000;
 
 static void ddb_machine_restart(char *command)
@@ -63,7 +58,6 @@ static void ddb_machine_power_off(void)
        } while (1);
 }
 
-extern void ddb_irq_setup(void);
 extern void rtc_ds1386_init(unsigned long base);
 
 extern void (*board_timer_setup) (struct irqaction * irq);
@@ -96,7 +90,6 @@ static void __init ddb5074_setup(void)
 {
        extern int panic_timeout;
 
-       irq_setup = ddb_irq_setup;
        set_io_port_base(NILE4_PCI_IO_BASE);
        isa_slot_offset = NILE4_PCI_MEM_BASE;
        board_timer_setup = ddb_timer_init;
index 6a1202aec98fc15d0f8310da2b5ba824dd6d464a..5388b5868c4a6b31ab5bb126bbde379f88d125f6 100644 (file)
@@ -115,7 +115,7 @@ extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
 extern void mips_cpu_irq_init(u32 irq_base);
 extern void vrc5476_irq_init(u32 irq_base);
 
-void __init ddb5476_irq_setup(void)
+void __init arch_init_irq(void)
 {
        /* hardware initialization */
        nile4_irq_setup();
index 2c53c7a47a106a02f5907b6076bafc0878bcb734..50b245da06dd9ed780e6cc8dd41f78d167c2a82d 100644 (file)
 #define TIMER_IRQ                      (VRC5476_IRQ_BASE + VRC5476_IRQ_GPT)
 #endif
 
-#ifdef CONFIG_KGDB
-extern void breakpoint(void);
-#endif
-
 static void (*back_to_prom) (void) = (void (*)(void)) 0xbfc00000;
 
 static void ddb_machine_restart(char *command)
@@ -70,7 +66,6 @@ static void ddb_machine_power_off(void)
        while (1);
 }
 
-extern void ddb_irq_setup(void);
 extern void rtc_ds1386_init(unsigned long base);
 
 static void __init ddb_time_init(void)
@@ -129,14 +124,11 @@ static struct {
 
 
 static void ddb5476_board_init(void);
-extern void ddb5476_irq_setup(void);
-extern void (*irq_setup)(void);
 
 static void __init ddb5476_setup(void)
 {
        extern int panic_timeout;
 
-       irq_setup = ddb5476_irq_setup;
        set_io_port_base(KSEG1ADDR(DDB_PCI_IO_BASE));
 
        board_time_init = ddb_time_init;
index c662dd20960cf4646894b242eabf57e6d6deaa78..a77682be01ac27b908b5f6ac9a63351c46ac898e 100644 (file)
@@ -66,15 +66,14 @@ static hw_irq_controller vrc5476_irq_controller = {
 void __init
 vrc5476_irq_init(u32 base)
 {
-       extern irq_desc_t irq_desc[];
        u32 i;
 
        irq_base = base;
        for (i= base; i< base + NUM_VRC5476_IRQ; i++) {
                irq_desc[i].status = IRQ_DISABLED;
                irq_desc[i].action = NULL;
-                irq_desc[i].depth = 1;
-                irq_desc[i].handler = &vrc5476_irq_controller;
+               irq_desc[i].depth = 1;
+               irq_desc[i].handler = &vrc5476_irq_controller;
        }
 }
 
index dfc2559aaacedb704ea0230624d6d2217ef7fadd..5f027bfa4af8f9047cfa35cea667e88826c95c16 100644 (file)
@@ -79,11 +79,8 @@ extern asmlinkage void ddb5477_handle_int(void);
 extern int setup_irq(unsigned int irq, struct irqaction *irqaction);  
 static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL };
 
-void
-ddb5477_irq_setup(void)
+void __init arch_init_irq(void)
 {
-       db_run(printk("ddb5477_irq_setup invoked.\n"));
-
        /* by default, we disable all interrupts and route all vrc5477
         * interrupts to pin 0 (irq 2) */
        ddb_out32(DDB_INTCTRL0, 0);
index ab8b838f95215cf4e38c37b31cf6e9ff8dd82f22..0d5e706207ec2aacad090795845f1e078af63e65 100644 (file)
@@ -100,10 +100,8 @@ hw_irq_controller vrc5477_irq_controller = {
        NULL                    /* no affinity stuff for UP */
 };
 
-void
-vrc5477_irq_init(u32 irq_base)
+void __init vrc5477_irq_init(u32 irq_base)
 {
-       extern irq_desc_t irq_desc[];
        u32 i;
 
        for (i= irq_base; i< irq_base+ NUM_5477_IRQ; i++) {
index dc02a3a80d8cbc2965c3384fbbb3acbd14ceb663..97b1fcdb5e33275b0e43224f53fba7b713576a40 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright 2001 MontaVista Software Inc.
  * Author: jsun@mvista.com or jsun@junsun.net
  *
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
+ *
  * arch/mips/ddb5xxx/ddb5477/setup.c
  *     Setup file for DDB5477.
  *
@@ -35,7 +37,6 @@
 #include <asm/gdb-stub.h>
 #include <asm/traps.h>
 #include <asm/debug.h>
-#include <asm/pci_channel.h>
 
 #include <asm/ddb5xxx/ddb5xxx.h>
 
@@ -165,8 +166,6 @@ static void __init ddb_timer_setup(struct irqaction *irq)
 }
 
 static void ddb5477_board_init(void);
-extern void ddb5477_irq_setup(void);
-extern void (*irq_setup)(void);
 
 extern struct pci_controller ddb5477_ext_controller;
 extern struct pci_controller ddb5477_io_controller;
@@ -178,7 +177,6 @@ static int  ddb5477_setup(void)
        /* initialize board - we don't trust the loader */
         ddb5477_board_init();
 
-       irq_setup = ddb5477_irq_setup;
        set_io_port_base(KSEG1ADDR(DDB_PCI_IO_BASE));
 
        board_time_init = ddb_time_init;
index f7e3dc36656db21c040ea5a445f1241ed1e99372..23ec745a4d1f12d760af2f9ef334f557cebdbddd 100644 (file)
@@ -26,7 +26,6 @@
 #define INITRD_SIZE (*(unsigned long *) (PARAM+0x21c))
 
 extern int _ftext, _end;               /* begin and end of kernel image */
-extern void *__rd_start, *__rd_end;    /* begin and end of ramdisk image */
 extern void kernel_entry(int, char **, unsigned long, int *);
 
 void * memcpy(void * dest, const void *src, unsigned int count)
@@ -81,11 +80,5 @@ void dec_entry(int argc, char **argv,
                rex_clear_cache();
        }
 
-#ifdef CONFIG_BLK_DEV_INITRD
-       LOADER_TYPE = 1;
-       INITRD_START = (long)&__rd_start;
-       INITRD_SIZE = (long)&__rd_end - (long)&__rd_start;
-#endif
-
        kernel_entry(argc, argv, magic, prom_vec);
 }
index 83b079abdc57e44ed15f8e89073ff29996e5faca..4b5279e72ef0efb95a99671559f21a640352793d 100644 (file)
@@ -48,11 +48,6 @@ extern irqreturn_t dec_intr_halt(int irq, void *dev_id, struct pt_regs *regs);
 
 extern asmlinkage void decstation_handle_int(void);
 
-#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
 spinlock_t ioasic_ssr_lock;
 
 volatile u32 *ioasic_base;
@@ -136,11 +131,6 @@ extern void dec_timer_setup(struct irqaction *);
 
 static void __init decstation_setup(void)
 {
-#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_be_init = dec_be_init;
        board_time_init = dec_time_init;
        board_timer_setup = dec_timer_setup;
@@ -701,7 +691,7 @@ void __init dec_init_kn03(void)
 }                              /* dec_init_kn03 */
 
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        switch (mips_machtype) {
        case MACH_DS23100:      /* DS2100/DS3100 Pmin/Pmax */
index 8bc7792d6cf6bd1c2b49b4e1d3323c033893e515..8e9a6afbe48daabe788e7fe99d6d2df9bc1f6068 100644 (file)
@@ -1,5 +1,7 @@
 #
 # Automatically generated make config: don't edit
+# Linux kernel version: 2.6.10-rc2
+# Sun Nov 21 14:11:54 2004
 #
 CONFIG_MIPS=y
 # CONFIG_MIPS64 is not set
@@ -11,12 +13,12 @@ CONFIG_MIPS32=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
 CONFIG_BROKEN_ON_SMP=y
 
 #
 # General setup
 #
+CONFIG_LOCALVERSION=""
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_POSIX_MQUEUE is not set
@@ -25,6 +27,7 @@ CONFIG_SYSCTL=y
 # CONFIG_AUDIT is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_EMBEDDED=y
@@ -32,11 +35,13 @@ CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
 
 #
 # Loadable module support
@@ -46,13 +51,13 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=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
@@ -68,6 +73,7 @@ CONFIG_KMOD=y
 # CONFIG_MOMENCO_OCELOT is not set
 # CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
 # CONFIG_MOMENCO_JAGUAR_ATX is not set
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_DDB5074 is not set
@@ -75,7 +81,6 @@ CONFIG_KMOD=y
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
 CONFIG_SGI_IP22=y
-# 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
@@ -126,7 +131,6 @@ 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)
@@ -140,7 +144,6 @@ CONFIG_MMU=y
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_MISC=m
 CONFIG_TRAD_SIGNALS=y
-CONFIG_BINFMT_IRIX=y
 
 #
 # Device Drivers
@@ -149,6 +152,7 @@ CONFIG_BINFMT_IRIX=y
 #
 # Generic Driver Options
 #
+CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 
 #
@@ -172,7 +176,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
+CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 
 #
 # ATA/ATAPI/MFM/RLL support
@@ -212,9 +228,8 @@ CONFIG_SCSI_SPI_ATTRS=m
 # SCSI low-level drivers
 #
 CONFIG_SGIWD93_SCSI=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
 # CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_QLOGIC_1280_1040 is not set
 # CONFIG_SCSI_DEBUG is not set
 
 #
@@ -229,7 +244,6 @@ CONFIG_SGIWD93_SCSI=y
 #
 # IEEE 1394 (FireWire) support
 #
-# CONFIG_IEEE1394 is not set
 
 #
 # I2O device support
@@ -263,6 +277,9 @@ CONFIG_IP_PNP_BOOTP=y
 CONFIG_INET_AH=m
 CONFIG_INET_ESP=m
 CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
 
 #
 # IP: Virtual Server Configuration
@@ -302,6 +319,7 @@ CONFIG_IPV6_PRIVACY=y
 CONFIG_INET6_AH=m
 CONFIG_INET6_ESP=m
 CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
 CONFIG_IPV6_TUNNEL=m
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
@@ -310,6 +328,9 @@ CONFIG_NETFILTER=y
 # IP: Netfilter Configuration
 #
 CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
 CONFIG_IP_NF_FTP=m
 CONFIG_IP_NF_IRC=m
 CONFIG_IP_NF_TFTP=m
@@ -334,8 +355,17 @@ CONFIG_IP_NF_MATCH_HELPER=m
 CONFIG_IP_NF_MATCH_STATE=m
 CONFIG_IP_NF_MATCH_CONNTRACK=m
 CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
 CONFIG_IP_NF_FILTER=m
 CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
 CONFIG_IP_NF_NAT=m
 CONFIG_IP_NF_NAT_NEEDED=y
 CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -354,18 +384,15 @@ CONFIG_IP_NF_TARGET_ECN=m
 CONFIG_IP_NF_TARGET_DSCP=m
 CONFIG_IP_NF_TARGET_MARK=m
 CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
 CONFIG_IP_NF_ARPTABLES=m
 CONFIG_IP_NF_ARPFILTER=m
 CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_IP_NF_COMPAT_IPCHAINS=m
-CONFIG_IP_NF_COMPAT_IPFWADM=m
-CONFIG_IP_NF_TARGET_NOTRACK=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
 
 #
 # IPv6: Netfilter Configuration
@@ -414,16 +441,17 @@ CONFIG_SCTP_HMAC_MD5=y
 CONFIG_NET_DIVERT=y
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
 
 #
 # QoS and/or fair queueing
 #
 CONFIG_NET_SCHED=y
+# CONFIG_NET_SCH_CLK_JIFFIES is not set
+CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
+# CONFIG_NET_SCH_CLK_CPU is not set
 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
@@ -431,7 +459,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_NETEM=m
 CONFIG_NET_SCH_INGRESS=m
 CONFIG_NET_QOS=y
 CONFIG_NET_ESTIMATOR=y
@@ -515,7 +543,7 @@ CONFIG_INPUT=y
 #
 # Userland interfaces
 #
-CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV=m
 CONFIG_INPUT_MOUSEDEV_PSAUX=y
 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
@@ -533,6 +561,7 @@ CONFIG_SERIO=y
 CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_CT82C710 is not set
+CONFIG_SERIO_RAW=m
 
 #
 # Input Device Drivers
@@ -543,7 +572,10 @@ CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_LKKBD is not set
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_SERIAL=m
+# CONFIG_MOUSE_VSXXXAA is not set
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 # CONFIG_INPUT_MISC is not set
@@ -569,7 +601,6 @@ CONFIG_SERIAL_CORE=m
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
 
 #
 # IPMI
@@ -588,16 +619,14 @@ CONFIG_WATCHDOG=y
 # CONFIG_SOFT_WATCHDOG is not set
 CONFIG_INDYDOG=m
 # CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
 CONFIG_SGI_DS1286=m
+# 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=m
@@ -608,6 +637,11 @@ CONFIG_MAX_RAW_DEVS=256
 #
 # CONFIG_I2C is not set
 
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
 #
 # Misc devices
 #
@@ -630,7 +664,6 @@ CONFIG_MAX_RAW_DEVS=256
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
 CONFIG_SGI_NEWPORT_CONSOLE=y
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FONT_8x16=y
@@ -652,6 +685,8 @@ CONFIG_LOGO_SGI_CLUT224=y
 #
 # USB support
 #
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
 
 #
 # USB Gadget Support
@@ -684,6 +719,7 @@ CONFIG_QUOTA=y
 # CONFIG_QFMT_V1 is not set
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
 CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 
@@ -695,6 +731,7 @@ CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
 CONFIG_ZISOFS_FS=m
 CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
 
 #
 # DOS/FAT/NT Filesystems
@@ -754,10 +791,17 @@ CONFIG_EXPORTFS=m
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_POSIX is not set
 # CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
+CONFIG_CODA_FS=m
+# CONFIG_CODA_FS_OLD_API is not set
 # CONFIG_AFS_FS is not set
 
 #
@@ -827,13 +871,15 @@ CONFIG_NLS_UTF8=m
 #
 # Kernel hacking
 #
+# CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
 
 #
 # Security options
 #
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY is not set
 
 #
@@ -841,30 +887,36 @@ CONFIG_CMDLINE=""
 #
 CONFIG_CRYPTO=y
 CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_MD4=y
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_BLOWFISH=y
-CONFIG_CRYPTO_TWOFISH=y
-CONFIG_CRYPTO_SERPENT=y
-CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_DES=m
+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_TEA=m
 CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=y
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_TEST=m
 
 #
 # Library routines
 #
-CONFIG_CRC16=m
+# CONFIG_CRC_CCITT is not set
 # CONFIG_CRC32 is not set
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
index 0e1ee11d926cbe6614195d6fc73340bee6e936d8..97bf094da4fe07f2af22c77aed110a003f5e7b1c 100644 (file)
@@ -59,9 +59,8 @@ asmlinkage void ev96100_cpu_irq(unsigned int pendin)
        do_IRQ(ffz8(pending >> 8), regs);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        set_except_vector(0, ev96100IRQ);
-       init_generic_irq();
        mips_cpu_irq_init(0);
 }
index edcea9fbeda583638b2e075a06bec672fad4a3a5..2287b59536e5e68ee104cebe11e3c47cb928f97c 100644 (file)
@@ -65,7 +65,6 @@ static void gt64120_irq(int irq, void *dev_id, struct pt_regs *regs)
  */
 void gt64120_time_init(void)
 {
-       extern irq_desc_t irq_desc[NR_IRQS];
        static struct irqaction timer;
 
        /* Disable timer first */
index 656aaeb8bf2a3a4eda81853f32225acdbe35564f..93101358ad42b10d86d02bf15b9205894bb401c7 100644 (file)
@@ -128,7 +128,7 @@ void gt64120_irq_setup(void)
        set_c0_status(IE_IRQ2);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
 
index 3ef3584cfb75fe9e0d56182aa7d12ad0987ca216..8720bccfdea250dd9eddbe580c22b8f4e75fa60e 100644 (file)
@@ -1,6 +1,6 @@
 #include <linux/config.h>
 
-#if defined(CONFIG_KGDB)
+#ifdef CONFIG_KGDB
 
 #include <asm/serial.h> /* For the serial port location and base baud */
 
index d04c62b073d999c4d02d3bb861e1303de8fc08eb..1b56df4f7091e880a21489f41104d830745e708b 100644 (file)
@@ -51,7 +51,7 @@
 
 extern asmlinkage void ocelot_handle_int(void);
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        /*
         * Clear all of the interrupts while we change the able around a bit.
@@ -63,13 +63,6 @@ void __init init_IRQ(void)
        /* Sets the first-level interrupt dispatcher. */
        set_except_vector(0, ocelot_handle_int);
 
-       init_generic_irq();
        mips_cpu_irq_init(0);
        rm7k_cpu_irq_init(8);
-
-#ifdef CONFIG_KGDB
-       printk("start kgdb ...\n");
-       set_debug_traps();
-       breakpoint();   /* you may move this line to whereever you want :-) */
-#endif
 }
diff --git a/arch/mips/hp-lj/Makefile b/arch/mips/hp-lj/Makefile
deleted file mode 100644 (file)
index 3c9da06..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Makefile for the HP specific kernel interface routines
-# under Linux.
-#
-
-obj-y   := init.o setup.o irq.o int-handler.o utils.o asic.o
-
-obj-$(CONFIG_KGDB) += gdb_hook.o
-obj-$(CONFIG_DIRECT_PRINTK) += gdb_hook.o
-
-obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o
-
-forceit:
-
-# package filesystem from rootfs directory into binary package
-romfs.bin: forceit ./rootfs
-       @genromfs -d ./rootfs -f $@
-
-# transform rootfs.bin into object file format for linking
-initrd.o: romfs.bin
-       @echo "" | $(CROSS_COMPILE)as -o $@
-       @$(CROSS_COMPILE)objcopy --add-section .initrd=$< $@
-
-EXTRA_AFLAGS := $(CFLAGS)
-
-.PHONY: forceit
diff --git a/arch/mips/hp-lj/asic.c b/arch/mips/hp-lj/asic.c
deleted file mode 100644 (file)
index e002212..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-#include "asm/hp-lj/asic.h"
-
-AsicId GetAsicId(void)
-{
-   static int asic = IllegalAsic;
-
-   if (asic == IllegalAsic) {
-      if (*(unsigned int *)0xbff70000 == 0x1114103c)
-         asic = HarmonyAsic;
-      else if (*(unsigned int *)0xbff80000 == 0x110d103c)
-         asic = AndrosAsic;
-      else
-        asic = UnknownAsic;
-   }
-   return asic;
-}
-
-
-const char* const GetAsicName(void)
-{
-   static const char* const Names[] =
-        { "Illegal", "Unknown", "Andros", "Harmony" };
-
-   return Names[(int)GetAsicId()];
-}
-
diff --git a/arch/mips/hp-lj/gdb_hook.c b/arch/mips/hp-lj/gdb_hook.c
deleted file mode 100644 (file)
index d5aa057..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Carsten Langgaard, carstenl@mips.com
- * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
- *
- * ########################################################################
- *
- *  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.
- *
- * ########################################################################
- *
- * This is the interface to the remote debugger stub.
- */
-#include <linux/serialP.h>
-#include <linux/serial_reg.h>
-
-#include <asm/serial.h>
-#include <asm/io.h>
-#include <asm/hp-lj/asic.h>
-
-
-int putDebugChar(char c);
-char getDebugChar(void);
-
-
-///////////////////////  andros values ///////////////////////////////////////////////////////
-#define SERIAL_REG(offset) (*((volatile unsigned int*)(HPSR_BASE_ADDR|offset)))
-
-// Register set base address
-#define HPSR_BASE_ADDR   0xbfe00000UL
-
-// Transmit / Receive Data
-#define HPSR_DATA_OFFSET    0x00020010UL
-// Transmit control / status
-#define HPSR_TX_STAT_OFFSET 0x0002000CUL
-// Receive status
-#define HPSR_RX_STAT_OFFSET 0x00020008UL
-
-#define HPSR_TX_STAT_READY  0x8UL
-#define HPSR_RX_DATA_AVAIL  0x4UL
-
-
-///////////////////////  harmony values ///////////////////////////////////////////////////////
-// Transmit / Receive Data
-#define H_HPSR_DATA_TX       *((volatile unsigned int*)0xbff65014)
-// Transmit / Receive Data
-#define H_HPSR_DATA_RX       *((volatile unsigned int*)0xbff65018)
-// Status
-#define H_HPSR_STAT          *((volatile unsigned int*)0xbff65004)
-
-// harmony serial status bits
-#define H_SER_STAT_TX_EMPTY       0x04
-#define H_SER_STAT_RX_EMPTY       0x10
-
-
-
-
-int putDebugChar(char c)
-{
-       if (GetAsicId() == HarmonyAsic) {
-               while (!( ( (H_HPSR_STAT) & H_SER_STAT_TX_EMPTY) != 0));
-
-               H_HPSR_DATA_TX = (unsigned int) c;
-
-       } else if (GetAsicId() == AndrosAsic) {
-               while (((SERIAL_REG(HPSR_TX_STAT_OFFSET) & HPSR_TX_STAT_READY) == 0))
-                       ;
-               SERIAL_REG(HPSR_DATA_OFFSET) = (unsigned int) c;
-        }
-       return 1;
-}
-
-char getDebugChar(void)
-{
-       if (GetAsicId() == HarmonyAsic) {
-               while (!(((H_HPSR_STAT) & H_SER_STAT_RX_EMPTY) == 0));
-
-               return H_HPSR_DATA_RX;
-
-       } else if (GetAsicId() == AndrosAsic) {
-               while ((SERIAL_REG(HPSR_RX_STAT_OFFSET) & HPSR_RX_DATA_AVAIL) == 0)
-                       ;
-
-               return (SERIAL_REG(HPSR_DATA_OFFSET));
-
-       }
-}
-
-
diff --git a/arch/mips/hp-lj/init.c b/arch/mips/hp-lj/init.c
deleted file mode 100644 (file)
index 645956d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * init.c: PROM library initialisation code.
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-
-#include <linux/mm.h>
-#include <asm/bootinfo.h>
-#include <asm/addrspace.h>
-#include <asm/hp-lj/asic.h>
-#include <linux/bootmem.h>
-
-#include "utils.h"
-
-
-#define Delimiter "CMDLINE="
-const char CommandLine[] = Delimiter
-  "root=/dev/hda3                                                                                                                                                                                                                                            ";
-
-void __init prom_init(void)
-{
-       ulong mem_size = get_mem_avail();
-        int reserve_size = 0;
-
-       printk("Total Memory: %ld bytes\n", mem_size);
-
-       reserve_buffer(CommandLine, mem_size);
-
-       reserve_size = get_reserved_buffer_size();
-       mem_size -= reserve_size;
-
-       add_memory_region(0x0,mem_size, BOOT_MEM_RAM);
-        add_memory_region(mem_size,reserve_size, BOOT_MEM_RESERVED);
-
-       printk("Main Memory: %ld bytes\n", mem_size);
-       printk("Reserved Memory: %ld bytes at 0x%08x\n",
-               get_reserved_buffer_size(), (ulong)get_reserved_buffer());
-
-       printk("Detected %s ASIC\n", GetAsicName());
-       mips_machgroup  = MACH_GROUP_HP_LJ;
-       mips_machtype   = MACH_UNKNOWN;
-
-       strcpy(arcs_cmdline, CommandLine+strlen(Delimiter));
-}
-
-
-unsigned long __init prom_free_prom_memory(void)
-{
-       return 0;
-}
diff --git a/arch/mips/hp-lj/int-handler.S b/arch/mips/hp-lj/int-handler.S
deleted file mode 100644 (file)
index 3636ab9..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <asm/asm.h>
-
-#include <asm/mipsregs.h>
-#include <asm/regdef.h>
-#include <asm/stackframe.h>
-
-       .text
-       .set    mips1
-       .set    reorder
-       .set    macro
-       .set    noat
-       .align  5
-
-# MIPS has 16 exception vectors numbered 0 to 15
-# vector number 0 is for interrupts and the others are for various exceptions
-# The following code is installed as the handler for exception 0
-# There are 8 possible interrupts that can cause this exception.
-# The cause register indicates which are pending
-# The status register indicates which are enabled
-# This code segment basically will decipher which interrup occurred (7 downto 0)
-# and pass an integer indicating which was the highest priority pending interrupt
-# to the do_IRQ routine.
-
-NESTED(hpIRQ, PT_SIZE, sp)
-       SAVE_ALL
-       CLI                             # Important: mark KERNEL mode !
-       /*
-        * Get pending interrupts
-        */
-
-       mfc0    t0,CP0_CAUSE            # get pending interrupts
-       mfc0    t1,CP0_STATUS           # get enabled interrupts
-       and     t0,t1                   # isolate allowed ones
-       andi    t0,0xff00               # isolate pending bits
-       sll     t0,16                   # shift the pending bits down
-       beqz    t0,3f                   # no pending intrs, then spurious
-       nop                             # delay slot
-
-       /*
-        * Find irq with highest priority
-        * FIXME: This is slow - use binary search
-        */
-
-       la      a0,7
-1:     bltz    t0,2f                   # found pending irq
-       subu    a0,1
-       sll     t0,1
-       b       1b
-       nop                             # delay slot
-
-
-call_do_IRQ:
-2:     move    a1,sp
-       jal     do_IRQ
-       nop                             # delay slot
-       j       ret_from_irq
-       nop
-
-/*
-       mfc0    t0,CP0_STATUS           # disable interrupts
-       ori     t0,1
-       xori    t0,1
-       mtc0    t0,CP0_STATUS
-
-       la      a1, ret_from_irq
-       jr      a1
-*/
-3:     j       spurious_interrupt
-END(hpIRQ)
-
diff --git a/arch/mips/hp-lj/irq.c b/arch/mips/hp-lj/irq.c
deleted file mode 100644 (file)
index c5fd17c..0000000
+++ /dev/null
@@ -1,37 +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.
- *
- * Code to handle x86 style IRQs plus some generic interrupt stuff.
- *
- * Copyright (C) 1992 Linus Torvalds
- * Copyright (C) 1994 - 2000 Ralf Baechle
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <asm/mipsregs.h>
-#include <asm/system.h>
-#include <asm/gdb-stub.h>
-
-void __init init_IRQ(void)
-{
-       extern void hpIRQ(void);
-       extern void mips_cpu_irq_init(u32 base);
-       mips_cpu_irq_init(0);
-       set_except_vector(0, hpIRQ);
-
-#ifdef CONFIG_KGDB
-       {
-               extern void breakpoint(void);
-               extern int remote_debug;
-
-               if (remote_debug) {
-                       set_debug_traps();
-                       breakpoint();
-               }
-       }
-#endif
-
-}
diff --git a/arch/mips/hp-lj/setup.c b/arch/mips/hp-lj/setup.c
deleted file mode 100644 (file)
index 13c531d..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Setup pointers to hardware-dependent routines.
- *
- * 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) 1996, 1997, 1998 by Ralf Baechle
- */
-#include <linux/config.h>
-#include <linux/hdreg.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/interrupt.h>
-#include <linux/ide.h>
-#include <linux/bootmem.h>
-#include <asm/reboot.h>
-#include <asm/time.h>
-#include <asm/hp-lj/asic.h>
-#include "utils.h"
-
-extern char CommandLine[];
-extern void pci_setup(void);
-
-#ifdef CONFIG_KGDB
-int remote_debug = 0;
-#endif
-
-const char *get_system_type(void)
-{
-       return "HP LaserJet";   /* But which exactly?  */
-}
-
-static void (*timer_interrupt_service) (int irq, void *dev_id,
-                                       struct pt_regs * regs) = NULL;
-
-
-static void andros_timer_interrupt(int irq, void *dev_id,
-                                  struct pt_regs *regs)
-{
-       if (!(*((volatile unsigned int *) 0xbfea0010) & 0x20))  // mask = pend & en
-               return;
-
-       /* clear timer interrupt */
-       {
-               unsigned int tmr = *((volatile unsigned int *) 0xbfe90040);     // ctl bits
-               *((volatile unsigned int *) 0xbfe90040) = tmr;  // write to ack
-               *((volatile unsigned int *) 0xbfea000c) = 0x20; // sys int ack
-       }
-
-       /* service interrupt */
-       timer_interrupt_service(irq, dev_id, regs);
-}
-
-static void harmony_timer_interrupt(int irq, void *dev_id,
-                                   struct pt_regs *regs)
-{
-       if (!(*((volatile unsigned int *) 0xbff63000) & 0x01))
-               return;         // big sys     int reg, 01-timer  did it
-       if (!(*((volatile unsigned int *) 0xbff610a4) & 0x01))
-               return;         // local small int reg, 01-timer0 did it
-
-       *((volatile unsigned int *) 0xbff610a4) = 1;    // ack local timer0 bit
-       *((volatile unsigned int *) 0xbff63000) = 1;    // ack global timer bit
-
-       /* service interrupt */
-       timer_interrupt_service(irq, dev_id, regs);
-}
-
-
-#define ASIC_IRQ_NUMBER  2
-
-
-static void __init hp_time_init(struct irqaction *irq)
-{
-       timer_interrupt_service = irq->handler;
-
-       if (GetAsicId() == AndrosAsic) {
-               //*((volatile unsigned int*)0xbfe90000) = 0x2f;  // set by bootloader to 0x20              // prescaler
-               *((volatile unsigned int *) 0xbfe90040) = 0x21; // 20-res of 1kHz,1-int ack                // control
-               *((volatile unsigned int *) 0xbfe90048) = 0x09; // 09-reload val                          // reload
-               *((volatile unsigned int *) 0xbfe90044) = 0x09; // 09-count val                           // count
-               *((volatile unsigned int *) 0xbfe90040) = 0x2f; // 8-int enable,4-reload en,2-count down en,1-int-ack
-
-               irq->handler = andros_timer_interrupt;
-               irq->flags |= SA_INTERRUPT | SA_SHIRQ;
-               printk("setting up timer in hp_time_init\n");
-               setup_irq(ASIC_IRQ_NUMBER, irq);
-
-               // enable timer interrupt
-               *((volatile unsigned int *) 0xbfea0000) = 0x20;
-
-       } else if (GetAsicId() == HarmonyAsic) {
-
-               *((volatile unsigned int *) 0xbff61000) = 99;   // prescaler, 100Mz sys clk
-               *((volatile unsigned int *) 0xbff61028) = 0x09; // reload reg
-               *((volatile unsigned int *) 0xbff61024) = 0x09; // count reg
-               *((volatile unsigned int *) 0xbff61020) = 0x0b; // 80-1khz res on timer, 2 reload en, 1 - count down en
-
-               irq->handler = harmony_timer_interrupt;
-               irq->flags |= SA_INTERRUPT | SA_SHIRQ;
-               setup_irq(ASIC_IRQ_NUMBER, irq);
-
-               *((volatile unsigned int *) 0xbff610a0) |= 1;   // turn on timer0
-
-       } else if (GetAsicId() == UnknownAsic)
-               printk("Unknown asic in hp_time_init()\n");
-       else
-               printk("Unsupported asic in hp_time_init()\n");
-}
-
-
-static void hplj_restart(void)
-{
-       if (GetAsicId() == AndrosAsic)
-               *((volatile unsigned int *) 0xbfe900c0) = 0;
-
-
-       if (GetAsicId() == HarmonyAsic)
-               *((volatile unsigned int *) 0xbff62030) = 0;
-
-       printk("Restart Failed ... halting instead\n");
-       while (1);
-}
-
-static void hplj_halt(void)
-{
-       while (1);
-}
-
-static void __init hp_setup(void)
-{
-#ifdef CONFIG_PCI
-       pci_setup();
-#endif
-
-       _machine_restart = (void (*)(char *)) hplj_restart;
-       _machine_halt = hplj_halt;
-       _machine_power_off = hplj_halt;
-
-       board_timer_setup = hp_time_init;
-
-#ifdef CONFIG_KGDB
-       remote_debug = (strstr(CommandLine, "kgdb") != NULL);
-#endif
-
-       printk("HP SETUP\n");
-}
-
-early_initcall(hp_setup);
diff --git a/arch/mips/hp-lj/utils.c b/arch/mips/hp-lj/utils.c
deleted file mode 100644 (file)
index 84ef64f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *
- *
- *
- *
- */
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/module.h>
-#include <asm/io.h>
-#include "utils.h"
-
-
-#define  miu_chan_cfg(x)      ((volatile unsigned long  *)(0xbff40000+x*4))       /* for andros */
-
-int mbsize[8] = {1,2,4,8,16,32,64,128};
-
-unsigned long get_mem_avail(void) {
-
-    unsigned long  cfg[10],i,total_mem=0;
-
-       for(i=0;i<10;i++)
-               cfg[i] = *miu_chan_cfg(i);
-
-       for(i=0;i<10;i++){
-               if(cfg[i]==0x1fc160c2) continue;                           // skip empties
-               if(   ( (cfg[i]>>12) & 0xf )   <=  0xb ) continue;         // skip roms
-        total_mem += mbsize[(cfg[i]>>16)&0x7] *1024*1024;
-       }
-    return total_mem;
-}
-
-
-
-
-static ulong* buffer_ptr = NULL;
-static ulong buffer_size = 0;
-
-ulong* get_reserved_buffer(void) {return KSEG0ADDR(buffer_ptr);}
-ulong* get_reserved_buffer_virtual(void) {return (ulong*)ReservedMemVirtualAddr;}
-ulong get_reserved_buffer_size(void) {return buffer_size;}
-
-#define MIN_GEN_MEM (4 << 20)
-
-
-void  reserve_buffer(const char* cl, ulong base_mem)
-{
-       char* pos = strstr(cl, "reserved_buffer=");
-       if (pos) {
-               buffer_size = simple_strtol(pos+strlen("reserved_buffer="),
-                                           0, 10);
-               buffer_size <<= 20;
-               if (buffer_size + MIN_GEN_MEM > base_mem)
-                       buffer_size = base_mem - MIN_GEN_MEM;
-               if (buffer_size > 0)
-                       buffer_ptr = (ulong*)(base_mem - buffer_size);
-               else
-                       buffer_size = 0;
-       }
-}
-
-
-
-EXPORT_SYMBOL(get_reserved_buffer);
-EXPORT_SYMBOL(get_reserved_buffer_virtual);
-EXPORT_SYMBOL(get_reserved_buffer_size);
-
-
diff --git a/arch/mips/hp-lj/utils.h b/arch/mips/hp-lj/utils.h
deleted file mode 100644 (file)
index 23d17de..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- *
- *
- *
- */
-
-#include <linux/types.h>
-
-#define ReservedMemVirtualAddr  0x50000000
-
-unsigned long get_mem_avail(void);
-
-ulong* get_reserved_buffer(void);
-ulong* get_reserved_buffer_virtual(void);
-ulong get_reserved_buffer_size(void);
-
-void  reserve_buffer(const char* cl, ulong base_mem);
-
-
index 941590ec70ce00beb541a1d72e07c409d0394d5f..af8232e0857d1f2d8a87e306e8672cc4c4637303 100644 (file)
 #define DPRINTK(fmt, args...)
 #endif
 
-#ifdef CONFIG_KGDB
-extern void breakpoint(void);
-#endif
-
 /* revisit */
 #define EXT_IRQ0_TO_IP 2 /* IP 2 */
 #define EXT_IRQ5_TO_IP 7 /* IP 7 */
@@ -251,7 +247,7 @@ void enable_cpu_timer(void)
         local_irq_restore(flags);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
         unsigned long flags;
@@ -259,8 +255,6 @@ void __init init_IRQ(void)
         memset(irq_desc, 0, sizeof(irq_desc));
         set_except_vector(0, it8172_IRQ);
 
-       init_generic_irq();
-
        /* mask all interrupts */
        it8172_hw0_icregs->lb_mask  = 0xffff;
        it8172_hw0_icregs->lpc_mask = 0xffff;
@@ -297,13 +291,6 @@ void __init init_IRQ(void)
        }
        irq_desc[MIPS_CPU_TIMER_IRQ].handler = &cp0_irq_type;
        set_c0_status(ALLINTS_NOTIMER);
-
-#ifdef CONFIG_KGDB
-       /* If local serial I/O used for debug port, enter kgdb at once */
-       puts("Waiting for kgdb to connect...");
-       set_debug_traps();
-       breakpoint();
-#endif
 }
 
 void mips_spurious_interrupt(struct pt_regs *regs)
index e81e23429ae428964ee719237472196864cd387b..f714954650189a5bf55f66b25c8b6b584aad0866 100644 (file)
@@ -19,11 +19,9 @@ extern asmlinkage void jazz_handle_int(void);
 
 static spinlock_t r4030_lock = SPIN_LOCK_UNLOCKED;
 
-extern asmlinkage void sni_rm200_pci_handle_int(void);
-
 static void enable_r4030_irq(unsigned int irq)
 {
-       unsigned int mask = 1 << (irq - JAZZ_IE_PARALLEL);
+       unsigned int mask = 1 << (irq - JAZZ_PARALLEL_IRQ);
        unsigned long flags;
 
        spin_lock_irqsave(&r4030_lock, flags);
@@ -42,7 +40,7 @@ static unsigned int startup_r4030_irq(unsigned int irq)
 
 void disable_r4030_irq(unsigned int irq)
 {
-       unsigned int mask = ~(1 << (irq - JAZZ_IE_PARALLEL));
+       unsigned int mask = ~(1 << (irq - JAZZ_PARALLEL_IRQ));
        unsigned long flags;
 
        spin_lock_irqsave(&r4030_lock, flags);
@@ -91,11 +89,10 @@ void __init init_r4030_ints(void)
  * driver compatibility reasons interrupts 0 - 15 to be the i8259
  * interrupts even if the hardware uses a different interrupt numbering.
  */
-void __init init_IRQ (void)
+void __init arch_init_irq(void)
 {
        set_except_vector(0, jazz_handle_int);
 
-       init_generic_irq();
        init_i8259_irqs();                      /* Integrated i8259  */
        init_r4030_ints();
 
index ceda294d513535af3f8c3689bd19081f2bbca068..79ac935e53d73bcbbc94b6386533eab8a5273ae2 100644 (file)
@@ -304,6 +304,8 @@ unsigned long vdma_phys2log(unsigned long paddr)
        return (i << 12) + (paddr & (VDMA_PAGESIZE - 1));
 }
 
+EXPORT_SYMBOL(vdma_phys2log);
+
 /*
  * Translate a logical DMA address to a physical address
  */
@@ -394,6 +396,8 @@ void vdma_enable(int channel)
                          R4030_CHNL_ENABLE);
 }
 
+EXPORT_SYMBOL(vdma_enable);
+
 /*
  * Disable a DMA channel
  */
@@ -429,6 +433,8 @@ void vdma_disable(int channel)
        *((volatile unsigned int *) JAZZ_DUMMY_DEVICE);
 }
 
+EXPORT_SYMBOL(vdma_disable);
+
 /*
  * Set DMA mode. This function accepts the mode values used
  * to set a PC-style DMA controller. For the SCSI and FDC
@@ -496,6 +502,8 @@ void vdma_set_mode(int channel, int mode)
        }
 }
 
+EXPORT_SYMBOL(vdma_set_mode);
+
 /*
  * Set Transfer Address
  */
@@ -508,6 +516,8 @@ void vdma_set_addr(int channel, long addr)
        r4030_write_reg32(JAZZ_R4030_CHNL_ADDR + (channel << 5), addr);
 }
 
+EXPORT_SYMBOL(vdma_set_addr);
+
 /*
  * Set Transfer Count
  */
@@ -520,6 +530,8 @@ void vdma_set_count(int channel, int count)
        r4030_write_reg32(JAZZ_R4030_CHNL_COUNT + (channel << 5), count);
 }
 
+EXPORT_SYMBOL(vdma_set_count);
+
 /*
  * Get Residual
  */
index f7149c48c78b73af69356d4cbb86c7d4087da5e0..2a9754750bc87859a8349630efdf4d8ccef63115 100644 (file)
@@ -11,8 +11,6 @@
 #include <asm/reboot.h>
 #include <asm/delay.h>
 
-#define jazz_kh ((keyboard_hardware *) JAZZ_KEYBOARD_ADDRESS)
-
 #define KBD_STAT_IBF           0x02    /* Keyboard input buffer full */
 
 static void jazz_write_output(unsigned char val)
index abb2ba63267011cb3a8053d32e93c99fb23ad2d1..a0dc56799b201f32a2326dcfc16827ebd37dfe25 100644 (file)
@@ -343,7 +343,8 @@ static struct irqaction pcierr_action = {
 int jmr3927_ether1_irq = 0;
 
 void jmr3927_irq_init(u32 irq_base);
-void jmr3927_irq_setup(void)
+
+void __init arch_init_irq(void)
 {
        /* look for io board's presence */
        int have_isac = jmr3927_have_isac();
@@ -421,24 +422,6 @@ void jmr3927_irq_setup(void)
        set_c0_status(ST0_IM);  /* IE bit is still 0. */
 }
 
-void (*irq_setup)(void);
-
-void __init init_IRQ(void)
-{
-
-#ifdef CONFIG_KGDB
-        extern void breakpoint(void);
-        extern void set_debug_traps(void);
-
-        puts("Wait for gdb client connection ...\n");
-        set_debug_traps();
-        breakpoint();
-#endif
-
-        /* invoke board-specific irq setup */
-        irq_setup();
-}
-
 static hw_irq_controller jmr3927_irq_controller = {
        "jmr3927_irq",
        jmr3927_irq_startup,
@@ -453,7 +436,6 @@ void jmr3927_irq_init(u32 irq_base)
 {
        u32 i;
 
-       init_generic_irq();
        for (i= irq_base; i< irq_base + JMR3927_NR_IRQ_IRC + JMR3927_NR_IRQ_IOC; i++) {
                irq_desc[i].status = IRQ_DISABLED;
                irq_desc[i].action = NULL;
index 13ddc5ce84b79c0dc2d125369c02cd3776bb38f0..b6431275e0b1bde53e9b2d73c430ae367630f1f1 100644 (file)
@@ -184,17 +184,12 @@ unsigned long jmr3927_do_gettimeoffset(void)
 }
 
 
-#if defined(CONFIG_BLK_DEV_INITRD)
-extern unsigned long __rd_start, __rd_end, initrd_start, initrd_end;
-#endif
-
 //#undef DO_WRITE_THROUGH
 #define DO_WRITE_THROUGH
 #define DO_ENABLE_CACHE
 
 extern char * __init prom_getcmdline(void);
 static void jmr3927_board_init(void);
-extern void jmr3927_irq_setup(void);
 extern struct resource pci_io_resource;
 extern struct resource pci_mem_resource;
 
@@ -203,7 +198,6 @@ static void __init jmr3927_setup(void)
        extern int panic_timeout;
        char *argptr;
 
-       irq_setup = jmr3927_irq_setup;
        set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO);
 
        board_time_init = jmr3927_time_init;
index 1375d448308b9c189939b1a95d3510a3f2a17ad0..11ebe5d4c446fe390406106a02f564b8a1588399 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003  Maciej W. Rozycki
+ * Copyright (C) 2003, 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
@@ -13,6 +13,7 @@
 #include <linux/stddef.h>
 
 #include <asm/bugs.h>
+#include <asm/compiler.h>
 #include <asm/cpu.h>
 #include <asm/fpu.h>
 #include <asm/mipsregs.h>
@@ -82,7 +83,7 @@ static inline void mult_sh_align_mod(long *v1, long *v2, long *w,
                ".set   pop"
                : "=&r" (lv1), "=r" (lw)
                : "r" (m1), "r" (m2), "r" (s), "I" (0)
-               : "hi", "lo", "accum");
+               : "hi", "lo", GCC_REG_ACCUM);
        /* We have to use single integers for m1 and m2 and a double
         * one for p to be sure the mulsidi3 gcc's RTL multiplication
         * instruction has the workaround applied.  Older versions of
index 36777476dae176011f9669230b761c2f74105019..4bb84958231410b6b644f0fe9f692063dab872a5 100644 (file)
@@ -100,6 +100,7 @@ static inline void check_wait(void)
        case CPU_R5000:
        case CPU_NEVADA:
        case CPU_RM7000:
+       case CPU_RM9000:
        case CPU_TX49XX:
        case CPU_4KC:
        case CPU_4KEC:
index c1f842291da1811632b41bd72e41e77aa64336c4..5eb429137e0665e6b6800949db46528e1638960f 100644 (file)
@@ -16,6 +16,7 @@
 #include <asm/stackframe.h>
 #include <asm/isadep.h>
 #include <asm/thread_info.h>
+#include <asm/war.h>
 
 #ifdef CONFIG_PREEMPT
        .macro  preempt_stop reg=t0
@@ -139,7 +140,11 @@ LEAF(spurious_interrupt)
 1:     ll      t0, %lo(irq_err_count)(t1)
        addiu   t0, 1
        sc      t0, %lo(irq_err_count)(t1)
+#if R10000_LLSC_WAR
+       beqzl   t0, 1b
+#else
        beqz    t0, 1b
+#endif
 #else
        lui     t1, %hi(irq_err_count)
        lw      t0, %lo(irq_err_count)(t1)
index 8b74e9c02181663853dcfa6aa0401e752a8c0bdc..269889302a27d786c101d6d2da754351607b91c3 100644 (file)
@@ -171,6 +171,8 @@ static int hexToLong(char **ptr, long *longValue);
 static unsigned char *mem2hex(char *mem, char *buf, int count, int may_fault);
 void handle_exception(struct gdb_regs *regs);
 
+int kgdb_enabled;
+
 /*
  * spin locks for smp case
  */
index b8b83bccbcc5fb7876f755ca2d8125b7135c672f..a5b0a389b063a37d169fdb50bf9933c054b0ec1e 100644 (file)
 #include <asm/stackframe.h>
 #include <asm/war.h>
 
+#define PANIC_PIC(msg)                                 \
+               .set push;                              \
+               .set    reorder;                        \
+               PTR_LA  a0,8f;                          \
+               .set    noat;                           \
+               PTR_LA  AT, panic;                      \
+               jr      AT;                             \
+9:             b       9b;                             \
+               .set    pop;                            \
+               TEXT(msg)
+
        __INIT
 
 NESTED(except_vec0_generic, 0, sp)
-       PANIC("Exception vector 0 called")
+       PANIC_PIC("Exception vector 0 called")
        END(except_vec0_generic)
 
 NESTED(except_vec1_generic, 0, sp)
-       PANIC("Exception vector 1 called")
+       PANIC_PIC("Exception vector 1 called")
        END(except_vec1_generic)
 
 /*
@@ -142,19 +153,17 @@ NESTED(except_vec_ejtag_debug, 0, sp)
 NESTED(ejtag_debug_handler, PT_SIZE, sp)
        .set    push
        .set    noat
-       .set    noreorder
        MTC0    k0, CP0_DESAVE
        mfc0    k0, CP0_DEBUG
 
        sll     k0, k0, 30      # Check for SDBBP.
        bgez    k0, ejtag_return
-       nop
 
        PTR_LA  k0, ejtag_debug_buffer
        LONG_S  k1, 0(k0)
        SAVE_ALL
+       move    a0, sp
        jal     ejtag_exception_handler
-        move   a0, sp
        RESTORE_ALL
        PTR_LA  k0, ejtag_debug_buffer
        LONG_L  k1, 0(k0)
@@ -163,7 +172,6 @@ ejtag_return:
        MFC0    k0, CP0_DESAVE
        .set    mips32
        deret
-        nop
        .set pop
        END(ejtag_debug_handler)
 
index 89a8456d9de3afabf2a746946db2e359f6b93751..a64e87d22014a40ffa9f4ef58c73c1dac4e8383d 100644 (file)
        .endm
 
        /*
-        * For the moment set ST0_KU so the CPU will not spit fire when
-        * executing 64-bit instructions.  The full initialization of the
-        * CPU's status register is done later in per_cpu_trap_init().
+        * For the moment disable interrupts, mark the kernel mode and
+        * set ST0_KX so that the CPU does not spit fire when using
+        * 64-bit addresses.  A full initialization of the CPU's status
+        * register is done later in per_cpu_trap_init().
         */
-       .macro  setup_c0_status
-#ifdef CONFIG_MIPS64
+       .macro  setup_c0_status set clr
+       .set    push
        mfc0    t0, CP0_STATUS
-       or      t0, ST0_KX
+       or      t0, ST0_CU0|\set|0x1f|\clr
+       xor     t0, 0x1f|\clr
        mtc0    t0, CP0_STATUS
+       .set    noreorder
+       sll     zero,3                          # ehb
+       .set    pop
+       .endm
+
+       .macro  setup_c0_status_pri
+#ifdef CONFIG_MIPS64
+       setup_c0_status ST0_KX 0
+#else
+       setup_c0_status 0 0
+#endif
+       .endm
+
+       .macro  setup_c0_status_sec
+#ifdef CONFIG_MIPS64
+       setup_c0_status ST0_KX ST0_BEV
+#else
+       setup_c0_status 0 ST0_BEV
 #endif
        .endm
 
@@ -114,7 +134,7 @@ EXPORT(_stext)
        __INIT
 
 NESTED(kernel_entry, 16, sp)                   # kernel entry point
-       setup_c0_status
+       setup_c0_status_pri
 
 #ifdef CONFIG_SGI_IP27
        GET_NASID_ASM   t1
@@ -124,8 +144,6 @@ NESTED(kernel_entry, 16, sp)                        # kernel entry point
 
        ARC64_TWIDDLE_PC
 
-       CLI                                     # disable interrupts
-
        PTR_LA          t0, __bss_start         # clear .bss
        LONG_S          zero, (t0)
        PTR_LA          t1, __bss_stop - LONGSIZE
@@ -144,7 +162,7 @@ NESTED(kernel_entry, 16, sp)                        # kernel entry point
        set_saved_sp    sp, t0, t1
        PTR_SUBU        sp, 4 * SZREG           # init stack pointer
 
-       jal             start_kernel
+       j               start_kernel
        END(kernel_entry)
 
 #ifdef CONFIG_SMP
@@ -153,6 +171,8 @@ NESTED(kernel_entry, 16, sp)                        # kernel entry point
  * function after setting up the stack and gp registers.
  */
 NESTED(smp_bootstrap, 16, sp)
+       setup_c0_status_sec
+
 #ifdef CONFIG_SGI_IP27
        GET_NASID_ASM   t1
        dli     t0, KLDIR_OFFSET + (KLI_KERN_VARS * KLDIR_ENT_SIZE) + \
@@ -166,9 +186,7 @@ NESTED(smp_bootstrap, 16, sp)
        ARC64_TWIDDLE_PC
 #endif /* CONFIG_SGI_IP27 */
 
-       CLI
-       setup_c0_status
-       jal     start_secondary
+       j       start_secondary
        END(smp_bootstrap)
 #endif /* CONFIG_SMP */
 
@@ -201,13 +219,3 @@ NESTED(smp_bootstrap, 16, sp)
        page    invalid_pmd_table, _PMD_ORDER
 #endif
        page    invalid_pte_table, _PTE_ORDER
-
-#ifdef CONFIG_MIPS64
-       /*
-        * 64-bit kernel mappings are really screwed up ...
-        */
-       page    kptbl, _PGD_ORDER
-       .globl  ekptbl
-       page    kpmdtbl, 0
-ekptbl:
-#endif
index 6fb136b7dc7d2d954f368877fbd56c47cfe1cbb3..7eec7568bfea593465d9958e85c452d584a7dedf 100644 (file)
@@ -209,7 +209,7 @@ spurious_8259A_irq:
                 * lets ACK and report it. [once per IRQ]
                 */
                if (!(spurious_irq_mask & irqmask)) {
-                       printk("spurious 8259A interrupt: IRQ%d.\n", irq);
+                       printk(KERN_DEBUG "spurious 8259A interrupt: IRQ%d.\n", irq);
                        spurious_irq_mask |= irqmask;
                }
                atomic_inc(&irq_err_count);
@@ -295,7 +295,7 @@ void __init init_8259A(int auto_eoi)
  * IRQ2 is cascade interrupt to second interrupt controller
  */
 static struct irqaction irq2 = {
-       no_action, 0, 0, "cascade", NULL, NULL
+       no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL
 };
 
 static struct resource pic1_io_resource = {
index bc07d8112fea0cc7123aa98a4432b11d8e1044f0..519cd5d0aebb83b165dec61263e7b97a81485a75 100644 (file)
@@ -47,6 +47,12 @@ COMPATIBLE_IOCTL(SBPROF_ZBSTOP)
 COMPATIBLE_IOCTL(SBPROF_ZBWAITFULL)
 #endif /* CONFIG_SIBYTE_TBPROF */
 
+/*HANDLE_IOCTL(RTC_IRQP_READ, w_long)
+COMPATIBLE_IOCTL(RTC_IRQP_SET)
+HANDLE_IOCTL(RTC_EPOCH_READ, w_long)
+COMPATIBLE_IOCTL(RTC_EPOCH_SET)
+*/
+
 IOCTL_TABLE_END
 
 int ioctl_table_size = ARRAY_SIZE(ioctl_start);
index 4858adc76fb1360c948ceb0f8cbb2e6df2e61bfe..1363214e784205816da0e347ecb43b4db7cac95a 100644 (file)
@@ -265,9 +265,8 @@ static unsigned int load_irix_interp(struct elfhdr * interp_elf_ex,
            return 0xffffffff;
        }
 
-       elf_phdata =  (struct elf_phdr *)
-               kmalloc(sizeof(struct elf_phdr) * interp_elf_ex->e_phnum,
-                       GFP_KERNEL);
+       elf_phdata = kmalloc(sizeof(struct elf_phdr) * interp_elf_ex->e_phnum,
+                            GFP_KERNEL);
 
        if(!elf_phdata) {
           printk("Cannot kmalloc phdata for IRIX interp.\n");
@@ -436,9 +435,8 @@ static inline int look_for_irix_interpreter(char **name,
                if (*name != NULL)
                        goto out;
 
-               *name = (char *) kmalloc((epp->p_filesz +
-                                         strlen(IRIX_INTERP_PREFIX)),
-                                        GFP_KERNEL);
+               *name = kmalloc((epp->p_filesz + strlen(IRIX_INTERP_PREFIX)),
+                               GFP_KERNEL);
                if (!*name)
                        return -ENOMEM;
 
@@ -611,7 +609,7 @@ static int load_irix_binary(struct linux_binprm * bprm, struct pt_regs * regs)
        size = elf_ex.e_phentsize * elf_ex.e_phnum;
        if (size > 65536)
                goto out;
-       elf_phdata = (struct elf_phdr *) kmalloc(size, GFP_KERNEL);
+       elf_phdata = kmalloc(size, GFP_KERNEL);
        if (elf_phdata == NULL) {
                retval = -ENOMEM;
                goto out;
@@ -814,8 +812,7 @@ static int load_irix_library(struct file *file)
        if(sizeof(struct elf_phdr) * elf_ex.e_phnum > PAGE_SIZE)
                return -ENOEXEC;
 
-       elf_phdata =  (struct elf_phdr *)
-               kmalloc(sizeof(struct elf_phdr) * elf_ex.e_phnum, GFP_KERNEL);
+       elf_phdata = kmalloc(sizeof(struct elf_phdr) * elf_ex.e_phnum, GFP_KERNEL);
        if (elf_phdata == NULL)
                return -ENOMEM;
 
@@ -1131,14 +1128,28 @@ static int irix_core_dump(long signr, struct pt_regs * regs, struct file *file)
        psinfo.pr_ppid = prstatus.pr_ppid = current->parent->pid;
        psinfo.pr_pgrp = prstatus.pr_pgrp = process_group(current);
        psinfo.pr_sid = prstatus.pr_sid = current->signal->session;
-       prstatus.pr_utime.tv_sec = CT_TO_SECS(current->utime);
-       prstatus.pr_utime.tv_usec = CT_TO_USECS(current->utime);
-       prstatus.pr_stime.tv_sec = CT_TO_SECS(current->stime);
-       prstatus.pr_stime.tv_usec = CT_TO_USECS(current->stime);
-       prstatus.pr_cutime.tv_sec = CT_TO_SECS(current->cutime);
-       prstatus.pr_cutime.tv_usec = CT_TO_USECS(current->cutime);
-       prstatus.pr_cstime.tv_sec = CT_TO_SECS(current->cstime);
-       prstatus.pr_cstime.tv_usec = CT_TO_USECS(current->cstime);
+       if (current->pid == current->tgid) {
+               /*
+                * This is the record for the group leader.  Add in the
+                * cumulative times of previous dead threads.  This total
+                * won't include the time of each live thread whose state
+                * is included in the core dump.  The final total reported
+                * to our parent process when it calls wait4 will include
+                * those sums as well as the little bit more time it takes
+                * this and each other thread to finish dying after the
+                * core dump synchronization phase.
+                */
+               jiffies_to_timeval(current->utime + current->signal->utime,
+                                  &prstatus.pr_utime);
+               jiffies_to_timeval(current->stime + current->signal->stime,
+                                  &prstatus.pr_stime);
+       } else {
+               jiffies_to_timeval(current->utime, &prstatus.pr_utime);
+               jiffies_to_timeval(current->stime, &prstatus.pr_stime);
+       }
+       jiffies_to_timeval(current->signal->cutime, &prstatus.pr_cutime);
+       jiffies_to_timeval(current->signal->cstime, &prstatus.pr_cstime);
+
        if (sizeof(elf_gregset_t) != sizeof(struct pt_regs)) {
                printk("sizeof(elf_gregset_t) (%d) != sizeof(struct pt_regs) "
                       "(%d)\n", sizeof(elf_gregset_t), sizeof(struct pt_regs));
index 15ae6af5adf873830782c8d3b7f9192221c462b1..4d94f645ba51032a7012ba0d5ba7a3b91a6c2ee1 100644 (file)
@@ -133,10 +133,8 @@ setup_irix_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,
 }
 
 static inline void handle_signal(unsigned long sig, siginfo_t *info,
-       sigset_t *oldset, struct pt_regs * regs)
+       struct k_sigaction *ka, sigset_t *oldset, struct pt_regs * regs)
 {
-       struct k_sigaction *ka = &current->sighand->action[sig-1];
-
        switch(regs->regs[0]) {
        case ERESTARTNOHAND:
                regs->regs[2] = EINTR;
@@ -158,8 +156,6 @@ static inline void handle_signal(unsigned long sig, siginfo_t *info,
        else
                setup_irix_frame(ka, regs, sig, oldset);
 
-       if (ka->sa.sa_flags & SA_ONESHOT)
-               ka->sa.sa_handler = SIG_DFL;
        if (!(ka->sa.sa_flags & SA_NODEFER)) {
                spin_lock_irq(&current->sighand->siglock);
                sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
@@ -171,6 +167,7 @@ static inline void handle_signal(unsigned long sig, siginfo_t *info,
 
 asmlinkage int do_irix_signal(sigset_t *oldset, struct pt_regs *regs)
 {
+       struct k_sigaction ka;
        siginfo_t info;
        int signr;
 
@@ -190,9 +187,9 @@ asmlinkage int do_irix_signal(sigset_t *oldset, struct pt_regs *regs)
        if (!oldset)
                oldset = &current->blocked;
 
-       signr = get_signal_to_deliver(&info, regs, NULL);
+       signr = get_signal_to_deliver(&info, &ka, regs, NULL);
        if (signr > 0) {
-               handle_signal(signr, &info, oldset, regs);
+               handle_signal(signr, &info, &ka, oldset, regs);
                return 1;
        }
 
@@ -543,9 +540,9 @@ out:
 }
 
 /* This is here because of irix5_siginfo definition. */
-#define P_PID    0
-#define P_PGID   2
-#define P_ALL    7
+#define IRIX_P_PID    0
+#define IRIX_P_PGID   2
+#define IRIX_P_ALL    7
 
 extern int getrusage(struct task_struct *, int, struct rusage __user *);
 
@@ -582,7 +579,7 @@ asmlinkage int irix_waitsys(int type, int pid, struct irix5_siginfo *info,
                retval = -EINVAL;
                goto out;
        }
-       if (type != P_PID && type != P_PGID && type != P_ALL) {
+       if (type != IRIX_P_PID && type != IRIX_P_PGID && type != IRIX_P_ALL) {
                retval = -EINVAL;
                goto out;
        }
@@ -594,9 +591,9 @@ repeat:
        tsk = current;
        list_for_each(_p,&tsk->children) {
                p = list_entry(_p,struct task_struct,sibling);
-               if ((type == P_PID) && p->pid != pid)
+               if ((type == IRIX_P_PID) && p->pid != pid)
                        continue;
-               if ((type == P_PGID) && process_group(p) != pid)
+               if ((type == IRIX_P_PGID) && process_group(p) != pid)
                        continue;
                if ((p->exit_signal != SIGCHLD))
                        continue;
@@ -631,8 +628,8 @@ repeat:
                        goto end_waitsys;
 
                case TASK_ZOMBIE:
-                       current->cutime += p->utime + p->cutime;
-                       current->cstime += p->stime + p->cstime;
+                       current->signal->cutime += p->utime + p->signal->cutime;
+                       current->signal->cstime += p->stime + p->signal->cstime;
                        if (ru != NULL)
                                getrusage(p, RUSAGE_BOTH, ru);
                        __put_user(SIGCHLD, &info->sig);
diff --git a/arch/mips/kernel/irq-msc01.c b/arch/mips/kernel/irq-msc01.c
new file mode 100644 (file)
index 0000000..43c00ac
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2004 MIPS Inc
+ * Author: chris@mips.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.
+ */
+#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/msc01_ic.h>
+
+static unsigned long _icctrl_msc;
+#define MSC01_IC_REG_BASE      _icctrl_msc
+
+#define MSCIC_WRITE(reg, data) do { *(volatile u32 *)(reg) = data; } while (0)
+#define MSCIC_READ(reg, data)  do { data = *(volatile u32 *)(reg); } while (0)
+
+static unsigned int irq_base;
+
+/* mask off an interrupt */
+static inline void mask_msc_irq(unsigned int irq)
+{
+       if (irq < (irq_base + 32))
+               MSCIC_WRITE(MSC01_IC_DISL, 1<<(irq - irq_base));
+       else
+               MSCIC_WRITE(MSC01_IC_DISH, 1<<(irq - irq_base - 32));
+}
+
+/* unmask an interrupt */
+static inline void unmask_msc_irq(unsigned int irq)
+{
+       if (irq < (irq_base + 32))
+               MSCIC_WRITE(MSC01_IC_ENAL, 1<<(irq - irq_base));
+       else
+               MSCIC_WRITE(MSC01_IC_ENAH, 1<<(irq - irq_base - 32));
+}
+
+/*
+ * Enables the IRQ on SOC-it
+ */
+static void enable_msc_irq(unsigned int irq)
+{
+       unmask_msc_irq(irq);
+}
+
+/*
+ * Initialize the IRQ on SOC-it
+ */
+static unsigned int startup_msc_irq(unsigned int irq)
+{
+       unmask_msc_irq(irq);
+       return 0;
+}
+
+/*
+ * Disables the IRQ on SOC-it
+ */
+static void disable_msc_irq(unsigned int irq)
+{
+       mask_msc_irq(irq);
+}
+
+/*
+ * Masks and ACKs an IRQ
+ */
+static void level_mask_and_ack_msc_irq(unsigned int irq)
+{
+       mask_msc_irq(irq);
+       if (!cpu_has_ei)
+               MSCIC_WRITE(MSC01_IC_EOI, 0);
+}
+
+/*
+ * Masks and ACKs an IRQ
+ */
+static void edge_mask_and_ack_msc_irq(unsigned int irq)
+{
+       mask_msc_irq(irq);
+       if (!cpu_has_ei)
+               MSCIC_WRITE(MSC01_IC_EOI, 0);
+       else {
+               u32 r;
+               MSCIC_READ(MSC01_IC_SUP+irq*8, r);
+               MSCIC_WRITE(MSC01_IC_SUP+irq*8, r | ~MSC01_IC_SUP_EDGE_BIT);
+               MSCIC_WRITE(MSC01_IC_SUP+irq*8, r);
+       }
+}
+
+/*
+ * End IRQ processing
+ */
+static void end_msc_irq(unsigned int irq)
+{
+       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+               unmask_msc_irq(irq);
+}
+
+/*
+ * Interrupt handler for interrupts coming from SOC-it.
+ */
+void ll_msc_irq(struct pt_regs *regs)
+{
+       unsigned int irq;
+
+       /* read the interrupt vector register */
+       MSCIC_READ(MSC01_IC_VEC, irq);
+       if (irq < 64)
+               do_IRQ(irq + irq_base, regs);
+       else {
+               /* Ignore spurious interrupt */
+       }
+}
+
+void
+msc_bind_eic_interrupt (unsigned int irq, unsigned int set)
+{
+       MSCIC_WRITE(MSC01_IC_RAMW,
+                   (irq<<MSC01_IC_RAMW_ADDR_SHF) | (set<<MSC01_IC_RAMW_DATA_SHF));
+}
+
+#define shutdown_msc_irq       disable_msc_irq
+
+struct hw_interrupt_type msc_levelirq_type = {
+       "SOC-it-Level",
+       startup_msc_irq,
+       shutdown_msc_irq,
+       enable_msc_irq,
+       disable_msc_irq,
+       level_mask_and_ack_msc_irq,
+       end_msc_irq,
+       NULL
+};
+
+struct hw_interrupt_type msc_edgeirq_type = {
+       "SOC-it-Edge",
+       startup_msc_irq,
+       shutdown_msc_irq,
+       enable_msc_irq,
+       disable_msc_irq,
+       edge_mask_and_ack_msc_irq,
+       end_msc_irq,
+       NULL
+};
+
+
+void __init init_msc_irqs(unsigned int base, msc_irqmap_t *imp, int nirq)
+{
+       extern void (*board_bind_eic_interrupt)(unsigned int irq, unsigned int regset);
+
+       _icctrl_msc = (unsigned long) ioremap (MIPS_MSC01_IC_REG_BASE, 0x40000);
+
+       /* Reset interrupt controller - initialises all registers to 0 */
+       MSCIC_WRITE(MSC01_IC_RST, MSC01_IC_RST_RST_BIT);
+
+       board_bind_eic_interrupt = &msc_bind_eic_interrupt;
+
+       for (; nirq >= 0; nirq--, imp++) {
+               int n = imp->im_irq;
+
+               switch (imp->im_type) {
+               case MSC01_IRQ_EDGE:
+                       irq_desc[base+n].handler = &msc_edgeirq_type;
+                       if (cpu_has_ei)
+                               MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT);
+                       else
+                               MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT | imp->im_lvl);
+                       break;
+               case MSC01_IRQ_LEVEL:
+                       irq_desc[base+n].handler = &msc_levelirq_type;
+                       if (cpu_has_ei)
+                               MSCIC_WRITE(MSC01_IC_SUP+n*8, 0);
+                       else
+                               MSCIC_WRITE(MSC01_IC_SUP+n*8, imp->im_lvl);
+               }
+       }
+
+       irq_base = base;
+
+       MSCIC_WRITE(MSC01_IC_GENA, MSC01_IC_GENA_GENA_BIT);     /* Enable interrupt generation */
+
+}
index cb9d2fe598f958142da57667e9e683146d8f5d6e..088bbbc869e6d7b06d7262b5df2812a92c77afc0 100644 (file)
@@ -16,7 +16,7 @@
 #include <linux/kernel_stat.h>
 #include <asm/io.h>
 #include <asm/irq.h>
-#include <asm/mv64340.h>
+#include <linux/mv643xx.h>
 
 static unsigned int irq_base;
 
index 7c1dae7203db22b8c2d68215db82cb77dde7e75c..a828ca240cd666d0b4f7d291da9fd18ee93a4ecb 100644 (file)
 #include <asm/uaccess.h>
 
 /*
- * Controller mappings for all interrupt sources:
+ * 'what should we do if we get a hw irq event on an illegal vector'.
+ * each architecture has to answer this themselves.
  */
-irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = {
-       [0 ... NR_IRQS-1] = {
-               .handler = &no_irq_type,
-               .lock = SPIN_LOCK_UNLOCKED
-       }
-};
-
-static void register_irq_proc (unsigned int irq);
+void ack_bad_irq(unsigned int irq)
+{
+       printk("unexpected IRQ # %d\n", irq);
+}
 
-/*
- * Special irq handlers.
- */
+atomic_t irq_err_count;
 
-irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs)
-{ return IRQ_NONE; }
+#undef do_IRQ
 
 /*
- * Generic no controller code
+ * do_IRQ handles all normal device IRQ's (the special
+ * SMP cross-CPU interrupts have their own specific
+ * handlers).
  */
-
-static void enable_none(unsigned int irq) { }
-static unsigned int startup_none(unsigned int irq) { return 0; }
-static void disable_none(unsigned int irq) { }
-static void ack_none(unsigned int irq)
+asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs)
 {
-       /*
-        * 'what should we do if we get a hw irq event on an illegal vector'.
-        * each architecture has to answer this themselves, it doesn't deserve
-        * a generic callback i think.
-        */
-       printk("unexpected interrupt %d\n", irq);
-}
+       irq_enter();
 
-/* startup is the same as "enable", shutdown is same as "disable" */
-#define shutdown_none  disable_none
-#define end_none       enable_none
+       __do_IRQ(irq, regs);
 
-struct hw_interrupt_type no_irq_type = {
-       "none",
-       startup_none,
-       shutdown_none,
-       enable_none,
-       disable_none,
-       ack_none,
-       end_none
-};
+       irq_exit();
 
-atomic_t irq_err_count;
+       return 1;
+}
 
 /*
  * Generic, controller-independent functions:
@@ -126,692 +103,20 @@ skip:
        return 0;
 }
 
-#ifdef CONFIG_SMP
-inline void synchronize_irq(unsigned int irq)
-{
-       while (irq_desc[irq].status & IRQ_INPROGRESS)
-               cpu_relax();
-}
-#endif
-
-/*
- * This should really return information about whether
- * we should do bottom half handling etc. Right now we
- * end up _always_ checking the bottom half, which is a
- * waste of time and is not what some drivers would
- * prefer.
- */
-int handle_IRQ_event(unsigned int irq, struct pt_regs * regs, struct irqaction * action)
-{
-       int status = 1; /* Force the "do bottom halves" bit */
-       int ret, retval = 0;
-
-       if (!(action->flags & SA_INTERRUPT))
-               local_irq_enable();
-
-       do {
-               ret = action->handler(irq, action->dev_id, regs);
-               if (ret == IRQ_HANDLED)
-                       status |= action->flags;
-               retval |= ret;
-               action = action->next;
-       } while (action);
-       if (status & SA_SAMPLE_RANDOM)
-               add_interrupt_randomness(irq);
-       local_irq_disable();
-
-       return retval;
-}
-
-static void __report_bad_irq(int irq, irq_desc_t *desc, irqreturn_t action_ret)
-{
-       struct irqaction *action;
-
-       if (action_ret != IRQ_HANDLED && action_ret != IRQ_NONE) {
-               printk(KERN_ERR "irq event %d: bogus return value %x\n",
-                               irq, action_ret);
-       } else {
-               printk(KERN_ERR "irq %d: nobody cared!\n", irq);
-       }
-       dump_stack();
-       printk(KERN_ERR "handlers:\n");
-       action = desc->action;
-       do {
-               printk(KERN_ERR "[<%p>]", action->handler);
-               print_symbol(" (%s)",
-                       (unsigned long)action->handler);
-               printk("\n");
-               action = action->next;
-       } while (action);
-}
-
-static void report_bad_irq(int irq, irq_desc_t *desc, irqreturn_t action_ret)
-{
-       static int count = 100;
-
-       if (count) {
-               count--;
-               __report_bad_irq(irq, desc, action_ret);
-       }
-}
-
-static int noirqdebug;
-
-static int __init noirqdebug_setup(char *str)
-{
-       noirqdebug = 1;
-       printk("IRQ lockup detection disabled\n");
-       return 1;
-}
-
-__setup("noirqdebug", noirqdebug_setup);
-
-/*
- * If 99,900 of the previous 100,000 interrupts have not been handled then
- * assume that the IRQ is stuck in some manner.  Drop a diagnostic and try to
- * turn the IRQ off.
- *
- * (The other 100-of-100,000 interrupts may have been a correctly-functioning
- *  device sharing an IRQ with the failing one)
- *
- * Called under desc->lock
- */
-static void note_interrupt(int irq, irq_desc_t *desc, irqreturn_t action_ret)
-{
-       if (action_ret != IRQ_HANDLED) {
-               desc->irqs_unhandled++;
-               if (action_ret != IRQ_NONE)
-                       report_bad_irq(irq, desc, action_ret);
-       }
-
-       desc->irq_count++;
-       if (desc->irq_count < 100000)
-               return;
-
-       desc->irq_count = 0;
-       if (desc->irqs_unhandled > 99900) {
-               /*
-                * The interrupt is stuck
-                */
-               __report_bad_irq(irq, desc, action_ret);
-               /*
-                * Now kill the IRQ
-                */
-               printk(KERN_EMERG "Disabling IRQ #%d\n", irq);
-               desc->status |= IRQ_DISABLED;
-               desc->handler->disable(irq);
-       }
-       desc->irqs_unhandled = 0;
-}
-
-/*
- * Generic enable/disable code: this just calls
- * down into the PIC-specific version for the actual
- * hardware disable after having gotten the irq
- * controller lock.
- */
-
-/**
- *     disable_irq_nosync - disable an irq without waiting
- *     @irq: Interrupt to disable
- *
- *     Disable the selected interrupt line. Disables of an interrupt
- *     stack. Unlike disable_irq(), this function does not ensure existing
- *     instances of the IRQ handler have completed before returning.
- *
- *     This function may be called from IRQ context.
- */
-
-void inline disable_irq_nosync(unsigned int irq)
-{
-       irq_desc_t *desc = irq_desc + irq;
-       unsigned long flags;
-
-       spin_lock_irqsave(&desc->lock, flags);
-       if (!desc->depth++) {
-               desc->status |= IRQ_DISABLED;
-               desc->handler->disable(irq);
-       }
-       spin_unlock_irqrestore(&desc->lock, flags);
-}
-
-/**
- *     disable_irq - disable an irq and wait for completion
- *     @irq: Interrupt to disable
- *
- *     Disable the selected interrupt line. Disables of an interrupt
- *     stack. That is for two disables you need two enables. This
- *     function waits for any pending IRQ handlers for this interrupt
- *     to complete before returning. If you use this function while
- *     holding a resource the IRQ handler may need you will deadlock.
- *
- *     This function may be called - with care - from IRQ context.
- */
+#ifdef CONFIG_KGDB
+extern void breakpoint(void);
+extern void set_debug_traps(void);
 
-void disable_irq(unsigned int irq)
+static int kgdb_flag = 1;
+static int __init nokgdb(char *str)
 {
-       irq_desc_t *desc = irq_desc + irq;
-       disable_irq_nosync(irq);
-       if (desc->action)
-               synchronize_irq(irq);
-}
-
-/**
- *     enable_irq - enable interrupt handling on an irq
- *     @irq: Interrupt to enable
- *
- *     Re-enables the processing of interrupts on this IRQ line
- *     providing no disable_irq calls are now in effect.
- *
- *     This function may be called from IRQ context.
- */
-
-void enable_irq(unsigned int irq)
-{
-       irq_desc_t *desc = irq_desc + irq;
-       unsigned long flags;
-
-       spin_lock_irqsave(&desc->lock, flags);
-       switch (desc->depth) {
-       case 1: {
-               unsigned int status = desc->status & ~(IRQ_DISABLED | IRQ_INPROGRESS);
-               desc->status = status;
-               if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) {
-                       desc->status = status | IRQ_REPLAY;
-                       hw_resend_irq(desc->handler,irq);
-               }
-               desc->handler->enable(irq);
-               /* fall-through */
-       }
-       default:
-               desc->depth--;
-               break;
-       case 0:
-               printk("enable_irq(%u) unbalanced from %p\n", irq,
-                      __builtin_return_address(0));
-       }
-       spin_unlock_irqrestore(&desc->lock, flags);
-}
-
-/*
- * do_IRQ handles all normal device IRQ's (the special
- * SMP cross-CPU interrupts have their own specific
- * handlers).
- */
-asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs)
-{
-       /*
-        * We ack quickly, we don't want the irq controller
-        * thinking we're snobs just because some other CPU has
-        * disabled global interrupts (we have already done the
-        * INT_ACK cycles, it's too late to try to pretend to the
-        * controller that we aren't taking the interrupt).
-        *
-        * 0 return value means that this irq is already being
-        * handled by some other CPU. (or is disabled)
-        */
-       irq_desc_t *desc = irq_desc + irq;
-       struct irqaction * action;
-       unsigned int status;
-
-       irq_enter();
-       kstat_this_cpu.irqs[irq]++;
-       spin_lock(&desc->lock);
-       desc->handler->ack(irq);
-       /*
-          REPLAY is when Linux resends an IRQ that was dropped earlier
-          WAITING is used by probe to mark irqs that are being tested
-          */
-       status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
-       status |= IRQ_PENDING; /* we _want_ to handle it */
-
-       /*
-        * If the IRQ is disabled for whatever reason, we cannot
-        * use the action we have.
-        */
-       action = NULL;
-       if (likely(!(status & (IRQ_DISABLED | IRQ_INPROGRESS)))) {
-               action = desc->action;
-               status &= ~IRQ_PENDING; /* we commit to handling */
-               status |= IRQ_INPROGRESS; /* we are handling it */
-       }
-       desc->status = status;
-
-       /*
-        * If there is no IRQ handler or it was disabled, exit early.
-          Since we set PENDING, if another processor is handling
-          a different instance of this same irq, the other processor
-          will take care of it.
-        */
-       if (unlikely(!action))
-               goto out;
-
-       /*
-        * Edge triggered interrupts need to remember
-        * pending events.
-        * This applies to any hw interrupts that allow a second
-        * instance of the same irq to arrive while we are in do_IRQ
-        * or in the handler. But the code here only handles the _second_
-        * instance of the irq, not the third or fourth. So it is mostly
-        * useful for irq hardware that does not mask cleanly in an
-        * SMP environment.
-        */
-       for (;;) {
-               irqreturn_t action_ret;
-
-               spin_unlock(&desc->lock);
-               action_ret = handle_IRQ_event(irq, regs, action);
-               spin_lock(&desc->lock);
-               if (!noirqdebug)
-                       note_interrupt(irq, desc, action_ret);
-               if (likely(!(desc->status & IRQ_PENDING)))
-                       break;
-               desc->status &= ~IRQ_PENDING;
-       }
-       desc->status &= ~IRQ_INPROGRESS;
-
-out:
-       /*
-        * The ->end() handler has to deal with interrupts which got
-        * disabled while the handler was running.
-        */
-       desc->handler->end(irq);
-       spin_unlock(&desc->lock);
-
-       irq_exit();
-
+       kgdb_flag = 0;
        return 1;
 }
-
-/**
- *     request_irq - allocate an interrupt line
- *     @irq: Interrupt line to allocate
- *     @handler: Function to be called when the IRQ occurs
- *     @irqflags: Interrupt type flags
- *     @devname: An ascii name for the claiming device
- *     @dev_id: A cookie passed back to the handler function
- *
- *     This call allocates interrupt resources and enables the
- *     interrupt line and IRQ handling. From the point this
- *     call is made your handler function may be invoked. Since
- *     your handler function must clear any interrupt the board
- *     raises, you must take care both to initialise your hardware
- *     and to set up the interrupt handler in the right order.
- *
- *     Dev_id must be globally unique. Normally the address of the
- *     device data structure is used as the cookie. Since the handler
- *     receives this value it makes sense to use it.
- *
- *     If your interrupt is shared you must pass a non NULL dev_id
- *     as this is required when freeing the interrupt.
- *
- *     Flags:
- *
- *     SA_SHIRQ                Interrupt is shared
- *
- *     SA_INTERRUPT            Disable local interrupts while processing
- *
- *     SA_SAMPLE_RANDOM        The interrupt can be used for entropy
- *
- */
-
-int request_irq(unsigned int irq,
-               irqreturn_t (*handler)(int, void *, struct pt_regs *),
-               unsigned long irqflags,
-               const char * devname,
-               void *dev_id)
-{
-       int retval;
-       struct irqaction * action;
-
-#if 1
-       /*
-        * Sanity-check: shared interrupts should REALLY pass in
-        * a real dev-ID, otherwise we'll have trouble later trying
-        * to figure out which interrupt is which (messes up the
-        * interrupt freeing logic etc).
-        */
-       if (irqflags & SA_SHIRQ) {
-               if (!dev_id)
-                       printk("Bad boy: %s (at 0x%x) called us without a dev_id!\n", devname, (&irq)[-1]);
-       }
+__setup("nokgdb", nokgdb);
 #endif
 
-       if (irq >= NR_IRQS)
-               return -EINVAL;
-       if (!handler)
-               return -EINVAL;
-
-       action = (struct irqaction *)
-                       kmalloc(sizeof(struct irqaction), GFP_ATOMIC);
-       if (!action)
-               return -ENOMEM;
-
-       action->handler = handler;
-       action->flags = irqflags;
-       cpus_clear(action->mask);
-       action->name = devname;
-       action->next = NULL;
-       action->dev_id = dev_id;
-
-       retval = setup_irq(irq, action);
-       if (retval)
-               kfree(action);
-       return retval;
-}
-
-EXPORT_SYMBOL(request_irq);
-
-/**
- *     free_irq - free an interrupt
- *     @irq: Interrupt line to free
- *     @dev_id: Device identity to free
- *
- *     Remove an interrupt handler. The handler is removed and if the
- *     interrupt line is no longer in use by any driver it is disabled.
- *     On a shared IRQ the caller must ensure the interrupt is disabled
- *     on the card it drives before calling this function. The function
- *     does not return until any executing interrupts for this IRQ
- *     have completed.
- *
- *     This function must not be called from interrupt context.
- */
-
-void free_irq(unsigned int irq, void *dev_id)
-{
-       irq_desc_t *desc;
-       struct irqaction **p;
-       unsigned long flags;
-
-       if (irq >= NR_IRQS)
-               return;
-
-       desc = irq_desc + irq;
-       spin_lock_irqsave(&desc->lock,flags);
-       p = &desc->action;
-       for (;;) {
-               struct irqaction * action = *p;
-               if (action) {
-                       struct irqaction **pp = p;
-                       p = &action->next;
-                       if (action->dev_id != dev_id)
-                               continue;
-
-                       /* Found it - now remove it from the list of entries */
-                       *pp = action->next;
-                       if (!desc->action) {
-                               desc->status |= IRQ_DISABLED;
-                               desc->handler->shutdown(irq);
-                       }
-                       spin_unlock_irqrestore(&desc->lock,flags);
-
-                       /* Wait to make sure it's not being used on another CPU */
-                       synchronize_irq(irq);
-                       kfree(action);
-                       return;
-               }
-               printk("Trying to free free IRQ%d\n",irq);
-               spin_unlock_irqrestore(&desc->lock,flags);
-               return;
-       }
-}
-
-EXPORT_SYMBOL(free_irq);
-
-/*
- * IRQ autodetection code..
- *
- * This depends on the fact that any interrupt that
- * comes in on to an unassigned handler will get stuck
- * with "IRQ_WAITING" cleared and the interrupt
- * disabled.
- */
-
-static DECLARE_MUTEX(probe_sem);
-
-/**
- *     probe_irq_on    - begin an interrupt autodetect
- *
- *     Commence probing for an interrupt. The interrupts are scanned
- *     and a mask of potential interrupt lines is returned.
- *
- */
-
-unsigned long probe_irq_on(void)
-{
-       unsigned int i;
-       irq_desc_t *desc;
-       unsigned long val;
-       unsigned long delay;
-
-       down(&probe_sem);
-       /*
-        * something may have generated an irq long ago and we want to
-        * flush such a longstanding irq before considering it as spurious.
-        */
-       for (i = NR_IRQS-1; i > 0; i--)  {
-               desc = irq_desc + i;
-
-               spin_lock_irq(&desc->lock);
-               if (!irq_desc[i].action)
-                       irq_desc[i].handler->startup(i);
-               spin_unlock_irq(&desc->lock);
-       }
-
-       /* Wait for longstanding interrupts to trigger. */
-       for (delay = jiffies + HZ/50; time_after(delay, jiffies); )
-               /* about 20ms delay */ barrier();
-
-       /*
-        * enable any unassigned irqs
-        * (we must startup again here because if a longstanding irq
-        * happened in the previous stage, it may have masked itself)
-        */
-       for (i = NR_IRQS-1; i > 0; i--) {
-               desc = irq_desc + i;
-
-               spin_lock_irq(&desc->lock);
-               if (!desc->action) {
-                       desc->status |= IRQ_AUTODETECT | IRQ_WAITING;
-                       if (desc->handler->startup(i))
-                               desc->status |= IRQ_PENDING;
-               }
-               spin_unlock_irq(&desc->lock);
-       }
-
-       /*
-        * Wait for spurious interrupts to trigger
-        */
-       for (delay = jiffies + HZ/10; time_after(delay, jiffies); )
-               /* about 100ms delay */ barrier();
-
-       /*
-        * Now filter out any obviously spurious interrupts
-        */
-       val = 0;
-       for (i = 0; i < NR_IRQS; i++) {
-               irq_desc_t *desc = irq_desc + i;
-               unsigned int status;
-
-               spin_lock_irq(&desc->lock);
-               status = desc->status;
-
-               if (status & IRQ_AUTODETECT) {
-                       /* It triggered already - consider it spurious. */
-                       if (!(status & IRQ_WAITING)) {
-                               desc->status = status & ~IRQ_AUTODETECT;
-                               desc->handler->shutdown(i);
-                       } else
-                               if (i < 32)
-                                       val |= 1 << i;
-               }
-               spin_unlock_irq(&desc->lock);
-       }
-
-       return val;
-}
-
-EXPORT_SYMBOL(probe_irq_on);
-
-/*
- * Return a mask of triggered interrupts (this
- * can handle only legacy ISA interrupts).
- */
-
-/**
- *     probe_irq_mask - scan a bitmap of interrupt lines
- *     @val:   mask of interrupts to consider
- *
- *     Scan the ISA bus interrupt lines and return a bitmap of
- *     active interrupts. The interrupt probe logic state is then
- *     returned to its previous value.
- *
- *     Note: we need to scan all the irq's even though we will
- *     only return ISA irq numbers - just so that we reset them
- *     all to a known state.
- */
-unsigned int probe_irq_mask(unsigned long val)
-{
-       int i;
-       unsigned int mask;
-
-       mask = 0;
-       for (i = 0; i < NR_IRQS; i++) {
-               irq_desc_t *desc = irq_desc + i;
-               unsigned int status;
-
-               spin_lock_irq(&desc->lock);
-               status = desc->status;
-
-               if (status & IRQ_AUTODETECT) {
-                       if (i < 16 && !(status & IRQ_WAITING))
-                               mask |= 1 << i;
-
-                       desc->status = status & ~IRQ_AUTODETECT;
-                       desc->handler->shutdown(i);
-               }
-               spin_unlock_irq(&desc->lock);
-       }
-       up(&probe_sem);
-
-       return mask & val;
-}
-
-/*
- * Return the one interrupt that triggered (this can
- * handle any interrupt source).
- */
-
-/**
- *     probe_irq_off   - end an interrupt autodetect
- *     @val: mask of potential interrupts (unused)
- *
- *     Scans the unused interrupt lines and returns the line which
- *     appears to have triggered the interrupt. If no interrupt was
- *     found then zero is returned. If more than one interrupt is
- *     found then minus the first candidate is returned to indicate
- *     there is doubt.
- *
- *     The interrupt probe logic state is returned to its previous
- *     value.
- *
- *     BUGS: When used in a module (which arguably shouldnt happen)
- *     nothing prevents two IRQ probe callers from overlapping. The
- *     results of this are non-optimal.
- */
-
-int probe_irq_off(unsigned long val)
-{
-       int i, irq_found, nr_irqs;
-
-       nr_irqs = 0;
-       irq_found = 0;
-       for (i = 0; i < NR_IRQS; i++) {
-               irq_desc_t *desc = irq_desc + i;
-               unsigned int status;
-
-               spin_lock_irq(&desc->lock);
-               status = desc->status;
-
-               if (status & IRQ_AUTODETECT) {
-                       if (!(status & IRQ_WAITING)) {
-                               if (!nr_irqs)
-                                       irq_found = i;
-                               nr_irqs++;
-                       }
-                       desc->status = status & ~IRQ_AUTODETECT;
-                       desc->handler->shutdown(i);
-               }
-               spin_unlock_irq(&desc->lock);
-       }
-       up(&probe_sem);
-
-       if (nr_irqs > 1)
-               irq_found = -irq_found;
-       return irq_found;
-}
-
-EXPORT_SYMBOL(probe_irq_off);
-
-/* this was setup_x86_irq but it seems pretty generic */
-int setup_irq(unsigned int irq, struct irqaction * new)
-{
-       int shared = 0;
-       unsigned long flags;
-       struct irqaction *old, **p;
-       irq_desc_t *desc = irq_desc + irq;
-
-       /*
-        * Some drivers like serial.c use request_irq() heavily,
-        * so we have to be careful not to interfere with a
-        * running system.
-        */
-       if (new->flags & SA_SAMPLE_RANDOM) {
-               /*
-                * This function might sleep, we want to call it first,
-                * outside of the atomic block.
-                * Yes, this might clear the entropy pool if the wrong
-                * driver is attempted to be loaded, without actually
-                * installing a new handler, but is this really a problem,
-                * only the sysadmin is able to do this.
-                */
-               rand_initialize_irq(irq);
-       }
-
-       /*
-        * The following block of code has to be executed atomically
-        */
-       spin_lock_irqsave(&desc->lock,flags);
-       p = &desc->action;
-       if ((old = *p) != NULL) {
-               /* Can't share interrupts unless both agree to */
-               if (!(old->flags & new->flags & SA_SHIRQ)) {
-                       spin_unlock_irqrestore(&desc->lock,flags);
-                       return -EBUSY;
-               }
-
-               /* add new interrupt at end of irq queue */
-               do {
-                       p = &old->next;
-                       old = *p;
-               } while (old);
-               shared = 1;
-       }
-
-       *p = new;
-
-       if (!shared) {
-               desc->depth = 0;
-               desc->status &= ~(IRQ_DISABLED | IRQ_AUTODETECT | IRQ_WAITING | IRQ_INPROGRESS);
-               desc->handler->startup(irq);
-       }
-       spin_unlock_irqrestore(&desc->lock,flags);
-
-       register_irq_proc(irq);
-       return 0;
-}
-
-void __init init_generic_irq(void)
+void __init init_IRQ(void)
 {
        int i;
 
@@ -820,108 +125,16 @@ void __init init_generic_irq(void)
                irq_desc[i].action  = NULL;
                irq_desc[i].depth   = 1;
                irq_desc[i].handler = &no_irq_type;
+               irq_desc[i].lock = SPIN_LOCK_UNLOCKED;
        }
-}
-
-EXPORT_SYMBOL(disable_irq_nosync);
-EXPORT_SYMBOL(disable_irq);
-EXPORT_SYMBOL(enable_irq);
-EXPORT_SYMBOL(probe_irq_mask);
 
-static struct proc_dir_entry * root_irq_dir;
-static struct proc_dir_entry * irq_dir [NR_IRQS];
+       arch_init_irq();
 
-#ifdef CONFIG_SMP
-
-static struct proc_dir_entry * smp_affinity_entry [NR_IRQS];
-
-static cpumask_t irq_affinity [NR_IRQS] = { [0 ... NR_IRQS-1] = ~0UL };
-static int irq_affinity_read_proc (char *page, char **start, off_t off,
-                       int count, int *eof, void *data)
-{
-       int len = cpumask_scnprintf(page, count, irq_affinity[(long)data]);
-       if (count - len < 2)
-               return -EINVAL;
-       len += sprintf(page + len, "\n");
-       return len;
-}
-
-static int irq_affinity_write_proc (struct file *file, const char *buffer,
-                                       unsigned long count, void *data)
-{
-       int irq = (long) data, full_count = count, err;
-       cpumask_t new_value, tmp;
-
-       if (!irq_desc[irq].handler->set_affinity)
-               return -EIO;
-
-       err = cpumask_parse(buffer, count, new_value);
-
-       /*
-        * Do not allow disabling IRQs completely - it's a too easy
-        * way to make the system unusable accidentally :-) At least
-        * one online CPU still has to be targeted.
-        */
-       cpus_and(tmp, new_value, cpu_online_map);
-       if (cpus_empty(tmp))
-               return -EINVAL;
-
-       irq_affinity[irq] = new_value;
-       irq_desc[irq].handler->set_affinity(irq, new_value);
-
-       return full_count;
-}
-
-#endif
-
-#define MAX_NAMELEN 10
-
-static void register_irq_proc (unsigned int irq)
-{
-       char name [MAX_NAMELEN];
-
-       if (!root_irq_dir || (irq_desc[irq].handler == &no_irq_type) ||
-                       irq_dir[irq])
-               return;
-
-       memset(name, 0, MAX_NAMELEN);
-       sprintf(name, "%d", irq);
-
-       /* create /proc/irq/1234 */
-       irq_dir[irq] = proc_mkdir(name, root_irq_dir);
-
-#ifdef CONFIG_SMP
-       {
-               struct proc_dir_entry *entry;
-
-               /* create /proc/irq/1234/smp_affinity */
-               entry = create_proc_entry("smp_affinity", 0600, irq_dir[irq]);
-
-               if (entry) {
-                       entry->nlink = 1;
-                       entry->data = (void *)(long)irq;
-                       entry->read_proc = irq_affinity_read_proc;
-                       entry->write_proc = irq_affinity_write_proc;
-               }
-
-               smp_affinity_entry[irq] = entry;
+#ifdef CONFIG_KGDB
+       if (kgdb_flag) {
+               printk("Wait for gdb client connection ...\n");
+               set_debug_traps();
+               breakpoint();
        }
 #endif
 }
-
-void init_irq_proc (void)
-{
-       int i;
-
-       /* create /proc/irq */
-       root_irq_dir = proc_mkdir("irq", 0);
-
-       /* create /proc/irq/prof_cpu_mask */
-       create_prof_cpu_mask(root_irq_dir);
-
-       /*
-        * Create entries for all existing IRQs.
-        */
-       for (i = 0; i < NR_IRQS; i++)
-               register_irq_proc(i);
-}
index d607f0b547402a751c39cd1b1058f014a63b210b..fb76e458e340837be234190201fd36e726dee46c 100644 (file)
@@ -5,6 +5,7 @@
  *
  * Copyright (C) 1994 - 1999, 2000 by Ralf Baechle and others.
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2004 Thiemo Seufer
  */
 #include <linux/config.h>
 #include <linux/errno.h>
@@ -99,10 +100,14 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
 
        childksp = (unsigned long)ti + THREAD_SIZE - 32;
 
+       preempt_disable();
+
        if (is_fpu_owner()) {
                save_fp(p);
        }
 
+       preempt_enable();
+
        /* set up new TSS. */
        childregs = (struct pt_regs *) childksp - 1;
        *childregs = *regs;
@@ -154,39 +159,30 @@ int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
 /*
  * Create a kernel thread
  */
+ATTRIB_NORET void kernel_thread_helper(void *arg, int (*fn)(void *))
+{
+       do_exit(fn(arg));
+}
+
 long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
 {
-       long retval;
-
-       __asm__ __volatile__(
-               "       move    $6, $sp         \n"
-               "       move    $4, %5          \n"
-               "       li      $2, %1          \n"
-               "       syscall                 \n"
-               "       beq     $6, $sp, 1f     \n"
-#ifdef CONFIG_MIPS32   /* On o32 the caller has to create the stackframe */
-               "       subu    $sp, 32         \n"
-#endif
-               "       move    $4, %3          \n"
-               "       jalr    %4              \n"
-               "       move    $4, $2          \n"
-               "       li      $2, %2          \n"
-               "       syscall                 \n"
-#ifdef CONFIG_MIPS32   /* On o32 the caller has to deallocate the stackframe */
-               "       addiu   $sp, 32         \n"
+       struct pt_regs regs;
+
+       memset(&regs, 0, sizeof(regs));
+
+       regs.regs[4] = (unsigned long) arg;
+       regs.regs[5] = (unsigned long) fn;
+       regs.cp0_epc = (unsigned long) kernel_thread_helper;
+       regs.cp0_status = read_c0_status();
+#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
+       regs.cp0_status &= ~(ST0_KUP | ST0_IEC);
+       regs.cp0_status |= ST0_IEP;
+#else
+       regs.cp0_status |= ST0_EXL;
 #endif
-               "1:     move    %0, $2"
-               : "=r" (retval)
-               : "i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
-                 "r" (flags | CLONE_VM | CLONE_UNTRACED)
-                /*
-                 * The called subroutine might have destroyed any of the
-                 * at, result, argument or temporary registers ...
-                 */
-               : "$2", "$3", "$4", "$5", "$6", "$7", "$8",
-                 "$9","$10","$11","$12","$13","$14","$15","$24","$25","$31");
-
-       return retval;
+
+       /* Ok, create the new process.. */
+       return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, &regs, 0, NULL, NULL);
 }
 
 struct mips_frame_info {
index 9eb885d239b5a66ca6f4c5bcd5a94cac1a054274..1fc3b2eb12bd2d80de44b5f86c479a1487161360 100644 (file)
        and     t0, t0, t1
        LONG_S  t0, ST_OFF(t3)
 
-#ifdef CONFIG_MIPS32
-       fpu_save_double a0 t0                   # clobbers t0
-#endif
-#ifdef CONFIG_MIPS64
-       sll     t2, t0, 5
-       bgez    t2, 2f
-       sdc1    $f0, (THREAD_FPU + 0x00)(a0)
-        fpu_save_16odd a0
-2:
-        fpu_save_16even a0 t1                   # clobbers t1
-#endif
+       fpu_save_double a0 t1 t0 t2             # c0_status passed in t1
+                                               # clobbers t0 and t2
 1:
 
        /*
  * Save a thread's fp context.
  */
 LEAF(_save_fp)
-#ifdef CONFIG_MIPS32
-       fpu_save_double a0 t1                   # clobbers t1
-#endif
 #ifdef CONFIG_MIPS64
-       mfc0    t0, CP0_STATUS
-       sll     t1, t0, 5
-       bgez    t1, 1f                          # 16 register mode?
-       fpu_save_16odd a0
-1:
-       fpu_save_16even a0 t1                   # clobbers t1
-       sdc1    $f0, (THREAD_FPU + 0x00)(a0)
+       mfc0    t1, CP0_STATUS
 #endif
+       fpu_save_double a0 t1 t0 t2             # clobbers t1
        jr      ra
        END(_save_fp)
 
@@ -133,19 +116,7 @@ LEAF(_save_fp)
  * Restore a thread's fp context.
  */
 LEAF(_restore_fp)
-#ifdef CONFIG_MIPS32
        fpu_restore_double a0, t1               # clobbers t1
-#endif
-#ifdef CONFIG_MIPS64
-       mfc0    t0, CP0_STATUS
-       sll     t1, t0, 5
-       bgez    t1, 1f                          # 16 register mode?
-
-       fpu_restore_16odd a0
-1:     fpu_restore_16even a0, t0               # clobbers t0
-        ldc1   $f0, (THREAD_FPU + 0x00)(a0)
-#endif
-
        jr      ra
        END(_restore_fp)
 
index 24eab2f9d7dd53b867d059b706ddefe05e5ea049..0cb95deaab8794687622f7d0eb44369cee818f37 100644 (file)
@@ -17,6 +17,7 @@
 #include <asm/sysmips.h>
 #include <asm/thread_info.h>
 #include <asm/unistd.h>
+#include <asm/war.h>
 #include <asm/offset.h>
 
 /* Highest syscall used of any syscall flavour */
@@ -65,7 +66,7 @@ stack_done:
                                        # restarting
 1:     sw      v0, PT_R2(sp)           # result
 
-EXPORT(o32_syscall_exit)
+o32_syscall_exit:
        local_irq_disable               # make sure need_resched and
                                        # signals dont change between
                                        # sampling and return
@@ -83,17 +84,16 @@ o32_syscall_exit_work:
 
 syscall_trace_entry:
        SAVE_STATIC
-       sw      t2, PT_R1(sp)
+       move    s0, t2
        move    a0, sp
        li      a1, 0
        jal     do_syscall_trace
-       lw      t2, PT_R1(sp)
 
        lw      a0, PT_R4(sp)           # Restore argument registers
        lw      a1, PT_R5(sp)
        lw      a2, PT_R6(sp)
        lw      a3, PT_R7(sp)
-       jalr    t2
+       jalr    s0
 
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
@@ -199,7 +199,11 @@ illegal_syscall:
 1:     ll      v0, (a1)
        move    a0, a2
 2:     sc      a0, (a1)
+#if R10000_LLSC_WAR
+       beqzl   a0, 1b
+#else
        beqz    a0, 1b
+#endif
 
        .section __ex_table,"a"
        PTR     1b, bad_stack
@@ -618,7 +622,7 @@ out:        jr      ra
        sys     sys_clock_nanosleep     4       /* 4265 */
        sys     sys_tgkill              3
        sys     sys_utimes              2
-       sys     sys_ni_syscall          0       /* sys_mbind */
+       sys     sys_mbind               4
        sys     sys_ni_syscall          0       /* sys_get_mempolicy */
        sys     sys_ni_syscall          0       /* 4270 sys_set_mempolicy */
        sys     sys_mq_open             4
@@ -628,6 +632,11 @@ out:       jr      ra
        sys     sys_mq_notify           2       /* 4275 */
        sys     sys_mq_getsetattr       3
        sys     sys_ni_syscall          0       /* sys_vserver */
+       sys     sys_waitid              4
+       sys     sys_ni_syscall          0       /* available, was setaltroot */
+       sys     sys_add_key             5
+       sys     sys_request_key         4
+       sys     sys_keyctl              5
 
        .endm
 
index 3125b634faecc64da9effe9564e2b9b855d111fe..d0e60b84e51308f8adf350db573e78aed7b5f776 100644 (file)
@@ -18,6 +18,7 @@
 #include <asm/sysmips.h>
 #include <asm/thread_info.h>
 #include <asm/unistd.h>
+#include <asm/war.h>
 
 #ifndef CONFIG_BINFMT_ELF32
 /* Neither O32 nor N32, so define handle_sys here */
@@ -37,8 +38,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
        .set    at
 #endif
 
-FEXPORT(__handle_sys64)
-       subu    t0, v0, __NR_64_Linux   # check syscall number
+       dsubu   t0, v0, __NR_64_Linux   # check syscall number
        sltiu   t0, t0, __NR_64_Linux_syscalls + 1
 #if !defined(CONFIG_MIPS32_O32) && !defined(CONFIG_MIPS32_N32)
        ld      t1, PT_EPC(sp)          # skip syscall on return
@@ -63,12 +63,12 @@ FEXPORT(__handle_sys64)
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall
                                        # restarting
 1:     sd      v0, PT_R2(sp)           # result
 
-syscall_exit:
+n64_syscall_exit:
        local_irq_disable               # make sure need_resched and
                                        # signals dont change between
                                        # sampling and return
@@ -86,24 +86,25 @@ n64_syscall_exit_work:
 
 syscall_trace_entry:
        SAVE_STATIC
-       sd      t2,PT_R1(sp)
+       move    s0, t2
        move    a0, sp
        li      a1, 0
        jal     do_syscall_trace
-       ld      t2,PT_R1(sp)
 
        ld      a0, PT_R4(sp)           # Restore argument registers
        ld      a1, PT_R5(sp)
        ld      a2, PT_R6(sp)
        ld      a3, PT_R7(sp)
-       jalr    t2
+       ld      a4, PT_R8(sp)
+       ld      a5, PT_R9(sp)
+       jalr    s0
 
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
@@ -115,7 +116,7 @@ illegal_syscall:
        sd      v0, PT_R2(sp)
        li      t0, 1                           # set error flag
        sd      t0, PT_R7(sp)
-       j       syscall_exit
+       j       n64_syscall_exit
        END(handle_sys64)
 
        LEAF(mips_atomic_set)
@@ -133,7 +134,11 @@ illegal_syscall:
 1:     ll      v0, (a1)
        move    a0, a2
 2:     sc      a0, (a1)
+#if R10000_LLSC_WAR
+       beqzl   a0, 1b
+#else
        beqz    a0, 1b
+#endif
 
        .section __ex_table,"a"
        PTR     1b, bad_stack
@@ -173,7 +178,7 @@ illegal_syscall:
        and     t0, a2, t0
        bnez    t0, 1f
 
-       b       syscall_exit
+       j       n64_syscall_exit
 
 1:     SAVE_STATIC
        move    a0, sp
@@ -198,17 +203,6 @@ bad_alignment:
        j       _sys_sysmips
        END(sys_sysmips)
 
-       LEAF(sys_syscall)                       /* Quick'n'dirty ... */
-       move    v0, a0
-       move    a0, a1
-       move    a1, a2
-       move    a2, a3
-       move    a3, a4
-       move    a4, a5
-       move    a5, a6
-       j       __handle_sys64
-       END(sys_syscall)
-
        .align  3
 sys_call_table:
        PTR     sys_read                        /* 5000 */
@@ -438,7 +432,7 @@ sys_call_table:
        PTR     sys_clock_nanosleep
        PTR     sys_tgkill                      /* 5225 */
        PTR     sys_utimes
-       PTR     sys_ni_syscall                  /* sys_mbind */
+       PTR     sys_mbind
        PTR     sys_ni_syscall                  /* sys_get_mempolicy */
        PTR     sys_ni_syscall                  /* sys_set_mempolicy */
        PTR     sys_mq_open                     /* 5230 */
@@ -448,3 +442,8 @@ sys_call_table:
        PTR     sys_mq_notify
        PTR     sys_mq_getsetattr               /* 5235 */
        PTR     sys_ni_syscall                  /* sys_vserver */
+       PTR     sys_waitid
+       PTR     sys_ni_syscall                  /* available, was setaltroot */
+       PTR     sys_add_key
+       PTR     sys_request_key                 /* 5240 */
+       PTR     sys_keyctl
index c00459f8f59d0b257173d6e51d9a79b22da17a3e..0d49ab1c2385a316d762d82498a1f91c32da398b 100644 (file)
@@ -37,7 +37,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
        .set    at
 #endif
 
-       subu    t0, v0, __NR_N32_Linux  # check syscall number
+       dsubu   t0, v0, __NR_N32_Linux  # check syscall number
        sltiu   t0, t0, __NR_N32_Linux_syscalls + 1
 
 #ifndef CONFIG_MIPS32_O32
@@ -64,11 +64,10 @@ NESTED(handle_sysn32, PT_SIZE, sp)
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
-FEXPORT(n32_syscall_exit)
        local_irq_disable               # make sure need_resched and
                                        # signals dont change between
                                        # sampling and return
@@ -86,28 +85,29 @@ n32_syscall_exit_work:
 
 n32_syscall_trace_entry:
        SAVE_STATIC
-       sd      t2,PT_R1(sp)
+       move    s0, t2
        move    a0, sp
        li      a1, 0
        jal     do_syscall_trace
-       ld      t2,PT_R1(sp)
 
        ld      a0, PT_R4(sp)           # Restore argument registers
        ld      a1, PT_R5(sp)
        ld      a2, PT_R6(sp)
        ld      a3, PT_R7(sp)
-       jalr    t2
+       ld      a4, PT_R8(sp)
+       ld      a5, PT_R9(sp)
+       jalr    s0
 
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
-       j       n32_syscall_exit
+       j       syscall_exit
 
 not_n32_scall:
        /* This is not an n32 compatibility syscall, pass it on to
@@ -334,8 +334,8 @@ EXPORT(sysn32_call_table)
        PTR     sys_restart_syscall
        PTR     sys_semtimedop                  /* 6215 */
        PTR     sys_fadvise64_64
-       PTR     sys_statfs64
-       PTR     sys_fstatfs64
+       PTR     compat_sys_statfs64
+       PTR     compat_sys_fstatfs64
        PTR     sys_sendfile64
        PTR     sys_timer_create                /* 6220 */
        PTR     sys_timer_settime
@@ -356,5 +356,10 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_mq_timedsend
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify
-       PTR     compat_sys_mq_getsetattr        /* 6239 */
-       PTR     sys_ni_syscall                  /* sys_vserver */
+       PTR     compat_sys_mq_getsetattr
+       PTR     sys_ni_syscall                  /* 6240, sys_vserver */
+       PTR     sys_waitid
+       PTR     sys_ni_syscall                  /* available, was setaltroot */
+       PTR     sys_add_key
+       PTR     sys_request_key
+       PTR     sys_keyctl                      /* 6245 */
index 3a89bf425bf692ab7d3bba6505068147dadcd292..433fc3cdc2ab999e2de3f079504f7c0cc6e327f4 100644 (file)
@@ -31,7 +31,7 @@ NESTED(handle_sys, PT_SIZE, sp)
        .set    at
        ld      t1, PT_EPC(sp)          # skip syscall on return
 
-       subu    t0, v0, __NR_O32_Linux  # check syscall number
+       dsubu   t0, v0, __NR_O32_Linux  # check syscall number
        sltiu   t0, t0, __NR_O32_Linux_syscalls + 1
        daddiu  t1, 4                   # skip to next instruction
        sd      t1, PT_EPC(sp)
@@ -48,16 +48,33 @@ NESTED(handle_sys, PT_SIZE, sp)
        sll     a2, a2, 0
        sll     a3, a3, 0
 
-       /* XXX Put both in one cacheline, should save a bit. */
        dsll    t0, v0, 3               # offset into table
        ld      t2, (sys_call_table - (__NR_O32_Linux * 8))(t0)
-       lbu     t3, (sys_narg_table - __NR_O32_Linux)(v0)
 
-       subu    t0, t3, 5               # 5 or more arguments?
        sd      a3, PT_R26(sp)          # save a3 for syscall restarting
-       bgez    t0, stackargs
 
-stack_done:
+       /*
+        * More than four arguments.  Try to deal with it by copying the
+        * stack arguments from the user stack to the kernel stack.
+        * This Sucks (TM).
+        *
+        * We intentionally keep the kernel stack a little below the top of
+        * userspace so we don't have to do a slower byte accurate check here.
+        */
+       ld      t0, PT_R29(sp)          # get old user stack pointer
+       daddu   t1, t0, 32
+       bltz    t1, bad_stack
+
+1:     lw      a4, 16(t0)              # argument #5 from usp
+2:     lw      a5, 20(t0)              # argument #6 from usp
+3:     lw      a6, 24(t0)              # argument #7 from usp
+
+       .section __ex_table,"a"
+       PTR     1b, bad_stack
+       PTR     2b, bad_stack
+       PTR     3b, bad_stack
+       .previous
+
        li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
        LONG_L  t0, TI_FLAGS($28)       # syscall tracing enabled?
        and     t0, t1, t0
@@ -70,7 +87,7 @@ stack_done:
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
@@ -97,11 +114,10 @@ trace_a_syscall:
        sd      a6, PT_R10(sp)
        sd      a7, PT_R11(sp)
 
-       sd      t2,PT_R1(sp)
+       move    s0, t2
        move    a0, sp
        li      a1, 0
        jal     do_syscall_trace
-       ld      t2,PT_R1(sp)
 
        ld      a0, PT_R4(sp)           # Restore argument registers
        ld      a1, PT_R5(sp)
@@ -109,15 +125,15 @@ trace_a_syscall:
        ld      a3, PT_R7(sp)
        ld      a4, PT_R8(sp)
        ld      a5, PT_R9(sp)
-
-       jalr    t2
+       ld      a6, PT_R10(sp)          # For indirect syscalls
+       jalr    s0
 
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
@@ -125,46 +141,11 @@ trace_a_syscall:
 
 /* ------------------------------------------------------------------------ */
 
-       /*
-        * More than four arguments.  Try to deal with it by copying the
-        * stack arguments from the user stack to the kernel stack.
-        * This Sucks (TM).
-        */
-stackargs:
-       ld      t0, PT_R29(sp)          # get old user stack pointer
-       subu    t3, 4
-       sll     t1, t3, 2               # stack valid?
-
-       addu    t1, t0                  # end address
-       or      t0, t1
-       bltz    t0, bad_stack           # -> sp is bad
-
-       ld      t0, PT_R29(sp)          # get old user stack pointer
-       PTR_LA  t1, 3f                  # copy 1 to 2 arguments
-       sll     t3, t3, 2
-       subu    t1, t3
-       jr      t1
-
-       /* Ok, copy the args from the luser stack to the kernel stack */
-       .set    push
-       .set    noreorder
-       .set    nomacro
-1:     lw      a5, 20(t0)              # argument #6 from usp
-2:     lw      a4, 16(t0)              # argument #5 from usp
-3:     .set    pop
-
-       j       stack_done              # go back
-
-       .section __ex_table,"a"
-       PTR     1b, bad_stack
-       PTR     2b, bad_stack
-       .previous
-
        /*
         * The stackpointer for a call with more than 4 arguments is bad.
         */
 bad_stack:
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)
        sd      v0, PT_R2(sp)
        li      t0, 1                   # set error flag
@@ -200,7 +181,6 @@ LEAF(sys32_syscall)
        dsll    v0, a0, 3
        dla     v1, sys32_syscall
        ld      t2, (sys_call_table - (__NR_O32_Linux * 8))(v0)
-       lbu     t3, (sys_narg_table - __NR_O32_Linux)(a0)
 
        li      v0, -EINVAL
        beq     t2, v1, out             # do not recurse
@@ -220,26 +200,9 @@ LEAF(sys32_syscall)
        move    a0, a1                  # shift argument registers
        move    a1, a2
        move    a2, a3
-
-1:     lw      a3, 16(t0)
-2:     lw      t3, 20(t0)
-3:     lw      t1, 24(t0)
-
-       .section __ex_table,"a"
-       PTR     1b, efault
-       PTR     2b, efault
-       PTR     3b, efault
-       .previous
-
-       sw      t3, 16(sp)              # put into new stackframe
-       sw      t1, 20(sp)
-
-       bnez    t1, 1f                  # zero arguments?
-       daddu   a0, sp, 32              # then pass sp in a0
-1:
-
-       sw      t3, 16(sp)
-       sw      v1, 20(sp)
+       move    a3, a4
+       move    a4, a5
+       move    a5, a6
        jr      t2
        /* Unreached */
 
@@ -257,299 +220,290 @@ efault: li      v0, -EFAULT
 out:   jr      ra
        END(sys32_syscall)
 
-       .macro  syscalltable
-       sys     sys32_syscall   0                       /* 4000 */
-       sys     sys_exit        1
-       sys     sys_fork        0
-       sys     sys_read        3
-       sys     sys_write       3
-       sys     sys_open        3                       /* 4005 */
-       sys     sys_close       1
-       sys     sys_waitpid     3
-       sys     sys_creat       2
-       sys     sys_link        2
-       sys     sys_unlink      1                       /* 4010 */
-       sys     sys32_execve    0
-       sys     sys_chdir       1
-       sys     sys_time        1
-       sys     sys_mknod       3
-       sys     sys_chmod       2                       /* 4015 */
-       sys     sys_lchown      3
-       sys     sys_ni_syscall  0
-       sys     sys_ni_syscall  0                       /* was sys_stat */
-       sys     sys_lseek       3
-       sys     sys_getpid      0                       /* 4020 */
-       sys     sys_mount       5
-       sys     sys_oldumount   1
-       sys     sys_setuid      1
-       sys     sys_getuid      0
-       sys     sys_stime       1                       /* 4025 */
-       sys     sys32_ptrace    4
-       sys     sys_alarm       1
-       sys     sys_ni_syscall  0                       /* was sys_fstat */
-       sys     sys_pause       0
-       sys     compat_sys_utime        2                       /* 4030 */
-       sys     sys_ni_syscall  0
-       sys     sys_ni_syscall  0
-       sys     sys_access      2
-       sys     sys_nice        1
-       sys     sys_ni_syscall  0                       /* 4035 */
-       sys     sys_sync        0
-       sys     sys_kill        2
-       sys     sys_rename      2
-       sys     sys_mkdir       2
-       sys     sys_rmdir       1                       /* 4040 */
-       sys     sys_dup         1
-       sys     sys_pipe        0
-       sys     compat_sys_times        1
-       sys     sys_ni_syscall  0
-       sys     sys_brk         1                       /* 4045 */
-       sys     sys_setgid      1
-       sys     sys_getgid      0
-       sys     sys_ni_syscall  0       /* was signal   2 */
-       sys     sys_geteuid     0
-       sys     sys_getegid     0                       /* 4050 */
-       sys     sys_acct        0
-       sys     sys_umount      2
-       sys     sys_ni_syscall  0
-       sys     compat_sys_ioctl        3
-       sys     compat_sys_fcntl        3               /* 4055 */
-       sys     sys_ni_syscall  2
-       sys     sys_setpgid     2
-       sys     sys_ni_syscall, 0
-       sys     sys_olduname    1
-       sys     sys_umask       1                       /* 4060 */
-       sys     sys_chroot      1
-       sys     sys32_ustat     2
-       sys     sys_dup2        2
-       sys     sys_getppid     0
-       sys     sys_getpgrp     0                       /* 4065 */
-       sys     sys_setsid      0
-       sys     sys32_sigaction 3
-       sys     sys_sgetmask    0
-       sys     sys_ssetmask    1
-       sys     sys_setreuid    2                       /* 4070 */
-       sys     sys_setregid    2
-       sys     sys32_sigsuspend        0
-       sys     compat_sys_sigpending   1
-       sys     sys_sethostname 2
-       sys     compat_sys_setrlimit    2               /* 4075 */
-       sys     compat_sys_getrlimit    2
-       sys     compat_sys_getrusage    2
-       sys     sys32_gettimeofday 2
-       sys     sys32_settimeofday 2
-       sys     sys_getgroups   2                       /* 4080 */
-       sys     sys_setgroups   2
-       sys     sys_ni_syscall  0                       /* old_select */
-       sys     sys_symlink     2
-       sys     sys_ni_syscall  0                       /* was sys_lstat */
-       sys     sys_readlink    3                       /* 4085 */
-       sys     sys_uselib      1
-       sys     sys_swapon      2
-       sys     sys_reboot      3
-       sys     sys32_readdir   3
-       sys     old_mmap        6                       /* 4090 */
-       sys     sys_munmap      2
-       sys     sys_truncate    2
-       sys     sys_ftruncate   2
-       sys     sys_fchmod      2
-       sys     sys_fchown      3                       /* 4095 */
-       sys     sys_getpriority 2
-       sys     sys_setpriority 3
-       sys     sys_ni_syscall  0
-       sys     compat_sys_statfs       2
-       sys     compat_sys_fstatfs      2               /* 4100 */
-       sys     sys_ni_syscall          0               /* sys_ioperm */
-       sys     sys32_socketcall                2
-       sys     sys_syslog              3
-       sys     compat_sys_setitimer    3
-       sys     compat_sys_getitimer    2       /* 4105 */
-       sys     compat_sys_newstat      2
-       sys     compat_sys_newlstat     2
-       sys     compat_sys_newfstat     2
-       sys     sys_uname               1
-       sys     sys_ni_syscall          0       /* sys_ioperm  *//* 4110 */
-       sys     sys_vhangup             0
-       sys     sys_ni_syscall          0       /* was sys_idle  */
-       sys     sys_ni_syscall          0       /* sys_vm86 */
-       sys     sys32_wait4             4
-       sys     sys_swapoff             1       /* 4115 */
-       sys     sys32_sysinfo           1
-       sys     sys32_ipc               6
-       sys     sys_fsync       1
-       sys     sys32_sigreturn 0
-       sys     sys_clone       0                       /* 4120 */
-       sys     sys_setdomainname 2
-       sys     sys32_newuname  1
-       sys     sys_ni_syscall  0       /* sys_modify_ldt */
-       sys     sys32_adjtimex  1
-       sys     sys_mprotect    3                       /* 4125 */
-       sys     compat_sys_sigprocmask  3
-       sys     sys_ni_syscall  0                       /* was creat_module */
-       sys     sys_init_module 5
-       sys     sys_delete_module 1
-       sys     sys_ni_syscall  0               /* 4130, get_kernel_syms */
-       sys     sys_quotactl    0
-       sys     sys_getpgid     1
-       sys     sys_fchdir      1
-       sys     sys_bdflush     2
-       sys     sys_sysfs       3                       /* 4135 */
-       sys     sys32_personality       1
-       sys     sys_ni_syscall  0 /* for afs_syscall */
-       sys     sys_setfsuid    1
-       sys     sys_setfsgid    1
-       sys     sys32_llseek    5                       /* 4140 */
-       sys     sys32_getdents  3
-       sys     compat_sys_select       5
-       sys     sys_flock       2
-       sys     sys_msync       3
-       sys     compat_sys_readv        3               /* 4145 */
-       sys     compat_sys_writev       3
-       sys     sys_cacheflush  3
-       sys     sys_cachectl    3
-       sys     sys_sysmips     4
-       sys     sys_ni_syscall  0                       /* 4150 */
-       sys     sys_getsid      1
-       sys     sys_fdatasync   0
-       sys     sys32_sysctl    1
-       sys     sys_mlock       2
-       sys     sys_munlock     2                       /* 4155 */
-       sys     sys_mlockall    1
-       sys     sys_munlockall  0
-       sys     sys_sched_setparam 2
-       sys     sys_sched_getparam 2
-       sys     sys_sched_setscheduler 3                /* 4160 */
-       sys     sys_sched_getscheduler 1
-       sys     sys_sched_yield 0
-       sys     sys_sched_get_priority_max 1
-       sys     sys_sched_get_priority_min 1
-       sys     sys32_sched_rr_get_interval 2           /* 4165 */
-       sys     compat_sys_nanosleep    2
-       sys     sys_mremap      4
-       sys     sys_accept      3
-       sys     sys_bind        3
-       sys     sys_connect     3                       /* 4170 */
-       sys     sys_getpeername 3
-       sys     sys_getsockname 3
-       sys     sys_getsockopt  5
-       sys     sys_listen      2
-       sys     sys_recv        4                       /* 4175 */
-       sys     sys_recvfrom    6
-       sys     compat_sys_recvmsg      3
-       sys     sys_send        4
-       sys     compat_sys_sendmsg      3
-       sys     sys_sendto      6                       /* 4180 */
-       sys     compat_sys_setsockopt   5
-       sys     sys_shutdown    2
-       sys     sys_socket      3
-       sys     sys_socketpair  4
-       sys     sys_setresuid   3                       /* 4185 */
-       sys     sys_getresuid   3
-       sys     sys_ni_syscall  0                       /* was query_module */
-       sys     sys_poll        3
-       sys     sys_nfsservctl  3
-       sys     sys_setresgid   3                       /* 4190 */
-       sys     sys_getresgid   3
-       sys     sys_prctl       5
-       sys     sys32_rt_sigreturn 0
-       sys     sys32_rt_sigaction 4
-       sys     sys32_rt_sigprocmask 4                  /* 4195 */
-       sys     sys32_rt_sigpending 2
-       sys     sys32_rt_sigtimedwait 4
-       sys     sys32_rt_sigqueueinfo 3
-       sys     sys32_rt_sigsuspend 0
-       sys     sys32_pread     6                       /* 4200 */
-       sys     sys32_pwrite    6
-       sys     sys_chown       3
-       sys     sys_getcwd      2
-       sys     sys_capget      2
-       sys     sys_capset      2                       /* 4205 */
-       sys     sys32_sigaltstack       0
-       sys     sys32_sendfile  4
-       sys     sys_ni_syscall  0
-       sys     sys_ni_syscall  0
-       sys     sys32_mmap2     6                       /* 4210 */
-       sys     sys32_truncate64        4
-       sys     sys32_ftruncate64       4
-       sys     sys_newstat     2
-       sys     sys_newlstat    2
-       sys     sys_newfstat    2                       /* 4215 */
-       sys     sys_pivot_root  2
-       sys     sys_mincore     3
-       sys     sys_madvise     3
-       sys     sys_getdents64  3
-       sys     compat_sys_fcntl64      3               /* 4220 */
-       sys     sys_ni_syscall  0
-       sys     sys_gettid      0
-       sys     sys32_readahead 5
-       sys     sys_setxattr    5
-       sys     sys_lsetxattr   5                       /* 4225 */
-       sys     sys_fsetxattr   5
-       sys     sys_getxattr    4
-       sys     sys_lgetxattr   4
-       sys     sys_fgetxattr   4
-       sys     sys_listxattr   3                       /* 4230 */
-       sys     sys_llistxattr  3
-       sys     sys_flistxattr  3
-       sys     sys_removexattr 2
-       sys     sys_lremovexattr        2
-       sys     sys_fremovexattr        2               /* 4235 */
-       sys     sys_tkill               2
-       sys     sys_sendfile64          5
-       sys     compat_sys_futex        5
-       sys     compat_sys_sched_setaffinity    3
-       sys     compat_sys_sched_getaffinity    3       /* 4240 */
-       sys     sys_io_setup            2
-       sys     sys_io_destroy          1
-       sys     sys_io_getevents        5
-       sys     sys_io_submit           3
-       sys     sys_io_cancel           3               /* 4245 */
-       sys     sys_exit_group          1
-       sys     sys_lookup_dcookie      3
-       sys     sys_epoll_create        1
-       sys     sys_epoll_ctl           4
-       sys     sys_epoll_wait          3               /* 4250 */
-       sys     sys_remap_file_pages    5
-       sys     sys_set_tid_address     1
-       sys     sys_restart_syscall     0
-       sys     sys_fadvise64_64        7
-       sys     sys_statfs64            3               /* 4255 */
-       sys     sys_fstatfs64           2
-       sys     sys_timer_create        3
-       sys     sys_timer_settime       4
-       sys     sys_timer_gettime       2
-       sys     sys_timer_getoverrun    1               /* 4260 */
-       sys     sys_timer_delete        1
-       sys     sys_clock_settime       2
-       sys     sys_clock_gettime       2
-       sys     sys_clock_getres        2
-       sys     sys_clock_nanosleep     4               /* 4265 */
-       sys     sys_tgkill              3
-       sys     compat_sys_utimes       2
-       sys     sys_ni_syscall          0       /* sys_mbind */
-       sys     sys_ni_syscall          0       /* sys_get_mempolicy */
-       sys     sys_ni_syscall          0       /* 4270 sys_set_mempolicy */
-       sys     compat_sys_mq_open      4
-       sys     sys_mq_unlink           1
-       sys     compat_sys_mq_timedsend 5
-       sys     compat_sys_mq_timedreceive 5
-       sys     compat_sys_mq_notify    2       /* 4275 */
-       sys     compat_sys_mq_getsetattr 3
-       sys     sys_ni_syscall          0       /* sys_vserver */
-
-       .endm
-
-       .macro  sys function, nargs
-       PTR     \function
-       .endm
-
        .align  3
+       .type   sys_call_table,@object;
 sys_call_table:
-       syscalltable
-
-       .macro  sys function, nargs
-       .byte   \nargs
-       .endm
-
-sys_narg_table:
-       syscalltable
+       PTR     sys32_syscall                   /* 4000 */
+       PTR     sys_exit
+       PTR     sys_fork
+       PTR     sys_read
+       PTR     sys_write
+       PTR     sys_open                        /* 4005 */
+       PTR     sys_close
+       PTR     sys_waitpid
+       PTR     sys_creat
+       PTR     sys_link
+       PTR     sys_unlink                      /* 4010 */
+       PTR     sys32_execve
+       PTR     sys_chdir
+       PTR     sys_time
+       PTR     sys_mknod
+       PTR     sys_chmod                       /* 4015 */
+       PTR     sys_lchown
+       PTR     sys_ni_syscall
+       PTR     sys_ni_syscall                  /* was sys_stat */
+       PTR     sys_lseek
+       PTR     sys_getpid                      /* 4020 */
+       PTR     sys_mount
+       PTR     sys_oldumount
+       PTR     sys_setuid
+       PTR     sys_getuid
+       PTR     sys_stime                       /* 4025 */
+       PTR     sys32_ptrace
+       PTR     sys_alarm
+       PTR     sys_ni_syscall                  /* was sys_fstat */
+       PTR     sys_pause
+       PTR     compat_sys_utime                /* 4030 */
+       PTR     sys_ni_syscall
+       PTR     sys_ni_syscall
+       PTR     sys_access
+       PTR     sys_nice
+       PTR     sys_ni_syscall                  /* 4035 */
+       PTR     sys_sync
+       PTR     sys_kill
+       PTR     sys_rename
+       PTR     sys_mkdir
+       PTR     sys_rmdir                       /* 4040 */
+       PTR     sys_dup
+       PTR     sys_pipe
+       PTR     compat_sys_times
+       PTR     sys_ni_syscall
+       PTR     sys_brk                         /* 4045 */
+       PTR     sys_setgid
+       PTR     sys_getgid
+       PTR     sys_ni_syscall                  /* was signal   2 */
+       PTR     sys_geteuid
+       PTR     sys_getegid                     /* 4050 */
+       PTR     sys_acct
+       PTR     sys_umount
+       PTR     sys_ni_syscall
+       PTR     compat_sys_ioctl
+       PTR     compat_sys_fcntl                /* 4055 */
+       PTR     sys_ni_syscall
+       PTR     sys_setpgid
+       PTR     sys_ni_syscall
+       PTR     sys_olduname
+       PTR     sys_umask                       /* 4060 */
+       PTR     sys_chroot
+       PTR     sys32_ustat
+       PTR     sys_dup2
+       PTR     sys_getppid
+       PTR     sys_getpgrp                     /* 4065 */
+       PTR     sys_setsid
+       PTR     sys32_sigaction
+       PTR     sys_sgetmask
+       PTR     sys_ssetmask
+       PTR     sys_setreuid                    /* 4070 */
+       PTR     sys_setregid
+       PTR     sys32_sigsuspend
+       PTR     compat_sys_sigpending
+       PTR     sys_sethostname
+       PTR     compat_sys_setrlimit            /* 4075 */
+       PTR     compat_sys_getrlimit
+       PTR     compat_sys_getrusage
+       PTR     sys32_gettimeofday
+       PTR     sys32_settimeofday
+       PTR     sys_getgroups                   /* 4080 */
+       PTR     sys_setgroups
+       PTR     sys_ni_syscall                  /* old_select */
+       PTR     sys_symlink
+       PTR     sys_ni_syscall                  /* was sys_lstat */
+       PTR     sys_readlink                    /* 4085 */
+       PTR     sys_uselib
+       PTR     sys_swapon
+       PTR     sys_reboot
+       PTR     sys32_readdir
+       PTR     old_mmap                        /* 4090 */
+       PTR     sys_munmap
+       PTR     sys_truncate
+       PTR     sys_ftruncate
+       PTR     sys_fchmod
+       PTR     sys_fchown                      /* 4095 */
+       PTR     sys_getpriority
+       PTR     sys_setpriority
+       PTR     sys_ni_syscall
+       PTR     compat_sys_statfs
+       PTR     compat_sys_fstatfs              /* 4100 */
+       PTR     sys_ni_syscall                  /* sys_ioperm */
+       PTR     sys32_socketcall
+       PTR     sys_syslog
+       PTR     compat_sys_setitimer
+       PTR     compat_sys_getitimer            /* 4105 */
+       PTR     compat_sys_newstat
+       PTR     compat_sys_newlstat
+       PTR     compat_sys_newfstat
+       PTR     sys_uname
+       PTR     sys_ni_syscall                  /* sys_ioperm  *//* 4110 */
+       PTR     sys_vhangup
+       PTR     sys_ni_syscall                  /* was sys_idle  */
+       PTR     sys_ni_syscall                  /* sys_vm86 */
+       PTR     sys32_wait4
+       PTR     sys_swapoff                     /* 4115 */
+       PTR     sys32_sysinfo
+       PTR     sys32_ipc
+       PTR     sys_fsync
+       PTR     sys32_sigreturn
+       PTR     sys_clone                       /* 4120 */
+       PTR     sys_setdomainname
+       PTR     sys32_newuname
+       PTR     sys_ni_syscall                  /* sys_modify_ldt */
+       PTR     sys32_adjtimex
+       PTR     sys_mprotect                    /* 4125 */
+       PTR     compat_sys_sigprocmask
+       PTR     sys_ni_syscall                  /* was creat_module */
+       PTR     sys_init_module
+       PTR     sys_delete_module
+       PTR     sys_ni_syscall                  /* 4130, get_kernel_syms */
+       PTR     sys_quotactl
+       PTR     sys_getpgid
+       PTR     sys_fchdir
+       PTR     sys_bdflush
+       PTR     sys_sysfs                       /* 4135 */
+       PTR     sys32_personality
+       PTR     sys_ni_syscall                  /* for afs_syscall */
+       PTR     sys_setfsuid
+       PTR     sys_setfsgid
+       PTR     sys32_llseek                    /* 4140 */
+       PTR     sys32_getdents
+       PTR     compat_sys_select
+       PTR     sys_flock
+       PTR     sys_msync
+       PTR     compat_sys_readv                /* 4145 */
+       PTR     compat_sys_writev
+       PTR     sys_cacheflush
+       PTR     sys_cachectl
+       PTR     sys_sysmips
+       PTR     sys_ni_syscall                  /* 4150 */
+       PTR     sys_getsid
+       PTR     sys_fdatasync
+       PTR     sys32_sysctl
+       PTR     sys_mlock
+       PTR     sys_munlock                     /* 4155 */
+       PTR     sys_mlockall
+       PTR     sys_munlockall
+       PTR     sys_sched_setparam
+       PTR     sys_sched_getparam
+       PTR     sys_sched_setscheduler          /* 4160 */
+       PTR     sys_sched_getscheduler
+       PTR     sys_sched_yield
+       PTR     sys_sched_get_priority_max
+       PTR     sys_sched_get_priority_min
+       PTR     sys32_sched_rr_get_interval     /* 4165 */
+       PTR     compat_sys_nanosleep
+       PTR     sys_mremap
+       PTR     sys_accept
+       PTR     sys_bind
+       PTR     sys_connect                     /* 4170 */
+       PTR     sys_getpeername
+       PTR     sys_getsockname
+       PTR     sys_getsockopt
+       PTR     sys_listen
+       PTR     sys_recv                        /* 4175 */
+       PTR     sys_recvfrom
+       PTR     compat_sys_recvmsg
+       PTR     sys_send
+       PTR     compat_sys_sendmsg
+       PTR     sys_sendto                      /* 4180 */
+       PTR     compat_sys_setsockopt
+       PTR     sys_shutdown
+       PTR     sys_socket
+       PTR     sys_socketpair
+       PTR     sys_setresuid                   /* 4185 */
+       PTR     sys_getresuid
+       PTR     sys_ni_syscall                  /* was query_module */
+       PTR     sys_poll
+       PTR     sys_nfsservctl
+       PTR     sys_setresgid                   /* 4190 */
+       PTR     sys_getresgid
+       PTR     sys_prctl
+       PTR     sys32_rt_sigreturn
+       PTR     sys32_rt_sigaction
+       PTR     sys32_rt_sigprocmask            /* 4195 */
+       PTR     sys32_rt_sigpending
+       PTR     sys32_rt_sigtimedwait
+       PTR     sys32_rt_sigqueueinfo
+       PTR     sys32_rt_sigsuspend
+       PTR     sys32_pread                     /* 4200 */
+       PTR     sys32_pwrite
+       PTR     sys_chown
+       PTR     sys_getcwd
+       PTR     sys_capget
+       PTR     sys_capset                      /* 4205 */
+       PTR     sys32_sigaltstack
+       PTR     sys32_sendfile
+       PTR     sys_ni_syscall
+       PTR     sys_ni_syscall
+       PTR     sys32_mmap2                     /* 4210 */
+       PTR     sys32_truncate64
+       PTR     sys32_ftruncate64
+       PTR     sys_newstat
+       PTR     sys_newlstat
+       PTR     sys_newfstat                    /* 4215 */
+       PTR     sys_pivot_root
+       PTR     sys_mincore
+       PTR     sys_madvise
+       PTR     sys_getdents64
+       PTR     compat_sys_fcntl64              /* 4220 */
+       PTR     sys_ni_syscall
+       PTR     sys_gettid
+       PTR     sys32_readahead
+       PTR     sys_setxattr
+       PTR     sys_lsetxattr                   /* 4225 */
+       PTR     sys_fsetxattr
+       PTR     sys_getxattr
+       PTR     sys_lgetxattr
+       PTR     sys_fgetxattr
+       PTR     sys_listxattr                   /* 4230 */
+       PTR     sys_llistxattr
+       PTR     sys_flistxattr
+       PTR     sys_removexattr
+       PTR     sys_lremovexattr
+       PTR     sys_fremovexattr                /* 4235 */
+       PTR     sys_tkill
+       PTR     sys_sendfile64
+       PTR     compat_sys_futex
+       PTR     compat_sys_sched_setaffinity
+       PTR     compat_sys_sched_getaffinity    /* 4240 */
+       PTR     sys_io_setup
+       PTR     sys_io_destroy
+       PTR     sys_io_getevents
+       PTR     sys_io_submit
+       PTR     sys_io_cancel                   /* 4245 */
+       PTR     sys_exit_group
+       PTR     sys_lookup_dcookie
+       PTR     sys_epoll_create
+       PTR     sys_epoll_ctl
+       PTR     sys_epoll_wait                  /* 4250 */
+       PTR     sys_remap_file_pages
+       PTR     sys_set_tid_address
+       PTR     sys_restart_syscall
+       PTR     sys_fadvise64_64
+       PTR     compat_sys_statfs64             /* 4255 */
+       PTR     compat_sys_fstatfs64
+       PTR     sys_timer_create
+       PTR     compat_sys_timer_settime
+       PTR     compat_sys_timer_gettime
+       PTR     sys_timer_getoverrun            /* 4260 */
+       PTR     sys_timer_delete
+       PTR     compat_sys_clock_settime
+       PTR     compat_sys_clock_gettime
+       PTR     compat_sys_clock_getres
+       PTR     compat_sys_clock_nanosleep      /* 4265 */
+       PTR     sys_tgkill
+       PTR     compat_sys_utimes
+       PTR     sys_ni_syscall                  /* sys_mbind */
+       PTR     sys_ni_syscall                  /* sys_get_mempolicy */
+       PTR     sys_ni_syscall                  /* 4270 sys_set_mempolicy */
+       PTR     compat_sys_mq_open
+       PTR     sys_mq_unlink
+       PTR     compat_sys_mq_timedsend
+       PTR     compat_sys_mq_timedreceive
+       PTR     compat_sys_mq_notify            /* 4275 */
+       PTR     compat_sys_mq_getsetattr
+       PTR     sys_ni_syscall                  /* sys_vserver */
+       PTR     sys_waitid
+       PTR     sys_ni_syscall                  /* available, was setaltroot */
+       PTR     sys_add_key                     /* 4280 */
+       PTR     sys_request_key
+       PTR     sys_keyctl
+       .size   sys_call_table,.-sys_call_table
index 4197b4109dc3b3ae21d2cb281a6ca3368eccd0ce..732c5e680fcd6e4bb5b3054d88fa538af9b43fe1 100644 (file)
 #include <linux/sched.h>
 #include <linux/init.h>
 #include <asm/atomic.h>
-#include <asm/semaphore.h>
+#include <asm/cpu-features.h>
 #include <asm/errno.h>
-
-#ifdef CONFIG_CPU_HAS_LLSC
-
+#include <asm/semaphore.h>
+#include <asm/war.h>
 /*
  * Atomically update sem->count.
  * This does the equivalent of the following:
  *     tmp = MAX(old_count, 0) + incr;
  *     sem->count = tmp;
  *     return old_count;
- */
-static inline int __sem_update_count(struct semaphore *sem, int incr)
-{
-       int old_count, tmp;
-
-       __asm__ __volatile__(
-       "1:     ll      %0, %2                                  \n"
-       "       sra     %1, %0, 31                              \n"
-       "       not     %1                                      \n"
-       "       and     %1, %0, %1                              \n"
-       "       add     %1, %1, %3                              \n"
-       "       sc      %1, %2                                  \n"
-       "       beqz    %1, 1b                                  \n"
-       : "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)
-       : "r" (incr), "m" (sem->count));
-
-       return old_count;
-}
-
-#else
-
-/*
+ *
  * On machines without lld/scd we need a spinlock to make the manipulation of
  * sem->count and sem->waking atomic.  Scalability isn't an issue because
  * this lock is used on UP only so it's just an empty variable.
  */
-static spinlock_t semaphore_lock = SPIN_LOCK_UNLOCKED;
-
 static inline int __sem_update_count(struct semaphore *sem, int incr)
 {
-       unsigned long flags;
        int old_count, tmp;
 
-       spin_lock_irqsave(&semaphore_lock, flags);
-       old_count = atomic_read(&sem->count);
-       tmp = max_t(int, old_count, 0) + incr;
-       atomic_set(&sem->count, tmp);
-       spin_unlock_irqrestore(&semaphore_lock, flags);
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "1:     ll      %0, %2                                  \n"
+               "       sra     %1, %0, 31                              \n"
+               "       not     %1                                      \n"
+               "       and     %1, %0, %1                              \n"
+               "       add     %1, %1, %3                              \n"
+               "       sc      %1, %2                                  \n"
+               "       beqzl   %1, 1b                                  \n"
+               : "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)
+               : "r" (incr), "m" (sem->count));
+       } else if (cpu_has_llsc) {
+               __asm__ __volatile__(
+               "1:     ll      %0, %2                                  \n"
+               "       sra     %1, %0, 31                              \n"
+               "       not     %1                                      \n"
+               "       and     %1, %0, %1                              \n"
+               "       add     %1, %1, %3                              \n"
+               "       sc      %1, %2                                  \n"
+               "       beqz    %1, 1b                                  \n"
+               : "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)
+               : "r" (incr), "m" (sem->count));
+       } else {
+               static spinlock_t semaphore_lock = SPIN_LOCK_UNLOCKED;
+               unsigned long flags;
+
+               spin_lock_irqsave(&semaphore_lock, flags);
+               old_count = atomic_read(&sem->count);
+               tmp = max_t(int, old_count, 0) + incr;
+               atomic_set(&sem->count, tmp);
+               spin_unlock_irqrestore(&semaphore_lock, flags);
+       }
 
        return old_count;
 }
 
-#endif
-
 void __up(struct semaphore *sem)
 {
        /*
index 711ad59d66597740e016c2b04fbc261547feabfa..9411f90598f7292d72803c156a22bb31e46a85e6 100644 (file)
@@ -56,8 +56,6 @@ unsigned int PCI_DMA_BUS_IS_PHYS;
 
 EXPORT_SYMBOL(PCI_DMA_BUS_IS_PHYS);
 
-extern void * __rd_start, * __rd_end;
-
 /*
  * Setup information
  *
@@ -194,6 +192,68 @@ static inline void parse_cmdline_early(void)
        }
 }
 
+static inline int parse_rd_cmdline(unsigned long* rd_start, unsigned long* rd_end)
+{
+       /*
+        * "rd_start=0xNNNNNNNN" defines the memory address of an initrd
+        * "rd_size=0xNN" it's size
+        */
+       unsigned long start = 0;
+       unsigned long size = 0;
+       unsigned long end;
+       char cmd_line[CL_SIZE];
+       char *start_str;
+       char *size_str;
+       char *tmp;
+
+       strcpy(cmd_line, command_line);
+       *command_line = 0;
+       tmp = cmd_line;
+       /* Ignore "rd_start=" strings in other parameters. */
+       start_str = strstr(cmd_line, "rd_start=");
+       if (start_str && start_str != cmd_line && *(start_str - 1) != ' ')
+               start_str = strstr(start_str, " rd_start=");
+       while (start_str) {
+               if (start_str != cmd_line)
+                       strncat(command_line, tmp, start_str - tmp);
+               start = memparse(start_str + 9, &start_str);
+               tmp = start_str + 1;
+               start_str = strstr(start_str, " rd_start=");
+       }
+       if (*tmp)
+               strcat(command_line, tmp);
+
+       strcpy(cmd_line, command_line);
+       *command_line = 0;
+       tmp = cmd_line;
+       /* Ignore "rd_size" strings in other parameters. */
+       size_str = strstr(cmd_line, "rd_size=");
+       if (size_str && size_str != cmd_line && *(size_str - 1) != ' ')
+               size_str = strstr(size_str, " rd_size=");
+       while (size_str) {
+               if (size_str != cmd_line)
+                       strncat(command_line, tmp, size_str - tmp);
+               size = memparse(size_str + 8, &size_str);
+               tmp = size_str + 1;
+               size_str = strstr(size_str, " rd_size=");
+       }
+       if (*tmp)
+               strcat(command_line, tmp);
+
+#ifdef CONFIG_MIPS64
+       /* HACK: Guess if the sign extension was forgotten */
+       if (start > 0x0000000080000000 && start < 0x00000000ffffffff)
+               start |= 0xffffffff00000000;
+#endif
+
+       end = start + size;
+       if (start && end) {
+               *rd_start = start;
+               *rd_end = end;
+               return 1;
+       }
+       return 0;
+}
 
 #define PFN_UP(x)      (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
 #define PFN_DOWN(x)    ((x) >> PAGE_SHIFT)
@@ -205,30 +265,42 @@ static inline void parse_cmdline_early(void)
 static inline void bootmem_init(void)
 {
        unsigned long start_pfn;
+       unsigned long reserved_end = (unsigned long)&_end;
 #ifndef CONFIG_SGI_IP27
-       unsigned long bootmap_size, max_low_pfn, first_usable_pfn;
+       unsigned long first_usable_pfn;
+       unsigned long bootmap_size;
        int i;
 #endif
 #ifdef CONFIG_BLK_DEV_INITRD
-       unsigned long tmp;
-       unsigned long *initrd_header;
-
-       tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
-       if (tmp < (unsigned long)&_end)
-               tmp += PAGE_SIZE;
-       initrd_header = (unsigned long *)tmp;
-       if (initrd_header[0] == 0x494E5244) {
-               initrd_start = (unsigned long)&initrd_header[2];
-               initrd_end = initrd_start + initrd_header[1];
+       int initrd_reserve_bootmem = 0;
+
+       /* Board specific code should have set up initrd_start and initrd_end */
+       ROOT_DEV = Root_RAM0;
+       if (parse_rd_cmdline(&initrd_start, &initrd_end)) {
+               reserved_end = max(reserved_end, initrd_end);
+               initrd_reserve_bootmem = 1;
+       } else {
+               unsigned long tmp;
+               unsigned long *initrd_header;
+
+               tmp = ((reserved_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
+               if (tmp < reserved_end)
+                       tmp += PAGE_SIZE;
+               initrd_header = (unsigned long *)tmp;
+               if (initrd_header[0] == 0x494E5244) {
+                       initrd_start = (unsigned long)&initrd_header[2];
+                       initrd_end = initrd_start + initrd_header[1];
+                       reserved_end = max(reserved_end, initrd_end);
+                       initrd_reserve_bootmem = 1;
+               }
        }
-       start_pfn = PFN_UP(CPHYSADDR((&_end)+(initrd_end - initrd_start) + PAGE_SIZE));
-#else
+#endif /* CONFIG_BLK_DEV_INITRD */
+
        /*
         * Partially used pages are not usable - thus
         * we are rounding upwards.
         */
-       start_pfn = PFN_UP(CPHYSADDR(&_end));
-#endif /* CONFIG_BLK_DEV_INITRD */
+       start_pfn = PFN_UP(CPHYSADDR(reserved_end));
 
 #ifndef CONFIG_SGI_IP27
        /* Find the highest page frame number we have available.  */
@@ -341,21 +413,14 @@ static inline void bootmem_init(void)
 
        /* Reserve the bootmap memory.  */
        reserve_bootmem(PFN_PHYS(first_usable_pfn), bootmap_size);
-#endif
+#endif /* CONFIG_SGI_IP27 */
 
 #ifdef CONFIG_BLK_DEV_INITRD
-       /* Board specific code should have set up initrd_start and initrd_end */
-       ROOT_DEV = Root_RAM0;
-       if (&__rd_start != &__rd_end) {
-               initrd_start = (unsigned long)&__rd_start;
-               initrd_end = (unsigned long)&__rd_end;
-       }
        initrd_below_start_ok = 1;
        if (initrd_start) {
                unsigned long initrd_size = ((unsigned char *)initrd_end) - ((unsigned char *)initrd_start);
                printk("Initial ramdisk at: 0x%p (%lu bytes)\n",
-                      (void *)initrd_start,
-                      initrd_size);
+                      (void *)initrd_start, initrd_size);
 
                if (CPHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) {
                        printk("initrd extends beyond end of memory "
@@ -363,7 +428,11 @@ static inline void bootmem_init(void)
                               sizeof(long) * 2, CPHYSADDR(initrd_end),
                               sizeof(long) * 2, PFN_PHYS(max_low_pfn));
                        initrd_start = initrd_end = 0;
+                       initrd_reserve_bootmem = 0;
                }
+
+               if (initrd_reserve_bootmem)
+                       reserve_bootmem(CPHYSADDR(initrd_start), initrd_size);
        }
 #endif /* CONFIG_BLK_DEV_INITRD  */
 }
@@ -453,31 +522,10 @@ static void __init do_earlyinitcalls(void)
 
 void __init setup_arch(char **cmdline_p)
 {
-       unsigned int status;
-
        cpu_probe();
        prom_init();
        cpu_report();
 
-#ifdef CONFIG_MIPS32
-       /* Disable coprocessors and set FPU for 16/32 FPR register model */
-       status = read_c0_status();
-       status &= ~(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR);
-       status |= ST0_CU0;
-       write_c0_status(status);
-#endif
-#ifdef CONFIG_MIPS64
-       /*
-        * On IP27, I am seeing the TS bit set when the kernel is loaded.
-        * Maybe because the kernel is in ckseg0 and not xkphys? Clear it
-        * anyway ...
-        */
-       status = read_c0_status();
-       status &= ~(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3);
-       status |= (ST0_CU0|ST0_KX|ST0_SX|ST0_FR);
-       write_c0_status(status);
-#endif
-
 #if defined(CONFIG_VT)
 #if defined(CONFIG_VGA_CONSOLE)
         conswitchp = &vga_con;
index 025faa57be56f62e2d3daefea764c57266c4e172..400363cddbbe6e7618e30aa7bf8dd596fcee3402 100644 (file)
 #include <linux/ptrace.h>
 #include <linux/suspend.h>
 #include <linux/unistd.h>
-#include <linux/bitops.h>
+#include <linux/compiler.h>
 
 #include <asm/asm.h>
+#include <linux/bitops.h>
 #include <asm/cacheflush.h>
 #include <asm/fpu.h>
 #include <asm/sim.h>
@@ -41,7 +42,8 @@ extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs);
 
 #ifdef CONFIG_TRAD_SIGNALS
 save_static_function(sys_sigsuspend);
-static_unused int _sys_sigsuspend(struct pt_regs regs)
+__attribute_used__ noinline static int
+_sys_sigsuspend(nabi_no_regargs struct pt_regs regs)
 {
        sigset_t *uset, saveset, newset;
 
@@ -68,7 +70,8 @@ static_unused int _sys_sigsuspend(struct pt_regs regs)
 #endif
 
 save_static_function(sys_rt_sigsuspend);
-static_unused int _sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
+__attribute_used__ noinline static int
+_sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
 {
        sigset_t *unewset, saveset, newset;
        size_t sigsetsize;
@@ -178,6 +181,8 @@ asmlinkage int restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
 
        err |= __get_user(current->used_math, &sc->sc_used_math);
 
+       preempt_disable();
+
        if (current->used_math) {
                /* restore fpu context if we have used it before */
                own_fpu();
@@ -187,22 +192,30 @@ asmlinkage int restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
                lose_fpu();
        }
 
+       preempt_enable();
+
        return err;
 }
 
+#if PLAT_TRAMPOLINE_STUFF_LINE
+#define __tramp __attribute__((aligned(PLAT_TRAMPOLINE_STUFF_LINE)))
+#else
+#define __tramp
+#endif
+
 #ifdef CONFIG_TRAD_SIGNALS
 struct sigframe {
        u32 sf_ass[4];                  /* argument save space for o32 */
-       u32 sf_code[2];                 /* signal trampoline */
-       struct sigcontext sf_sc;
+       u32 sf_code[2] __tramp;         /* signal trampoline */
+       struct sigcontext sf_sc __tramp;
        sigset_t sf_mask;
 };
 #endif
 
 struct rt_sigframe {
        u32 rs_ass[4];                  /* argument save space for o32 */
-       u32 rs_code[2];                 /* signal trampoline */
-       struct siginfo rs_info;
+       u32 rs_code[2] __tramp;         /* signal trampoline */
+       struct siginfo rs_info __tramp;
        struct ucontext rs_uc;
 };
 
@@ -320,12 +333,16 @@ inline int setup_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
         * Save FPU state to signal context.  Signal handler will "inherit"
         * current FPU state.
         */
+       preempt_disable();
+
        if (!is_fpu_owner()) {
                own_fpu();
                restore_fp(current);
        }
        err |= save_fp_context(sc);
 
+       preempt_enable();
+
 out:
        return err;
 }
@@ -336,7 +353,7 @@ out:
 static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
        size_t frame_size)
 {
-       unsigned long sp;
+       unsigned long sp, almask;
 
        /* Default to using normal stack */
        sp = regs->regs[29];
@@ -352,7 +369,12 @@ static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
        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);
+       if (PLAT_TRAMPOLINE_STUFF_LINE)
+               almask = ~(PLAT_TRAMPOLINE_STUFF_LINE - 1);
+       else
+               almask = ALMASK;
+
+       return (void *)((sp - frame_size) & ~(PLAT_TRAMPOLINE_STUFF_LINE - 1));
 }
 
 #ifdef CONFIG_TRAD_SIGNALS
@@ -372,6 +394,9 @@ static void inline setup_frame(struct k_sigaction * ka, struct pt_regs *regs,
         *         li      v0, __NR_sigreturn
         *         syscall
         */
+       if (PLAT_TRAMPOLINE_STUFF_LINE)
+               __builtin_memset(frame->sf_code, '0',
+                                PLAT_TRAMPOLINE_STUFF_LINE);
        err |= __put_user(0x24020000 + __NR_sigreturn, frame->sf_code + 0);
        err |= __put_user(0x0000000c                 , frame->sf_code + 1);
        flush_cache_sigtramp((unsigned long) frame->sf_code);
@@ -426,6 +451,9 @@ static void inline setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,
         *         li      v0, __NR_rt_sigreturn
         *         syscall
         */
+       if (PLAT_TRAMPOLINE_STUFF_LINE)
+               __builtin_memset(frame->rs_code, '0',
+                                PLAT_TRAMPOLINE_STUFF_LINE);
        err |= __put_user(0x24020000 + __NR_rt_sigreturn, frame->rs_code + 0);
        err |= __put_user(0x0000000c                    , frame->rs_code + 1);
        flush_cache_sigtramp((unsigned long) frame->rs_code);
@@ -517,8 +545,6 @@ static inline void handle_signal(unsigned long sig, siginfo_t *info,
                setup_frame(ka, regs, sig, oldset);
 #endif
 
-       if (ka->sa.sa_flags & SA_ONESHOT)
-               ka->sa.sa_handler = SIG_DFL;
        if (!(ka->sa.sa_flags & SA_NODEFER)) {
                spin_lock_irq(&current->sighand->siglock);
                sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
index e12e1dbd15fe76cb3d7ada7b96f3d535730ba815..12c2104247e4b3b10bbeffa37ddd96478550d87f 100644 (file)
 #include <linux/ptrace.h>
 #include <linux/compat.h>
 #include <linux/suspend.h>
-#include <linux/bitops.h>
+#include <linux/compiler.h>
 
 #include <asm/asm.h>
+#include <linux/bitops.h>
 #include <asm/cacheflush.h>
 #include <asm/sim.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/fpu.h>
 
+#define SI_PAD_SIZE32   ((SI_MAX_SIZE/sizeof(int)) - 3)
+
+typedef union sigval32 {
+       int sival_int;
+       s32 sival_ptr;
+} sigval_t32;
+
+typedef struct siginfo32 {
+       int si_signo;
+       int si_code;
+       int si_errno;
+
+       union {
+               int _pad[SI_PAD_SIZE32];
+
+               /* kill() */
+               struct {
+                       compat_pid_t _pid;      /* sender's pid */
+                       compat_uid_t _uid;      /* sender's uid */
+               } _kill;
+
+               /* SIGCHLD */
+               struct {
+                       compat_pid_t _pid;      /* which child */
+                       compat_uid_t _uid;      /* sender's uid */
+                       int _status;            /* exit code */
+                       compat_clock_t _utime;
+                       compat_clock_t _stime;
+               } _sigchld;
+
+               /* IRIX SIGCHLD */
+               struct {
+                       compat_pid_t _pid;      /* which child */
+                       compat_clock_t _utime;
+                       int _status;            /* exit code */
+                       compat_clock_t _stime;
+               } _irix_sigchld;
+
+               /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
+               struct {
+                       s32 _addr; /* faulting insn/memory ref. */
+               } _sigfault;
+
+               /* SIGPOLL, SIGXFSZ (To do ...)  */
+               struct {
+                       int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
+                       int _fd;
+               } _sigpoll;
+
+               /* POSIX.1b timers */
+               struct {
+                       unsigned int _timer1;
+                       unsigned int _timer2;
+               } _timer;
+
+               /* POSIX.1b signals */
+               struct {
+                       compat_pid_t _pid;      /* sender's pid */
+                       compat_uid_t _uid;      /* sender's uid */
+                       sigval_t32 _sigval;
+               } _rt;
+
+       } _sifields;
+} siginfo_t32;
+
 /*
  * Including <asm/unistd.h> would give use the 64-bit syscall numbers ...
  */
@@ -127,7 +193,8 @@ static inline int get_sigset(sigset_t *kbuf, const compat_sigset_t *ubuf)
  * Atomically swap in the new signal mask, and wait for a signal.
  */
 save_static_function(sys32_sigsuspend);
-static_unused int _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs)
+__attribute_used__ noinline static int
+_sys32_sigsuspend(nabi_no_regargs struct pt_regs regs)
 {
        compat_sigset_t *uset;
        sigset_t newset, saveset;
@@ -154,7 +221,8 @@ static_unused int _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs)
 }
 
 save_static_function(sys32_rt_sigsuspend);
-static_unused int _sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
+__attribute_used__ noinline static int
+_sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
 {
        compat_sigset_t *uset;
        sigset_t newset, saveset;
@@ -295,6 +363,8 @@ static asmlinkage int restore_sigcontext32(struct pt_regs *regs,
 
        err |= __get_user(current->used_math, &sc->sc_used_math);
 
+       preempt_disable();
+
        if (current->used_math) {
                /* restore fpu context if we have used it before */
                own_fpu();
@@ -304,6 +374,8 @@ static asmlinkage int restore_sigcontext32(struct pt_regs *regs,
                lose_fpu();
        }
 
+       preempt_enable();
+
        return err;
 }
 
@@ -489,12 +561,16 @@ static inline int setup_sigcontext32(struct pt_regs *regs,
         * Save FPU state to signal context.  Signal handler will "inherit"
         * current FPU state.
         */
+       preempt_disable();
+
        if (!is_fpu_owner()) {
                own_fpu();
                restore_fp(current);
        }
        err |= save_fp_context32(sc);
 
+       preempt_enable();
+
 out:
        return err;
 }
@@ -649,10 +725,8 @@ give_sigsegv:
 }
 
 static inline void handle_signal(unsigned long sig, siginfo_t *info,
-       sigset_t *oldset, struct pt_regs * regs)
+       struct k_sigaction *ka, sigset_t *oldset, struct pt_regs * regs)
 {
-       struct k_sigaction *ka = &current->sighand->action[sig-1];
-
        switch (regs->regs[0]) {
        case ERESTART_RESTARTBLOCK:
        case ERESTARTNOHAND:
@@ -676,8 +750,6 @@ static inline void handle_signal(unsigned long sig, siginfo_t *info,
        else
                setup_frame(ka, regs, sig, oldset);
 
-       if (ka->sa.sa_flags & SA_ONESHOT)
-               ka->sa.sa_handler = SIG_DFL;
        if (!(ka->sa.sa_flags & SA_NODEFER)) {
                spin_lock_irq(&current->sighand->siglock);
                sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
@@ -689,6 +761,7 @@ static inline void handle_signal(unsigned long sig, siginfo_t *info,
 
 asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs *regs)
 {
+       struct k_sigaction ka;
        siginfo_t info;
        int signr;
 
@@ -708,9 +781,9 @@ asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs *regs)
        if (!oldset)
                oldset = &current->blocked;
 
-       signr = get_signal_to_deliver(&info, regs, NULL);
+       signr = get_signal_to_deliver(&info, &ka, regs, NULL);
        if (signr > 0) {
-               handle_signal(signr, &info, oldset, regs);
+               handle_signal(signr, &info, &ka, oldset, regs);
                return 1;
        }
 
index 6d1c473f67d2d552ba2b226a5740ec2096a6c5af..3730cc0db5f9e8526665bdeb8f7812b36dc55e82 100644 (file)
@@ -44,6 +44,7 @@ cpumask_t cpu_online_map;             /* Bitmask of currently online CPUs */
 int __cpu_number_map[NR_CPUS];         /* Map physical to logical */
 int __cpu_logical_map[NR_CPUS];                /* Map logical to physical */
 
+EXPORT_SYMBOL(phys_cpu_present_map);
 EXPORT_SYMBOL(cpu_online_map);
 
 cycles_t cacheflush_time;
@@ -235,7 +236,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
        init_new_context(current, &init_mm);
        current_thread_info()->cpu = 0;
        smp_tune_scheduling();
-       prom_build_cpu_map();
        prom_prepare_cpus(max_cpus);
 }
 
index 51f4676857ed42b04cc0cc0aa9ec84a10b24b7d2..b5a1d7f0fffa1990e88963b00b51215149aa443b 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/sem.h>
 #include <linux/msg.h>
 #include <linux/shm.h>
+#include <linux/compiler.h>
 
 #include <asm/branch.h>
 #include <asm/cachectl.h>
@@ -65,7 +66,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
        int do_color_align;
        unsigned long task_size;
 
-#if CONFIG_MIPS32
+#ifdef CONFIG_MIPS32
        task_size = TASK_SIZE;
 #else
        task_size = (current->thread.mflags & MF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE;
@@ -162,13 +163,15 @@ sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot,
 }
 
 save_static_function(sys_fork);
-static_unused int _sys_fork(nabi_no_regargs struct pt_regs regs)
+__attribute_used__ noinline static int
+_sys_fork(nabi_no_regargs struct pt_regs regs)
 {
        return do_fork(SIGCHLD, regs.regs[29], &regs, 0, NULL, NULL);
 }
 
 save_static_function(sys_clone);
-static_unused int _sys_clone(nabi_no_regargs struct pt_regs regs)
+__attribute_used__ noinline static int
+_sys_clone(nabi_no_regargs struct pt_regs regs)
 {
        unsigned long clone_flags;
        unsigned long newsp;
index ef87970dd3a252948cd86f7d530a621fa880ab9d..00254cd557fb08103f471e4d5851d4959356b5e7 100644 (file)
@@ -924,8 +924,8 @@ asmlinkage int irix_getdomainname(char *name, int len)
                return error;
 
        down_read(&uts_sem);
-       if(len > (__NEW_UTS_LEN - 1))
-               len = __NEW_UTS_LEN - 1;
+       if (len > __NEW_UTS_LEN)
+               len = __NEW_UTS_LEN;
        error = 0;
        if (copy_to_user(name, system_utsname.domainname, len))
                error = -EFAULT;
index 0a4bf6b3256d7843a2e792cedd9fda6775dd99a3..94d459bea72307ff0ca201e4a3a0b52e4d0db6e0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright 2001 MontaVista Software Inc.
  * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
- * Copyright (c) 2003  Maciej W. Rozycki
+ * Copyright (c) 2003, 2004  Maciej W. Rozycki
  *
  * Common time service routines for MIPS machines. See
  * Documentation/mips/time.README.
@@ -26,6 +26,7 @@
 #include <linux/module.h>
 
 #include <asm/bootinfo.h>
+#include <asm/compiler.h>
 #include <asm/cpu.h>
 #include <asm/cpu-features.h>
 #include <asm/div64.h>
@@ -54,12 +55,6 @@ extern volatile unsigned long wall_jiffies;
 
 spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
 
-/*
- * whether we emulate local_timer_interrupts for SMP machines.
- */
-int emulate_local_timer_interrupt;
-
-
 /*
  * By default we provide the null RTC ops
  */
@@ -277,7 +272,7 @@ static unsigned long fixed_rate_gettimeoffset(void)
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo", GCC_REG_ACCUM);
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -332,7 +327,7 @@ static unsigned long calibrate_div32_gettimeoffset(void)
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo", GCC_REG_ACCUM);
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -374,7 +369,7 @@ static unsigned long calibrate_div64_gettimeoffset(void)
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", GCC_REG_ACCUM);
                        cached_quotient = quotient;
                }
        }
@@ -388,7 +383,7 @@ static unsigned long calibrate_div64_gettimeoffset(void)
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo", GCC_REG_ACCUM);
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -502,7 +497,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
                }
        }
 
-#if !defined(CONFIG_SMP)
        /*
         * In UP mode, we call local_timer_interrupt() to do profiling
         * and process accouting.
@@ -512,21 +506,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
         */
        local_timer_interrupt(irq, dev_id, regs);
 
-#else  /* CONFIG_SMP */
-
-       if (emulate_local_timer_interrupt) {
-               /*
-                * this is the place where we send out inter-process
-                * interrupts and let each CPU do its own profiling
-                * and process accouting.
-                *
-                * Obviously we need to call local_timer_interrupt() for
-                * the current CPU too.
-                */
-               panic("Not implemented yet!!!");
-       }
-#endif /* CONFIG_SMP */
-
        return IRQ_HANDLED;
 }
 
index af1b42b58278be1081e9c11fc8920bf78f6b5803..b7cfe61394b90c0fd2dfcbda67ff0e227f3b205a 100644 (file)
@@ -390,6 +390,8 @@ static inline void simulate_ll(struct pt_regs *regs, unsigned int opcode)
                goto sig;
        }
 
+       preempt_disable();
+
        if (ll_task == NULL || ll_task == current) {
                ll_bit = 1;
        } else {
@@ -397,6 +399,8 @@ static inline void simulate_ll(struct pt_regs *regs, unsigned int opcode)
        }
        ll_task = current;
 
+       preempt_enable();
+
        regs->regs[(opcode & RT) >> 16] = value;
 
        compute_return_epc(regs);
@@ -429,12 +433,18 @@ static inline void simulate_sc(struct pt_regs *regs, unsigned int opcode)
                signal = SIGBUS;
                goto sig;
        }
+
+       preempt_disable();
+
        if (ll_bit == 0 || ll_task != current) {
                regs->regs[reg] = 0;
+               preempt_enable();
                compute_return_epc(regs);
                return;
        }
 
+       preempt_enable();
+
        if (put_user(regs->regs[reg], vaddr)) {
                signal = SIGSEGV;
                goto sig;
@@ -494,6 +504,8 @@ asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31)
        if (fcr31 & FPU_CSR_UNI_X) {
                int sig;
 
+               preempt_disable();
+
                /*
                 * Unimplemented operation exception.  If we've got the full
                 * software emulator on-board, let's use it...
@@ -519,6 +531,8 @@ asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31)
                /* Restore the hardware register state */
                restore_fp(current);
 
+               preempt_enable();
+
                /* If something went wrong, signal */
                if (sig)
                        force_sig(sig, current);
@@ -638,6 +652,8 @@ asmlinkage void do_cpu(struct pt_regs *regs)
                break;
 
        case 1:
+               preempt_disable();
+
                own_fpu();
                if (current->used_math) {       /* Using the FPU again.  */
                        restore_fp(current);
@@ -653,6 +669,8 @@ asmlinkage void do_cpu(struct pt_regs *regs)
                                force_sig(sig, current);
                }
 
+               preempt_enable();
+
                return;
 
        case 2:
@@ -892,15 +910,21 @@ extern void tlb_init(void);
 void __init per_cpu_trap_init(void)
 {
        unsigned int cpu = smp_processor_id();
+       unsigned int status_set = ST0_CU0;
 
-       /* Some firmware leaves the BEV flag set, clear it.  */
-       clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
+       /*
+        * Disable coprocessors and select 32-bit or 64-bit addressing
+        * and the 16/32 or 32/32 FPR register model.  Reset the BEV
+        * flag that some firmware may have left set and the TS bit (for
+        * IP27).  Set XX for ISA IV code to work.
+        */
 #ifdef CONFIG_MIPS64
-       set_c0_status(ST0_CU0|ST0_FR|ST0_KX|ST0_SX|ST0_UX);
+       status_set |= ST0_FR|ST0_KX|ST0_SX|ST0_UX;
 #endif
-
        if (current_cpu_data.isa_level == MIPS_CPU_ISA_IV)
-               set_c0_status(ST0_XX);
+               status_set |= ST0_XX;
+       change_c0_status(ST0_CU|ST0_FR|ST0_BEV|ST0_TS|ST0_KX|ST0_SX|ST0_UX,
+                        status_set);
 
        /*
         * Some MIPS CPUs have a dedicated interrupt vector which reduces the
@@ -1008,7 +1032,8 @@ void __init trap_init(void)
                set_except_vector(24, handle_mcheck);
 
        if (cpu_has_vce)
-               memcpy((void *)(CAC_BASE + 0x180), &except_vec3_r4000, 0x80);
+               /* Special exception: R4[04]00 uses also the divec space. */
+               memcpy((void *)(CAC_BASE + 0x180), &except_vec3_r4000, 0x100);
        else if (cpu_has_4kex)
                memcpy((void *)(CAC_BASE + 0x180), &except_vec3_generic, 0x80);
        else
index 6ba32b37e70b34476b84451d60920ce68b0d8bf5..f073841b62e6198dc5ebd853896ab202bca48eda 100644 (file)
@@ -85,8 +85,6 @@ SECTIONS
   /* will be freed after init */
   . = ALIGN(4096);             /* Init code and data */
   __init_begin = .;
-  /* /DISCARD/ doesn't work for .reginfo */
-  .reginfo : { *(.reginfo) }
   .init.text : {
        _sinittext = .;
        *(.init.text)
@@ -150,6 +148,14 @@ SECTIONS
         *(.exit.text)
         *(.exit.data)
         *(.exitcall.exit)
+
+       /* ABI crap starts here */
+       *(.comment)
+       *(.MIPS.options)
+       *(.note)
+       *(.options)
+       *(.pdr)
+       *(.reginfo)
   }
 
   /* This is the MIPS specific mdebug section.  */
index 08871349ade16a07762c8d670acccb59073bf731..1148a2d20aa752d9abf702ab1ffe0ad891754a72 100644 (file)
@@ -125,12 +125,10 @@ void lasat_hw0_irqdispatch(struct pt_regs *regs)
        }
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
 
-       init_generic_irq();
-
        switch (mips_machtype) {
        case MACH_LASAT_100:
                lasat_int_status = (void *)LASAT_INT_STATUS_REG_100;
@@ -147,7 +145,7 @@ void __init init_IRQ(void)
                *lasat_int_mask &= 0xffff;
                break;
        default:
-               panic("init_IRQ: mips_machtype incorrect");
+               panic("arch_init_irq: mips_machtype incorrect");
        }
 
        /* Now safe to set the exception vector. */
index 0c21bb3363b8da73e1c9fa6936aab0efe5633c0e..e371ed5cbe347a0e2475e1ede66ab1e15c89a17c 100644 (file)
@@ -134,7 +134,7 @@ void __init serial_init(void)
 
        memset(&s, 0, sizeof(s));
 
-       s.flags = STD_COM_FLAGS|UPF_RESOURCES;
+       s.flags = STD_COM_FLAGS;
        s.iotype = SERIAL_IO_MEM;
 
        if (mips_machtype == MACH_LASAT_100) {
index eb0b6cf80084cd73f47a82e1101b8b4687368dab..9f5752cdd29fc403251c11b71cc77d60ef077e33 100644 (file)
@@ -190,7 +190,7 @@ unsigned int vtop(void *address)
        pgd = pgd_offset(current->mm, addr);
        pmd = pmd_offset(pgd, addr);
        pte = pte_offset(pmd, addr);
-       paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
+       paddr = (CKSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
        paddr |= (addr & ~PAGE_MASK);
 
        return paddr;
index 0d6dce9b75c1f1dbe37bd9ea0fdec213f302d403..2a2a0e0c49bf64fb8717af897d5dd8de20f95043 100644 (file)
@@ -6,11 +6,12 @@
  * Copyright (C) 1994, 1995 Waldorf Electronics GmbH
  * Copyright (C) 1998, 1999 Ralf Baechle
  */
-#include <net/checksum.h>
+#include <linux/kernel.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
 #include <asm/string.h>
 #include <asm/uaccess.h>
+#include <net/checksum.h>
 
 /*
  * copy while checksumming, otherwise like csum_partial
@@ -37,6 +38,7 @@ unsigned int csum_partial_copy_from_user (const char *src, char *dst,
 {
        int missing;
 
+       might_sleep();
        missing = copy_from_user(dst, src, len);
        if (missing) {
                memset(dst + len - missing, 0, missing);
index 6e921203582e66216d152c01ca3d5732d65ee14d..07660e86c99dadf8a4a3981c91481420ee68e9e9 100644 (file)
@@ -3,13 +3,12 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (c) 1996, 1998, 1999 by Ralf Baechle
+ * Copyright (c) 1996, 1998, 1999, 2004 by Ralf Baechle
  * Copyright (c) 1999 Silicon Graphics, Inc.
  */
 #include <asm/asm.h>
 #include <asm/offset.h>
 #include <asm/regdef.h>
-#include <asm/sgidefs.h>
 
 #define EX(insn,reg,addr,handler)                      \
 9:     insn    reg, addr;                              \
index 0f3116255371f0c9a041f72beaaaf67980abdfc3..6e7a8eed4de8f222ef61ee296f1c8d5b46144056 100644 (file)
@@ -3,13 +3,12 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (c) 1996, 1998, 1999 by Ralf Baechle
+ * Copyright (c) 1996, 1998, 1999, 2004 by Ralf Baechle
  * Copyright (c) 1999 Silicon Graphics, Inc.
  */
 #include <asm/asm.h>
 #include <asm/offset.h>
 #include <asm/regdef.h>
-#include <asm/sgidefs.h>
 
 #define EX(insn,reg,addr,handler)                      \
 9:     insn    reg, addr;                              \
index f39b021b0e725abe55eec7db90ec90fe752d375b..9b0abe9d70372b231d374aa3b7256dd0d7748791 100644 (file)
@@ -528,9 +528,9 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_soft_struct *ctx)
                if (MIPSInst_FUNC(ir) != movc_op)
                        return SIGILL;
                cond = fpucondbit[MIPSInst_RT(ir) >> 2];
-               if (((ctx->fcr31 & cond) != 0) != ((MIPSInst_RT(ir) & 1) != 0))
-                       return 0;
-               xcp->regs[MIPSInst_RD(ir)] = xcp->regs[MIPSInst_RS(ir)];
+               if (((ctx->fcr31 & cond) != 0) == ((MIPSInst_RT(ir) & 1) != 0))
+                       xcp->regs[MIPSInst_RD(ir)] =
+                               xcp->regs[MIPSInst_RS(ir)];
                break;
 #endif
 
index 1e832a62446b9cc369728a326e1be296df834123..de77f006bbdbfb9d2b971f6619dee86708364e13 100644 (file)
@@ -118,12 +118,7 @@ void atlas_hw0_irqdispatch(struct pt_regs *regs)
        do_IRQ(irq, regs);
 }
 
-#ifdef CONFIG_KGDB
-extern void breakpoint(void);
-extern int remote_debug;
-#endif
-
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
 
@@ -145,11 +140,4 @@ void __init init_IRQ(void)
                irq_desc[i].handler     = &atlas_irq_type;
                spin_lock_init(&irq_desc[i].lock);
        }
-
-#ifdef CONFIG_KGDB
-       if (remote_debug) {
-               set_debug_traps();
-               breakpoint();
-       }
-#endif
 }
index 3940bb8fce03f0fad952bbb95ddafa0c6d21e527..0a1dd9bbc02e47ecbbf3610050a32eb9ac9d5cf4 100644 (file)
@@ -84,7 +84,7 @@ static void __init serial_init(void)
 #endif
        s.irq = ATLASINT_UART;
        s.uartclk = ATLAS_BASE_BAUD * 16;
-       s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | UPF_RESOURCES | ASYNC_AUTO_IRQ;
+       s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
        s.iotype = SERIAL_IO_PORT;
        s.regshift = 3;
 
index 636cdcd25abadf20e3814ce261c3aa45c15b61fa..31caf0603a3f47dc42db6639e48c27c4d81f970d 100644 (file)
@@ -42,8 +42,6 @@ extern char rs_getDebugChar(void);
 extern int saa9730_kgdb_hook(int);
 extern int saa9730_putDebugChar(char);
 extern char saa9730_getDebugChar(void);
-
-int remote_debug = 0;
 #endif
 
 int prom_argc;
@@ -219,7 +217,7 @@ void __init kgdb_config (void)
                                generic_putDebugChar (*s++);
                }
 
-               remote_debug = 1;
+               kgdb_enabled = 1;
                /* Breakpoint is invoked after interrupts are initialised */
        }
 }
index 56cf37a262f06ca3993c313be0e9dec41c31ee41..5ae2b43e4c2e4014c0f6cd4a4f88949ee12e0227 100644 (file)
@@ -77,7 +77,7 @@ struct prom_pmemblock * __init prom_getmdesc(void)
        mdesc[1].base = 0x00001000;
        mdesc[1].size = 0x000ef000;
 
-#if (CONFIG_MIPS_MALTA)
+#ifdef CONFIG_MIPS_MALTA
        /*
         * The area 0x000f0000-0x000fffff is allocated for BIOS memory by the
         * south bridge and PCI access always forwarded to the ISA Bus and
index cccd34cee45c10135e2a82410356f6e90c7b5e14..92c34bda02ae6d14c7e3c7955d3a79fb166a1f22 100644 (file)
@@ -2,6 +2,8 @@
  * Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 1999, 2000 MIPS Technologies, Inc.  All rights reserved.
  *
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
+ *
  *  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.
@@ -24,7 +26,6 @@
 #include <linux/init.h>
 
 #include <asm/mips-boards/generic.h>
-#include <asm/pci_channel.h>
 #include <asm/gt64120.h>
 #include <asm/mips-boards/bonito64.h>
 #include <asm/mips-boards/msc01_pci.h>
index 33e0f4b2050d5156fe9fcdf36bc442de16bc311a..92c3b667cfd360e7b0889283d768a974ff6b33a2 100644 (file)
 
 extern asmlinkage void mipsIRQ(void);
 
-#ifdef CONFIG_KGDB
-extern void breakpoint(void);
-extern void set_debug_traps(void);
-extern int remote_debug;
-#endif
-
 static spinlock_t mips_irq_lock = SPIN_LOCK_UNLOCKED;
 
 static inline int mips_pcibios_iack(void)
@@ -187,18 +181,8 @@ void corehi_irqdispatch(struct pt_regs *regs)
         die("CoreHi interrupt", regs);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        set_except_vector(0, mipsIRQ);
-       init_generic_irq();
        init_i8259_irqs();
-
-#ifdef CONFIG_KGDB
-       if (remote_debug) {
-               set_debug_traps();
-               breakpoint();
-       }
-#endif
 }
-
-
index 72a16bf1f47e07db0404284b854c307d82309b82..3377e66de9eb350892f2c6bf9007c583b23672e3 100644 (file)
 #include <linux/pci.h>
 #include <linux/tty.h>
 
+#ifdef CONFIG_MTD
+#include <linux/mtd/partitions.h>
+#include <linux/mtd/physmap.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/map.h>
+#endif
+
 #include <asm/cpu.h>
 #include <asm/bootinfo.h>
 #include <asm/irq.h>
@@ -53,6 +60,30 @@ struct resource standard_io_resources[] = {
        { "dma2", 0xc0, 0xdf, IORESOURCE_BUSY },
 };
 
+#ifdef CONFIG_MTD
+static struct mtd_partition malta_mtd_partitions[] = {
+       {
+               .name =         "YAMON",
+               .offset =       0x0,
+               .size =         0x100000,
+               .mask_flags =   MTD_WRITEABLE
+       },
+       {
+               .name =         "User FS",
+               .offset =       0x100000,
+               .size =         0x2e0000
+       },
+       {
+               .name =         "Board Config",
+               .offset =       0x3e0000,
+               .size =         0x020000,
+               .mask_flags =   MTD_WRITEABLE
+       }
+};
+
+#define number_partitions      (sizeof(malta_mtd_partitions)/sizeof(struct mtd_partition))
+#endif
+
 const char *get_system_type(void)
 {
        return "MIPS Malta";
@@ -132,13 +163,13 @@ static int __init malta_setup(void)
                        }
                }
                else
-                       panic ("Hardware DMA cache coherency not supported\n");
+                       panic("Hardware DMA cache coherency not supported");
 
 #endif
        }
 #ifdef CONFIG_DMA_COHERENT
        else {
-               panic ("Hardware DMA cache coherency not supported\n");
+               panic("Hardware DMA cache coherency not supported");
        }
 #endif
 
@@ -179,6 +210,15 @@ static int __init malta_setup(void)
        };
 #endif
 #endif
+
+#ifdef CONFIG_MTD
+       /*
+        * Support for MTD on Malta. Use the generic physmap driver
+        */
+       physmap_configure(0x1e000000, 0x400000, 4, NULL);
+       physmap_set_partitions(malta_mtd_partitions, number_partitions);
+#endif
+
        mips_reboot_setup();
 
        board_time_init = mips_time_init;
index 19fb7e27c15158c586030b467f992cc7c5d7de6d..e5109657ed5a3ee11d8bb5a771d309c03c582973 100644 (file)
@@ -37,7 +37,7 @@ asmlinkage void sead_hw1_irqdispatch(struct pt_regs *regs)
        do_IRQ(SEADINT_UART1, regs);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
         /*
          * Mask out all interrupt
@@ -47,6 +47,5 @@ void __init init_IRQ(void)
        /* Now safe to set the exception vector. */
        set_except_vector(0, mipsIRQ);
 
-       init_generic_irq();
        mips_cpu_irq_init(0);
 }
index ab6c619f25a380ff66d3a160556704a0c1876a48..29892b88a4fcb6e7b29a5a430ec17a7fd8203dbe 100644 (file)
@@ -73,7 +73,7 @@ static void __init serial_init(void)
 #endif
        s.irq = SEADINT_UART0;
        s.uartclk = SEAD_BASE_BAUD * 16;
-       s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | UPF_RESOURCES | ASYNC_AUTO_IRQ;
+       s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
        s.iotype = 0;
        s.regshift = 3;
 
index 04c393f26228954b78cd87dcc6a5651227f9d44f..d72f4c839c750892c9cda72bfb7ce5a0e319675d 100644 (file)
@@ -2,7 +2,8 @@
 # Makefile for the Linux/MIPS-specific parts of the memory manager.
 #
 
-obj-y                          += cache.o extable.o fault.o init.o pgtable.o
+obj-y                          += cache.o extable.o fault.o init.o pgtable.o \
+                                  tlbex.o
 
 obj-$(CONFIG_MIPS32)           += ioremap.o pgtable-32.o
 obj-$(CONFIG_MIPS64)           += pgtable-64.o
@@ -41,22 +42,22 @@ obj-$(CONFIG_CPU_R5432)             += tlbex32-r4k.o
 obj-$(CONFIG_CPU_RM7000)       += tlbex32-r4k.o
 obj-$(CONFIG_CPU_RM9000)       += tlbex32-r4k.o
 obj-$(CONFIG_CPU_R10000)       += tlbex32-r4k.o
-obj-$(CONFIG_CPU_MIPS32)       += tlbex32-r4k.o
+obj-$(CONFIG_CPU_MIPS32)       += tlbex32-mips32.o
 obj-$(CONFIG_CPU_MIPS64)       += tlbex32-r4k.o
 obj-$(CONFIG_CPU_SB1)          += tlbex32-r4k.o
 obj-$(CONFIG_CPU_TX39XX)       += tlbex32-r3k.o
 endif
 ifdef CONFIG_MIPS64
-obj-$(CONFIG_CPU_R4300)                += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_R4X00)                += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_R5000)                += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_NEVADA)       += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_R5432)                += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_RM7000)       += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_RM9000)       += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_R10000)       += tlb64-glue-r4k.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_SB1)          += tlb64-glue-sb1.o tlbex64-r4k.o
-obj-$(CONFIG_CPU_MIPS64)       += tlb64-glue-r4k.o tlbex64-r4k.o
+obj-$(CONFIG_CPU_R4300)                += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_R4X00)                += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_R5000)                += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_NEVADA)       += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_R5432)                += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_RM7000)       += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_RM9000)       += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_R10000)       += tlb64-glue-r4k.o
+obj-$(CONFIG_CPU_SB1)          += tlb64-glue-sb1.o
+obj-$(CONFIG_CPU_MIPS64)       += tlb64-glue-r4k.o
 endif
 
 
index 444df9c5a55ae801500838e4868db847231b56db..887683b3cc403945c84d4d65a021eb98f0f518d3 100644 (file)
@@ -7,7 +7,7 @@
  * Tx39XX R4k style caches added. HK
  * Copyright (C) 1998, 1999, 2000 Harald Koerfgen
  * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- * Copyright (C) 2001  Maciej W. Rozycki
+ * Copyright (C) 2001, 2004  Maciej W. Rozycki
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
@@ -337,6 +337,8 @@ void __init ld_mmu_r23000(void)
        flush_data_cache_page = r3k_flush_data_cache_page;
 
        _dma_cache_wback_inv = r3k_dma_cache_wback_inv;
+       _dma_cache_wback = r3k_dma_cache_wback_inv;
+       _dma_cache_inv = r3k_dma_cache_wback_inv;
 
        printk("Primary instruction cache %ldkB, linesize %ld bytes.\n",
                icache_size >> 10, icache_lsize);
index b22df2d80eedcbe5499c1c4f5e0c309bef721eee..6249ac94a2f983988d001f654ee72ca49336d3f6 100644 (file)
@@ -49,7 +49,7 @@ struct bcache_ops *bcops = &no_sc_ops;
 #define R4600_HIT_CACHEOP_WAR_IMPL                                     \
 do {                                                                   \
        if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x())            \
-               *(volatile unsigned long *)KSEG1;                       \
+               *(volatile unsigned long *)CKSEG1;                      \
        if (R4600_V1_HIT_CACHEOP_WAR)                                   \
                __asm__ __volatile__("nop;nop;nop;nop");                \
 } while (0)
@@ -86,7 +86,7 @@ static inline void r4k_blast_dcache_page_indexed_setup(void)
 
 static void (* r4k_blast_dcache)(void);
 
-static void r4k_blast_dcache_setup(void)
+static inline void r4k_blast_dcache_setup(void)
 {
        unsigned long dc_lsize = cpu_dcache_line_size();
 
@@ -254,16 +254,25 @@ static inline void r4k_blast_scache_setup(void)
                r4k_blast_scache = blast_scache128;
 }
 
+/*
+ * This is former mm's flush_cache_all() which really should be
+ * flush_cache_vunmap these days ...
+ */
+static inline void local_r4k_flush_cache_all(void * args)
+{
+       r4k_blast_dcache();
+       r4k_blast_icache();
+}
+
 static void r4k_flush_cache_all(void)
 {
        if (!cpu_has_dc_aliases)
                return;
 
-       r4k_blast_dcache();
-       r4k_blast_icache();
+       on_each_cpu(local_r4k_flush_cache_all, NULL, 1, 1);
 }
 
-static void r4k___flush_cache_all(void)
+static inline void local_r4k___flush_cache_all(void * args)
 {
        r4k_blast_dcache();
        r4k_blast_icache();
@@ -279,9 +288,14 @@ static void r4k___flush_cache_all(void)
        }
 }
 
-static void r4k_flush_cache_range(struct vm_area_struct *vma,
-       unsigned long start, unsigned long end)
+static void r4k___flush_cache_all(void)
 {
+       on_each_cpu(local_r4k___flush_cache_all, NULL, 1, 1);
+}
+
+static inline void local_r4k_flush_cache_range(void * args)
+{
+       struct vm_area_struct *vma = args;
        int exec;
 
        if (!(cpu_context(smp_processor_id(), vma->vm_mm)))
@@ -294,8 +308,16 @@ static void r4k_flush_cache_range(struct vm_area_struct *vma,
                r4k_blast_icache();
 }
 
-static void r4k_flush_cache_mm(struct mm_struct *mm)
+static void r4k_flush_cache_range(struct vm_area_struct *vma,
+       unsigned long start, unsigned long end)
 {
+       on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1);
+}
+
+static inline void local_r4k_flush_cache_mm(void * args)
+{
+       struct mm_struct *mm = args;
+
        if (!cpu_has_dc_aliases)
                return;
 
@@ -316,9 +338,21 @@ static void r4k_flush_cache_mm(struct mm_struct *mm)
                r4k_blast_scache();
 }
 
-static void r4k_flush_cache_page(struct vm_area_struct *vma,
-                                       unsigned long page)
+static void r4k_flush_cache_mm(struct mm_struct *mm)
+{
+       on_each_cpu(local_r4k_flush_cache_mm, mm, 1, 1);
+}
+
+struct flush_cache_page_args {
+       struct vm_area_struct *vma;
+       unsigned long page;
+};
+
+static inline void local_r4k_flush_cache_page(void *args)
 {
+       struct flush_cache_page_args *fcp_args = args;
+       struct vm_area_struct *vma = fcp_args->vma;
+       unsigned long page = fcp_args->page;
        int exec = vma->vm_flags & VM_EXEC;
        struct mm_struct *mm = vma->vm_mm;
        pgd_t *pgdp;
@@ -377,14 +411,39 @@ static void r4k_flush_cache_page(struct vm_area_struct *vma,
        }
 }
 
+static void r4k_flush_cache_page(struct vm_area_struct *vma,
+       unsigned long page)
+{
+       struct flush_cache_page_args args;
+
+       args.vma = vma;
+       args.page = page;
+
+       on_each_cpu(local_r4k_flush_cache_page, &args, 1, 1);
+}
+
+static inline void local_r4k_flush_data_cache_page(void * addr)
+{
+       r4k_blast_dcache_page((unsigned long) addr);
+}
+
 static void r4k_flush_data_cache_page(unsigned long addr)
 {
-       r4k_blast_dcache_page(addr);
+       on_each_cpu(local_r4k_flush_data_cache_page, (void *) addr, 1, 1);
 }
 
-static void r4k_flush_icache_range(unsigned long start, unsigned long end)
+struct flush_icache_range_args {
+       unsigned long start;
+       unsigned long end;
+};
+
+static inline void local_r4k_flush_icache_range(void *args)
 {
+       struct flush_icache_range_args *fir_args = args;
        unsigned long dc_lsize = current_cpu_data.dcache.linesz;
+       unsigned long ic_lsize = current_cpu_data.icache.linesz;
+       unsigned long start = fir_args->start;
+       unsigned long end = fir_args->end;
        unsigned long addr, aend;
 
        if (!cpu_has_ic_fills_f_dc) {
@@ -407,18 +466,28 @@ static void r4k_flush_icache_range(unsigned long start, unsigned long end)
        if (end - start > icache_size)
                r4k_blast_icache();
        else {
-               addr = start & ~(dc_lsize - 1);
-               aend = (end - 1) & ~(dc_lsize - 1);
+               addr = start & ~(ic_lsize - 1);
+               aend = (end - 1) & ~(ic_lsize - 1);
                while (1) {
                        /* Hit_Invalidate_I */
                        protected_flush_icache_line(addr);
                        if (addr == aend)
                                break;
-                       addr += dc_lsize;
+                       addr += ic_lsize;
                }
        }
 }
 
+static void r4k_flush_icache_range(unsigned long start, unsigned long end)
+{
+       struct flush_icache_range_args args;
+
+       args.start = start;
+       args.end = end;
+
+       on_each_cpu(local_r4k_flush_icache_range, &args, 1, 1);
+}
+
 /*
  * Ok, this seriously sucks.  We use them to flush a user page but don't
  * know the virtual address, so we have to blast away the whole icache
@@ -426,14 +495,17 @@ 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)
+
+struct flush_icache_page_args {
+       struct vm_area_struct *vma;
+       struct page *page;
+};
+
+static inline void local_r4k_flush_icache_page(void *args)
 {
-       /*
-        * If there's no context yet, or the page isn't executable, no icache
-        * flush is needed.
-        */
-       if (!(vma->vm_flags & VM_EXEC))
-               return;
+       struct flush_icache_page_args *fip_args = args;
+       struct vm_area_struct *vma = fip_args->vma;
+       struct page *page = fip_args->page;
 
        /*
         * Tricky ...  Because we don't know the virtual address we've got the
@@ -471,6 +543,25 @@ static void r4k_flush_icache_page(struct vm_area_struct *vma, struct page *page)
                r4k_blast_icache();
 }
 
+static void r4k_flush_icache_page(struct vm_area_struct *vma,
+       struct page *page)
+{
+       struct flush_icache_page_args args;
+
+       /*
+        * If there's no context yet, or the page isn't executable, no I-cache
+        * flush is needed.
+        */
+       if (!(vma->vm_flags & VM_EXEC))
+               return;
+
+       args.vma = vma;
+       args.page = page;
+
+       on_each_cpu(local_r4k_flush_icache_page, &args, 1, 1);
+}
+
+
 #ifdef CONFIG_DMA_NONCOHERENT
 
 static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
@@ -574,10 +665,11 @@ static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
  * very much about what happens in that case.  Usually a segmentation
  * fault will dump the process later on anyway ...
  */
-static void r4k_flush_cache_sigtramp(unsigned long addr)
+static void local_r4k_flush_cache_sigtramp(void * arg)
 {
        unsigned long ic_lsize = current_cpu_data.icache.linesz;
        unsigned long dc_lsize = current_cpu_data.dcache.linesz;
+       unsigned long addr = (unsigned long) arg;
 
        R4600_HIT_CACHEOP_WAR_IMPL;
        protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
@@ -587,10 +679,10 @@ static void r4k_flush_cache_sigtramp(unsigned long addr)
                        ".set push\n\t"
                        ".set noat\n\t"
                        ".set mips3\n\t"
-#if CONFIG_MIPS32
+#ifdef CONFIG_MIPS32
                        "la     $at,1f\n\t"
 #endif
-#if CONFIG_MIPS64
+#ifdef CONFIG_MIPS64
                        "dla    $at,1f\n\t"
 #endif
                        "cache  %0,($at)\n\t"
@@ -604,6 +696,11 @@ static void r4k_flush_cache_sigtramp(unsigned long addr)
                __asm__ __volatile__ ("sync");
 }
 
+static void r4k_flush_cache_sigtramp(unsigned long addr)
+{
+       on_each_cpu(local_r4k_flush_cache_sigtramp, (void *) addr, 1, 1);
+}
+
 static void r4k_flush_icache_all(void)
 {
        if (cpu_has_vtag_icache)
@@ -893,7 +990,7 @@ static void __init probe_pcache(void)
               cpu_has_vtag_icache ? "virtually tagged" : "physically tagged",
               way_string[c->icache.ways], c->icache.linesz);
 
-       printk("Primary data cache %ldkB %s, linesize %d bytes.\n",
+       printk("Primary data cache %ldkB, %s, linesize %d bytes.\n",
               dcache_size >> 10, way_string[c->dcache.ways], c->dcache.linesz);
 }
 
@@ -982,7 +1079,7 @@ static void __init setup_scache(void)
        case CPU_R4000MC:
        case CPU_R4400SC:
        case CPU_R4400MC:
-               probe_scache_kseg1 = (probe_func_t) (KSEG1ADDR(&probe_scache));
+               probe_scache_kseg1 = (probe_func_t) (CKSEG1ADDR(&probe_scache));
                sc_present = probe_scache_kseg1(config);
                if (sc_present)
                        c->options |= MIPS_CPU_CACHE_CDEX_S;
index 5bae2b0e916654cf07724cde9d0ff304782cf0de..c90b41209bbd1fe940911591096a949418a6cc75 100644 (file)
  */
 #include <linux/config.h>
 #include <linux/init.h>
-#include <asm/mmu_context.h>
+
+#include <asm/asm.h>
 #include <asm/bootinfo.h>
 #include <asm/cacheops.h>
 #include <asm/cpu.h>
+#include <asm/mipsregs.h>
+#include <asm/mmu_context.h>
 #include <asm/uaccess.h>
 
 extern void sb1_dma_init(void);
@@ -32,17 +35,17 @@ extern void sb1_dma_init(void);
 static unsigned long icache_size;
 static unsigned long dcache_size;
 
-static unsigned long icache_line_size;
-static unsigned long dcache_line_size;
+static unsigned short icache_line_size;
+static unsigned short dcache_line_size;
 
 static unsigned int icache_index_mask;
 static unsigned int dcache_index_mask;
 
-static unsigned long icache_assoc;
-static unsigned long dcache_assoc;
+static unsigned short icache_assoc;
+static unsigned short dcache_assoc;
 
-static unsigned int icache_sets;
-static unsigned int dcache_sets;
+static unsigned short icache_sets;
+static unsigned short dcache_sets;
 
 static unsigned int icache_range_cutoff;
 static unsigned int dcache_range_cutoff;
@@ -449,6 +452,11 @@ static unsigned int decode_cache_line_size(unsigned int config_field)
  * 9:7   Dcache Associativity
  */
 
+static char *way_string[] = {
+       "direct mapped", "2-way", "3-way", "4-way",
+       "5-way", "6-way", "7-way", "8-way",
+};
+
 static __init void probe_cache_sizes(void)
 {
        u32 config1;
@@ -473,6 +481,13 @@ static __init void probe_cache_sizes(void)
         */
        icache_range_cutoff = icache_sets * icache_line_size;
        dcache_range_cutoff = (dcache_sets / 2) * icache_line_size;
+
+       printk("Primary instruction cache %ldkB, %s, linesize %d bytes.\n",
+              icache_size >> 10, way_string[icache_assoc - 1],
+              icache_line_size);
+       printk("Primary data cache %ldkB, %s, linesize %d bytes.\n",
+              dcache_size >> 10, way_string[dcache_assoc - 1],
+              dcache_line_size);
 }
 
 /*
@@ -526,15 +541,14 @@ void ld_mmu_sb1(void)
         * before subsequent instruction fetch.
         */
        __asm__ __volatile__(
+               ".set   push                    \n"
        "       .set    noat                    \n"
        "       .set    noreorder               \n"
-       "       .set    mips3\n\t               \n"
-       "       la      $1, 1f                  \n"
-       "       mtc0    $1, $14                 \n"
+       "       .set    mips3                   \n"
+       "       " STR(PTR_LA) " $1, 1f          \n"
+       "       " STR(MTC0) "   $1, $14         \n"
        "       eret                            \n"
-       "1:     .set    mips0\n\t               \n"
-       "       .set    at                      \n"
-       "       .set    reorder"
+       "1:     .set    pop"
        :
        :
        : "memory");
index 9654d74c5019dd5075e054cd3f825acedda3af9e..9b0592dffb1a641f41c1f016c3920bef5d1ecf98 100644 (file)
@@ -484,9 +484,9 @@ void __init ld_mmu_tx39(void)
        current_cpu_data.icache.waybit = 0;
        current_cpu_data.dcache.waybit = 0;
 
-       printk("Primary instruction cache %ldkb, linesize %d bytes\n",
+       printk("Primary instruction cache %ldkB, linesize %d bytes\n",
                icache_size >> 10, current_cpu_data.icache.linesz);
-       printk("Primary data cache %ldkb, linesize %d bytes\n",
+       printk("Primary data cache %ldkB, linesize %d bytes\n",
                dcache_size >> 10, current_cpu_data.dcache.linesz);
 
        build_clear_page();
index b95b91b14b6a604cd4b8f29fb5dc15772cb74fdd..adf352273f63402efff6fddaa63bb118f16595d9 100644 (file)
@@ -96,6 +96,15 @@ static int remap_area_pages(unsigned long address, phys_t phys_addr,
        return error;
 }
 
+/*
+ * Allow physical addresses to be fixed up to help 36 bit peripherals.
+ */
+phys_t __attribute__ ((weak))
+fixup_bigphys_addr(phys_t phys_addr, phys_t size)
+{
+       return phys_addr;
+}
+
 /*
  * Generic mapping function (not visible outside):
  */
@@ -110,7 +119,7 @@ static int remap_area_pages(unsigned long address, phys_t phys_addr,
  * caller shouldn't need to know that small detail.
  */
 
-#define IS_LOW512(addr) (!((phys_t)(addr) & ~0x1fffffffUL))
+#define IS_LOW512(addr) (!((phys_t)(addr) & (phys_t) ~0x1fffffffULL))
 
 void * __ioremap(phys_t phys_addr, phys_t size, unsigned long flags)
 {
@@ -119,6 +128,8 @@ void * __ioremap(phys_t phys_addr, phys_t size, unsigned long flags)
        phys_t last_addr;
        void * addr;
 
+       phys_addr = fixup_bigphys_addr(phys_addr, size);
+
        /* Don't allow wraparound or zero size */
        last_addr = phys_addr + size - 1;
        if (!size || last_addr < phys_addr)
@@ -171,15 +182,14 @@ void * __ioremap(phys_t phys_addr, phys_t size, unsigned long flags)
 
 #define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == KSEG1)
 
-void __iounmap(void *addr)
+void __iounmap(volatile void __iomem *addr)
 {
        struct vm_struct *p;
 
        if (IS_KSEG1(addr))
                return;
 
-       vfree((void *) (PAGE_MASK & (unsigned long) addr));
-       p = remove_vm_area((void *) (PAGE_MASK & (unsigned long) addr));
+       p = remove_vm_area((void *) (PAGE_MASK & (unsigned long __force) addr));
        if (!p) {
                printk(KERN_ERR "iounmap: bad address %p\n", addr);
                return;
index 467fdfe2108cccf23da6aad0252b082c7d6a5cc0..a26bf8202e2e4bfbb29d79faf006e2c0122f9475 100644 (file)
@@ -224,7 +224,7 @@ static inline void build_cdex_p(void)
        emit_instruction(mi);
 }
 
-static void __build_store_reg(int reg)
+static void __init __build_store_reg(int reg)
 {
        union mips_instruction mi;
        unsigned int width;
@@ -356,7 +356,7 @@ void __init build_clear_page(void)
                case CPU_R10000:
                case CPU_R12000:
                        pref_src_mode = Pref_LoadStreamed;
-                       pref_dst_mode = Pref_StoreRetained;
+                       pref_dst_mode = Pref_StoreStreamed;
                        break;
 
                default:
index 7eb9533052748858b0e644daffad4080f691f832..e4b961cbcf18034a283204cd154c715f1ba3947a 100644 (file)
@@ -52,29 +52,8 @@ void pmd_init(unsigned long addr, unsigned long pagetable)
 
 void __init pagetable_init(void)
 {
-       pmd_t *pmd;
-       pte_t *pte;
-       int i;
-
        /* Initialize the entire pgd.  */
        pgd_init((unsigned long)swapper_pg_dir);
        pmd_init((unsigned long)invalid_pmd_table, (unsigned long)invalid_pte_table);
        memset((void *)invalid_pte_table, 0, sizeof(pte_t) * PTRS_PER_PTE);
-
-       memset((void *)kptbl, 0, PAGE_SIZE << PGD_ORDER);
-       memset((void *)kpmdtbl, 0, PAGE_SIZE);
-       set_pgd(swapper_pg_dir, __pgd((unsigned long)kpmdtbl));
-
-       /*
-        * The 64-bit kernel uses a flat pagetable for it's kernel mappings ...
-        */
-       pmd = kpmdtbl;
-       pte = kptbl;
-       i = 0;
-       while (i < (1 << PGD_ORDER)) {
-               pmd_val(*pmd) = (unsigned long)pte;
-               pte += PTRS_PER_PTE;
-               pmd++;
-               i++;
-       }
 }
index e1090c564aa19b288472c41d729bc5125c125920..94ab754f65422f92b821d54f841bed6aa4362eb0 100644 (file)
 #include <asm/system.h>
 #include <asm/mmu_context.h>
 
-extern void except_vec0_generic(void);
-extern void except_vec0_r4000(void);
-extern void except_vec1_generic(void);
-extern void except_vec1_r10k(void);
+extern void build_tlb_refill_handler(void);
 
 #define NTLB_ENTRIES       64
 #define NTLB_ENTRIES_HALF  32
@@ -88,7 +85,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
                                idx = read_c0_index();
                                write_c0_entrylo0(0);
                                write_c0_entrylo1(0);
-                               write_c0_entryhi(KSEG0);
+                               write_c0_entryhi(CKSEG0);
                                if(idx < 0)
                                        continue;
                                tlb_write_indexed();
@@ -126,7 +123,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
                        idx = read_c0_index();
                        write_c0_entrylo0(0);
                        write_c0_entrylo1(0);
-                       write_c0_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
+                       write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT+1)));
                        if (idx < 0)
                                continue;
                        tlb_write_indexed();
@@ -154,7 +151,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
                idx = read_c0_index();
                write_c0_entrylo0(0);
                write_c0_entrylo1(0);
-               write_c0_entryhi(KSEG0);
+               write_c0_entryhi(CKSEG0);
                if (idx < 0)
                        goto finish;
                tlb_write_indexed();
@@ -184,7 +181,7 @@ void local_flush_tlb_one(unsigned long page)
        write_c0_entrylo1(0);
        if (idx >= 0) {
                /* Make sure all entries differ. */
-               write_c0_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
+               write_c0_entryhi(CKSEG0+(idx<<(PAGE_SHIFT+1)));
                tlb_write_indexed();
        }
        write_c0_entryhi(oldpid);
@@ -257,14 +254,5 @@ void __init tlb_init(void)
 
        /* Did I tell you that ARC SUCKS?  */
 
-#ifdef CONFIG_MIPS32
-       memcpy((void *)KSEG0, &except_vec0_r4000, 0x80);
-       memcpy((void *)(KSEG0 + 0x080), &except_vec1_generic, 0x80);
-       flush_icache_range(KSEG0, KSEG0 + 0x100);
-#endif
-#ifdef CONFIG_MIPS64
-       memcpy((void *)(CKSEG0 + 0x000), &except_vec0_generic, 0x80);
-       memcpy((void *)(CKSEG0 + 0x080), except_vec1_r10k, 0x80);
-       flush_icache_range(CKSEG0 + 0x80, CKSEG0 + 0x100);
-#endif
+       build_tlb_refill_handler();
 }
index 89a0ee3bd225e4e594295963cce718e146ce1497..7948e9a5e37212bccc6da9bce7d4829429169dc9 100644 (file)
@@ -26,7 +26,7 @@
 
 #undef DEBUG_TLB
 
-extern char except_vec0_r2300;
+extern void build_tlb_refill_handler(void);
 
 /* CP0 hazard avoidance. */
 #define BARRIER                                \
@@ -284,6 +284,6 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
 void __init tlb_init(void)
 {
        local_flush_tlb_all();
-       memcpy((void *)KSEG0, &except_vec0_r2300, 0x80);
-       flush_icache_range(KSEG0, KSEG0 + 0x80);
+
+       build_tlb_refill_handler();
 }
index 91fee06881f9d2fa16d72de6812f365137fe5f4b..59d38bc05b6911f9137adcee46befa41065c6c08 100644 (file)
 #include <asm/pgtable.h>
 #include <asm/system.h>
 
-extern void except_vec0_generic(void);
-extern void except_vec0_nevada(void);
-extern void except_vec0_r4000(void);
-extern void except_vec0_r4600(void);
-extern void except_vec1_generic(void);
-extern void except_vec1_r4k(void);
+extern void build_tlb_refill_handler(void);
 
 /* CP0 hazard avoidance. */
 #define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
@@ -255,8 +250,14 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
        idx = read_c0_index();
        ptep = pte_offset_map(pmdp, address);
 
-       write_c0_entrylo0(pte_val(*ptep++) >> 6);
-       write_c0_entrylo1(pte_val(*ptep) >> 6);
+ #if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
+       write_c0_entrylo0(ptep->pte_high);
+       ptep++;
+       write_c0_entrylo1(ptep->pte_high);
+#else
+       write_c0_entrylo0(pte_val(*ptep++) >> 6);
+       write_c0_entrylo1(pte_val(*ptep) >> 6);
+#endif
        write_c0_entryhi(address | pid);
        mtc0_tlbw_hazard();
        if (idx < 0)
@@ -414,19 +415,5 @@ void __init tlb_init(void)
        temp_tlb_entry = current_cpu_data.tlbsize - 1;
        local_flush_tlb_all();
 
-#ifdef CONFIG_MIPS32
-       if (current_cpu_data.cputype == CPU_NEVADA)
-               memcpy((void *)KSEG0, &except_vec0_nevada, 0x80);
-       else if (current_cpu_data.cputype == CPU_R4600)
-               memcpy((void *)KSEG0, &except_vec0_r4600, 0x80);
-       else
-               memcpy((void *)KSEG0, &except_vec0_r4000, 0x80);
-       memcpy((void *)(KSEG0 + 0x080), &except_vec1_generic, 0x80);
-       flush_icache_range(KSEG0, KSEG0 + 0x100);
-#endif
-#ifdef CONFIG_MIPS64
-       memcpy((void *)(CKSEG0 + 0x00), &except_vec0_generic, 0x80);
-       memcpy((void *)(CKSEG0 + 0x80), except_vec1_r4k, 0x80);
-       flush_icache_range(CKSEG0 + 0x80, CKSEG0 + 0x100);
-#endif
+       build_tlb_refill_handler();
 }
index daac80ea3c0a0453fc16674aed1ffb7369ff3e95..1bfb09198ce378ce4a45bc300fad743ed0cfe4bf 100644 (file)
@@ -19,8 +19,7 @@
 #include <asm/pgtable.h>
 #include <asm/system.h>
 
-extern void except_vec0_generic(void);
-extern void except_vec1_r8k(void);
+extern void build_tlb_refill_handler(void);
 
 #define TFP_TLB_SIZE           384
 #define TFP_TLB_SET_SHIFT      7
@@ -247,7 +246,5 @@ void __init tlb_init(void)
 
        local_flush_tlb_all();
 
-       memcpy((void *)(CKSEG0 + 0x00), &except_vec0_generic, 0x80);
-       memcpy((void *)(CKSEG0 + 0x80), except_vec1_r8k, 0x80);
-       flush_icache_range(CKSEG0 + 0x80, CKSEG0 + 0x100);
+       build_tlb_refill_handler();
 }
index 33c177e6590822088804de114f19841de7eeeae1..fb315e284714007a003951134ba54324428078c0 100644 (file)
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 
-#ifdef CONFIG_MIPS32
-extern void except_vec0_sb1(void);
-extern void except_vec1_generic(void);
-#endif
-#ifdef CONFIG_MIPS64
-extern void except_vec0_generic(void);
-extern void except_vec1_sb1(void);
-#endif
+extern void build_tlb_refill_handler(void);
 
 #define UNIQUE_ENTRYHI(idx) (KSEG0 + ((idx) << (PAGE_SHIFT + 1)))
 
@@ -286,10 +279,17 @@ void local_flush_tlb_one(unsigned long page)
    these entries, we just bump the asid. */
 void local_flush_tlb_mm(struct mm_struct *mm)
 {
-       int cpu = smp_processor_id();
+       int cpu;
+
+       preempt_disable();
+
+       cpu = smp_processor_id();
+
        if (cpu_context(cpu, mm) != 0) {
                drop_mmu_context(mm, cpu);
        }
+
+       preempt_enable();
 }
 
 /* Stolen from mips32 routines */
@@ -373,14 +373,5 @@ void tlb_init(void)
         */
        sb1_sanitize_tlb();
 
-#ifdef CONFIG_MIPS32
-       memcpy((void *)KSEG0, &except_vec0_sb1, 0x80);
-       memcpy((void *)(KSEG0 + 0x080), &except_vec1_generic, 0x80);
-       flush_icache_range(KSEG0, KSEG0 + 0x100);
-#endif
-#ifdef CONFIG_MIPS64
-       memcpy((void *)CKSEG0, &except_vec0_generic, 0x80);
-       memcpy((void *)(CKSEG0 + 0x80), &except_vec1_sb1, 0x80);
-       flush_icache_range(CKSEG0, CKSEG0 + 0x100);
-#endif
+       build_tlb_refill_handler();
 }
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
new file mode 100644 (file)
index 0000000..fc3f5c5
--- /dev/null
@@ -0,0 +1,1177 @@
+/*
+ * 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.
+ *
+ * Synthesize TLB refill handlers at runtime.
+ *
+ * Copyright (C) 2004 by Thiemo Seufer
+ */
+
+#include <stdarg.h>
+
+#include <linux/config.h>
+#include <linux/mm.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/string.h>
+#include <linux/init.h>
+
+#include <asm/pgtable.h>
+#include <asm/cacheflush.h>
+#include <asm/cacheflush.h>
+#include <asm/mmu_context.h>
+#include <asm/inst.h>
+#include <asm/elf.h>
+#include <asm/smp.h>
+
+/* #define DEBUG_TLB */
+
+static __init int __attribute__((unused)) r45k_bvahwbug(void)
+{
+       /* XXX: We should probe for the presence of this bug, but we don't. */
+       return 0;
+}
+
+static __init int __attribute__((unused)) r4k_250MHZhwbug(void)
+{
+       /* XXX: We should probe for the presence of this bug, but we don't. */
+       return 0;
+}
+
+static __init int __attribute__((unused)) bcm1250_m3_war(void)
+{
+       return BCM1250_M3_WAR;
+}
+
+/*
+ * A little micro-assembler, intended for TLB refill handler
+ * synthesizing. It is intentionally kept simple, does only support
+ * a subset of instructions, and does not try to hide pipeline effects
+ * like branch delay slots.
+ */
+
+enum fields
+{
+       RS = 0x001,
+       RT = 0x002,
+       RD = 0x004,
+       RE = 0x008,
+       SIMM = 0x010,
+       UIMM = 0x020,
+       BIMM = 0x040,
+       JIMM = 0x080,
+       FUNC = 0x100,
+};
+
+#define OP_MASK                0x2f
+#define OP_SH          26
+#define RS_MASK                0x1f
+#define RS_SH          21
+#define RT_MASK                0x1f
+#define RT_SH          16
+#define RD_MASK                0x1f
+#define RD_SH          11
+#define RE_MASK                0x1f
+#define RE_SH          6
+#define IMM_MASK       0xffff
+#define IMM_SH         0
+#define JIMM_MASK      0x3ffffff
+#define JIMM_SH                0
+#define FUNC_MASK      0x2f
+#define FUNC_SH                0
+
+enum opcode {
+       insn_invalid,
+       insn_addu, insn_addiu, insn_and, insn_andi, insn_beq,
+       insn_bgez, insn_bgezl, insn_bltz, insn_bltzl, insn_bne,
+       insn_daddu, insn_daddiu, insn_dmfc0, insn_dmtc0,
+       insn_dsll, insn_dsll32, insn_dsra, insn_dsrl, insn_dsrl32,
+       insn_dsubu, insn_eret, insn_j, insn_jal, insn_jr, insn_ld,
+       insn_lui, insn_lw, insn_mfc0, insn_mtc0, insn_ori, insn_rfe,
+       insn_sd, insn_sll, insn_sra, insn_srl, insn_subu, insn_sw,
+       insn_tlbp, insn_tlbwi, insn_tlbwr, insn_xor, insn_xori
+};
+
+struct insn {
+       enum opcode opcode;
+       u32 match;
+       enum fields fields;
+};
+
+/* This macro sets the non-variable bits of an instruction. */
+#define M(a, b, c, d, e, f)                                    \
+       ((a) << OP_SH                                           \
+        | (b) << RS_SH                                         \
+        | (c) << RT_SH                                         \
+        | (d) << RD_SH                                         \
+        | (e) << RE_SH                                         \
+        | (f) << FUNC_SH)
+
+static __initdata struct insn insn_table[] = {
+       { insn_addiu, M(addiu_op,0,0,0,0,0), RS | RT | SIMM },
+       { insn_addu, M(spec_op,0,0,0,0,addu_op), RS | RT | RD },
+       { insn_and, M(spec_op,0,0,0,0,and_op), RS | RT | RD },
+       { insn_andi, M(andi_op,0,0,0,0,0), RS | RT | UIMM },
+       { insn_beq, M(beq_op,0,0,0,0,0), RS | RT | BIMM },
+       { insn_bgez, M(bcond_op,0,bgez_op,0,0,0), RS | BIMM },
+       { insn_bgezl, M(bcond_op,0,bgezl_op,0,0,0), RS | BIMM },
+       { insn_bltz, M(bcond_op,0,bltz_op,0,0,0), RS | BIMM },
+       { insn_bltzl, M(bcond_op,0,bltzl_op,0,0,0), RS | BIMM },
+       { insn_bne, M(bne_op,0,0,0,0,0), RS | RT | BIMM },
+       { insn_daddiu, M(daddiu_op,0,0,0,0,0), RS | RT | SIMM },
+       { insn_daddu, M(spec_op,0,0,0,0,daddu_op), RS | RT | RD },
+       { insn_dmfc0, M(cop0_op,dmfc_op,0,0,0,0), RT | RD },
+       { insn_dmtc0, M(cop0_op,dmtc_op,0,0,0,0), RT | RD },
+       { insn_dsll, M(spec_op,0,0,0,0,dsll_op), RT | RD | RE },
+       { insn_dsll32, M(spec_op,0,0,0,0,dsll32_op), RT | RD | RE },
+       { insn_dsra, M(spec_op,0,0,0,0,dsra_op), RT | RD | RE },
+       { insn_dsrl, M(spec_op,0,0,0,0,dsrl_op), RT | RD | RE },
+       { insn_dsrl32, M(spec_op,0,0,0,0,dsrl32_op), RT | RD | RE },
+       { insn_dsubu, M(spec_op,0,0,0,0,dsubu_op), RS | RT | RD },
+       { insn_eret, M(cop0_op,cop_op,0,0,0,eret_op), 0 },
+       { insn_j, M(j_op,0,0,0,0,0), JIMM },
+       { insn_jal, M(jal_op,0,0,0,0,0), JIMM },
+       { insn_jr, M(spec_op,0,0,0,0,jr_op), RS },
+       { insn_ld, M(ld_op,0,0,0,0,0), RS | RT | SIMM },
+       { insn_lui, M(lui_op,0,0,0,0,0), RT | SIMM },
+       { insn_lw, M(lw_op,0,0,0,0,0), RS | RT | SIMM },
+       { insn_mfc0, M(cop0_op,mfc_op,0,0,0,0), RT | RD },
+       { insn_mtc0, M(cop0_op,mtc_op,0,0,0,0), RT | RD },
+       { insn_ori, M(ori_op,0,0,0,0,0), RS | RT | UIMM },
+       { insn_rfe, M(cop0_op,cop_op,0,0,0,rfe_op), 0 },
+       { insn_sd, M(sd_op,0,0,0,0,0), RS | RT | SIMM },
+       { insn_sll, M(spec_op,0,0,0,0,sll_op), RT | RD | RE },
+       { insn_sra, M(spec_op,0,0,0,0,sra_op), RT | RD | RE },
+       { insn_srl, M(spec_op,0,0,0,0,srl_op), RT | RD | RE },
+       { insn_subu, M(spec_op,0,0,0,0,subu_op), RS | RT | RD },
+       { insn_sw, M(sw_op,0,0,0,0,0), RS | RT | SIMM },
+       { insn_tlbp, M(cop0_op,cop_op,0,0,0,tlbp_op), 0 },
+       { insn_tlbwi, M(cop0_op,cop_op,0,0,0,tlbwi_op), 0 },
+       { insn_tlbwr, M(cop0_op,cop_op,0,0,0,tlbwr_op), 0 },
+       { insn_xor, M(spec_op,0,0,0,0,xor_op), RS | RT | RD },
+       { insn_xori, M(xori_op,0,0,0,0,0), RS | RT | UIMM },
+       { insn_invalid, 0, 0 }
+};
+
+#undef M
+
+static __init u32 build_rs(u32 arg)
+{
+       if (arg & ~RS_MASK)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return (arg & RS_MASK) << RS_SH;
+}
+
+static __init u32 build_rt(u32 arg)
+{
+       if (arg & ~RT_MASK)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return (arg & RT_MASK) << RT_SH;
+}
+
+static __init u32 build_rd(u32 arg)
+{
+       if (arg & ~RD_MASK)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return (arg & RD_MASK) << RD_SH;
+}
+
+static __init u32 build_re(u32 arg)
+{
+       if (arg & ~RE_MASK)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return (arg & RE_MASK) << RE_SH;
+}
+
+static __init u32 build_simm(s32 arg)
+{
+       if (arg > 0x7fff || arg < -0x8000)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return arg & 0xffff;
+}
+
+static __init u32 build_uimm(u32 arg)
+{
+       if (arg & ~IMM_MASK)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return arg & IMM_MASK;
+}
+
+static __init u32 build_bimm(s32 arg)
+{
+       if (arg > 0x1ffff || arg < -0x20000)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       if (arg & 0x3)
+               printk(KERN_WARNING "Invalid TLB synthesizer branch target\n");
+
+       return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff);
+}
+
+static __init u32 build_jimm(u32 arg)
+{
+       if (arg & ~((JIMM_MASK) << 2))
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return (arg >> 2) & JIMM_MASK;
+}
+
+static __init u32 build_func(u32 arg)
+{
+       if (arg & ~FUNC_MASK)
+               printk(KERN_WARNING "TLB synthesizer field overflow\n");
+
+       return arg & FUNC_MASK;
+}
+
+/*
+ * The order of opcode arguments is implicitly left to right,
+ * starting with RS and ending with FUNC or IMM.
+ */
+static void __init build_insn(u32 **buf, enum opcode opc, ...)
+{
+       struct insn *ip = NULL;
+       unsigned int i;
+       va_list ap;
+       u32 op;
+
+       for (i = 0; insn_table[i].opcode != insn_invalid; i++)
+               if (insn_table[i].opcode == opc) {
+                       ip = &insn_table[i];
+                       break;
+               }
+
+       if (!ip)
+               panic("Unsupported TLB synthesizer instruction %d", opc);
+
+       op = ip->match;
+       va_start(ap, opc);
+       if (ip->fields & RS) op |= build_rs(va_arg(ap, u32));
+       if (ip->fields & RT) op |= build_rt(va_arg(ap, u32));
+       if (ip->fields & RD) op |= build_rd(va_arg(ap, u32));
+       if (ip->fields & RE) op |= build_re(va_arg(ap, u32));
+       if (ip->fields & SIMM) op |= build_simm(va_arg(ap, s32));
+       if (ip->fields & UIMM) op |= build_uimm(va_arg(ap, u32));
+       if (ip->fields & BIMM) op |= build_bimm(va_arg(ap, s32));
+       if (ip->fields & JIMM) op |= build_jimm(va_arg(ap, u32));
+       if (ip->fields & FUNC) op |= build_func(va_arg(ap, u32));
+       va_end(ap);
+
+       **buf = op;
+       (*buf)++;
+}
+
+#define I_u1u2u3(op)                                           \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               unsigned int b, unsigned int c)                 \
+       {                                                       \
+               build_insn(buf, insn##op, a, b, c);             \
+       }
+
+#define I_u2u1u3(op)                                           \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               unsigned int b, unsigned int c)                 \
+       {                                                       \
+               build_insn(buf, insn##op, b, a, c);             \
+       }
+
+#define I_u3u1u2(op)                                           \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               unsigned int b, unsigned int c)                 \
+       {                                                       \
+               build_insn(buf, insn##op, b, c, a);             \
+       }
+
+#define I_u1u2s3(op)                                           \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               unsigned int b, signed int c)                   \
+       {                                                       \
+               build_insn(buf, insn##op, a, b, c);             \
+       }
+
+#define I_u2s3u1(op)                                           \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               signed int b, unsigned int c)                   \
+       {                                                       \
+               build_insn(buf, insn##op, c, a, b);             \
+       }
+
+#define I_u2u1s3(op)                                           \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               unsigned int b, signed int c)                   \
+       {                                                       \
+               build_insn(buf, insn##op, b, a, c);             \
+       }
+
+#define I_u1u2(op)                                             \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               unsigned int b)                                 \
+       {                                                       \
+               build_insn(buf, insn##op, a, b);                \
+       }
+
+#define I_u1s2(op)                                             \
+       static inline void i##op(u32 **buf, unsigned int a,     \
+               signed int b)                                   \
+       {                                                       \
+               build_insn(buf, insn##op, a, b);                \
+       }
+
+#define I_u1(op)                                               \
+       static inline void i##op(u32 **buf, unsigned int a)     \
+       {                                                       \
+               build_insn(buf, insn##op, a);                   \
+       }
+
+#define I_0(op)                                                        \
+       static inline void i##op(u32 **buf)                     \
+       {                                                       \
+               build_insn(buf, insn##op);                      \
+       }
+
+I_u2u1s3(_addiu);
+I_u3u1u2(_addu);
+I_u2u1u3(_andi);
+I_u3u1u2(_and);
+I_u1u2s3(_beq);
+I_u1s2(_bgez);
+I_u1s2(_bgezl);
+I_u1s2(_bltz);
+I_u1s2(_bltzl);
+I_u1u2s3(_bne);
+I_u1u2(_dmfc0);
+I_u1u2(_dmtc0);
+I_u2u1s3(_daddiu);
+I_u3u1u2(_daddu);
+I_u2u1u3(_dsll);
+I_u2u1u3(_dsll32);
+I_u2u1u3(_dsra);
+I_u2u1u3(_dsrl);
+I_u2u1u3(_dsrl32);
+I_u3u1u2(_dsubu);
+I_0(_eret);
+I_u1(_j);
+I_u1(_jal);
+I_u1(_jr);
+I_u2s3u1(_ld);
+I_u1s2(_lui);
+I_u2s3u1(_lw);
+I_u1u2(_mfc0);
+I_u1u2(_mtc0);
+I_u2u1u3(_ori);
+I_0(_rfe);
+I_u2s3u1(_sd);
+I_u2u1u3(_sll);
+I_u2u1u3(_sra);
+I_u2u1u3(_srl);
+I_u3u1u2(_subu);
+I_u2s3u1(_sw);
+I_0(_tlbp);
+I_0(_tlbwi);
+I_0(_tlbwr);
+I_u3u1u2(_xor)
+I_u2u1u3(_xori);
+
+/*
+ * handling labels
+ */
+
+enum label_id {
+       label_invalid,
+       label_second_part,
+       label_leave,
+       label_vmalloc,
+       label_vmalloc_done,
+       label_tlbwr_hazard,
+       label_split
+};
+
+struct label {
+       u32 *addr;
+       enum label_id lab;
+};
+
+static __init void build_label(struct label **lab, u32 *addr,
+                              enum label_id l)
+{
+       (*lab)->addr = addr;
+       (*lab)->lab = l;
+       (*lab)++;
+}
+
+#define L_LA(lb)                                               \
+       static inline void l##lb(struct label **lab, u32 *addr) \
+       {                                                       \
+               build_label(lab, addr, label##lb);              \
+       }
+
+L_LA(_second_part)
+L_LA(_leave)
+L_LA(_vmalloc)
+L_LA(_vmalloc_done)
+L_LA(_tlbwr_hazard)
+L_LA(_split)
+
+/* convenience macros for instructions */
+#ifdef CONFIG_MIPS64
+# define i_LW(buf, rs, rt, off) i_ld(buf, rs, rt, off)
+# define i_SW(buf, rs, rt, off) i_sd(buf, rs, rt, off)
+# define i_SLL(buf, rs, rt, sh) i_dsll(buf, rs, rt, sh)
+# define i_SRA(buf, rs, rt, sh) i_dsra(buf, rs, rt, sh)
+# define i_SRL(buf, rs, rt, sh) i_dsrl(buf, rs, rt, sh)
+# define i_MFC0(buf, rt, rd) i_dmfc0(buf, rt, rd)
+# define i_MTC0(buf, rt, rd) i_dmtc0(buf, rt, rd)
+# define i_ADDIU(buf, rs, rt, val) i_daddiu(buf, rs, rt, val)
+# define i_ADDU(buf, rs, rt, rd) i_daddu(buf, rs, rt, rd)
+# define i_SUBU(buf, rs, rt, rd) i_dsubu(buf, rs, rt, rd)
+#else
+# define i_LW(buf, rs, rt, off) i_lw(buf, rs, rt, off)
+# define i_SW(buf, rs, rt, off) i_sw(buf, rs, rt, off)
+# define i_SLL(buf, rs, rt, sh) i_sll(buf, rs, rt, sh)
+# define i_SRA(buf, rs, rt, sh) i_sra(buf, rs, rt, sh)
+# define i_SRL(buf, rs, rt, sh) i_srl(buf, rs, rt, sh)
+# define i_MFC0(buf, rt, rd) i_mfc0(buf, rt, rd)
+# define i_MTC0(buf, rt, rd) i_mtc0(buf, rt, rd)
+# define i_ADDIU(buf, rs, rt, val) i_addiu(buf, rs, rt, val)
+# define i_ADDU(buf, rs, rt, rd) i_addu(buf, rs, rt, rd)
+# define i_SUBU(buf, rs, rt, rd) i_subu(buf, rs, rt, rd)
+#endif
+
+#define i_b(buf, off) i_beq(buf, 0, 0, off)
+#define i_bnez(buf, rs, off) i_bne(buf, rs, 0, off)
+#define i_move(buf, a, b) i_ADDU(buf, a, 0, b)
+#define i_nop(buf) i_sll(buf, 0, 0, 0)
+#define i_ssnop(buf) i_sll(buf, 0, 0, 1)
+#define i_ehb(buf) i_sll(buf, 0, 0, 3)
+
+#if CONFIG_MIPS64
+static __init int in_compat_space_p(long addr)
+{
+       /* Is this address in 32bit compat space? */
+       return (((addr) & 0xffffffff00000000) == 0xffffffff00000000);
+}
+
+static __init int rel_highest(long val)
+{
+       return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000;
+}
+
+static __init int rel_higher(long val)
+{
+       return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000;
+}
+#endif
+
+static __init int rel_hi(long val)
+{
+       return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000;
+}
+
+static __init int rel_lo(long val)
+{
+       return ((val & 0xffff) ^ 0x8000) - 0x8000;
+}
+
+static __init void i_LA_mostly(u32 **buf, unsigned int rs, long addr)
+{
+#if CONFIG_MIPS64
+       if (!in_compat_space_p(addr)) {
+               i_lui(buf, rs, rel_highest(addr));
+               if (rel_higher(addr))
+                       i_daddiu(buf, rs, rs, rel_higher(addr));
+               if (rel_hi(addr)) {
+                       i_dsll(buf, rs, rs, 16);
+                       i_daddiu(buf, rs, rs, rel_hi(addr));
+                       i_dsll(buf, rs, rs, 16);
+               } else
+                       i_dsll32(buf, rs, rs, 0);
+       } else
+#endif
+               i_lui(buf, rs, rel_hi(addr));
+}
+
+static __init void __attribute__((unused)) i_LA(u32 **buf, unsigned int rs,
+                                               long addr)
+{
+       i_LA_mostly(buf, rs, addr);
+       if (rel_lo(addr))
+               i_ADDIU(buf, rs, rs, rel_lo(addr));
+}
+
+/*
+ * handle relocations
+ */
+
+struct reloc {
+       u32 *addr;
+       unsigned int type;
+       enum label_id lab;
+};
+
+static __init void r_mips_pc16(struct reloc **rel, u32 *addr,
+                              enum label_id l)
+{
+       (*rel)->addr = addr;
+       (*rel)->type = R_MIPS_PC16;
+       (*rel)->lab = l;
+       (*rel)++;
+}
+
+static inline void __resolve_relocs(struct reloc *rel, struct label *lab)
+{
+       long laddr = (long)lab->addr;
+       long raddr = (long)rel->addr;
+
+       switch (rel->type) {
+       case R_MIPS_PC16:
+               *rel->addr |= build_bimm(laddr - (raddr + 4));
+               break;
+
+       default:
+               panic("Unsupported TLB synthesizer relocation %d",
+                     rel->type);
+       }
+}
+
+static __init void resolve_relocs(struct reloc *rel, struct label *lab)
+{
+       struct label *l;
+
+       for (; rel->lab != label_invalid; rel++)
+               for (l = lab; l->lab != label_invalid; l++)
+                       if (rel->lab == l->lab)
+                               __resolve_relocs(rel, l);
+}
+
+static __init void copy_handler(struct reloc *rel, struct label *lab,
+                               u32 *first, u32 *end, u32* target)
+{
+       long off = (long)(target - first);
+
+       memcpy(target, first, (end - first) * sizeof(u32));
+
+       for (; rel->lab != label_invalid; rel++)
+               if (rel->addr >= first && rel->addr < end)
+                       rel->addr += off;
+
+       for (; lab->lab != label_invalid; lab++)
+               if (lab->addr >= first && lab->addr < end)
+                       lab->addr += off;
+}
+
+static __init int __attribute__((unused)) insn_has_bdelay(struct reloc *rel,
+                                                         u32 *addr)
+{
+       for (; rel->lab != label_invalid; rel++) {
+               if (rel->addr == addr
+                   && (rel->type == R_MIPS_PC16
+                       || rel->type == R_MIPS_26))
+                       return 1;
+       }
+
+       return 0;
+}
+
+/* convenience functions for labeled branches */
+static void __attribute__((unused)) il_bltz(u32 **p, struct reloc **r,
+                                           unsigned int reg, enum label_id l)
+{
+       r_mips_pc16(r, *p, l);
+       i_bltz(p, reg, 0);
+}
+
+static void __attribute__((unused)) il_b(u32 **p, struct reloc **r,
+                                        enum label_id l)
+{
+       r_mips_pc16(r, *p, l);
+       i_b(p, 0);
+}
+
+static void il_bnez(u32 **p, struct reloc **r, unsigned int reg,
+                   enum label_id l)
+{
+       r_mips_pc16(r, *p, l);
+       i_bnez(p, reg, 0);
+}
+
+static void il_bgezl(u32 **p, struct reloc **r, unsigned int reg,
+                    enum label_id l)
+{
+       r_mips_pc16(r, *p, l);
+       i_bgezl(p, reg, 0);
+}
+
+/* The only registers allowed in TLB handlers. */
+#define K0             26
+#define K1             27
+
+/* Some CP0 registers */
+#define C0_INDEX       0
+#define C0_ENTRYLO0    2
+#define C0_ENTRYLO1    3
+#define C0_CONTEXT     4
+#define C0_BADVADDR    8
+#define C0_ENTRYHI     10
+#define C0_EPC         14
+#define C0_XCONTEXT    20
+
+#ifdef CONFIG_MIPS64
+# define GET_CONTEXT(buf, reg) i_MFC0(buf, reg, C0_XCONTEXT)
+#else
+# define GET_CONTEXT(buf, reg) i_MFC0(buf, reg, C0_CONTEXT)
+#endif
+
+/* The worst case length of the handler is around 18 instructions for
+ * R3000-style TLBs and up to 63 instructions for R4000-style TLBs.
+ * Maximum space available is 32 instructions for R3000 and 64
+ * instructions for R4000.
+ *
+ * We deliberately chose a buffer size of 128, so we won't scribble
+ * over anything important on overflow before we panic.
+ */
+static __initdata u32 tlb_handler[128];
+
+/* simply assume worst case size for labels and relocs */
+static __initdata struct label labels[128];
+static __initdata struct reloc relocs[128];
+
+#ifdef CONFIG_MIPS32
+/*
+ * The R3000 TLB handler is simple.
+ */
+static void __init build_r3000_tlb_refill_handler(void)
+{
+       long pgdc = (long)pgd_current;
+       u32 *p;
+
+       memset(tlb_handler, 0, sizeof(tlb_handler));
+       p = tlb_handler;
+
+       i_mfc0(&p, K0, C0_BADVADDR);
+       i_lui(&p, K1, rel_hi(pgdc)); /* cp0 delay */
+       i_lw(&p, K1, rel_lo(pgdc), K1);
+       i_srl(&p, K0, K0, 22); /* load delay */
+       i_sll(&p, K0, K0, 2);
+       i_addu(&p, K1, K1, K0);
+       i_mfc0(&p, K0, C0_CONTEXT);
+       i_lw(&p, K1, 0, K1); /* cp0 delay */
+       i_andi(&p, K0, K0, 0xffc); /* load delay */
+       i_addu(&p, K1, K1, K0);
+       i_lw(&p, K0, 0, K1);
+       i_nop(&p); /* load delay */
+       i_mtc0(&p, K0, C0_ENTRYLO0);
+       i_mfc0(&p, K1, C0_EPC); /* cp0 delay */
+       i_tlbwr(&p); /* cp0 delay */
+       i_jr(&p, K1);
+       i_rfe(&p); /* branch delay */
+
+       if (p > tlb_handler + 32)
+               panic("TLB refill handler space exceeded");
+
+       printk("Synthesized TLB handler (%u instructions).\n",
+              p - tlb_handler);
+#ifdef DEBUG_TLB
+       {
+               int i;
+               for (i = 0; i < (p - tlb_handler); i++)
+                       printk("%08x\n", tlb_handler[i]);
+       }
+#endif
+
+       memcpy((void *)CAC_BASE, tlb_handler, 0x80);
+       flush_icache_range(CAC_BASE, CAC_BASE + 0x80);
+}
+#endif /* CONFIG_MIPS32 */
+
+/*
+ * The R4000 TLB handler is much more complicated. We have two
+ * consecutive handler areas with 32 instructions space each.
+ * Since they aren't used at the same time, we can overflow in the
+ * other one.To keep things simple, we first assume linear space,
+ * then we relocate it to the final handler layout as needed.
+ */
+static __initdata u32 final_handler[64];
+
+/*
+ * Hazards
+ *
+ * From the IDT errata for the QED RM5230 (Nevada), processor revision 1.0:
+ * 2. A timing hazard exists for the TLBP instruction.
+ *
+ *      stalling_instruction
+ *      TLBP
+ *
+ * The JTLB is being read for the TLBP throughout the stall generated by the
+ * previous instruction. This is not really correct as the stalling instruction
+ * can modify the address used to access the JTLB.  The failure symptom is that
+ * the TLBP instruction will use an address created for the stalling instruction
+ * and not the address held in C0_ENHI and thus report the wrong results.
+ *
+ * The software work-around is to not allow the instruction preceding the TLBP
+ * to stall - make it an NOP or some other instruction guaranteed not to stall.
+ *
+ * Errata 2 will not be fixed.  This errata is also on the R5000.
+ *
+ * As if we MIPS hackers wouldn't know how to nop pipelines happy ...
+ */
+static __init void __attribute__((unused)) build_tlb_probe_entry(u32 **p)
+{
+       switch (current_cpu_data.cputype) {
+       case CPU_R5000:
+       case CPU_R5000A:
+       case CPU_NEVADA:
+               i_nop(p);
+               i_tlbp(p);
+               break;
+
+       default:
+               i_tlbp(p);
+               break;
+       }
+}
+
+/*
+ * Write random TLB entry, and care about the hazards from the
+ * preceeding mtc0 and for the following eret.
+ */
+static __init void build_tlb_write_random_entry(u32 **p, struct label **l,
+                                               struct reloc **r)
+{
+       switch (current_cpu_data.cputype) {
+       case CPU_R4000PC:
+       case CPU_R4000SC:
+       case CPU_R4000MC:
+       case CPU_R4400PC:
+       case CPU_R4400SC:
+       case CPU_R4400MC:
+               /*
+                * This branch uses up a mtc0 hazard nop slot and saves
+                * two nops after the tlbwr.
+                */
+               il_bgezl(p, r, 0, label_tlbwr_hazard);
+               i_tlbwr(p);
+               l_tlbwr_hazard(l, *p);
+               i_nop(p);
+               break;
+
+       case CPU_R4600:
+       case CPU_R4700:
+       case CPU_R5000:
+       case CPU_R5000A:
+       case CPU_5KC:
+       case CPU_AU1000:
+       case CPU_AU1100:
+       case CPU_AU1500:
+       case CPU_AU1550:
+               i_nop(p);
+               i_tlbwr(p);
+               break;
+
+       case CPU_R10000:
+       case CPU_R12000:
+       case CPU_4KC:
+       case CPU_SB1:
+       case CPU_4KSC:
+       case CPU_20KC:
+       case CPU_25KF:
+               i_tlbwr(p);
+               break;
+
+       case CPU_NEVADA:
+               i_nop(p); /* QED specifies 2 nops hazard */
+               /*
+                * This branch uses up a mtc0 hazard nop slot and saves
+                * a nop after the tlbwr.
+                */
+               il_bgezl(p, r, 0, label_tlbwr_hazard);
+               i_tlbwr(p);
+               l_tlbwr_hazard(l, *p);
+               break;
+
+       case CPU_4KEC:
+       case CPU_24K:
+               i_ehb(p);
+               i_tlbwr(p);
+               break;
+
+       case CPU_RM9000:
+               /*
+                * When the JTLB is updated by tlbwi or tlbwr, a subsequent
+                * use of the JTLB for instructions should not occur for 4
+                * cpu cycles and use for data translations should not occur
+                * for 3 cpu cycles.
+                */
+               i_ssnop(p);
+               i_ssnop(p);
+               i_ssnop(p);
+               i_ssnop(p);
+               i_tlbwr(p);
+               i_ssnop(p);
+               i_ssnop(p);
+               i_ssnop(p);
+               i_ssnop(p);
+               break;
+
+       default:
+               panic("No TLB refill handler yet (CPU type: %d)",
+                     current_cpu_data.cputype);
+               break;
+       }
+}
+
+#if CONFIG_MIPS64
+/*
+ * TMP and PTR are scratch.
+ * TMP will be clobbered, PTR will hold the pmd entry.
+ */
+static __init void
+build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
+                unsigned int tmp, unsigned int ptr)
+{
+       long pgdc = (long)pgd_current;
+
+       /*
+        * The vmalloc handling is not in the hotpath.
+        */
+       i_dmfc0(p, tmp, C0_BADVADDR);
+       il_bltz(p, r, tmp, label_vmalloc);
+       /* No i_nop needed here, since the next insn doesn't touch TMP. */
+
+# ifdef CONFIG_SMP
+       /*
+        * 64 bit SMP has the lower part of &pgd_current[smp_processor_id()]
+        * stored in CONTEXT.
+        */
+       if (in_compat_space_p(pgdc)) {
+               i_dmfc0(p, ptr, C0_CONTEXT);
+               i_dsra(p, ptr, ptr, 23);
+       } else {
+               i_dmfc0(p, ptr, C0_CONTEXT);
+               i_lui(p, tmp, rel_highest(pgdc));
+               i_dsll(p, ptr, ptr, 9);
+               i_daddiu(p, tmp, tmp, rel_higher(pgdc));
+               i_dsrl32(p, ptr, ptr, 0);
+               i_and(p, ptr, ptr, tmp);
+               i_dmfc0(p, tmp, C0_BADVADDR);
+       }
+       i_ld(p, ptr, 0, ptr);
+# else
+       i_LA_mostly(p, ptr, pgdc);
+       i_ld(p, ptr, rel_lo(pgdc), ptr);
+# endif
+
+       l_vmalloc_done(l, *p);
+       i_dsrl(p, tmp, tmp, PGDIR_SHIFT-3); /* get pgd offset in bytes */
+       i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
+       i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */
+       i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */
+       i_ld(p, ptr, 0, ptr); /* get pmd pointer */
+       i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */
+       i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3);
+       i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */
+}
+
+/*
+ * BVADDR is the faulting address, PTR is scratch.
+ * PTR will hold the pgd for vmalloc.
+ */
+static __init void
+build_get_pgd_vmalloc64(u32 **p, struct label **l, struct reloc **r,
+                       unsigned int bvaddr, unsigned int ptr)
+{
+       long swpd = (long)swapper_pg_dir;
+
+       l_vmalloc(l, *p);
+       i_LA(p, ptr, VMALLOC_START);
+       i_dsubu(p, bvaddr, bvaddr, ptr);
+
+       if (in_compat_space_p(swpd) && !rel_lo(swpd)) {
+               il_b(p, r, label_vmalloc_done);
+               i_lui(p, ptr, rel_hi(swpd));
+       } else {
+               i_LA_mostly(p, ptr, swpd);
+               il_b(p, r, label_vmalloc_done);
+               i_daddiu(p, ptr, ptr, rel_lo(swpd));
+       }
+}
+
+#else /* CONFIG_MIPS32 */
+
+/*
+ * TMP and PTR are scratch.
+ * TMP will be clobbered, PTR will hold the pgd entry.
+ */
+static __init void build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr)
+{
+       long pgdc = (long)pgd_current;
+
+       /* 32 bit SMP has smp_processor_id() stored in CONTEXT. */
+#ifdef CONFIG_SMP
+       i_mfc0(p, ptr, C0_CONTEXT);
+       i_LA_mostly(p, tmp, pgdc);
+       i_srl(p, ptr, ptr, 23);
+       i_sll(p, ptr, ptr, 2);
+       i_addu(p, ptr, tmp, ptr);
+#else
+       i_LA_mostly(p, ptr, pgdc);
+#endif
+       i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */
+       i_lw(p, ptr, rel_lo(pgdc), ptr);
+       i_srl(p, tmp, tmp, PGDIR_SHIFT); /* get pgd only bits */
+       i_sll(p, tmp, tmp, PGD_T_LOG2);
+       i_addu(p, ptr, ptr, tmp); /* add in pgd offset */
+}
+#endif /* CONFIG_MIPS32 */
+
+static __init void build_adjust_context(u32 **p, unsigned int ctx)
+{
+       unsigned int shift = 0;
+       unsigned int mask = 0xff0;
+
+#if !defined(CONFIG_MIPS64) && !defined(CONFIG_64BIT_PHYS_ADDR)
+       shift++;
+       mask |= 0x008;
+#endif
+
+       switch (current_cpu_data.cputype) {
+       case CPU_VR41XX:
+       case CPU_VR4111:
+       case CPU_VR4121:
+       case CPU_VR4122:
+       case CPU_VR4131:
+       case CPU_VR4181:
+       case CPU_VR4181A:
+       case CPU_VR4133:
+               shift += 2;
+               break;
+
+       default:
+               break;
+       }
+
+       if (shift)
+               i_SRL(p, ctx, ctx, shift);
+       i_andi(p, ctx, ctx, mask);
+}
+
+static __init void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
+{
+       /*
+        * Bug workaround for the Nevada. It seems as if under certain
+        * circumstances the move from cp0_context might produce a
+        * bogus result when the mfc0 instruction and its consumer are
+        * in a different cacheline or a load instruction, probably any
+        * memory reference, is between them.
+        */
+       switch (current_cpu_data.cputype) {
+       case CPU_NEVADA:
+               i_LW(p, ptr, 0, ptr);
+               GET_CONTEXT(p, tmp); /* get context reg */
+               break;
+
+       default:
+               GET_CONTEXT(p, tmp); /* get context reg */
+               i_LW(p, ptr, 0, ptr);
+               break;
+       }
+
+       build_adjust_context(p, tmp);
+       i_ADDU(p, ptr, ptr, tmp); /* add in offset */
+}
+
+static __init void build_update_entries(u32 **p, unsigned int tmp,
+                                       unsigned int ptep)
+{
+       /*
+        * 64bit address support (36bit on a 32bit CPU) in a 32bit
+        * Kernel is a special case. Only a few CPUs use it.
+        */
+#ifdef CONFIG_64BIT_PHYS_ADDR
+       if (cpu_has_64bit_gp_regs) {
+               i_ld(p, tmp, 0, ptep); /* get even pte */
+               i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
+               i_dsrl(p, tmp, tmp, 6); /* convert to entrylo0 */
+               i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
+               i_dsrl(p, ptep, ptep, 6); /* convert to entrylo1 */
+               i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
+       } else {
+               int pte_off_even = sizeof(pte_t) / 2;
+               int pte_off_odd = pte_off_even + sizeof(pte_t);
+
+               /* The pte entries are pre-shifted */
+               i_lw(p, tmp, pte_off_even, ptep); /* get even pte */
+               i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
+               i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */
+               i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
+       }
+#else
+       i_LW(p, tmp, 0, ptep); /* get even pte */
+       i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
+       if (r45k_bvahwbug())
+               build_tlb_probe_entry(p);
+       i_SRL(p, tmp, tmp, 6); /* convert to entrylo0 */
+       if (r4k_250MHZhwbug())
+               i_mtc0(p, 0, C0_ENTRYLO0);
+       i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */
+       i_SRL(p, ptep, ptep, 6); /* convert to entrylo1 */
+       if (r45k_bvahwbug())
+               i_mfc0(p, tmp, C0_INDEX);
+       if (r4k_250MHZhwbug())
+               i_mtc0(p, 0, C0_ENTRYLO1);
+       i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */
+#endif
+}
+
+static void __init build_r4000_tlb_refill_handler(void)
+{
+       u32 *p = tlb_handler;
+       struct label *l = labels;
+       struct reloc *r = relocs;
+       u32 *f;
+       unsigned int final_len;
+
+       memset(tlb_handler, 0, sizeof(tlb_handler));
+       memset(labels, 0, sizeof(labels));
+       memset(relocs, 0, sizeof(relocs));
+       memset(final_handler, 0, sizeof(final_handler));
+
+       /*
+        * create the plain linear handler
+        */
+       if (bcm1250_m3_war()) {
+               i_MFC0(&p, K0, C0_BADVADDR);
+               i_MFC0(&p, K1, C0_ENTRYHI);
+               i_xor(&p, K0, K0, K1);
+               i_SRL(&p, K0, K0, PAGE_SHIFT+1);
+               il_bnez(&p, &r, K0, label_leave);
+               /* No need for i_nop */
+       }
+
+#ifdef CONFIG_MIPS64
+       build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd ptr in K1 */
+#else
+       build_get_pgde32(&p, K0, K1); /* get pgd ptr in K1 */
+#endif
+
+       build_get_ptep(&p, K0, K1);
+       build_update_entries(&p, K0, K1);
+       build_tlb_write_random_entry(&p, &l, &r);
+       l_leave(&l, p);
+       i_eret(&p); /* return from trap */
+
+#ifdef CONFIG_MIPS64
+       build_get_pgd_vmalloc64(&p, &l, &r, K0, K1);
+#endif
+
+       /*
+        * Overflow check: For the 64bit handler, we need at least one
+        * free instruction slot for the wrap-around branch. In worst
+        * case, if the intended insertion point is a delay slot, we
+        * need three, with the the second nop'ed and the third being
+        * unused.
+        */
+#ifdef CONFIG_MIPS32
+       if ((p - tlb_handler) > 64)
+               panic("TLB refill handler space exceeded");
+#else
+       if (((p - tlb_handler) > 63)
+           || (((p - tlb_handler) > 61)
+               && insn_has_bdelay(relocs, tlb_handler + 29)))
+               panic("TLB refill handler space exceeded");
+#endif
+
+       /*
+        * Now fold the handler in the TLB refill handler space.
+        */
+#ifdef CONFIG_MIPS32
+       f = final_handler;
+       /* Simplest case, just copy the handler. */
+       copy_handler(relocs, labels, tlb_handler, p, f);
+       final_len = p - tlb_handler;
+#else /* CONFIG_MIPS64 */
+       f = final_handler + 32;
+       if ((p - tlb_handler) <= 32) {
+               /* Just copy the handler. */
+               copy_handler(relocs, labels, tlb_handler, p, f);
+               final_len = p - tlb_handler;
+       } else {
+               u32 *split = tlb_handler + 30;
+
+               /*
+                * Find the split point.
+                */
+               if (insn_has_bdelay(relocs, split - 1))
+                       split--;
+
+               /* Copy first part of the handler. */
+               copy_handler(relocs, labels, tlb_handler, split, f);
+               f += split - tlb_handler;
+
+               /* Insert branch. */
+               l_split(&l, final_handler);
+               il_b(&f, &r, label_split);
+               if (insn_has_bdelay(relocs, split))
+                       i_nop(&f);
+               else {
+                       copy_handler(relocs, labels, split, split + 1, f);
+                       f++;
+                       split++;
+               }
+
+               /* Copy the rest of the handler. */
+               copy_handler(relocs, labels, split, p, final_handler);
+               final_len = (f - (final_handler + 32)) + (p - split);
+       }
+#endif /* CONFIG_MIPS64 */
+
+       resolve_relocs(relocs, labels);
+       printk("Synthesized TLB handler (%u instructions).\n", final_len);
+
+#ifdef DEBUG_TLB
+       {
+               int i;
+
+               for (i = 0; i < 64; i++)
+                       printk("%08x\n", final_handler[i]);
+       }
+#endif
+
+       memcpy((void *)CAC_BASE, final_handler, 0x100);
+       flush_icache_range(CAC_BASE, CAC_BASE + 0x100);
+}
+
+void __init build_tlb_refill_handler(void)
+{
+       switch (current_cpu_data.cputype) {
+#ifdef CONFIG_MIPS32
+       case CPU_R2000:
+       case CPU_R3000:
+       case CPU_R3000A:
+       case CPU_R3081E:
+       case CPU_TX3912:
+       case CPU_TX3922:
+       case CPU_TX3927:
+               build_r3000_tlb_refill_handler();
+               break;
+
+       case CPU_R6000:
+       case CPU_R6000A:
+               panic("No R6000 TLB refill handler yet");
+               break;
+#endif
+
+       case CPU_R8000:
+               panic("No R8000 TLB refill handler yet");
+               break;
+
+       default:
+               build_r4000_tlb_refill_handler();
+       }
+}
diff --git a/arch/mips/mm/tlbex32-mips32.S b/arch/mips/mm/tlbex32-mips32.S
new file mode 100644 (file)
index 0000000..96b3329
--- /dev/null
@@ -0,0 +1,253 @@
+/*
+ * TLB exception handling code for MIPS32 CPUs.
+ *
+ * Copyright (C) 1994, 1995, 1996 by Ralf Baechle and Andreas Busse
+ *
+ * Multi-cpu abstraction and reworking:
+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * Carsten Langgaard, carstenl@mips.com
+ * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
+ *
+ * Pete Popov, ppopov@pacbell.net
+ * Added 36 bit phys address support.
+ * Copyright (C) 2002 MontaVista Software, Inc.
+ */
+#include <linux/init.h>
+#include <asm/asm.h>
+#include <asm/cachectl.h>
+#include <asm/fpregdef.h>
+#include <asm/mipsregs.h>
+#include <asm/page.h>
+#include <asm/pgtable-bits.h>
+#include <asm/regdef.h>
+#include <asm/stackframe.h>
+
+#define TLB_OPTIMIZE /* If you are paranoid, disable this. */
+
+#ifdef CONFIG_64BIT_PHYS_ADDR
+
+/* We really only support 36 bit physical addresses on MIPS32 */
+#define PTE_L          lw
+#define PTE_S          sw
+#define PTE_SRL                srl
+#define P_MTC0         mtc0
+#define PTE_HALF        4 /* pte_high contains pre-shifted, ready to go entry */
+#define PTE_SIZE        8
+#define PTEP_INDX_MSK  0xff0
+#define PTE_INDX_MSK   0xff8
+#define PTE_INDX_SHIFT 9
+#define CONVERT_PTE(pte)
+#define PTE_MAKEWRITE_HIGH(pte, ptr) \
+       lw      pte, PTE_HALF(ptr); \
+       ori     pte, (_PAGE_VALID | _PAGE_DIRTY); \
+       sw      pte, PTE_HALF(ptr); \
+       lw      pte, 0(ptr);
+
+#define PTE_MAKEVALID_HIGH(pte, ptr) \
+       lw      pte, PTE_HALF(ptr); \
+       ori     pte, pte, _PAGE_VALID; \
+       sw      pte, PTE_HALF(ptr); \
+       lw      pte, 0(ptr);
+
+#else
+
+#define PTE_L          lw
+#define PTE_S          sw
+#define PTE_SRL                srl
+#define P_MTC0         mtc0
+#define PTE_HALF        0
+#define PTE_SIZE       4
+#define PTEP_INDX_MSK  0xff8
+#define PTE_INDX_MSK   0xffc
+#define PTE_INDX_SHIFT 10
+#define CONVERT_PTE(pte) srl pte, pte, 6
+#define PTE_MAKEWRITE_HIGH(pte, ptr)
+#define PTE_MAKEVALID_HIGH(pte, ptr)
+
+#endif  /* CONFIG_64BIT_PHYS_ADDR */
+
+#ifdef CONFIG_64BIT_PHYS_ADDR
+#define GET_PTE_OFF(reg)
+#else
+#define GET_PTE_OFF(reg)       srl     reg, reg, 1
+#endif
+
+/*
+ * ABUSE of CPP macros 101.
+ *
+ * After this macro runs, the pte faulted on is
+ * in register PTE, a ptr into the table in which
+ * the pte belongs is in PTR.
+ */
+
+#ifdef CONFIG_SMP
+#define GET_PGD(scratch, ptr)        \
+       mfc0    ptr, CP0_CONTEXT;    \
+       la      scratch, pgd_current;\
+       srl     ptr, 23;             \
+       sll     ptr, 2;              \
+       addu    ptr, scratch, ptr;   \
+       lw      ptr, (ptr);
+#else
+#define GET_PGD(scratch, ptr)    \
+       lw      ptr, pgd_current;
+#endif
+
+#define LOAD_PTE(pte, ptr) \
+       GET_PGD(pte, ptr)          \
+       mfc0    pte, CP0_BADVADDR; \
+       srl     pte, pte, _PGDIR_SHIFT; \
+       sll     pte, pte, 2; \
+       addu    ptr, ptr, pte; \
+       mfc0    pte, CP0_BADVADDR; \
+       lw      ptr, (ptr); \
+       srl     pte, pte, PTE_INDX_SHIFT; \
+       and     pte, pte, PTE_INDX_MSK; \
+       addu    ptr, ptr, pte; \
+       PTE_L   pte, (ptr);
+
+       /* This places the even/odd pte pair in the page
+        * table at PTR into ENTRYLO0 and ENTRYLO1 using
+        * TMP as a scratch register.
+        */
+#define PTE_RELOAD(ptr, tmp) \
+       ori     ptr, ptr, PTE_SIZE; \
+       xori    ptr, ptr, PTE_SIZE; \
+       PTE_L   tmp, (PTE_HALF+PTE_SIZE)(ptr); \
+       CONVERT_PTE(tmp); \
+       P_MTC0  tmp, CP0_ENTRYLO1; \
+       PTE_L   ptr, PTE_HALF(ptr); \
+       CONVERT_PTE(ptr); \
+       P_MTC0  ptr, CP0_ENTRYLO0;
+
+#define DO_FAULT(write) \
+       .set    noat; \
+       SAVE_ALL; \
+       mfc0    a2, CP0_BADVADDR; \
+       KMODE; \
+       .set    at; \
+       move    a0, sp; \
+       jal     do_page_fault; \
+        li     a1, write; \
+       j       ret_from_exception; \
+        nop; \
+       .set    noat;
+
+       /* Check is PTE is present, if not then jump to LABEL.
+        * PTR points to the page table where this PTE is located,
+        * when the macro is done executing PTE will be restored
+        * with it's original value.
+        */
+#define PTE_PRESENT(pte, ptr, label) \
+       andi    pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
+       xori    pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
+       bnez    pte, label; \
+       PTE_L   pte, (ptr);
+
+       /* Make PTE valid, store result in PTR. */
+#define PTE_MAKEVALID(pte, ptr) \
+       ori     pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \
+       PTE_S   pte, (ptr);
+
+       /* Check if PTE can be written to, if not branch to LABEL.
+        * Regardless restore PTE with value from PTR when done.
+        */
+#define PTE_WRITABLE(pte, ptr, label) \
+       andi    pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
+       xori    pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
+       bnez    pte, label; \
+       PTE_L   pte, (ptr);
+
+       /* Make PTE writable, update software status bits as well,
+        * then store at PTR.
+        */
+#define PTE_MAKEWRITE(pte, ptr) \
+       ori     pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \
+                          _PAGE_VALID | _PAGE_DIRTY); \
+       PTE_S   pte, (ptr);
+
+       .set    noreorder
+
+       .align  5
+       NESTED(handle_tlbl, PT_SIZE, sp)
+       .set    noat
+invalid_tlbl:
+#ifdef TLB_OPTIMIZE
+       /* Test present bit in entry. */
+       LOAD_PTE(k0, k1)
+       tlbp
+       PTE_PRESENT(k0, k1, nopage_tlbl)
+       PTE_MAKEVALID_HIGH(k0, k1)
+       PTE_MAKEVALID(k0, k1)
+       PTE_RELOAD(k1, k0)
+       nop
+       b       1f
+        tlbwi
+1:
+       nop
+       .set    mips3
+       eret
+       .set    mips0
+#endif
+
+nopage_tlbl:
+       DO_FAULT(0)
+       END(handle_tlbl)
+
+       .align  5
+       NESTED(handle_tlbs, PT_SIZE, sp)
+       .set    noat
+#ifdef TLB_OPTIMIZE
+       .set    mips3
+        li      k0,0
+       LOAD_PTE(k0, k1)
+       tlbp                            # find faulting entry
+       PTE_WRITABLE(k0, k1, nopage_tlbs)
+       PTE_MAKEWRITE(k0, k1)
+       PTE_MAKEWRITE_HIGH(k0, k1)
+       PTE_RELOAD(k1, k0)
+       nop
+       b       1f
+        tlbwi
+1:
+       nop
+       .set    mips3
+       eret
+       .set    mips0
+#endif
+
+nopage_tlbs:
+       DO_FAULT(1)
+       END(handle_tlbs)
+
+       .align  5
+       NESTED(handle_mod, PT_SIZE, sp)
+       .set    noat
+#ifdef TLB_OPTIMIZE
+       .set    mips3
+       LOAD_PTE(k0, k1)
+       tlbp                                    # find faulting entry
+       andi    k0, k0, _PAGE_WRITE
+       beqz    k0, nowrite_mod
+       PTE_L   k0, (k1)
+
+       /* Present and writable bits set, set accessed and dirty bits. */
+       PTE_MAKEWRITE(k0, k1)
+       PTE_MAKEWRITE_HIGH(k0, k1)
+       /* Now reload the entry into the tlb. */
+       PTE_RELOAD(k1, k0)
+       nop
+       b       1f
+        tlbwi
+1:
+       nop
+       .set    mips3
+       eret
+       .set    mips0
+#endif
+
+nowrite_mod:
+       DO_FAULT(1)
+       END(handle_mod)
+
index cc4a4642e28c531c60456448cf691fe43eec0519..04c11f1200e199c16b624d93569ddc9dccdb80d7 100644 (file)
 
 #define TLB_OPTIMIZE /* If you are paranoid, disable this. */
 
-       .text
-       .set    mips1
-       .set    noreorder
-
-       __INIT
-
-       /* TLB refill, R[23]00 version */
-       LEAF(except_vec0_r2300)
-       .set    noat
-       .set    mips1
-       mfc0    k0, CP0_BADVADDR
-       lw      k1, pgd_current                 # get pgd pointer
-       srl     k0, k0, 22
-       sll     k0, k0, 2
-       addu    k1, k1, k0
-       mfc0    k0, CP0_CONTEXT
-       lw      k1, (k1)
-       and     k0, k0, 0xffc
-       addu    k1, k1, k0
-       lw      k0, (k1)
-       nop
-       mtc0    k0, CP0_ENTRYLO0
-       mfc0    k1, CP0_EPC
-       tlbwr
-       jr      k1
-       rfe
-       END(except_vec0_r2300)
-
-       __FINIT
-
        /* ABUSE of CPP macros 101. */
 
        /* After this macro runs, the pte faulted on is
index 49742718da0a251d1fe8618e81b1734e461c93ac..ab50b77f90ac7a6986a58e3ebf68742cae9377f8 100644 (file)
                           _PAGE_VALID | _PAGE_DIRTY); \
        PTE_S   pte, (ptr);
 
-       __INIT
-
-#ifdef CONFIG_64BIT_PHYS_ADDR
-#define GET_PTE_OFF(reg)
-#elif CONFIG_CPU_VR41XX
-#define GET_PTE_OFF(reg)       srl     reg, reg, 3
-#else
-#define GET_PTE_OFF(reg)       srl     reg, reg, 1
-#endif
-
-/*
- * These handlers much be written in a relocatable manner
- * because based upon the cpu type an arbitrary one of the
- * following pieces of code will be copied to the KSEG0
- * vector location.
- */
-       /* TLB refill, EXL == 0, R4xx0, non-R4600 version */
-       .set    noreorder
-       .set    noat
-       LEAF(except_vec0_r4000)
-       .set    mips3
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR                # Get faulting address
-       srl     k0, k0, _PGDIR_SHIFT            # get pgd only bits
-
-       sll     k0, k0, 2
-       addu    k1, k1, k0                      # add in pgd offset
-       mfc0    k0, CP0_CONTEXT                 # get context reg
-       lw      k1, (k1)
-       GET_PTE_OFF(k0)                         # get pte offset
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0                      # add in offset
-       PTE_L   k0, 0(k1)                       # get even pte
-       PTE_L   k1, PTE_SIZE(k1)                # get odd pte
-       PTE_SRL k0, k0, 6                       # convert to entrylo0
-       P_MTC0  k0, CP0_ENTRYLO0                # load it
-       PTE_SRL k1, k1, 6                       # convert to entrylo1
-       P_MTC0  k1, CP0_ENTRYLO1                # load it
-       mtc0_tlbw_hazard
-       tlbwr                                   # write random tlb entry
-       tlbw_eret_hazard
-       eret                                    # return from trap
-       END(except_vec0_r4000)
-
-       /* TLB refill, EXL == 0, R4600 version */
-       LEAF(except_vec0_r4600)
-       .set    mips3
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR
-       srl     k0, k0, _PGDIR_SHIFT
-       sll     k0, k0, 2                       # log2(sizeof(pgd_t)
-       addu    k1, k1, k0
-       mfc0    k0, CP0_CONTEXT
-       lw      k1, (k1)
-       GET_PTE_OFF(k0)                         # get pte offset
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0
-       PTE_L   k0, 0(k1)
-       PTE_L   k1, PTE_SIZE(k1)
-       PTE_SRL k0, k0, 6
-       P_MTC0  k0, CP0_ENTRYLO0
-       PTE_SRL k1, k1, 6
-       P_MTC0  k1, CP0_ENTRYLO1
-       nop
-       tlbwr
-       nop
-       eret
-       END(except_vec0_r4600)
-
-       /* TLB refill, EXL == 0, R52x0 "Nevada" version */
-        /*
-         * This version has a bug workaround for the Nevada.  It seems
-         * as if under certain circumstances the move from cp0_context
-         * might produce a bogus result when the mfc0 instruction and
-         * it's consumer are in a different cacheline or a load instruction,
-         * probably any memory reference, is between them.  This is
-         * potencially slower than the R4000 version, so we use this
-         * special version.
-         */
-       .set    noreorder
-       .set    noat
-       LEAF(except_vec0_nevada)
-       .set    mips3
-       mfc0    k0, CP0_BADVADDR                # Get faulting address
-       srl     k0, k0, _PGDIR_SHIFT            # get pgd only bits
-       lw      k1, pgd_current                 # get pgd pointer
-       sll     k0, k0, 2                       # log2(sizeof(pgd_t)
-       addu    k1, k1, k0                      # add in pgd offset
-       lw      k1, (k1)
-       mfc0    k0, CP0_CONTEXT                 # get context reg
-       GET_PTE_OFF(k0)                         # get pte offset
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0                      # add in offset
-       PTE_L   k0, 0(k1)                       # get even pte
-       PTE_L   k1, PTE_SIZE(k1)                # get odd pte
-       PTE_SRL k0, k0, 6                       # convert to entrylo0
-       P_MTC0  k0, CP0_ENTRYLO0                # load it
-       PTE_SRL k1, k1, 6                       # convert to entrylo1
-       P_MTC0  k1, CP0_ENTRYLO1                # load it
-       nop                                     # QED specified nops
-       nop
-       tlbwr                                   # write random tlb entry
-       nop                                     # traditional nop
-       eret                                    # return from trap
-       END(except_vec0_nevada)
-
-       /* TLB refill, EXL == 0, SB1 with M3 errata handling version */
-       LEAF(except_vec0_sb1)
-#if BCM1250_M3_WAR
-       mfc0    k0, CP0_BADVADDR
-       mfc0    k1, CP0_ENTRYHI
-       xor     k0, k1
-       srl     k0, k0, PAGE_SHIFT+1
-       bnez    k0, 1f
-#endif
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR                # Get faulting address
-       srl     k0, k0, _PGDIR_SHIFT            # get pgd only bits
-       sll     k0, k0, 2
-       addu    k1, k1, k0                      # add in pgd offset
-       mfc0    k0, CP0_CONTEXT                 # get context reg
-       lw      k1, (k1)
-       GET_PTE_OFF(k0)                         # get pte offset
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0                      # add in offset
-       PTE_L   k0, 0(k1)                       # get even pte
-       PTE_L   k1, PTE_SIZE(k1)                # get odd pte
-       PTE_SRL k0, k0, 6                       # convert to entrylo0
-       P_MTC0  k0, CP0_ENTRYLO0                # load it
-       PTE_SRL k1, k1, 6                       # convert to entrylo1
-       P_MTC0  k1, CP0_ENTRYLO1                # load it
-       tlbwr                                   # write random tlb entry
-1:     eret                                    # return from trap
-       END(except_vec0_sb1)
-
-       /* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */
-       LEAF(except_vec0_r45k_bvahwbug)
-       .set    mips3
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR
-       srl     k0, k0, _PGDIR_SHIFT
-       sll     k0, k0, 2                       # log2(sizeof(pgd_t)
-       addu    k1, k1, k0
-       mfc0    k0, CP0_CONTEXT
-       lw      k1, (k1)
-#ifndef CONFIG_64BIT_PHYS_ADDR
-       srl     k0, k0, 1
-#endif
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0
-       PTE_L   k0, 0(k1)
-       PTE_L   k1, PTE_SIZE(k1)
-       nop                             /* XXX */
-       tlbp
-       PTE_SRL k0, k0, 6
-       P_MTC0  k0, CP0_ENTRYLO0
-       PTE_SRL k1, k1, 6
-       mfc0    k0, CP0_INDEX
-       P_MTC0  k1, CP0_ENTRYLO1
-       bltzl   k0, 1f
-       tlbwr
-1:
-       nop
-       eret
-       END(except_vec0_r45k_bvahwbug)
-
-#ifdef CONFIG_SMP
-       /* TLB refill, EXL == 0, R4000 MP badvaddr hwbug version */
-       LEAF(except_vec0_r4k_mphwbug)
-       .set    mips3
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR
-       srl     k0, k0, _PGDIR_SHIFT
-       sll     k0, k0, 2                       # log2(sizeof(pgd_t)
-       addu    k1, k1, k0
-       mfc0    k0, CP0_CONTEXT
-       lw      k1, (k1)
-#ifndef CONFIG_64BIT_PHYS_ADDR
-       srl     k0, k0, 1
-#endif
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0
-       PTE_L   k0, 0(k1)
-       PTE_L   k1, PTE_SIZE(k1)
-       nop                             /* XXX */
-       tlbp
-       PTE_SRL k0, k0, 6
-       P_MTC0  k0, CP0_ENTRYLO0
-       PTE_SRL k1, k1, 6
-       mfc0    k0, CP0_INDEX
-       P_MTC0  k1, CP0_ENTRYLO1
-       bltzl   k0, 1f
-       tlbwr
-1:
-       nop
-       eret
-       END(except_vec0_r4k_mphwbug)
-#endif
-
-       /* TLB refill, EXL == 0, R4000 UP 250MHZ entrylo[01] hwbug version */
-       LEAF(except_vec0_r4k_250MHZhwbug)
-       .set    mips3
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR
-       srl     k0, k0, _PGDIR_SHIFT
-       sll     k0, k0, 2                       # log2(sizeof(pgd_t)
-       addu    k1, k1, k0
-       mfc0    k0, CP0_CONTEXT
-       lw      k1, (k1)
-#ifndef CONFIG_64BIT_PHYS_ADDR
-       srl     k0, k0, 1
-#endif
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0
-       PTE_L   k0, 0(k1)
-       PTE_L   k1, PTE_SIZE(k1)
-       PTE_SRL k0, k0, 6
-       P_MTC0  zero, CP0_ENTRYLO0
-       P_MTC0  k0, CP0_ENTRYLO0
-       PTE_SRL k1, k1, 6
-       P_MTC0  zero, CP0_ENTRYLO1
-       P_MTC0  k1, CP0_ENTRYLO1
-       b       1f
-       tlbwr
-1:
-       nop
-       eret
-       END(except_vec0_r4k_250MHZhwbug)
-
-#ifdef CONFIG_SMP
-       /* TLB refill, EXL == 0, R4000 MP 250MHZ entrylo[01]+badvaddr bug version */
-       LEAF(except_vec0_r4k_MP250MHZhwbug)
-       .set    mips3
-       GET_PGD(k0, k1)                         # get pgd pointer
-       mfc0    k0, CP0_BADVADDR
-       srl     k0, k0, _PGDIR_SHIFT
-       sll     k0, k0, 2                       # log2(sizeof(pgd_t)
-       addu    k1, k1, k0
-       mfc0    k0, CP0_CONTEXT
-       lw      k1, (k1)
-#ifndef CONFIG_64BIT_PHYS_ADDR
-       srl     k0, k0, 1
-#endif
-       and     k0, k0, PTEP_INDX_MSK
-       addu    k1, k1, k0
-       PTE_L   k0, 0(k1)
-       PTE_L   k1, PTE_SIZE(k1)
-       nop                             /* XXX */
-       tlbp
-       PTE_SRL k0, k0, 6
-       P_MTC0  zero, CP0_ENTRYLO0
-       P_MTC0  k0, CP0_ENTRYLO0
-       mfc0    k0, CP0_INDEX
-       PTE_SRL k1, k1, 6
-       P_MTC0  zero, CP0_ENTRYLO1
-       P_MTC0  k1, CP0_ENTRYLO1
-       bltzl   k0, 1f
-       tlbwr
-1:
-       nop
-       eret
-       END(except_vec0_r4k_MP250MHZhwbug)
-#endif
-
-       __FINIT
 
        .set    noreorder
 
@@ -460,6 +195,7 @@ invalid_tlbl:
        PTE_RELOAD(k1, k0)
        mtc0_tlbw_hazard
        tlbwi
+       nop
        tlbw_eret_hazard
        .set    mips3
        eret
@@ -484,6 +220,7 @@ nopage_tlbl:
        PTE_RELOAD(k1, k0)
        mtc0_tlbw_hazard
        tlbwi
+       nop
        tlbw_eret_hazard
        .set    mips3
        eret
@@ -513,6 +250,7 @@ nopage_tlbs:
        PTE_RELOAD(k1, k0)
        mtc0_tlbw_hazard
        tlbwi
+       nop
        tlbw_eret_hazard
        .set    mips3
        eret
diff --git a/arch/mips/mm/tlbex64-r4k.S b/arch/mips/mm/tlbex64-r4k.S
deleted file mode 100644 (file)
index 728d18f..0000000
+++ /dev/null
@@ -1,203 +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) 2000 Silicon Graphics, Inc.
- * Written by Ulf Carlsson (ulfc@engr.sgi.com)
- * Copyright (C) 2002  Maciej W. Rozycki
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/threads.h>
-
-#include <asm/asm.h>
-#include <asm/hazards.h>
-#include <asm/regdef.h>
-#include <asm/mipsregs.h>
-#include <asm/stackframe.h>
-#include <asm/war.h>
-
-#define _VMALLOC_START 0xc000000000000000
-
-       /*
-        * After this macro runs we have a pointer to the pte of the address
-        * that caused the fault in PTR.
-        */
-       .macro  LOAD_PTE2, ptr, tmp, kaddr
-#ifdef CONFIG_SMP
-       dmfc0   \ptr, CP0_CONTEXT
-       dmfc0   \tmp, CP0_BADVADDR
-       dsra    \ptr, 23                        # get pgd_current[cpu]
-#else
-       dmfc0   \tmp, CP0_BADVADDR
-       dla     \ptr, pgd_current
-#endif
-       bltz    \tmp, \kaddr
-        ld     \ptr, (\ptr)
-       dsrl    \tmp, (_PGDIR_SHIFT-3)          # get pgd offset in bytes
-       andi    \tmp, ((_PTRS_PER_PGD - 1)<<3)
-       daddu   \ptr, \tmp                      # add in pgd offset
-       dmfc0   \tmp, CP0_BADVADDR
-       ld      \ptr, (\ptr)                    # get pmd pointer
-       dsrl    \tmp, (_PMD_SHIFT-3)            # get pmd offset in bytes
-       andi    \tmp, ((_PTRS_PER_PMD - 1)<<3)
-       daddu   \ptr, \tmp                      # add in pmd offset
-       dmfc0   \tmp, CP0_XCONTEXT
-       ld      \ptr, (\ptr)                    # get pte pointer
-       andi    \tmp, 0xff0                     # get pte offset
-       daddu   \ptr, \tmp
-       .endm
-
-
-       /*
-        * Ditto for the kernel table.
-        */
-       .macro  LOAD_KPTE2, ptr, tmp, not_vmalloc
-       /*
-        * First, determine that the address is in/above vmalloc range.
-        */
-       dmfc0   \tmp, CP0_BADVADDR
-       dli     \ptr, _VMALLOC_START
-
-       /*
-        * Now find offset into kptbl.
-        */
-       dsubu   \tmp, \tmp, \ptr
-       dla     \ptr, kptbl
-       dsrl    \tmp, (_PAGE_SHIFT+1)           # get vpn2
-       dsll    \tmp, 4                         # byte offset of pte
-       daddu   \ptr, \ptr, \tmp
-
-       /*
-        * Determine that fault address is within vmalloc range.
-        */
-       dla     \tmp, ekptbl
-       slt     \tmp, \ptr, \tmp
-       beqz    \tmp, \not_vmalloc              # not vmalloc
-        nop
-       .endm
-
-
-       /*
-        * This places the even/odd pte pair in the page table at the pte
-        * entry pointed to by PTE into ENTRYLO0 and ENTRYLO1.
-        */
-       .macro  PTE_RELOAD, pte0, pte1
-       dsrl    \pte0, 6                        # convert to entrylo0
-       dmtc0   \pte0, CP0_ENTRYLO0             # load it
-       dsrl    \pte1, 6                        # convert to entrylo1
-       dmtc0   \pte1, CP0_ENTRYLO1             # load it
-       .endm
-
-
-       .text
-       .set    noreorder
-       .set    mips3
-
-       __INIT
-
-       /*
-        * TLB refill handlers for the R4000 and SB1.
-        * Attention:  We may only use 32 instructions / 128 bytes.
-        */
-       .align  5
-LEAF(except_vec1_r4k)
-       .set    noat
-       dla     k0, handle_vec1_r4k
-       jr      k0
-        nop
-END(except_vec1_r4k)
-
-LEAF(except_vec1_sb1)
-#if BCM1250_M3_WAR
-       dmfc0   k0, CP0_BADVADDR
-       dmfc0   k1, CP0_ENTRYHI
-       xor     k0, k1
-       dsrl    k0, k0, _PAGE_SHIFT+1
-       bnez    k0, 1f
-#endif
-       .set    noat
-       dla     k0, handle_vec1_r4k
-       jr      k0
-        nop
-
-1:     eret
-       nop
-END(except_vec1_sb1)
-
-       __FINIT
-
-       .align  5
-LEAF(handle_vec1_r4k)
-       .set    noat
-       LOAD_PTE2 k1 k0 9f
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
-       mtc0_tlbw_hazard
-       tlbwr
-       tlbw_eret_hazard
-       eret
-
-9:                                             # handle the vmalloc range
-       LOAD_KPTE2 k1 k0 invalid_vmalloc_address
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
-       mtc0_tlbw_hazard
-        tlbwr
-       tlbw_eret_hazard
-       eret
-END(handle_vec1_r4k)
-
-
-       __INIT
-
-       /*
-        * TLB refill handler for the R10000.
-        * Attention:  We may only use 32 instructions / 128 bytes.
-        */
-       .align  5
-LEAF(except_vec1_r10k)
-       .set    noat
-       dla     k0, handle_vec1_r10k
-       jr      k0
-        nop
-END(except_vec1_r10k)
-
-       __FINIT
-
-       .align  5
-LEAF(handle_vec1_r10k)
-       .set    noat
-       LOAD_PTE2 k1 k0 9f
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
-       nop
-       tlbwr
-       eret
-
-9:                                             # handle the vmalloc range
-       LOAD_KPTE2 k1 k0 invalid_vmalloc_address
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
-       nop
-       tlbwr
-       eret
-END(handle_vec1_r10k)
-
-
-       .align  5
-LEAF(invalid_vmalloc_address)
-       .set    noat
-       SAVE_ALL
-       CLI
-       dmfc0   t0, CP0_BADVADDR
-       sd      t0, PT_BVADDR(sp)
-       move    a0, sp
-       jal     show_regs
-       PANIC("Invalid kernel address")
-END(invalid_vmalloc_address)
index cc25cbcb4bb236acdd74b7204fd32a4dca7464b1..15588f91ace2dd9499ae51506d8cdc8c3cef6899 100644 (file)
@@ -45,7 +45,7 @@ static struct irqaction cascade_mv64340 = {
        no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
 };
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        /*
         * Clear all of the interrupts while we change the able around a bit.
@@ -55,7 +55,6 @@ void __init init_IRQ(void)
 
        /* Sets the first-level interrupt dispatcher. */
        set_except_vector(0, jaguar_handle_int);
-       init_generic_irq();
        mips_cpu_irq_init(0);
        rm7k_cpu_irq_init(8);
 
index a849215b535218764e84f2322005ceb50f856877..30462e715066a469437b303775d1073230b1edc4 100644 (file)
@@ -2,7 +2,7 @@
  * BRIEF MODULE DESCRIPTION
  * Momentum Computer Jaguar-ATX board dependent boot routines
  *
- * Copyright (C) 1996, 1997, 2001  Ralf Baechle
+ * Copyright (C) 1996, 1997, 2001, 2004  Ralf Baechle (ralf@linux-mips.org)
  * Copyright (C) 2000 RidgeRun, Inc.
  * Copyright (C) 2001 Red Hat, Inc.
  * Copyright (C) 2002 Momentum Computer
@@ -59,7 +59,6 @@
 #include <asm/page.h>
 #include <asm/io.h>
 #include <asm/irq.h>
-#include <asm/pci_channel.h>
 #include <asm/processor.h>
 #include <asm/ptrace.h>
 #include <asm/reboot.h>
diff --git a/arch/mips/momentum/ocelot_3/Makefile b/arch/mips/momentum/ocelot_3/Makefile
new file mode 100644 (file)
index 0000000..aab8fd8
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# Makefile for Momentum Computer's Ocelot-3 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   += int-handler.o irq.o prom.o reset.o setup.o
diff --git a/arch/mips/momentum/ocelot_3/int-handler.S b/arch/mips/momentum/ocelot_3/int-handler.S
new file mode 100644 (file)
index 0000000..4522f09
--- /dev/null
@@ -0,0 +1,137 @@
+/*
+ * Copyright 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * Copyright 2004 PMC-Sierra
+ * Author: Manish Lachwani (lachwani@pmc-sierra.com)
+ *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@mvista.com
+ *
+ * First-level interrupt dispatcher for Ocelot-3 board.
+ *
+ * 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 <asm/asm.h>
+#include <asm/mipsregs.h>
+#include <asm/addrspace.h>
+#include <asm/regdef.h>
+#include <asm/stackframe.h>
+
+/*
+ * First level interrupt dispatcher for Ocelot-3 board
+ */
+               .align  5
+               NESTED(ocelot3_handle_int, PT_SIZE, sp)
+               SAVE_ALL
+               CLI
+               .set    at
+
+               mfc0    t0, CP0_CAUSE
+               mfc0    t2, CP0_STATUS
+
+               and     t0, t2
+
+               andi    t1, t0, STATUSF_IP0     /* sw0 software interrupt (IRQ0) */
+               bnez    t1, ll_sw0_irq
+
+               andi    t1, t0, STATUSF_IP1     /* sw1 software interrupt (IRQ1) */
+               bnez    t1, ll_sw1_irq
+
+               andi    t1, t0, STATUSF_IP2     /* int0 hardware line (IRQ2) */
+               bnez    t1, ll_pci0slot1_irq
+
+               andi    t1, t0, STATUSF_IP3     /* int1 hardware line (IRQ3) */
+               bnez    t1, ll_pci0slot2_irq
+
+               andi    t1, t0, STATUSF_IP4     /* int2 hardware line (IRQ4) */
+               bnez    t1, ll_pci1slot1_irq
+
+               andi    t1, t0, STATUSF_IP5     /* int3 hardware line (IRQ5) */
+               bnez    t1, ll_pci1slot2_irq
+
+               andi    t1, t0, STATUSF_IP6     /* int4 hardware line (IRQ6) */
+               bnez    t1, ll_uart_irq
+
+               andi    t1, t0, STATUSF_IP7     /* cpu timer (IRQ7) */
+               bnez    t1, ll_cputimer_irq
+
+                /* now look at extended interrupts */
+                mfc0    t0, CP0_CAUSE
+                cfc0    t1, CP0_S1_INTCONTROL
+
+                /* shift the mask 8 bits left to line up the bits */
+                sll     t2, t1, 8
+
+                and     t0, t2
+                srl     t0, t0, 16
+
+                andi    t1, t0, STATUSF_IP8     /* int6 hardware line (IRQ9) */
+                bnez    t1, ll_mv64340_decode_irq
+
+               .set    reorder
+
+               /* wrong alarm or masked ... */
+               j       spurious_interrupt
+               nop
+               END(ocelot3_handle_int)
+
+               .align  5
+ll_sw0_irq:
+               li      a0, 0           /* IRQ 1 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+ll_sw1_irq:
+               li      a0, 1           /* IRQ 2 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_pci0slot1_irq:
+               li      a0, 2           /* IRQ 3 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_pci0slot2_irq:
+               li      a0, 3           /* IRQ 4 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_pci1slot1_irq:
+               li      a0, 4           /* IRQ 5 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_pci1slot2_irq:
+               li      a0, 5           /* IRQ 6 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_uart_irq:
+               li      a0, 6           /* IRQ 7 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_cputimer_irq:
+               li      a0, 7           /* IRQ 8 */
+               move    a1, sp
+               jal     do_IRQ
+               j       ret_from_irq
+
+ll_mv64340_decode_irq:
+               move    a0, sp
+               jal     ll_mv64340_irq
+               j       ret_from_irq
+
diff --git a/arch/mips/momentum/ocelot_3/irq.c b/arch/mips/momentum/ocelot_3/irq.c
new file mode 100644 (file)
index 0000000..42464db
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2000 RidgeRun, Inc.
+ * Author: RidgeRun, Inc.
+ *   glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
+ * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org)
+ *
+ * Copyright 2004 PMC-Sierra
+ * 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.
+ *
+ *  Copyright (C) 2004 MontaVista Software Inc.
+ *  Author: Manish Lachwani, mlachwani@mvista.com
+ *
+ */
+#include <linux/errno.h>
+#include <linux/init.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 <asm/bitops.h>
+#include <asm/bootinfo.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/mipsregs.h>
+#include <asm/system.h>
+
+extern asmlinkage void ocelot3_handle_int(void);
+
+static struct irqaction cascade_mv64340 = {
+       no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
+};
+
+void __init arch_init_irq(void)
+{
+       /*
+        * Clear all of the interrupts while we change the able around a bit.
+        * int-handler is not on bootstrap
+        */
+       clear_c0_status(ST0_IM | ST0_BEV);
+
+       /* Sets the first-level interrupt dispatcher. */
+       set_except_vector(0, ocelot3_handle_int);
+       mips_cpu_irq_init(0);
+       rm7k_cpu_irq_init(8);
+
+       /* set up the cascading interrupts */
+       setup_irq(8, &cascade_mv64340);         /* unmask intControl IM8, IRQ 9 */
+       mv64340_irq_init(16);
+
+       set_c0_status(ST0_IM); /* IE in the status register */
+
+}
diff --git a/arch/mips/momentum/ocelot_3/ocelot_3_fpga.h b/arch/mips/momentum/ocelot_3/ocelot_3_fpga.h
new file mode 100644 (file)
index 0000000..227e429
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Ocelot-3 Board Register Definitions
+ *
+ * (C) 2002 Momentum Computer 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.
+ *
+ *  Louis Hamilton, Red Hat, Inc.
+ *    hamilton@redhat.com  [MIPS64 modifications]
+ *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@mvista.com
+ */
+
+#ifndef __OCELOT_3_FPGA_H__
+#define __OCELOT_3_FPGA_H__
+
+#define OCELOT_3_REG_BOARDREV          0x0
+#define OCELOT_3_REG_FPGA_REV          0x1
+#define OCELOT_3_REG_FPGA_TYPE         0x2
+#define OCELOT_3_REG_RESET_STATUS      0x3
+#define OCELOT_3_REG_BOARD_STATUS      0x4
+#define OCELOT_3_REG_CPCI_ID           0x5
+#define OCELOT_3_REG_SET               0x6
+#define OCELOT_3_REG_CLR               0x7
+#define OCELOT_3_REG_EEPROM_MODE       0x9
+#define OCELOT_3_REG_INTMASK           0xa
+#define OCELOT_3_REG_INTSTAT           0xb
+#define OCELOT_3_REG_UART_INTMASK      0xc
+#define OCELOT_3_REG_UART_INTSTAT      0xd
+#define OCELOT_3_REG_INTSET            0xe
+#define OCELOT_3_REG_INTCLR            0xf
+
+extern unsigned long ocelot_fpga_base;
+
+#define OCELOT_FPGA_WRITE(x, y) writeb(x, ocelot_fpga_base + OCELOT_3_REG_##y)
+#define OCELOT_FPGA_READ(x) readb(ocelot_fpga_base + OCELOT_3_REG_##x)
+
+#endif
diff --git a/arch/mips/momentum/ocelot_3/prom.c b/arch/mips/momentum/ocelot_3/prom.c
new file mode 100644 (file)
index 0000000..89c17a0
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+ * Copyright 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ *
+ * Louis Hamilton, Red Hat, Inc.
+ *   hamilton@redhat.com  [MIPS64 modifications]
+ *
+ * Copyright 2004 PMC-Sierra
+ * Author: Manish Lachwani (lachwani@pmc-sierra.com)
+ *
+ * Based on Ocelot Linux port, which is
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * 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 (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@mvista.com
+ *
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/bootmem.h>
+#include <linux/mv643xx.h>
+
+#include <asm/addrspace.h>
+#include <asm/bootinfo.h>
+#include <asm/pmon.h>
+#include "ocelot_3_fpga.h"
+
+struct callvectors* debug_vectors;
+extern unsigned long marvell_base;
+extern unsigned long cpu_clock;
+
+#ifdef CONFIG_MV643XX_ETH
+extern unsigned char prom_mac_addr_base[6];
+#endif
+
+const char *get_system_type(void)
+{
+       return "Momentum Ocelot-3";
+}
+
+#ifdef CONFIG_MV643XX_ETH
+void burn_clocks(void)
+{
+       int i;
+
+       /* this loop should burn at least 1us -- this should be plenty */
+       for (i = 0; i < 0x10000; i++)
+               ;
+}
+
+u8 exchange_bit(u8 val, u8 cs)
+{
+       /* place the data */
+       OCELOT_FPGA_WRITE((val << 2) | cs, EEPROM_MODE);
+       burn_clocks();
+
+       /* turn the clock on */
+       OCELOT_FPGA_WRITE((val << 2) | cs | 0x2, EEPROM_MODE);
+       burn_clocks();
+
+       /* turn the clock off and read-strobe */
+       OCELOT_FPGA_WRITE((val << 2) | cs | 0x10, EEPROM_MODE);
+
+       /* return the data */
+       return ((OCELOT_FPGA_READ(EEPROM_MODE) >> 3) & 0x1);
+}
+
+void get_mac(char dest[6])
+{
+       u8 read_opcode[12] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+       int i,j;
+
+       for (i = 0; i < 12; i++)
+               exchange_bit(read_opcode[i], 1);
+
+       for (j = 0; j < 6; j++) {
+               dest[j] = 0;
+               for (i = 0; i < 8; i++) {
+                       dest[j] <<= 1;
+                       dest[j] |= exchange_bit(0, 1);
+               }
+       }
+
+       /* turn off CS */
+       exchange_bit(0,0);
+}
+#endif
+
+
+#ifdef CONFIG_MIPS64
+
+unsigned long signext(unsigned long addr)
+{
+       addr &= 0xffffffff;
+       return (unsigned long)((int)addr);
+}
+
+void *get_arg(unsigned long args, int arc)
+{
+       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;
+
+#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);
+#else  /* CONFIG_CPU_LITTLE_ENDIAN */
+       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  /* CONFIG_CPU_LITTLE_ENDIAN */
+       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;
+}
+#endif  /* CONFIG_MIPS64 */
+
+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_MIPS64
+       char *ptr;
+       printk("prom_init - MIPS64\n");
+
+       /* save the PROM vectors for debugging use */
+       debug_vectors = (struct callvectors *)signext((unsigned long)cv);
+
+       /* arg[0] is "g", the rest is boot parameters */
+       arcs_cmdline[0] = '\0';
+
+       for (i = 1; i < argc; i++) {
+               ptr = (char *)arg64((unsigned long)arg, i);
+               if ((strlen(arcs_cmdline) + strlen(ptr) + 1) >=
+                   sizeof(arcs_cmdline))
+                       break;
+               strcat(arcs_cmdline, ptr);
+               strcat(arcs_cmdline, " ");
+       }
+       i = 0;
+
+       while (1) {
+               ptr = (char *)arg64((unsigned long)env, i);
+               if (! ptr)
+                       break;
+
+               if (strncmp("gtbase", ptr, strlen("gtbase")) == 0) {
+                       marvell_base = simple_strtol(ptr + strlen("gtbase="),
+                                                       NULL, 16);
+
+                       if ((marvell_base & 0xffffffff00000000) == 0)
+                               marvell_base |= 0xffffffff00000000;
+
+                       printk("marvell_base set to 0x%016lx\n", marvell_base);
+               }
+               if (strncmp("cpuclock", ptr, strlen("cpuclock")) == 0) {
+                       cpu_clock = simple_strtol(ptr + strlen("cpuclock="),
+                                                       NULL, 10);
+                       printk("cpu_clock set to %d\n", cpu_clock);
+               }
+               i++;
+       }
+       printk("arcs_cmdline: %s\n", arcs_cmdline);
+
+#else   /* CONFIG_MIPS64 */
+
+       /* save the PROM vectors for debugging use */
+       debug_vectors = cv;
+
+       /* arg[0] is "g", the rest is boot parameters */
+       arcs_cmdline[0] = '\0';
+       for (i = 1; i < argc; i++) {
+               if (strlen(arcs_cmdline) + strlen(arg[i] + 1)
+                   >= sizeof(arcs_cmdline))
+                       break;
+               strcat(arcs_cmdline, arg[i]);
+               strcat(arcs_cmdline, " ");
+       }
+
+       while (*env) {
+               if (strncmp("gtbase", *env, strlen("gtbase")) == 0) {
+                       marvell_base = simple_strtol(*env + strlen("gtbase="),
+                                                       NULL, 16);
+               }
+               if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) {
+                       cpu_clock = simple_strtol(*env + strlen("cpuclock="),
+                                                       NULL, 10);
+               }
+               env++;
+       }
+#endif /* CONFIG_MIPS64 */
+
+       mips_machgroup = MACH_GROUP_MOMENCO;
+       mips_machtype = MACH_MOMENCO_OCELOT_3;
+
+#ifdef CONFIG_MV643XX_ETH
+       /* 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)
+{
+}
diff --git a/arch/mips/momentum/ocelot_3/reset.c b/arch/mips/momentum/ocelot_3/reset.c
new file mode 100644 (file)
index 0000000..cb7e356
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * 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 (C) 1997, 2001 Ralf Baechle
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * Copyright (C) 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ *
+ * Louis Hamilton, Red Hat, Inc.
+ * hamilton@redhat.com  [MIPS64 modifications]
+ *
+ * Copyright 2004 PMC-Sierra
+ * Author: Manish Lachwani (lachwani@pmc-sierra.com)
+ *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@mvista.com
+ */
+#include <linux/config.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+#include <asm/io.h>
+#include <asm/pgtable.h>
+#include <asm/processor.h>
+#include <asm/reboot.h>
+#include <asm/system.h>
+
+void momenco_ocelot_restart(char *command)
+{
+       /* base address of timekeeper portion of part */
+       void *nvram = (void *) 0xfc807000L;
+
+       /* Ask the NVRAM/RTC/watchdog chip to assert reset in 1/16 second */
+       writeb(0x84, nvram + 0xff7);
+
+       /* wait for the watchdog to go off */
+       mdelay(100+(1000/16));
+
+       /* if the watchdog fails for some reason, let people know */
+       printk(KERN_NOTICE "Watchdog reset failed\n");
+}
+
+void momenco_ocelot_halt(void)
+{
+       printk(KERN_NOTICE "\n** You can safely turn off the power\n");
+       while (1)
+               __asm__(".set\tmips3\n\t"
+                       "wait\n\t"
+                       ".set\tmips0");
+}
+
+void momenco_ocelot_power_off(void)
+{
+       momenco_ocelot_halt();
+}
diff --git a/arch/mips/momentum/ocelot_3/setup.c b/arch/mips/momentum/ocelot_3/setup.c
new file mode 100644 (file)
index 0000000..9c73363
--- /dev/null
@@ -0,0 +1,399 @@
+/*
+ * setup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ * Momentum Computer Ocelot-3 board dependent boot routines
+ *
+ * Copyright (C) 1996, 1997, 2001  Ralf Baechle
+ * Copyright (C) 2000 RidgeRun, Inc.
+ * Copyright (C) 2001 Red Hat, Inc.
+ * Copyright (C) 2002 Momentum Computer
+ *
+ * Author: Matthew Dharm, Momentum Computer
+ *   mdharm@momenco.com
+ *
+ * Louis Hamilton, Red Hat, Inc.
+ *   hamilton@redhat.com  [MIPS64 modifications]
+ *
+ * Author: RidgeRun, Inc.
+ *   glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * Copyright 2004 PMC-Sierra
+ * Author: Manish Lachwani (lachwani@pmc-sierra.com)
+ *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@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.
+ *
+ *  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/init.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/mc146818rtc.h>
+#include <linux/ioport.h>
+#include <linux/interrupt.h>
+#include <linux/pci.h>
+#include <linux/timex.h>
+#include <linux/bootmem.h>
+#include <linux/mv643xx.h>
+#include <asm/time.h>
+#include <asm/page.h>
+#include <asm/bootinfo.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/pci.h>
+#include <asm/processor.h>
+#include <asm/ptrace.h>
+#include <asm/reboot.h>
+#include <asm/mc146818rtc.h>
+#include <asm/tlbflush.h>
+#include "ocelot_3_fpga.h"
+
+/* Marvell Discovery Register Base */
+unsigned long marvell_base = (signed)0xf4000000;
+
+/* CPU clock */
+unsigned long cpu_clock;
+
+/* RTC/NVRAM */
+unsigned char* rtc_base = (unsigned char*)(signed)0xfc800000;
+
+/* FPGA Base */
+unsigned long ocelot_fpga_base = (signed)0xfc000000;
+
+/* Serial base */
+unsigned long uart_base = (signed)0xfd000000;
+
+/*
+ * Marvell Discovery SRAM. This is one place where Ethernet
+ * Tx and Rx descriptors can be placed to improve performance
+ */
+extern unsigned long mv64340_sram_base;
+
+/* These functions are used for rebooting or halting the machine*/
+extern void momenco_ocelot_restart(char *command);
+extern void momenco_ocelot_halt(void);
+extern void momenco_ocelot_power_off(void);
+
+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);
+
+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 setup_wired_tlb_entries(void)
+{
+       write_c0_wired(0);
+       local_flush_tlb_all();
+
+       /* marvell and extra space */
+       add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), (signed)0xf4000000, PM_64K);
+
+       /* fpga, rtc, and uart */
+       add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), (signed)0xfc000000, PM_16M);
+}
+
+#define CONV_BCD_TO_BIN(val)   (((val) & 0xf) + (((val) >> 4) * 10))
+#define CONV_BIN_TO_BCD(val)   (((val) % 10) + (((val) / 10) << 4))
+
+unsigned long m48t37y_get_time(void)
+{
+       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;
+
+       month = CONV_BCD_TO_BIN(rtc_base[0x7ffe]);
+
+       day = CONV_BCD_TO_BIN(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]);
+
+       /* start the update */
+       rtc_base[0x7ff8] = 0x00;
+
+       return mktime(year, month, day, hour, min, sec);
+}
+
+int m48t37y_set_time(unsigned long sec)
+{
+       struct rtc_time tm;
+
+       /* convert to a more useful format -- note months count from 0 */
+       to_tm(sec, &tm);
+       tm.tm_mon += 1;
+
+       /* enable writing */
+       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);
+
+       /* month */
+       rtc_base[0x7ffe] = CONV_BIN_TO_BCD(tm.tm_mon);
+
+       /* day */
+       rtc_base[0x7ffd] = CONV_BIN_TO_BCD(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);
+
+       /* 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);
+
+       /* disable writing */
+       rtc_base[0x7ff8] = 0x00;
+
+       return 0;
+}
+
+void momenco_timer_setup(struct irqaction *irq)
+{
+       setup_irq(7, irq);      /* Timer interrupt, unmask status IM7 */
+}
+
+void momenco_time_init(void)
+{
+       setup_wired_tlb_entries();
+
+       /*
+        * Ocelot-3 board has been built with both
+        * the Rm7900 and the Rm7065C
+        */
+       mips_hpt_frequency = cpu_clock / 2;
+       board_timer_setup = momenco_timer_setup;
+
+       rtc_get_time = m48t37y_get_time;
+       rtc_set_time = m48t37y_set_time;
+}
+
+/*
+ * PCI Support for Ocelot-3
+ */
+
+/* Bus #0 IO and MEM space */
+#define        OCELOT_3_PCI_IO_0_START         0xe0000000
+#define        OCELOT_3_PCI_IO_0_SIZE          0x08000000
+#define        OCELOT_3_PCI_MEM_0_START        0xc0000000
+#define        OCELOT_3_PCI_MEM_0_SIZE         0x10000000
+
+/* Bus #1 IO and MEM space */
+#define        OCELOT_3_PCI_IO_1_START         0xe8000000
+#define        OCELOT_3_PCI_IO_1_SIZE          0x08000000
+#define        OCELOT_3_PCI_MEM_1_START        0xd0000000
+#define        OCELOT_3_PCI_MEM_1_SIZE         0x10000000
+
+static struct resource mv_pci_io_mem0_resource = {
+       .name   = "MV64340 PCI0 IO MEM",
+       .start  = OCELOT_3_PCI_IO_0_START,
+       .end    = OCELOT_3_PCI_IO_0_START + OCELOT_3_PCI_IO_0_SIZE - 1,
+       .flags  = IORESOURCE_IO,
+};
+
+static struct resource mv_pci_io_mem1_resource = {
+       .name   = "MV64340 PCI1 IO MEM",
+       .start  = OCELOT_3_PCI_IO_1_START,
+       .end    = OCELOT_3_PCI_IO_1_START + OCELOT_3_PCI_IO_1_SIZE - 1,
+       .flags  = IORESOURCE_IO,
+};
+
+static struct resource mv_pci_mem0_resource = {
+       .name   = "MV64340 PCI0 MEM",
+       .start  = OCELOT_3_PCI_MEM_0_START,
+       .end    = OCELOT_3_PCI_MEM_0_START + OCELOT_3_PCI_MEM_0_SIZE - 1,
+       .flags  = IORESOURCE_MEM,
+};
+
+static struct resource mv_pci_mem1_resource = {
+       .name   = "MV64340 PCI1 MEM",
+       .start  = OCELOT_3_PCI_MEM_1_START,
+       .end    = OCELOT_3_PCI_MEM_1_START + OCELOT_3_PCI_MEM_1_SIZE - 1,
+       .flags  = IORESOURCE_MEM,
+};
+
+static struct mv_pci_controller mv_bus0_controller = {
+       .pcic = {
+                .pci_ops       = &mv_pci_ops,
+                .mem_resource  = &mv_pci_mem0_resource,
+                .io_resource   = &mv_pci_io_mem0_resource,
+       },
+       .config_addr    = MV64340_PCI_0_CONFIG_ADDR,
+       .config_vreg    = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG,
+};
+
+static struct mv_pci_controller mv_bus1_controller = {
+       .pcic = {
+                .pci_ops       = &mv_pci_ops,
+                .mem_resource  = &mv_pci_mem1_resource,
+                .io_resource   = &mv_pci_io_mem1_resource,
+       },
+       .config_addr    = MV64340_PCI_1_CONFIG_ADDR,
+       .config_vreg    = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG,
+};
+
+static __init int __init ja_pci_init(void)
+{
+       uint32_t enable;
+       extern int pci_probe_only;
+
+       /* PMON will assign PCI resources */
+       pci_probe_only = 1;
+
+       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))
+               register_pci_controller(&mv_bus0_controller.pcic);
+
+       if (enable & (0x01 << 14) || enable & (0x01 << 15))
+               register_pci_controller(&mv_bus1_controller.pcic);
+
+       ioport_resource.end = OCELOT_3_PCI_IO_0_START + OCELOT_3_PCI_IO_0_SIZE +
+                                       OCELOT_3_PCI_IO_1_SIZE - 1;
+
+       iomem_resource.end = OCELOT_3_PCI_MEM_0_START + OCELOT_3_PCI_MEM_0_SIZE +
+                                       OCELOT_3_PCI_MEM_1_SIZE - 1;
+
+       set_io_port_base(OCELOT_3_PCI_IO_0_START); /* mips_io_port_base */
+
+       return 0;
+}
+
+arch_initcall(ja_pci_init);
+
+static int __init momenco_ocelot_3_setup(void)
+{
+       unsigned int tmpword;
+
+       board_time_init = momenco_time_init;
+
+       _machine_restart = momenco_ocelot_restart;
+       _machine_halt = momenco_ocelot_halt;
+       _machine_power_off = momenco_ocelot_power_off;
+
+       /* Wired TLB entries */
+       setup_wired_tlb_entries();
+
+       /* 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);
+       MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8);
+       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(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
+       do {}
+         while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
+       do {}
+         while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
+       do {}
+         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);
+
+       tmpword = OCELOT_FPGA_READ(BOARDREV);
+       if (tmpword < 26)
+               printk("Momenco Ocelot-3: Board Assembly Rev. %c\n",
+                       'A'+tmpword);
+       else
+               printk("Momenco Ocelot-3: Board Assembly Revision #0x%x\n",
+                       tmpword);
+
+       tmpword = OCELOT_FPGA_READ(FPGA_REV);
+       printk("FPGA Rev: %d.%d\n", tmpword>>4, tmpword&15);
+       tmpword = OCELOT_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 0x4:
+                       printk("  - cPCI bus reset\n");
+                       break;
+               case 0x8:
+                       printk("  - Watchdog reset\n");
+                       break;
+               case 0x10:
+                       printk("  - Software reset\n");
+                       break;
+               default:
+                       printk("  - Unknown reset cause\n");
+       }
+       reset_reason = tmpword;
+       OCELOT_FPGA_WRITE(0xff, RESET_STATUS);
+
+       tmpword = OCELOT_FPGA_READ(CPCI_ID);
+       printk("cPCI ID register: 0x%02x\n", tmpword);
+       printk("  - Slot number: %d\n", tmpword & 0x1f);
+       printk("  - PCI bus present: %s\n", tmpword & 0x40 ? "yes" : "no");
+       printk("  - System Slot: %s\n", tmpword & 0x20 ? "yes" : "no");
+
+       tmpword = OCELOT_FPGA_READ(BOARD_STATUS);
+       printk("Board Status register: 0x%02x\n", tmpword);
+       printk("  - User jumper: %s\n", (tmpword & 0x80)?"installed":"absent");
+       printk("  - Boot flash write jumper: %s\n", (tmpword&0x40)?"installed":"absent");
+       printk("  - L3 cache size: %d MB\n", (1<<((tmpword&12) >> 2))&~1);
+
+       /* Support for 128 MB memory */
+       add_memory_region(0x0, 0x08000000, BOOT_MEM_RAM);
+
+       return 0;
+}
+
+early_initcall(momenco_ocelot_3_setup);
index 3ef3584cfb75fe9e0d56182aa7d12ad0987ca216..8720bccfdea250dd9eddbe580c22b8f4e75fa60e 100644 (file)
@@ -1,6 +1,6 @@
 #include <linux/config.h>
 
-#if defined(CONFIG_KGDB)
+#ifdef CONFIG_KGDB
 
 #include <asm/serial.h> /* For the serial port location and base baud */
 
index dd10713e174bbfccc333cd02d1a85d3f5f31abaa..1759d2bd58a8cb00b57971faecf9f504549f97bc 100644 (file)
@@ -61,7 +61,7 @@ static struct irqaction cascade_mv64340 = {
        no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL
 };
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        /*
         * Clear all of the interrupts while we change the able around a bit.
@@ -71,7 +71,6 @@ void __init init_IRQ(void)
 
        /* Sets the first-level interrupt dispatcher. */
        set_except_vector(0, ocelot_handle_int);
-       init_generic_irq();
        mips_cpu_irq_init(0);
 
        /* set up the cascading interrupts */
@@ -82,10 +81,4 @@ void __init init_IRQ(void)
        mv64340_irq_init(16);
        uart_irq_init();
        cpci_irq_init();
-
-#ifdef CONFIG_KGDB
-       printk("start kgdb ...\n");
-       set_debug_traps();
-       breakpoint();   /* you may move this line to whereever you want :-) */
-#endif
 }
index 3ef3584cfb75fe9e0d56182aa7d12ad0987ca216..8720bccfdea250dd9eddbe580c22b8f4e75fa60e 100644 (file)
@@ -1,6 +1,6 @@
 #include <linux/config.h>
 
-#if defined(CONFIG_KGDB)
+#ifdef CONFIG_KGDB
 
 #include <asm/serial.h> /* For the serial port location and base baud */
 
index cede65a4063275f9ab5872d63f09d8f5cd8d4eb4..70ccf395f27d7bdb49821939f70719a05a6e2576 100644 (file)
@@ -159,7 +159,6 @@ static irqreturn_t gt64240_p0int_irq(int irq, void *dev, struct pt_regs *regs)
  */
 void gt64240_time_init(void)
 {
-       extern irq_desc_t irq_desc[NR_IRQS];
        static struct irqaction timer;
 
        /* Stop the timer -- we'll use timer #0 */
index c5adfa6d82316089aa7d18ff05c0b57e9eb3af0a..e70ec0e116d0d733855560eb9177cd7c8b0cd210 100644 (file)
@@ -52,7 +52,7 @@
 extern asmlinkage void ocelot_handle_int(void);
 extern void gt64240_irq_init(void);
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        /*
         * Clear all of the interrupts while we change the able around a bit.
@@ -63,15 +63,8 @@ void __init init_IRQ(void)
 
        /* Sets the first-level interrupt dispatcher. */
        set_except_vector(0, ocelot_handle_int);
-       init_generic_irq();
        mips_cpu_irq_init(0);
        rm7k_cpu_irq_init(8);
 
        gt64240_irq_init();
-
-#ifdef CONFIG_KGDB
-       printk("start kgdb ...\n");
-       set_debug_traps();
-       breakpoint();   /* you may move this line to whereever you want :-) */
-#endif
 }
index 5ed03fa905a93aec546a9cbf0ae6608f7440c437..1ef37050cca68bd022fdf9a5a8ed85027b72692f 100644 (file)
@@ -24,8 +24,7 @@ obj-$(CONFIG_PCI_VR41XX)      += ops-vr41xx.o pci-vr41xx.o
 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_LASAT)            += pci-lasat.o
 obj-$(CONFIG_MIPS_ATLAS)       += fixup-atlas.o
 obj-$(CONFIG_MIPS_COBALT)      += fixup-cobalt.o
 obj-$(CONFIG_MIPS_EV96100)     += fixup-ev64120.o
@@ -37,6 +36,7 @@ obj-$(CONFIG_SOC_AU1550)      += fixup-au1000.o ops-au1000.o
 obj-$(CONFIG_MIPS_MALTA)       += fixup-malta.o
 obj-$(CONFIG_MOMENCO_JAGUAR_ATX)+= fixup-jaguar.o
 obj-$(CONFIG_MOMENCO_OCELOT)   += fixup-ocelot.o pci-ocelot.o
+obj-$(CONFIG_MOMENCO_OCELOT_3) += fixup-ocelot3.o
 obj-$(CONFIG_MOMENCO_OCELOT_C) += fixup-ocelot-c.o pci-ocelot-c.o
 obj-$(CONFIG_MOMENCO_OCELOT_G) += fixup-ocelot-g.o pci-ocelot-g.o
 obj-$(CONFIG_PMC_YOSEMITE)     += fixup-yosemite.o ops-titan.o ops-titan-ht.o \
index ae1930e67f9e94125bb9a02c30da7a396c78b42c..ebd7a430778b0b29c3823e0639096e3693702c2e 100644 (file)
@@ -40,11 +40,13 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return irq_tab[slot][pin];
 }
 
-void __init pcibios_fixup_irqs(void)
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
 {
+       return 0;
 }
 
-#if CONFIG_KGDB
+#ifdef CONFIG_KGDB
 /*
  * The PCI scan may have moved the saa9730 I/O address, so reread
  * the address here.
@@ -61,6 +63,6 @@ static void atlas_saa9730_base_fixup (struct pci_dev *pdev)
 }
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_PHILIPS, PCI_DEVICE_ID_PHILIPS_SAA9730,
-       atlas_saa9730_base_fixup);
+        atlas_saa9730_base_fixup);
 
 #endif
index 2d42f9aa95ac212452a07e175050e0d53582af59..a02d2b8a6e858bb1f821161d9a7179fd38c9a1f3 100644 (file)
@@ -100,5 +100,11 @@ static char irq_tab_alchemy[][5] __initdata = {
 
 int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
-return irq_tab_alchemy[slot][pin];
+       return irq_tab_alchemy[slot][pin];
+}
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
 }
index 458270a0261b7fdaae3434692689c7f927dcc701..f2fc82c1c7c5105783d8a981175b5eb494e3c565 100644 (file)
@@ -42,3 +42,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        return irq_tab_capcella[slot][pin];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 84c7e98dedcd003d6c4376f76130bbb3bffa960d..57e1ca2116bbe016c1d35404fe31abba77d81162 100644 (file)
@@ -77,7 +77,7 @@ static void qube_raq_galileo_fixup(struct pci_dev *dev)
 }
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_GALILEO, PCI_ANY_ID,
-       qube_raq_galileo_fixup);
+        qube_raq_galileo_fixup);
 
 static char irq_tab_cobalt[] __initdata = {
   [COBALT_PCICONF_CPU]     = 0,
@@ -104,3 +104,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq_tab_cobalt[slot];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 785bc03f8df0a9d6840072b85b9b583c572b75af..b345e528a53c8bd1fb8534a2b8cb6c13ff7e1962 100644 (file)
@@ -18,4 +18,4 @@ static void ddb5074_fixup(struct pci_dev *dev)
 }
 
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101,
-       ddb5074_fixup);
+         ddb5074_fixup);
index 25bf49307c0598855f4defce3920cfa57e94bb74..6abdc88bab1e3fe14962403ae5fc6f03534286bc 100644 (file)
@@ -75,4 +75,4 @@ static void ddb5477_amd_lance_fixup(struct pci_dev *dev)
 }
 
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_LANCE,
-          ddb5477_amd_lance_fixup);
+         ddb5477_amd_lance_fixup);
index 413bb5b56107ffaa2016924584332fb2d67b1044..e2bc977b6d582a5adb58eb5efe679d95ec540c84 100644 (file)
@@ -40,3 +40,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        return irq_tab_ev96100[slot][pin];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index f64529b7b8bfe1987f8d84056cf2d9a0855276e8..3e66b0aa63ca5096c7b63d97e07952516234e600 100644 (file)
@@ -1,7 +1,6 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
-#include <asm/pci_channel.h>
 #include <asm/ip32/ip32_ints.h>
 /*
  * O2 has up to 5 PCI devices connected into the MACE bridge.  The device
@@ -44,3 +43,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        return irq_tab_mace[slot][pin];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 7b032efbaa2c0be8c46ee41a64f04a7a1ce3e796..2290ea4228dd731475350090ec379dd289c9378a 100644 (file)
@@ -72,3 +72,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq_tab_ite8172g[slot][pin];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index a796ef14f98e282d0f0388eeab45107f34ab1622..0c7c16464c11950769cf355f4b412b06d0fe23d6 100644 (file)
@@ -67,3 +67,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq_tab_ivr[slot][pin];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 29b6a461550ff63030511bd4ed2fbc5058783d85..6c5e1d47179c3cd151b79841fbde03b4922aa2c5 100644 (file)
@@ -8,14 +8,13 @@
  * Marvell wants an NDA for their docs so this was written without
  * documentation.  You've been warned.
  *
- * Copyright (C) 2004 Ralf Baechle
+ * Copyright (C) 2004 Ralf Baechle (ralf@linux-mips.org)
  */
 #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.
@@ -36,3 +35,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 return 0;
        panic("Whooops in pcibios_map_irq");
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 682edfaf00b65ca9f9efa2b597ee62b1b7977e44..f8696081c5b1fd089dc99d0abfc1021af6ec6868 100644 (file)
@@ -88,6 +88,12 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return irq;
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
 int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        /* SMSC SLC90E66 IDE uses irq 14, 15 (default) */
diff --git a/arch/mips/pci/fixup-lasat.c b/arch/mips/pci/fixup-lasat.c
deleted file mode 100644 (file)
index e2ab64a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <linux/init.h>
-#include <linux/pci.h>
-
-void __init pcibios_fixup_irqs(void)
-{
-}
index bcde09eeab6941d87c6af382d3a55f6c4b939175..b9296d9942b3740e9e1a17f5f8a94fe30add7f35 100644 (file)
@@ -43,11 +43,12 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return pci_irq[virq];
 }
 
-void __init pcibios_fixup_irqs(void)
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
 {
+       return 0;
 }
 
-
 static void __init malta_piix_func0_fixup(struct pci_dev *pdev)
 {
        unsigned char reg_val;
@@ -99,4 +100,4 @@ static void __init malta_piix_func1_fixup(struct pci_dev *pdev)
 }
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB,
-       malta_piix_func1_fixup);
+        malta_piix_func1_fixup);
index 8e5db12a4ef4b5398ef4078cc215c9d94faec17e..09d6b3647656bf2f12028ba1933b112187417167 100644 (file)
@@ -42,3 +42,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq_tab_mpc30x[slot];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 9edc05950ae530275a3e50647535ca59df7a5e75..d45494807a334a8449bfc9502eb6b98f1b63d728 100644 (file)
@@ -33,3 +33,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 return 0;
        panic("Whooops in pcibios_map_irq");
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index a79fc4a085a315ea1666a6d42d20f0f50232525c..d7a652e326c5e71dde969277c78cc072b72fd68d 100644 (file)
@@ -29,3 +29,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return -1;
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
diff --git a/arch/mips/pci/fixup-ocelot3.c b/arch/mips/pci/fixup-ocelot3.c
new file mode 100644 (file)
index 0000000..ececc03
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * 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) 2004 Montavista Software Inc.
+ * Author: Manish Lachwani (mlachwani@mvista.com)
+ *
+ * Looking at the schematics for the Ocelot-3 board, there are
+ * two PCI busses and each bus has two PCI slots.
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <asm/mipsregs.h>
+
+/*
+ * Do platform specific device initialization at
+ * pci_enable_device() time
+ */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
+int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+       int bus = dev->bus->number;
+
+       if (bus == 0 && slot == 1)
+               return 2;       /* PCI-X A */
+       if (bus == 0 && slot == 2)
+               return 3;       /* PCI-X B */
+       if (bus == 1 && slot == 1)
+               return 4;       /* PCI A */
+       if (bus == 1 && slot == 2)
+               return 5;       /* PCI B */
+
+return 0;
+       panic("Whooops in pcibios_map_irq");
+}
index 2182719c0211f56a94b4976612f489b0ad236897..de4e443da208506a7e10945b401bbd08363f52ff 100644 (file)
@@ -9,6 +9,9 @@
  *
  * Copyright (C) 2000-2001 Toshiba Corporation 
  *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani (mlachwani@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
@@ -116,108 +119,22 @@ int pci_get_irq(struct pci_dev *dev, int pin)
        return irq;
 }
 
-
-#ifdef  TX4927_SUPPORT_PCI_66
-extern int tx4927_pci66;
-extern void tx4927_pci66_setup(void);
-#endif
-extern void tx4927_pci_setup(void);
-
-#ifdef  TX4927_SUPPORT_PCI_66
-int tx4927_pci66_check(void)
+int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
-       struct pci_dev *dev;
-       unsigned short stat;
-       int cap66 = 1;
-
-       if (tx4927_pci66 < 0)
-               return 0;
-
-       /* check 66MHz capability */
-       pci_for_each_dev(dev) {
-               if (cap66) {
-                       pci_read_config_word(dev, PCI_STATUS, &stat);
-                       if (!(stat & PCI_STATUS_66MHZ)) {
-                               printk(KERN_INFO
-                                      "PCI: %02x:%02x not 66MHz capable.\n",
-                                      dev->bus->number, dev->devfn);
-                               cap66 = 0;
-                       }
-               }
-       }
-       return cap66;
-}
-#endif
-
-void __init pcibios_fixup_irqs(void)
-{
-       unsigned char pin;
        unsigned char irq;
-       struct pci_dev *dev;
-       unsigned int id;
-
-#ifdef  TX4927_SUPPORT_PCI_66
-       if (tx4927_pci66_check()) {
-               tx4927_pci66_setup();
-               tx4927_pci_setup();     /* Reinitialize PCIC */
-       }
-#endif
 
-       pci_for_each_dev(dev) {
-               DBG("FIXUP:\n");
-               DBG(" devfn=0x%02x (0x%02x:0x%02x)\n",
-                   dev->devfn, PCI_SLOT(dev->devfn),
-                   PCI_FUNC(dev->devfn));
+       printk("PCI Setup for pin %d \n", pin);
 
-               pci_read_config_dword(dev, PCI_VENDOR_ID, &id);
-               DBG(" id=0x%08x\n", id);
+       if (dev->device == 0x9130) /* IDE */
+               irq = 14;
+       else
+               irq = pci_get_irq(dev, pin);
 
-               pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
-               DBG(" line=0x%02x/%d\n", irq, irq);
-
-               pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-               DBG(" pin=%d\n", pin);
-
-#ifdef DEBUG
-               {
-                       unsigned int tmp;
-                       pci_read_config_dword(dev, 0x10, &tmp);
-                       DBG(" bar0:0x10=0x%08x\n", tmp);
-                       pci_read_config_dword(dev, 0x14, &tmp);
-                       DBG(" bar1:0x14=0x%08x\n", tmp);
-                       pci_read_config_dword(dev, 0x1c, &tmp);
-                       DBG(" bar2:0x1c=0x%08x\n", tmp);
-                       pci_read_config_dword(dev, 0x20, &tmp);
-                       DBG(" bar3:0x20=0x%08x\n", tmp);
-                       pci_read_config_dword(dev, 0x24, &tmp);
-                       DBG(" bar4:0x24=0x%08x\n", tmp);
-               }
-#endif
-
-               irq = 0;
-
-               if (id == 0x91301055) { /* ide */
-                       irq = 14;
-               }
-
-               if (pin == 0) {
-                       DBG(" auto irq (now=%d) -- skipping pin=0\n", irq);
-               } else if (irq) {
-                       DBG(" auto irq (now=%d) -- skipping hardcoded irq\n", irq);
-               } else {
-                       DBG(" auto irq (was=%d)\n", irq);
-                       irq = pci_get_irq(dev, pin);
-                       pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-                                             irq);
-                       dev->irq = irq;
-                       DBG(" auto irq (now=%d)\n", irq);
-               }
-
-               pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
-               printk(KERN_INFO
-                      "PCI: 0x%02x:0x%02x(0x%02x,0x%02x) IRQ=%d\n",
-                      dev->bus->number, dev->devfn, PCI_SLOT(dev->devfn),
-                      PCI_FUNC(dev->devfn), irq);
+       return irq;
+}
 
-       }
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
 }
index 563fb2c8922c49c11e5c66fbd05d742c657abb16..c8ef01a017ccd8645d87e5b040ee9c974ad8c627 100644 (file)
@@ -5,14 +5,13 @@
  *
  * SNI specific PCI support for RM200/RM300.
  *
- * Copyright (C) 1997 - 2000, 2003 Ralf Baechle
+ * Copyright (C) 1997 - 2000, 2003, 04 Ralf Baechle (ralf@linux-mips.org)
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 
 #include <asm/mipsregs.h>
-#include <asm/pci_channel.h>
 #include <asm/sni.h>
 
 /*
@@ -82,3 +81,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq_tab_rm200[slot][pin];
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 4d62bce5bf510bda3d544f4efb0b6dc36fd6bf3a..850a900f0eb4eb8c8b8c6fcbfd581cb94890fb9b 100644 (file)
@@ -58,3 +58,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq;
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 6643462f78b758145e1574e8ac502589c1280e2c..61513d5d97daa6f5a3e294db62819644e61f0b01 100644 (file)
@@ -77,3 +77,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return irq;
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index e39ba2c54c9b202013d8da1d6f655a27381c14bf..81d77a587a513207c67d4143aa299ceb745c4382 100644 (file)
@@ -33,3 +33,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
        return 3;                       /* Everything goes to one irq bit */
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index b921cc6b306d628e56113b02903c9e00d3d71e83..c1c91ca0f9c207be4ee450b041ca4d9c9477d550 100644 (file)
@@ -288,10 +288,18 @@ static int config_read(struct pci_bus *bus, unsigned int devfn,
                       int where, int size, u32 * val)
 {
        switch (size) {
-       case 1:
-               return read_config_byte(bus, devfn, where, (u8 *) val);
-       case 2:
-               return read_config_word(bus, devfn, where, (u16 *) val);
+       case 1: {
+                       u8 _val;
+                       int rc = read_config_byte(bus, devfn, where, &_val);
+                       *val = _val;
+                       return rc;
+               }
+       case 2: {
+                       u16 _val;
+                       int rc = read_config_word(bus, devfn, where, &_val);
+                       *val = _val;
+                       return rc;
+               }
        default:
                return read_config_dword(bus, devfn, where, val);
        }
index 2f40a8c1865334efe2669281c57983381f109352..b7a8b9a6f9dbb436478f5318ef0118420d032828 100644 (file)
@@ -7,6 +7,8 @@
  * Author: MontaVista Software, Inc.
  *             ppopov@mvista.com or source@mvista.com
  *
+ * Copyright (C) 2004 by 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
@@ -32,7 +34,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 
-#include <asm/pci_channel.h>
 #include <asm/it8172/it8172.h>
 #include <asm/it8172/it8172_pci.h>
 
index 1ac7880dd2a0ec23072159cd8bca75986e4c0140..819309b8e02966aa299ae50271fe0681fa5fe911 100644 (file)
@@ -58,15 +58,15 @@ static int titan_read_config(struct pci_bus *bus, unsigned int devfn, int reg,
 
        switch (size) {
        case 1:
-               TITAN_READ_8(data_reg + (reg & 0x3), val);
+               *val = TITAN_READ_8(data_reg + (~reg & 0x3));
                break;
 
        case 2:
-               TITAN_READ_16(data_reg + (reg & 0x2), val);
+               *val = TITAN_READ_16(data_reg + (~reg & 0x2));
                break;
 
        case 4:
-               TITAN_READ(data_reg, val);
+               *val = TITAN_READ(data_reg);
                break;
        }
 
@@ -98,11 +98,11 @@ static int titan_write_config(struct pci_bus *bus, unsigned int devfn, int reg,
        /* write the data */
        switch (size) {
        case 1:
-               TITAN_WRITE_8(data_reg + (reg & 0x3), val);
+               TITAN_WRITE_8(data_reg + (~reg & 0x3), val);
                break;
 
        case 2:
-               TITAN_WRITE_16(data_reg + (reg & 0x2), val);
+               TITAN_WRITE_16(data_reg + (~reg & 0x2), val);
                break;
 
        case 4:
@@ -120,16 +120,3 @@ struct pci_ops titan_pci_ops = {
        titan_read_config,
        titan_write_config,
 };
-
-void __init pcibios_init(void)
-{
-       /* 
-        * XXX These values below need to change
-        */
-       ioport_resource.start = 0xe0000000;
-       ioport_resource.end   = 0xe0000000 + 0x20000000 - 1;
-       iomem_resource.start  = 0xc0000000;
-       iomem_resource.end    = 0xc0000000 + 0x20000000 - 1;
-
-       pci_scan_bus(0, &titan_pci_ops, NULL);
-}
index 136c449f8fba787d9971bcd5adfc104810cecedb..0e0daadc303d547d2fc9241a322f26db6717d8f6 100644 (file)
@@ -4,6 +4,7 @@
  *              ahennessy@mvista.com
  *
  * Copyright (C) 2000-2001 Toshiba Corporation
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  *
  * Based on arch/mips/ddb5xxx/ddb5477/pci_ops.c
  *
@@ -38,7 +39,6 @@
 #include <linux/init.h>
 
 #include <asm/addrspace.h>
-#include <asm/pci_channel.h>
 #include <asm/jmr3927/jmr3927.h>
 #include <asm/debug.h>
 
index 9044ff9765ac98427dec5abd1bdcb0e063e2008d..43863ab08c8cafc95795f5ce6bb02c9c79beed03 100644 (file)
@@ -4,6 +4,7 @@
  *              ahennessy@mvista.com       
  *
  * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  *
  * Based on arch/mips/ddb5xxx/ddb5477/pci_ops.c
  *
@@ -12,6 +13,9 @@
  * Much of the code is derived from the original DDB5074 port by 
  * Geert Uytterhoeven <geert@sonycom.com>
  *
+ * Copyright 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani (mlachwani@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
 #include <linux/init.h>
 
 #include <asm/addrspace.h>
-#include <asm/pci_channel.h>
 #include <asm/tx4927/tx4927_pci.h>
 #include <asm/debug.h>
 
 /* initialize in setup */
 struct resource pci_io_resource = {
-       "pci IO space",
-       (PCIBIOS_MIN_IO),
-       ((PCIBIOS_MIN_IO) + (TX4927_PCIIO_SIZE)) - 1,
-       IORESOURCE_IO
+       .name   = "TX4927 PCI IO SPACE",
+       .start  = 0x1000,
+       .end    = (0x1000 + (TX4927_PCIIO_SIZE)) - 1,
+       .flags  = IORESOURCE_IO
 };
 
 /* initialize in setup */
 struct resource pci_mem_resource = {
-       "pci memory space",
-       TX4927_PCIMEM,
-       TX4927_PCIMEM + TX4927_PCIMEM_SIZE - 1,
-       IORESOURCE_MEM
-};
-
-extern struct pci_ops tx4927_pci_ops;
-
-/*
- * h/w only supports devices 0x00 to 0x14
- */
-struct pci_controller tx4927_controller = {
-       .pci_ops        = &tx4927_pci_ops,
-       .io_resource    = &pci_io_resource,
-       .mem_resource   = &pci_mem_resource,
+       .name   = "TX4927 PCI MEM SPACE",
+       .start  = TX4927_PCIMEM,
+       .end    = TX4927_PCIMEM + TX4927_PCIMEM_SIZE - 1,
+       .flags  = IORESOURCE_MEM
 };
 
-static int mkaddr(unsigned char bus, unsigned char dev_fn,
-       unsigned char where, int *flagsp)
+static int mkaddr(int bus, int dev_fn, int where, int *flagsp)
 {
        if (bus > 0) {
                /* Type 1 configuration */
@@ -107,107 +98,49 @@ static int check_abort(int flags)
        return code;
 }
 
-/*
- * We can't address 8 and 16 bit words directly.  Instead we have to
- * read/write a 32bit word and mask/modify the data we actually want.
- */
-static int tx4927_pcibios_read_config_byte(struct pci_dev *dev,
-                                          int where, unsigned char *val)
+static int tx4927_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, int where,
+               int size, u32 * val)
 {
-       int flags, retval;
-       unsigned char bus, func_num;
+       int flags, retval, dev, busno, func;
 
-       db_assert((where & 3) == 0);
-       db_assert(where < (1 << 8));
+       busno = bus->number;
+        dev = PCI_SLOT(devfn);
+        func = PCI_FUNC(devfn);
 
-       /* check if the bus is top-level */
-       if (dev->bus->parent != NULL) {
-               bus = dev->bus->number;
-               db_assert(bus != 0);
-       } else {
-               bus = 0;
+       if (size == 2) {
+               if (where & 1)
+                       return PCIBIOS_BAD_REGISTER_NUMBER;
        }
 
-       func_num = PCI_FUNC(dev->devfn);
-       if (mkaddr(bus, dev->devfn, where, &flags))
-               return -1;
-#ifdef __BIG_ENDIAN
-       *val =
-           *(volatile u8 *) ((ulong) & tx4927_pcicptr->
-                             g2pcfgdata | ((where & 3) ^ 3));
-#else
-       *val =
-           *(volatile u8 *) ((ulong) & tx4927_pcicptr->
-                             g2pcfgdata | (where & 3));
-#endif
-       retval = check_abort(flags);
-       if (retval == PCIBIOS_DEVICE_NOT_FOUND)
-               *val = 0xff;
-       return retval;
-}
-
-static int tx4927_pcibios_read_config_word(struct pci_dev *dev,
-                                          int where, unsigned short *val)
-{
-       int flags, retval;
-       unsigned char bus, func_num;
-
-       if (where & 1)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
-
-       db_assert((where & 3) == 0);
-       db_assert(where < (1 << 8));
+       if (size == 4) {
+               if (where & 3)
+                       return PCIBIOS_BAD_REGISTER_NUMBER;
+       }
 
        /* check if the bus is top-level */
-       if (dev->bus->parent != NULL) {
-               bus = dev->bus->number;
-               db_assert(bus != 0);
+       if (bus->parent != NULL) {
+               busno = bus->number;
        } else {
-               bus = 0;
+               busno = 0;
        }
 
-       func_num = PCI_FUNC(dev->devfn);
-       if (mkaddr(bus, dev->devfn, where, &flags))
+       if (mkaddr(busno, devfn, where, &flags))
                return -1;
-#ifdef __BIG_ENDIAN
-       *val =
-           *(volatile u16 *) ((ulong) & tx4927_pcicptr->
-                              g2pcfgdata | ((where & 3) ^ 2));
-#else
-       *val =
-           *(volatile u16 *) ((ulong) & tx4927_pcicptr->
-                              g2pcfgdata | (where & 3));
-#endif
-       retval = check_abort(flags);
-       if (retval == PCIBIOS_DEVICE_NOT_FOUND)
-               *val = 0xffff;
-       return retval;
-}
-
-static int tx4927_pcibios_read_config_dword(struct pci_dev *dev,
-                                           int where, unsigned int *val)
-{
-       int flags, retval;
-       unsigned char bus, func_num;
-
-       if (where & 3)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
 
-       db_assert((where & 3) == 0);
-       db_assert(where < (1 << 8));
-
-       /* check if the bus is top-level */
-       if (dev->bus->parent != NULL) {
-               bus = dev->bus->number;
-               db_assert(bus != 0);
-       } else {
-               bus = 0;
+       switch (size) {
+       case 1:
+               *val = *(volatile u8 *) ((ulong) & tx4927_pcicptr->
+                              g2pcfgdata | (where & 3));
+               break;
+       case 2:
+               *val = *(volatile u16 *) ((ulong) & tx4927_pcicptr->
+                               g2pcfgdata | (where & 3));
+               break;
+       case 4:
+               *val = tx4927_pcicptr->g2pcfgdata;
+               break;
        }
 
-       func_num = PCI_FUNC(dev->devfn);
-       if (mkaddr(bus, dev->devfn, where, &flags))
-               return -1;
-       *val = tx4927_pcicptr->g2pcfgdata;
        retval = check_abort(flags);
        if (retval == PCIBIOS_DEVICE_NOT_FOUND)
                *val = 0xffffffff;
@@ -215,92 +148,62 @@ static int tx4927_pcibios_read_config_dword(struct pci_dev *dev,
        return retval;
 }
 
-static int tx4927_pcibios_write_config_byte(struct pci_dev *dev,
-                                           int where, unsigned char val)
+static int tx4927_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, int where,
+                               int size, u32 val)
 {
-       int flags;
-       unsigned char bus, func_num;
-
-       /* check if the bus is top-level */
-       if (dev->bus->parent != NULL) {
-               bus = dev->bus->number;
-               db_assert(bus != 0);
-       } else {
-               bus = 0;
+       int flags, dev, busno, func;
+       busno = bus->number;
+        dev = PCI_SLOT(devfn);
+        func = PCI_FUNC(devfn);
+
+       if (size == 1) {
+               if (where & 1)
+                       return PCIBIOS_BAD_REGISTER_NUMBER;
        }
 
-       func_num = PCI_FUNC(dev->devfn);
-       if (mkaddr(bus, dev->devfn, where, &flags))
-               return -1;
-#ifdef __BIG_ENDIAN
-       *(volatile u8 *) ((ulong) & tx4927_pcicptr->
-                         g2pcfgdata | ((where & 3) ^ 3)) = val;
-#else
-       *(volatile u8 *) ((ulong) & tx4927_pcicptr->
-                         g2pcfgdata | (where & 3)) = val;
-#endif
-       return check_abort(flags);
-}
-
-static int tx4927_pcibios_write_config_word(struct pci_dev *dev,
-                                           int where, unsigned short val)
-{
-       int flags;
-       unsigned char bus, func_num;
-
-       if (where & 1)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
+       if (size == 4) {
+               if (where & 3)
+                       return PCIBIOS_BAD_REGISTER_NUMBER;
+       }
 
        /* check if the bus is top-level */
-       if (dev->bus->parent != NULL) {
-               bus = dev->bus->number;
-               db_assert(bus != 0);
+       if (bus->parent != NULL) {
+               busno = bus->number;
        } else {
-               bus = 0;
+               busno = 0;
        }
 
-       func_num = PCI_FUNC(dev->devfn);
-       if (mkaddr(bus, dev->devfn, where, &flags))
+       if (mkaddr(busno, devfn, where, &flags))
                return -1;
-#ifdef __BIG_ENDIAN
-       *(volatile u16 *) ((ulong) & tx4927_pcicptr->
-                          g2pcfgdata | ((where & 3) ^ 2)) = val;
-#else
-       *(volatile u16 *) ((ulong) & tx4927_pcicptr->
-                          g2pcfgdata | (where & 3)) = val;
-#endif
-       return check_abort(flags);
-}
-
-static int tx4927_pcibios_write_config_dword(struct pci_dev *dev,
-                                            int where, unsigned int val)
-{
-       int flags;
-       unsigned char bus, func_num;
 
-       if (where & 3)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
-
-       /* check if the bus is top-level */
-       if (dev->bus->parent != NULL) {
-               bus = dev->bus->number;
-               db_assert(bus != 0);
-       } else {
-               bus = 0;
+       switch (size) {
+       case 1:
+                *(volatile u8 *) ((ulong) & tx4927_pcicptr->
+                          g2pcfgdata | (where & 3)) = val;
+               break;
+
+       case 2:
+               *(volatile u16 *) ((ulong) & tx4927_pcicptr->
+                           g2pcfgdata | (where & 3)) = val;
+               break;
+       case 4:
+               tx4927_pcicptr->g2pcfgdata = val;
+               break;
        }
 
-       func_num = PCI_FUNC(dev->devfn);
-       if (mkaddr(bus, dev->devfn, where, &flags))
-               return -1;
-       tx4927_pcicptr->g2pcfgdata = val;
        return check_abort(flags);
 }
 
 struct pci_ops tx4927_pci_ops = {
-       tx4927_pcibios_read_config_byte,
-       tx4927_pcibios_read_config_word,
-       tx4927_pcibios_read_config_dword,
-       tx4927_pcibios_write_config_byte,
-       tx4927_pcibios_write_config_word,
-       tx4927_pcibios_write_config_dword
+       tx4927_pcibios_read_config,
+       tx4927_pcibios_write_config
+};
+
+/*
+ * h/w only supports devices 0x00 to 0x14
+ */
+struct pci_controller tx4927_controller = {
+       .pci_ops        = &tx4927_pci_ops,
+       .io_resource    = &pci_io_resource,
+       .mem_resource   = &pci_mem_resource,
 };
index 5bc21b22e0ca705484fab7915d4c95eb1b9d4f49..73f9ceeb2f55557d63928d7f9a78a7b70a75d951 100644 (file)
@@ -3,7 +3,6 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 
-#include <asm/pci_channel.h>
 #include <asm/debug.h>
 
 #include <asm/ddb5xxx/ddb5xxx.h>
@@ -54,6 +53,12 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return irq_map[slot];
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
 void __init ddb_pci_reset_bus(void)
 {
        u32 temp;
index 945e59bce761cd4b7152f6898e21eb28df1ae511..90dd49509800da71ad856592ab3d75552fd5c5e5 100644 (file)
@@ -3,7 +3,6 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 
-#include <asm/pci_channel.h>
 #include <asm/debug.h>
 
 #include <asm/ddb5xxx/ddb5xxx.h>
@@ -68,6 +67,12 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return irq_map[slot];
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
 void __init ddb_pci_reset_bus(void)
 {
        u32 temp;
index fd94115e72ff66c6c8fb33b3c1451e0b1a1f92f4..4ddd53eaf6568517d5baef7f4ee683a431a8eb2e 100644 (file)
@@ -4,6 +4,8 @@
  * Copyright (C) 2001 MontaVista Software Inc.
  * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
  *
+ * Copyright (C) 2004 by 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
@@ -15,7 +17,6 @@
 #include <linux/pci.h>
 
 #include <asm/bootinfo.h>
-#include <asm/pci_channel.h>
 #include <asm/debug.h>
 
 #include <asm/ddb5xxx/ddb5xxx.h>
@@ -175,6 +176,12 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return irq;
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
 void ddb_pci_reset_bus(void)
 {
        u32 temp;
index 8f2becbd84605645544502ba7ef293cf5c9fcf4c..f9457ea00defc7da8fe1be0f52876ff19601a879 100644 (file)
@@ -6,6 +6,8 @@
  * Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 1999,2000 MIPS Technologies, Inc.  All rights reserved.
  *
+ * Copyright (C) 2004 by 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
@@ -31,8 +33,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 
-#include <asm/pci_channel.h>
-
 static struct resource pci_io_resource = {
        .name   = "io pci IO space",
        .start  = 0x10000000,
diff --git a/arch/mips/pci/pci-hplj.c b/arch/mips/pci/pci-hplj.c
deleted file mode 100644 (file)
index 0138dcf..0000000
+++ /dev/null
@@ -1,204 +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.
- *
- * SNI specific PCI support for RM200/RM300.
- *
- * Copyright (C) 1997 - 2000 Ralf Baechle
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/pci.h>
-#include <linux/types.h>
-#include <asm/byteorder.h>
-#include <asm/pci_channel.h>
-#include <asm/hp-lj/asic.h>
-
-static volatile u32 *pci_config_address_reg = (volatile u32 *) 0xfdead000;
-static volatile u32 *pci_config_data_reg = (volatile u32 *) 0xfdead000;
-
-
-
-#define cfgaddr(dev, where) (((dev->bus->number & 0xff) << 0x10) |  \
-                             ((dev->devfn & 0xff) << 0x08) |        \
-                             (where & 0xfc))
-
-/*
- * We can't address 8 and 16 bit words directly.  Instead we have to
- * read/write a 32bit word and mask/modify the data we actually want.
- */
-static int pcimt_read_config_byte(struct pci_dev *dev,
-                                 int where, unsigned char *val)
-{
-       *pci_config_address_reg = cfgaddr(dev, where);
-       *val =
-           (le32_to_cpu(*pci_config_data_reg) >> ((where & 3) << 3)) &
-           0xff;
-       //printk("pci_read_byte 0x%x == 0x%x\n", where, *val);
-       return PCIBIOS_SUCCESSFUL;
-}
-
-static int pcimt_read_config_word(struct pci_dev *dev,
-                                 int where, unsigned short *val)
-{
-       if (where & 1)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
-       *pci_config_address_reg = cfgaddr(dev, where);
-       *val =
-           (le32_to_cpu(*pci_config_data_reg) >> ((where & 3) << 3)) &
-           0xffff;
-       //printk("pci_read_word 0x%x == 0x%x\n", where, *val);
-       return PCIBIOS_SUCCESSFUL;
-}
-
-int pcimt_read_config_dword(struct pci_dev *dev,
-                           int where, unsigned int *val)
-{
-       if (where & 3)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
-       *pci_config_address_reg = cfgaddr(dev, where);
-       *val = le32_to_cpu(*pci_config_data_reg);
-       //printk("pci_read_dword 0x%x == 0x%x\n", where, *val);
-       return PCIBIOS_SUCCESSFUL;
-}
-
-static int pcimt_write_config_byte(struct pci_dev *dev,
-                                  int where, unsigned char val)
-{
-       *pci_config_address_reg = cfgaddr(dev, where);
-       *(volatile u8 *) (((int) pci_config_data_reg) + (where & 3)) = val;
-       //printk("pci_write_byte 0x%x = 0x%x\n", where, val);
-       return PCIBIOS_SUCCESSFUL;
-}
-
-static int pcimt_write_config_word(struct pci_dev *dev,
-                                  int where, unsigned short val)
-{
-       if (where & 1)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
-       *pci_config_address_reg = cfgaddr(dev, where);
-       *(volatile u16 *) (((int) pci_config_data_reg) + (where & 2)) =
-           le16_to_cpu(val);
-       //printk("pci_write_word 0x%x = 0x%x\n", where, val);
-       return PCIBIOS_SUCCESSFUL;
-}
-
-int pcimt_write_config_dword(struct pci_dev *dev,
-                            int where, unsigned int val)
-{
-       if (where & 3)
-               return PCIBIOS_BAD_REGISTER_NUMBER;
-       *pci_config_address_reg = cfgaddr(dev, where);
-       *pci_config_data_reg = le32_to_cpu(val);
-       //printk("pci_write_dword 0x%x = 0x%x\n", where, val);
-       return PCIBIOS_SUCCESSFUL;
-}
-
-
-
-struct pci_ops hp_pci_ops = {
-       pcimt_read_config_byte,
-       pcimt_read_config_word,
-       pcimt_read_config_dword,
-       pcimt_write_config_byte,
-       pcimt_write_config_word,
-       pcimt_write_config_dword
-};
-
-
-struct pci_controller hp_controller = {
-       .pci_ops        = &hp_pci_ops,
-       .io_resource    = &ioport_resource,
-       .mem_resource   = &iomem_resource,
-};
-
-void __init pcibios_fixup_irqs(void)
-{
-       struct pci_dev *dev = NULL;
-       int slot_num;
-
-       while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-               slot_num = PCI_SLOT(dev->devfn);
-               switch (slot_num) {
-               case 2:
-                       dev->irq = 3;
-                       break;
-               case 3:
-                       dev->irq = 4;
-                       break;
-               case 4:
-                       dev->irq = 5;
-                       break;
-               default:
-                       break;
-               }
-       }
-}
-
-#define IO_MEM_LOGICAL_START   0x3e000000
-#define IO_MEM_LOGICAL_END     0x3fefffff
-
-#define IO_PORT_LOGICAL_START  0x3ff00000
-#define IO_PORT_LOGICAL_END    0x3fffffff
-
-
-#define IO_MEM_VIRTUAL_OFFSET  0xb0000000
-#define IO_PORT_VIRTUAL_OFFSET 0xb0000000
-
-#define ONE_MEG   (1024 * 1024)
-
-void __init pci_setup(void)
-{
-       u32 pci_regs_base_offset = 0xfdead000;
-
-       switch (GetAsicId()) {
-       case AndrosAsic:
-               pci_regs_base_offset = 0xbff80000;
-               break;
-       case HarmonyAsic:
-               pci_regs_base_offset = 0xbff70000;
-               break;
-       default:
-               printk("ERROR: PCI does not support %s Asic\n",
-                      GetAsicName());
-               while (1);
-               break;
-       }
-
-       // set bus stat/command reg
-       // REVIST this setting may need vary depending on the hardware
-       *((volatile unsigned int *) (pci_regs_base_offset | 0x0004)) =
-           0x38000007;
-
-
-       iomem_resource.start =
-           IO_MEM_LOGICAL_START + IO_MEM_VIRTUAL_OFFSET;
-       iomem_resource.end = IO_MEM_LOGICAL_END + IO_MEM_VIRTUAL_OFFSET;
-
-       ioport_resource.start =
-           IO_PORT_LOGICAL_START + IO_PORT_VIRTUAL_OFFSET;
-       ioport_resource.end = IO_PORT_LOGICAL_END + IO_PORT_VIRTUAL_OFFSET;
-
-       // KLUDGE (mips_io_port_base is screwed up, we've got to work around it here)
-       // by letting both low (illegal) and high (legal) addresses appear in pci io space
-       ioport_resource.start = 0x0;
-
-       set_io_port_base(IO_PORT_LOGICAL_START + IO_PORT_VIRTUAL_OFFSET);
-
-       // map the PCI address space
-       // global map - all levels & processes can access
-       // except that the range is outside user space
-       // parameters: lo0, lo1, hi, pagemask
-       // lo indicates physical page, hi indicates virtual address
-       add_wired_entry((IO_MEM_LOGICAL_START >> 6) | 0x17,
-                       ((IO_MEM_LOGICAL_START +
-                         (16 * ONE_MEG)) >> 6) | 0x17, 0xee000000,
-                       PM_16M);
-
-
-       // These are used in pci r/w routines so need to preceed bus scan
-       pci_config_data_reg = (u32 *) (((u32) mips_io_port_base) | 0xcfc);
-       pci_config_address_reg =
-           (u32 *) (((u32) pci_regs_base_offset) | 0xcf8);
-}
index b996766a286af9bfb0184af513b85195ccee24b2..068e0e508e15a0c72851afaa2feccf5b95b8961e 100644 (file)
@@ -4,7 +4,7 @@
  * for more details.
  *
  * Copyright (C) 2003 Christoph Hellwig (hch@lst.de)
- * Copyright (C) 1999, 2000 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999, 2000, 04 Ralf Baechle (ralf@linux-mips.org)
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  */
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <asm/sn/arch.h>
 #include <asm/pci/bridge.h>
-#include <asm/pci_channel.h>
 #include <asm/paccess.h>
 #include <asm/sn/intr.h>
 #include <asm/sn/sn0/hub.h>
 
+extern unsigned int allocate_irqno(void);
+
 /*
  * Max #PCI busses we can handle; ie, max #PCI bridges.
  */
@@ -81,7 +82,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
        else
                res = get_dbe(*value, (u32 *) addr);
 
-       return PCIBIOS_SUCCESSFUL;
+       return res ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
 
 oh_my_gawd:
 
@@ -110,6 +111,79 @@ oh_my_gawd:
        return PCIBIOS_SUCCESSFUL;
 }
 
+static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
+                                int where, int size, u32 * value)
+{
+       struct bridge_controller *bc = BRIDGE_CONTROLLER(bus);
+       bridge_t *bridge = bc->base;
+       int busno = bus->number;
+       int slot = PCI_SLOT(devfn);
+       int fn = PCI_FUNC(devfn);
+       volatile void *addr;
+       u32 cf, shift, mask;
+       int res;
+
+       bridge->b_pci_cfg = (busno << 16) | (slot << 11);
+       addr = &bridge->b_type1_cfg.c[(fn << 8) | PCI_VENDOR_ID];
+       if (get_dbe(cf, (u32 *) addr))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+
+       /*
+        * IOC3 is fucked fucked beyond believe ...  Don't even give the
+        * generic PCI code a chance to look at it for real ...
+        */
+       if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
+               goto oh_my_gawd;
+
+       bridge->b_pci_cfg = (busno << 16) | (slot << 11);
+       addr = &bridge->b_type1_cfg.c[(fn << 8) | (where ^ (4 - size))];
+
+       if (size == 1)
+               res = get_dbe(*value, (u8 *) addr);
+       else if (size == 2)
+               res = get_dbe(*value, (u16 *) addr);
+       else
+               res = get_dbe(*value, (u32 *) addr);
+
+       return res ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
+
+oh_my_gawd:
+
+       /*
+        * IOC3 is fucked fucked beyond believe ...  Don't even give the
+        * generic PCI code a chance to look at the wrong register.
+        */
+       if ((where >= 0x14 && where < 0x40) || (where >= 0x48)) {
+               *value = 0;
+               return PCIBIOS_SUCCESSFUL;
+       }
+
+       /*
+        * IOC3 is fucked fucked beyond believe ...  Don't try to access
+        * anything but 32-bit words ...
+        */
+       bridge->b_pci_cfg = (busno << 16) | (slot << 11);
+       addr = &bridge->b_type1_cfg.c[(fn << 8) | where];
+
+       if (get_dbe(cf, (u32 *) addr))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+
+       shift = ((where & 3) << 3);
+       mask = (0xffffffffU >> ((4 - size) << 3));
+       *value = (cf >> shift) & mask;
+
+       return PCIBIOS_SUCCESSFUL;
+}
+
+static int pci_read_config(struct pci_bus *bus, unsigned int devfn,
+                          int where, int size, u32 * value)
+{
+       if (bus->number > 0)
+               return pci_conf1_read_config(bus, devfn, where, size, value);
+
+       return pci_conf0_read_config(bus, devfn, where, size, value);
+}
+
 static int pci_conf0_write_config(struct pci_bus *bus, unsigned int devfn,
                                  int where, int size, u32 value)
 {
@@ -176,16 +250,95 @@ oh_my_gawd:
        return PCIBIOS_SUCCESSFUL;
 }
 
+static int pci_conf1_write_config(struct pci_bus *bus, unsigned int devfn,
+                                 int where, int size, u32 value)
+{
+       struct bridge_controller *bc = BRIDGE_CONTROLLER(bus);
+       bridge_t *bridge = bc->base;
+       int slot = PCI_SLOT(devfn);
+       int fn = PCI_FUNC(devfn);
+       int busno = bus->number;
+       volatile void *addr;
+       u32 cf, shift, mask, smask;
+       int res;
+
+       bridge->b_pci_cfg = (busno << 16) | (slot << 11);
+       addr = &bridge->b_type1_cfg.c[(fn << 8) | PCI_VENDOR_ID];
+       if (get_dbe(cf, (u32 *) addr))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+
+       /*
+        * IOC3 is fucked fucked beyond believe ...  Don't even give the
+        * generic PCI code a chance to look at it for real ...
+        */
+       if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
+               goto oh_my_gawd;
+
+       addr = &bridge->b_type1_cfg.c[(fn << 8) | (where ^ (4 - size))];
+
+       if (size == 1) {
+               res = put_dbe(value, (u8 *) addr);
+       } else if (size == 2) {
+               res = put_dbe(value, (u16 *) addr);
+       } else {
+               res = put_dbe(value, (u32 *) addr);
+       }
+
+       if (res)
+               return PCIBIOS_DEVICE_NOT_FOUND;
+
+       return PCIBIOS_SUCCESSFUL;
+
+oh_my_gawd:
+
+       /*
+        * IOC3 is fucked fucked beyond believe ...  Don't even give the
+        * generic PCI code a chance to touch the wrong register.
+        */
+       if ((where >= 0x14 && where < 0x40) || (where >= 0x48))
+               return PCIBIOS_SUCCESSFUL;
+
+       /*
+        * IOC3 is fucked fucked beyond believe ...  Don't try to access
+        * anything but 32-bit words ...
+        */
+       addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
+
+       if (get_dbe(cf, (u32 *) addr))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+
+       shift = ((where & 3) << 3);
+       mask = (0xffffffffU >> ((4 - size) << 3));
+       smask = mask << shift;
+
+       cf = (cf & ~smask) | ((value & mask) << shift);
+       if (put_dbe(cf, (u32 *) addr))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+
+       return PCIBIOS_SUCCESSFUL;
+}
+
+static int pci_write_config(struct pci_bus *bus, unsigned int devfn,
+       int where, int size, u32 value)
+{
+       if (bus->number > 0)
+               return pci_conf1_write_config(bus, devfn, where, size, value);
+
+       return pci_conf0_write_config(bus, devfn, where, size, value);
+}
+
 static struct pci_ops bridge_pci_ops = {
-       .read = pci_conf0_read_config,
-       .write = pci_conf0_write_config,
+       .read = pci_read_config,
+       .write = pci_write_config,
 };
 
 int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid)
 {
+       unsigned long offset = NODE_OFFSET(nasid);
        struct bridge_controller *bc;
-       bridge_t *bridge;
        static int num_bridges = 0;
+       bridge_t *bridge;
+       int slot;
 
        printk("a bridge\n");
 
@@ -193,21 +346,23 @@ int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid)
        if (!num_bridges)
                ioport_resource.end = ~0UL;
 
-       bc = &bridges[num_bridges++];
+       bc = &bridges[num_bridges];
 
        bc->pc.pci_ops          = &bridge_pci_ops;
        bc->pc.mem_resource     = &bc->mem;
        bc->pc.io_resource      = &bc->io;
 
+       bc->pc.index            = num_bridges;
+
        bc->mem.name            = "Bridge PCI MEM";
-       bc->pc.mem_offset       = 0;
+       bc->pc.mem_offset       = offset;
        bc->mem.start           = 0;
        bc->mem.end             = ~0UL;
        bc->mem.flags           = IORESOURCE_MEM;
 
        bc->io.name             = "Bridge IO MEM";
+       bc->pc.io_offset        = offset;
        bc->io.start            = 0UL;
-       bc->pc.io_offset        = 0UL;
        bc->io.end              = ~0UL;
        bc->io.flags            = IORESOURCE_IO;
 
@@ -231,7 +386,7 @@ int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid)
        /*
         * Until otherwise set up, assume all interrupts are from slot 0
         */
-       bridge->b_int_device = (u32) 0x0;
+       bridge->b_int_device = 0x0;
 
        /*
         * swap pio's to pci mem and io space (big windows)
@@ -248,11 +403,18 @@ int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid)
        bridge->b_dir_map = (masterwid << 20);  /* DMA */
        bridge->b_int_enable = 0;
 
+       for (slot = 0; slot < 8; slot ++) {
+               bridge->b_device[slot].reg |= BRIDGE_DEV_SWAP_DIR;
+               bc->pci_int[slot] = -1;
+       }
        bridge->b_wid_tflush;     /* wait until Bridge PIO complete */
 
        bc->base = bridge;
 
        register_pci_controller(&bc->pc);
+
+       num_bridges++;
+
        return 0;
 }
 
@@ -268,17 +430,13 @@ 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 irq;
+       int irq = bc->pci_int[slot];
 
-       irq = allocate_irqno();
-
-       /*
-        * Argh...  This API doesn't handle with errors at all ...
-        */
        if (irq == -1) {
-               printk(KERN_ERR "Can't allocate interrupt for PCI device %s\n",
-                      pci_name(dev));
-               return -1;
+               irq = bc->pci_int[slot] = request_bridge_irq(bc);
+               if (irq < 0)
+                       panic("Can't allocate interrupt for PCI device %s\n",
+                             pci_name(dev));
        }
 
        irq_to_bridge[irq] = bc;
@@ -287,6 +445,12 @@ int __devinit pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return irq;
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
 /*
  * Device might live on a subordinate PCI bus.  XXX Walk up the chain of buses
  * to find the slot number in sense of the bridge device register.
@@ -294,7 +458,7 @@ int __devinit pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
  * settings.
  */
 
-static void __init pci_disable_swapping(struct pci_dev *dev)
+static inline void pci_disable_swapping(struct pci_dev *dev)
 {
        struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus);
        bridge_t *bridge = bc->base;
@@ -305,7 +469,7 @@ static void __init pci_disable_swapping(struct pci_dev *dev)
        bridge->b_widget.w_tflush;      /* Flush */
 }
 
-static void __init pci_enable_swapping(struct pci_dev *dev)
+static inline void pci_enable_swapping(struct pci_dev *dev)
 {
        struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus);
        bridge_t *bridge = bc->base;
@@ -318,122 +482,8 @@ static void __init pci_enable_swapping(struct pci_dev *dev)
 
 static void __init pci_fixup_ioc3(struct pci_dev *d)
 {
-       struct bridge_controller *bc = BRIDGE_CONTROLLER(d->bus);
-       unsigned long offset = NODE_OFFSET(bc->nasid);
-
-       printk("PCI: Fixing base addresses for IOC3 device %s\n", pci_name(d));
-
-       d->resource[0].start |= offset;
-       d->resource[0].end |= offset;
-
        pci_disable_swapping(d);
 }
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC3,
-        pci_fixup_ioc3);
-
-static void __init pci_fixup_isp1020(struct pci_dev *d)
-{
-       struct bridge_controller *bc = BRIDGE_CONTROLLER(d->bus);
-       unsigned short command;
-
-       d->resource[0].start |= (unsigned long) bc->nasid << 32;
-       printk("PCI: Fixing isp1020 in [bus:slot.fn] %s\n", pci_name(d));
-
-       /*
-        * Configure device to allow bus mastering, i/o and memory mapping.
-        * Older qlogicisp driver expects to have the IO space enable
-        * bit set. Things stop working if we program the controllers as not
-        * having PCI_COMMAND_MEMORY, so we have to fudge the mem_flags.
-        */
-       pci_set_master(d);
-       pci_read_config_word(d, PCI_COMMAND, &command);
-       command |= PCI_COMMAND_MEMORY;
-       command |= PCI_COMMAND_IO;
-       pci_write_config_word(d, PCI_COMMAND, command);
-       d->resource[1].flags |= 1;
-
-       pci_enable_swapping(d);
-}
-
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP1020,
-        pci_fixup_isp1020);
-
-static void __init pci_fixup_isp2x00(struct pci_dev *d)
-{
-       struct bridge_controller *bc = BRIDGE_CONTROLLER(d->bus);
-       bridge_t *bridge = bc->base;
-       bridgereg_t devreg;
-       int i;
-       int slot = PCI_SLOT(d->devfn);
-       unsigned int start;
-       unsigned short command;
-
-       printk("PCI: Fixing isp2x00 in [bus:slot.fn] %s\n", pci_name(d));
-
-       /* set the resource struct for this device */
-       start = (u32) (u64) bridge;     /* yes, we want to lose the upper 32 bits here */
-       start |= BRIDGE_DEVIO(slot);
-
-       d->resource[0].start = start;
-       d->resource[0].end = d->resource[0].start + 0xff;
-       d->resource[0].flags = IORESOURCE_IO;
-
-       d->resource[1].start = start;
-       d->resource[1].end = d->resource[0].start + 0xfff;
-       d->resource[1].flags = IORESOURCE_MEM;
-
-       /*
-        * set the bridge device(x) reg for this device
-        */
-       devreg = bridge->b_device[slot].reg;
-       /* point device(x) to it appropriate small window */
-       devreg &= ~BRIDGE_DEV_OFF_MASK;
-       devreg |= (start >> 20) & BRIDGE_DEV_OFF_MASK;
-       bridge->b_device[slot].reg = devreg;
-
-       pci_enable_swapping(d);
-
-       /* set card's base addr reg */
-       //pci_write_config_dword(d, PCI_BASE_ADDRESS_0, 0x500001);
-       //pci_write_config_dword(d, PCI_BASE_ADDRESS_1, 0x8b00000);
-       //pci_write_config_dword(d, PCI_ROM_ADDRESS, 0x8b20000);
-
-       /* I got these from booting irix on system... */
-       pci_write_config_dword(d, PCI_BASE_ADDRESS_0, 0x200001);
-       //pci_write_config_dword(d, PCI_BASE_ADDRESS_1, 0xf800000);
-       pci_write_config_dword(d, PCI_ROM_ADDRESS, 0x10200000);
-
-       pci_write_config_dword(d, PCI_BASE_ADDRESS_1, start);
-       //pci_write_config_dword(d, PCI_ROM_ADDRESS, (start | 0x20000));
-
-       /* set cache line size */
-       pci_write_config_dword(d, PCI_CACHE_LINE_SIZE, 0xf080);
-
-       /* set pci bus timeout */
-       bridge->b_bus_timeout |= BRIDGE_BUS_PCI_RETRY_HLD(0x3);
-       bridge->b_wid_tflush;
-       printk("PCI: bridge bus timeout= 0x%x \n", bridge->b_bus_timeout);
-
-       /* set host error field */
-       bridge->b_int_host_err = 0x44;
-       bridge->b_wid_tflush;
-
-       bridge->b_wid_tflush;   /* wait until Bridge PIO complete */
-       for (i = 0; i < 8; i++)
-               printk("PCI: device(%d)= 0x%x\n", i,
-                      bridge->b_device[i].reg);
-
-       /* configure device to allow bus mastering, i/o and memory mapping */
-       pci_set_master(d);
-       pci_read_config_word(d, PCI_COMMAND, &command);
-       command |= PCI_COMMAND_MEMORY;
-       command |= PCI_COMMAND_IO;
-       pci_write_config_word(d, PCI_COMMAND, command);
-       /*d->resource[1].flags |= 1; */
-}
-
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2100,
-        pci_fixup_isp2x00);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2200,
-        pci_fixup_isp2x00);
+       pci_fixup_ioc3);
index 3b3e1940e25beebcdf563e63edb2d99ed43a3955..1faeb034f06e45157b74ad283756b6b674999810 100644 (file)
@@ -4,6 +4,7 @@
  * for more details.
  *
  * Copyright (C) 2000, 2001 Keith M Wesolowski
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  */
 #include <linux/config.h>
 #include <linux/kernel.h>
@@ -11,7 +12,6 @@
 #include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/types.h>
-#include <asm/pci_channel.h>
 #include <asm/ip32/mace.h>
 #include <asm/ip32/ip32_ints.h>
 
index 24943a23c21dc6edca2eaab1e6b7073dbe6530ea..95a028769e561ddeef6920097cb905a8db2b238b 100644 (file)
@@ -4,6 +4,7 @@
  *              ahennessy@mvista.com
  *
  * Copyright (C) 2000-2001 Toshiba Corporation
+ * Copyright (C) 2004 by 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
@@ -30,7 +31,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 
-#include <asm/pci_channel.h>
 #include <asm/jmr3927/jmr3927.h>
 #include <asm/debug.h>
 
index d104360a1fc6a75b5cae103ab52dbcba484ac379..ae3cc4b254b5d733b84dc39d89eed83d42ba28bf 100644 (file)
@@ -3,7 +3,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 2000, 2001 Keith M Wesolowski
+ * Copyright (C) 2000, 2001, 04 Keith M Wesolowski
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
@@ -12,7 +12,6 @@
 #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>
 
@@ -66,6 +65,7 @@ early_initcall(lasat_pci_setup);
 #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) {
@@ -87,3 +87,9 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 
     return -1;
 }
+
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
index 8b22272773a96291f7af7506e277624118972726..1d84d36e034d0f58fbc49899f0ae0ebb951cca92 100644 (file)
@@ -3,13 +3,12 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 2004 by Ralf Baechle
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  */
 
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <asm/mv64340.h>
-#include <asm/pci_channel.h>
 
 #include <linux/init.h>
 
index 239b81fba17b0257caa3e9c8245f9cccbd861a3f..1e3430154fa0ac6008bcb12efde5679526ff4ee1 100644 (file)
@@ -3,7 +3,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 2004 by Ralf Baechle
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  *
  * This doesn't really fly - but I don't have a GT64240 system for testing.
  */
@@ -12,7 +12,6 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <asm/gt64240.h>
-#include <asm/pci_channel.h>
 
 /*
  * We assume these address ranges have been programmed into the GT-64240 by
index 8c7c385e4f96f202d678a12064885c92e08685e8..b32343ee0390c548071a6e6f28941dc9a8d03dc2 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2001,2002,2003 Broadcom Corporation
+ * Copyright (C) 2004 by 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
@@ -36,9 +37,9 @@
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/console.h>
+#include <linux/tty.h>
 
 #include <asm/io.h>
-#include <asm/pci_channel.h>
 
 #include <asm/sibyte/sb1250_defs.h>
 #include <asm/sibyte/sb1250_regs.h>
@@ -89,6 +90,12 @@ int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        return dev->irq;
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+int pcibios_plat_dev_init(struct pci_dev *dev)
+{
+       return 0;
+}
+
 /*
  * Some checks before doing config cycles:
  * In PCI Device Mode, hide everything on bus 0 except the LDT host
@@ -181,22 +188,22 @@ struct pci_ops sb1250_pci_ops = {
 
 static struct resource sb1250_mem_resource = {
        .name   = "SB1250 PCI MEM",
-       .start  = 0x14000000UL,
-       .end    = 0x17ffffffUL,
+       .start  = 0x40000000UL,
+       .end    = 0x5fffffffUL,
        .flags  = IORESOURCE_MEM,
 };
                                                                                 
 static struct resource sb1250_io_resource = {
-       .name   = "SB1250 IO MEM",
-       .start  = 0x14000000UL,
-       .end    = 0x17ffffffUL,
+       .name   = "SB1250 PCI I/O",
+       .start  = 0x00000000UL,
+       .end    = 0x01ffffffUL,
        .flags  = IORESOURCE_IO,
 };
 
 struct pci_controller sb1250_controller = {
        .pci_ops        = &sb1250_pci_ops,
        .mem_resource   = &sb1250_mem_resource,
-       .io_resource    = &sb1250_io_resource
+       .io_resource    = &sb1250_io_resource,
 };
 
 static int __init sb1250_pcibios_init(void)
@@ -208,8 +215,8 @@ static int __init sb1250_pcibios_init(void)
        /* CFE will assign PCI resources */
        pci_probe_only = 1;
 
-       /* set resource limit to avoid errors */
-       ioport_resource.end = 0x0000ffff;       /* 32MB reserved by sb1250 */
+       /* Set I/O resource limits.  */
+       ioport_resource.end = 0x01ffffff;       /* 32MB accessible by sb1250 */
        iomem_resource.end = 0xffffffff;        /* no HT support yet */
 
        cfg_space =
index a6db6f028574b4526b713abd1193c2abc66a435c..f21a0d5a05532736b3969c5ed5d5d3f8a7f9924b 100644 (file)
@@ -4,6 +4,7 @@
  *  Copyright (C) 2001-2003 MontaVista Software Inc.
  *    Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com>
  *  Copyright (C) 2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ * Copyright (C) 2004 by 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
@@ -30,7 +31,6 @@
 
 #include <asm/cpu.h>
 #include <asm/io.h>
-#include <asm/pci_channel.h>
 #include <asm/vr41xx/vr41xx.h>
 
 #include "pci-vr41xx.h"
index c1151f43c9af7e8e0cbdea147adbef592918d79c..9ab65c2c89281c5e5d0103b3f63d7a784c9e7024 100644 (file)
@@ -3,15 +3,13 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 2004 by Ralf Baechle
- *
+ * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <asm/gt64240.h>
-#include <asm/pci_channel.h>
 
 extern struct pci_ops titan_pci_ops;
 
@@ -19,19 +17,42 @@ static struct resource py_mem_resource = {
        "Titan PCI MEM", 0xe0000000UL, 0xe3ffffffUL, IORESOURCE_MEM
 };
 
+/*
+ * PMON really reserves 16MB of I/O port space but that's stupid, nothing
+ * needs that much since allocations are limited to 256 bytes per device
+ * anyway.  So we just claim 64kB here.
+ */
+#define TITAN_IO_SIZE  0x0000ffffUL
+
 static struct resource py_io_resource = {
-       "Titan IO MEM", 0x00000000UL, 0x00ffffffUL, IORESOURCE_IO,
+       "Titan IO MEM", 0x00001000UL, TITAN_IO_SIZE - 1, IORESOURCE_IO,
 };
 
 static struct pci_controller py_controller = {
        .pci_ops        = &titan_pci_ops,
        .mem_resource   = &py_mem_resource,
-       .mem_offset     = 0x10000000UL,
+       .mem_offset     = 0x00000000UL,
        .io_resource    = &py_io_resource,
        .io_offset      = 0x00000000UL
 };
 
+static char ioremap_failed[] __initdata = "Could not ioremap I/O port range";
+
 static int __init pmc_yosemite_setup(void)
 {
+       unsigned long io_v_base;
+
+       io_v_base = (unsigned long) ioremap(0xe0000000UL,TITAN_IO_SIZE);
+       if (!io_v_base)
+               panic(ioremap_failed);
+
+       set_io_port_base(io_v_base);
+
+       ioport_resource.end = TITAN_IO_SIZE - 1;
+
        register_pci_controller(&py_controller);
+
+       return 0;
 }
+
+arch_initcall(pmc_yosemite_setup);
index 9bee1e937ae68620b6c752c152dd3eb91f01404b..54853e763a657b1e079f0f989e27f7e9505fd208 100644 (file)
@@ -4,7 +4,7 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  *
- * Copyright (C) 2003 Ralf Baechle (ralf@linux-mips.org)
+ * Copyright (C) 2003, 04 Ralf Baechle (ralf@linux-mips.org)
  */
 #include <linux/config.h>
 #include <linux/kernel.h>
@@ -14,8 +14,6 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 
-#include <asm/pci_channel.h>
-
 /*
  * Indicate whether we respect the PCI setup left by the firmware.
  *
@@ -223,7 +221,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
        if ((err = pcibios_enable_resources(dev, mask)) < 0)
                return err;
 
-       return 0;
+       return pcibios_plat_dev_init(dev);
 }
 
 static void __init pcibios_fixup_device_resources(struct pci_dev *dev,
index bc17586235a38ef39b886bc13e25b7d9dbb2fe08..ae96a71a3089612e50c529bc8cf582315e01d1e2 100644 (file)
@@ -5,3 +5,4 @@
 obj-y    += irq-handler.o irq.o i2c-yosemite.o prom.o py-console.o setup.o
 
 obj-$(CONFIG_KGDB)             += dbg_io.o
+obj-$(CONFIG_SMP)              += smp.o
index 1ff8d95d0970254fde19d8a97b344671b689c65b..abaff965b67a10e1e0c38d4b4bbbd2c0c5325817 100644 (file)
@@ -33,7 +33,7 @@
 
 #include <linux/config.h>
 
-#if defined(CONFIG_KGDB)
+#ifdef CONFIG_KGDB
 #include <asm/serial.h>
 
 /*
index ebe2e64e275bfb7f6d8d9dc0dd2dcc0444d1cfe0..e577c32f056de070bb4cbe6c20f6cd6c6658302b 100644 (file)
@@ -1,6 +1,7 @@
 /*
- * Copyright 2003 PMC-Sierra Inc.
+ * Copyright 2003, 04 PMC-Sierra Inc.
  * Author: Manish Lachwani (lachwani@pmc-sierra.com
+ * Copyright 2004 Ralf Baechle (ralf@linux-mips.org)
  *
  * First-level interrupt router for the PMC-Sierra Titan board
  *
@@ -27,6 +28,7 @@
                CLI
                .set    at
                .set    noreorder
+               la      ra, ret_from_irq
                mfc0    t0, CP0_CAUSE
                mfc0    t2, CP0_STATUS
 
@@ -69,42 +71,36 @@ ll_pcia_irq:
                li      a0, 2
                move    a1, sp
 #ifdef CONFIG_HYPERTRANSPORT
-               jal     ll_ht_smp_irq_handler
+               j       ll_ht_smp_irq_handler
 #else
-               jal     do_IRQ
+               j       do_IRQ
 #endif
-               j       ret_from_irq
 
 ll_pcib_irq:
                li      a0, 3
                move    a1, sp
-               jal     do_IRQ
-               j       ret_from_irq
+               j       do_IRQ
 
 ll_duart_irq:
                li      a0, 4
                move    a1, sp
-               jal     do_IRQ
-               j       ret_from_irq
+               j       do_IRQ
 
 ll_smp_irq:
                li      a0, 5
                move    a1, sp
 #ifdef CONFIG_SMP
-               jal     jaguar_mailbox_irq
+               j       titan_mailbox_irq
 #else
-               jal     do_IRQ
+               j       do_IRQ
 #endif
-               j       ret_from_irq
 
 ll_ht_irq:
                li      a0, 6
                move    a1, sp
-               jal     ll_ht_smp_irq_handler
-               j       ret_from_irq
+               j       ll_ht_smp_irq_handler
 
 ll_timer_irq:
                li      a0, 7
                move    a1, sp
-               jal     do_IRQ
-               j       ret_from_irq
+               j       do_IRQ
index df38a4209d0479fc325a7feb045a56110b043cb7..8641a9990b8316715974baf3c50ab7d6d742225b 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
+#include <linux/irq.h>
 #include <linux/timex.h>
 #include <linux/slab.h>
 #include <linux/random.h>
@@ -111,28 +112,22 @@ asmlinkage void ll_ht_smp_irq_handler(int irq, struct pt_regs *regs)
 
 #ifdef CONFIG_KGDB
 extern void init_second_port(void);
-extern void breakpoint(void);
-extern void set_debug_traps(void);
 #endif
 
 /*
  * Initialize the next level interrupt handler
  */
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        clear_c0_status(ST0_IM);
 
        set_except_vector(0, titan_handle_int);
-       init_generic_irq();
        mips_cpu_irq_init(0);
        rm7k_cpu_irq_init(8);
 
 #ifdef CONFIG_KGDB
        /* At this point, initialize the second serial port */
        init_second_port();
-       printk("Start kgdb ... \n");
-       set_debug_traps();
-       breakpoint();
 #endif
 
 #ifdef CONFIG_GDB_CONSOLE
index 5b4ef33acf223750e3031f8e46086a1a2d60d74b..4c2e8c41cfa378fcb018593c293fe85fa9ba7620 100644 (file)
@@ -4,9 +4,11 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  *
- * Copyright (C) 2003 PMC-Sierra Inc.
+ * Copyright (C) 2003, 2004 PMC-Sierra Inc.
  * Author: Manish Lachwani (lachwani@pmc-sierra.com)
+ * Copyright (C) 2004 Ralf Baechle
  */
+#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <asm/bootinfo.h>
 #include <asm/pmon.h>
 
+#ifdef CONFIG_SMP
+extern void prom_grab_secondary(void);
+#else
+#define prom_grab_secondary() do { } while (0)
+#endif
+
 #include "setup.h"
 
 struct callvectors *debug_vectors;
@@ -116,14 +124,10 @@ void __init prom_init(void)
        }
 #endif /* CONFIG_MIPS32 */
 
-#ifdef CONFIG_MIPS64
-
-       /* Do nothing for the 64-bit for now. Just implement for the 32-bit */
-
-#endif /* CONFIG_MIPS64 */
-
        mips_machgroup = MACH_GROUP_TITAN;
        mips_machtype = MACH_TITAN_YOSEMITE;
+
+       prom_grab_secondary();
 }
 
 void __init prom_free_prom_memory(void)
index 22c336f9a59652ea004d48d37470b12e4c6ead59..abc04358df0931c22c4f5e99ed7713ef5be29113 100644 (file)
@@ -48,8 +48,6 @@ struct yo_uartregs {
 #define iu_iir u3.iir
 #define iu_fcr u3.fcr
 
-extern unsigned long uart_base;
-
 #define IO_BASE_64     0x9000000000000000ULL
 
 static unsigned char readb_outer_space(unsigned long phys)
@@ -110,11 +108,6 @@ static void writeb_outer_space(unsigned long phys, unsigned char c)
        __asm__("sll    $0, $0, 2\n");
 }
 
-static inline struct yo_uartregs *console_uart(void)
-{
-       return (struct yo_uartregs *) (uart_base + 8);
-}
-
 void prom_putchar(char c)
 {
        unsigned long lsr = 0xfd000008UL + offsetof(struct yo_uartregs, iu_lsr);
index dfa9cd0ed557c4a6dc65ec75a575374da951149d..c6a9b03923d14accc4025d7df7149d9b25be4d58 100644 (file)
@@ -2,6 +2,8 @@
  *  Copyright (C) 2003 PMC-Sierra Inc.
  *  Author: Manish Lachwani (lachwani@pmc-sierra.com)
  *
+ * Copyright (C) 2004 by 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
 #include <asm/time.h>
 #include <asm/bootinfo.h>
 #include <asm/page.h>
-#include <asm/bootinfo.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/processor.h>
 #include <asm/ptrace.h>
 #include <asm/reboot.h>
-#include <asm/pci_channel.h>
 #include <asm/serial.h>
 #include <linux/termios.h>
 #include <linux/tty.h>
index 08064f24b12bb16317315cae8d9b9fd415100f2a..c1b659c55da5553dada9e91d3121e24f397fbeba 100644 (file)
-/*
- * Copyright 2003 PMC-Sierra
- * 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 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/linkage.h>
+#include <linux/sched.h>
+
+#include <asm/pmon.h>
+#include <asm/titan_dep.h>
+
+#define LAUNCHSTACK_SIZE 256
+
+static spinlock_t launch_lock __initdata;
+
+static unsigned long secondary_sp __initdata;
+static unsigned long secondary_gp __initdata;
+
+static unsigned char launchstack[LAUNCHSTACK_SIZE] __initdata
+       __attribute__((aligned(2 * sizeof(long))));
 
-#include <linux/init.h>
-#include <linux/delay.h>
-#include <linux/smp.h>
-#include <linux/kernel_stat.h>
+static void __init prom_smp_bootstrap(void)
+{
+       local_irq_disable();
 
-#include <asm/mmu_context.h>
-#include <asm/trace.h>
+       while (spin_is_locked(&launch_lock));
 
-extern void asmlinkage smp_bootstrap(void);
+       __asm__ __volatile__(
+       "       move    $sp, %0         \n"
+       "       move    $gp, %1         \n"
+       "       j       smp_bootstrap   \n"
+       :
+       : "r" (secondary_sp), "r" (secondary_gp));
+}
 
 /*
- * Send inter-processor interrupt
+ * PMON is a fragile beast.  It'll blow up once the mappings it's littering
+ * right into the middle of KSEG3 are blown away so we have to grab the slave
+ * core early and keep it in a waiting loop.
  */
-void core_send_ipi(int cpu, unsigned int action)
+void __init prom_grab_secondary(void)
 {
-        /*
-         * Generate and INTMSG so that it can be sent over to the destination CPU
-         * The INTMSG will put the STATUS bits based on the action desired
-         */
-        switch(action) {
-                case SMP_RESCHEDULE_YOURSELF:
-                        /* Do nothing */
-                        break;
-                case SMP_CALL_FUNCTION:
-                        if (cpu == 1)
-                                *(volatile uint32_t *)(0xbb000a00) = 0x00610002;
-                        else
-                                *(volatile uint32_t *)(0xbb000a00) = 0x00610001;
-                        break;
-
-                default:
-                        panic("core_send_ipi \n");
-        }
+       spin_lock(&launch_lock);
+
+       debug_vectors->cpustart(1, &prom_smp_bootstrap,
+                               launchstack + LAUNCHSTACK_SIZE, 0);
 }
 
 /*
- * Mailbox interrupt to handle IPI
+ * Detect available CPUs, populate phys_cpu_present_map before smp_init
+ *
+ * We don't want to start the secondary CPU yet nor do we have a nice probing
+ * feature in PMON so we just assume presence of the secondary core.
  */
-void jaguar_mailbox_irq(struct pt_regs *regs)
+void prom_prepare_cpus(unsigned int max_cpus)
 {
-        int cpu = smp_processor_id();
+       cpus_clear(phys_cpu_present_map);
+
+       /*
+        * The boot CPU
+        */
+       cpu_set(0, phys_cpu_present_map);
+       __cpu_number_map[0]     = 0;
+       __cpu_logical_map[0]    = 0;
+
+       /*
+        * The secondary core
+        */
+       cpu_set(1, phys_cpu_present_map);
+       __cpu_number_map[1]     = 1;
+       __cpu_logical_map[1]    = 1;
+}
 
-        /* SMP_CALL_FUNCTION */
-        smp_call_function_interrupt();
+/*
+ * Firmware CPU startup hook
+ * Complicated by PMON's weird interface which tries to minimic the UNIX fork.
+ * It launches the next * available CPU and copies some information on the
+ * stack so the first thing we do is throw away that stuff and load useful
+ * values into the registers ...
+ */
+void prom_boot_secondary(int cpu, struct task_struct *idle)
+{
+       unsigned long gp = (unsigned long) idle->thread_info;
+       unsigned long sp = gp + THREAD_SIZE - 32;
+
+       secondary_sp = sp;
+       secondary_gp = gp;
+
+       spin_unlock(&launch_lock);
+}
+
+/* Hook for after all CPUs are online */
+void prom_cpus_done(void)
+{
 }
 
-extern atomic_t cpus_booted;
+/*
+ *  After we've done initial boot, this function is called to allow the
+ *  board code to clean up state, if needed
+ */
+void prom_init_secondary(void)
+{
+       set_c0_status(ST0_CO | ST0_IE | ST0_IM);
+}
 
-void __init start_secondary(void)
+void prom_smp_finish(void)
 {
-        unsigned int cpu = smp_processor_id();
-        extern atomic_t smp_commenced;
-
-        if (current->processor != 1) {
-                printk("Impossible CPU %d \n", cpu);
-                current->processor = 1;
-                current->cpus_runnable = 1 << 1;
-                cpu = current->processor;
-        }
-
-        if (current->mm)
-                current->mm = NULL;
-
-        prom_init_secondary();
-        per_cpu_trap_init();
-
-        /*
-         * XXX parity protection should be folded in here when it's converted
-         * to an option instead of something based on .cputype
-         */
-        pgd_current[cpu] = init_mm.pgd;
-        cpu_data[cpu].udelay_val = loops_per_jiffy;
-        prom_smp_finish();
-        CPUMASK_SETB(cpu_online_map, cpu);
-        atomic_inc(&cpus_booted);
-        __flush_cache_all();
-
-        printk("Slave cpu booted successfully  \n");
-        *(volatile uint32_t *)(0xbb000a68) = 0x00000000;
-        *(volatile uint32_t *)(0xbb000a68) = 0x80000000;
-
-        while (*(volatile uint32_t *)(0xbb000a68) != 0x00000000);
-
-        return cpu_idle();
 }
 
-void __init smp_boot_cpus(void)
+asmlinkage void titan_mailbox_irq(struct pt_regs *regs)
+{
+       int cpu = smp_processor_id();
+       unsigned long status;
+
+       if (cpu == 0) {
+               status = OCD_READ(RM9000x2_OCD_INTP0STATUS3);
+               OCD_WRITE(RM9000x2_OCD_INTP0CLEAR3, status);
+       }
+
+       if (cpu == 1) {
+               status = OCD_READ(RM9000x2_OCD_INTP1STATUS3);
+               OCD_WRITE(RM9000x2_OCD_INTP1CLEAR3, status);
+       }
+
+       if (status & 0x2)
+               smp_call_function_interrupt();
+}
+
+/*
+ * Send inter-processor interrupt
+ */
+void core_send_ipi(int cpu, unsigned int action)
 {
-        int i;
-        int cur_cpu = 0;
-
-        smp_num_cpus = prom_setup_smp();
-        printk("Detected %d available CPUs \n", smp_num_cpus);
-
-        init_new_context(current, &init_mm);
-        current->processor = 0;
-        cpu_data[0].udelay_val = loops_per_jiffy;
-        cpu_data[0].asid_cache = ASID_FIRST_VERSION;
-        CPUMASK_CLRALL(cpu_online_map);
-        CPUMASK_SETB(cpu_online_map, 0);
-        atomic_set(&cpus_booted, 1);  /* Master CPU is already booted... */
-        init_idle();
-
-        __cpu_number_map[0] = 0;
-        __cpu_logical_map[0] = 0;
-
-        /*
-         * This loop attempts to compensate for "holes" in the CPU
-         * numbering.  It's overkill, but general.
-         */
-        for (i = 1; i < smp_num_cpus; ) {
-                struct task_struct *p;
-                struct pt_regs regs;
-                int retval;
-                printk("Starting CPU %d... \n", i);
-
-                /* Spawn a new process normally.  Grab a pointer to
-                   its task struct so we can mess with it */
-                do_fork(CLONE_VM|CLONE_PID, 0, &regs, 0);
-
-                p = init_task.prev_task;
-                if (!p)
-                        panic("failed fork for CPU %d", i);
-
-                /* This is current for the second processor */
-                p->processor = i;
-                p->cpus_runnable = 1 << i; /* we schedule the first task manually */
-                p->thread.reg31 = (unsigned long) start_secondary;
-
-                del_from_runqueue(p);
-                unhash_process(p);
-                init_tasks[i] = p;
-
-                __flush_cache_all();
-
-                do {
-                        /* Iterate until we find a CPU that comes up */
-                        cur_cpu++;
-                        retval = prom_boot_secondary(cur_cpu,
-                                            (unsigned long)p + KERNEL_STACK_SIZE - 32,
-                                            (unsigned long)p);
-
-                } while (!retval && (cur_cpu < NR_CPUS));
-                if (retval) {
-                        __cpu_number_map[cur_cpu] = i;
-                        __cpu_logical_map[i] = cur_cpu;
-                        i++;
-                } else {
-                        panic("CPU discovery disaster");
-                }
-        }
-
-        /* Local semaphore to both the CPUs */
-
-        *(volatile uint32_t *)(0xbb000a68) = 0x80000000;
-        while (*(volatile uint32_t *)(0xbb000a68) != 0x00000000);
-
-        smp_threads_ready = 1;
+       /*
+        * Generate an INTMSG so that it can be sent over to the
+        * destination CPU. The INTMSG will put the STATUS bits
+        * based on the action desired. An alternative strategy
+        * is to write to the Interrupt Set register, read the
+        * Interrupt Status register and clear the Interrupt
+        * Clear register. The latter is preffered.
+        */
+       switch (action) {
+       case SMP_RESCHEDULE_YOURSELF:
+               if (cpu == 1)
+                       OCD_WRITE(RM9000x2_OCD_INTP1SET3, 4);
+               else
+                       OCD_WRITE(RM9000x2_OCD_INTP0SET3, 4);
+               break;
+
+       case SMP_CALL_FUNCTION:
+               if (cpu == 1)
+                       OCD_WRITE(RM9000x2_OCD_INTP1SET3, 2);
+               else
+                       OCD_WRITE(RM9000x2_OCD_INTP0SET3, 2);
+               break;
+       }
 }
diff --git a/arch/mips/ramdisk/Makefile b/arch/mips/ramdisk/Makefile
deleted file mode 100644 (file)
index 66cce75..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Makefile for a ramdisk image
-#
-
-obj-y += ramdisk.o
-
-
-O_FORMAT = $(shell $(OBJDUMP) -i | head -n 2 | grep elf32)
-img := $(subst ",,$(CONFIG_EMBEDDED_RAMDISK_IMAGE))
-# add $(src) when $(img) is relative
-img := $(subst $(src)//,/,$(src)/$(img))
-
-quiet_cmd_ramdisk = LD      $@
-define cmd_ramdisk
-       $(LD) $(LDFLAGS) -T $(src)/ld.script -b binary --oformat $(O_FORMAT) -o $@ $(img)
-endef
-
-$(obj)/ramdisk.o: $(img) $(src)/ld.script
-       $(call cmd,ramdisk)
-
diff --git a/arch/mips/ramdisk/ld.script b/arch/mips/ramdisk/ld.script
deleted file mode 100644 (file)
index 5172daa..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-OUTPUT_ARCH(mips)
-SECTIONS
-{
-  .initrd :
-  {
-       *(.data)
-  }
-}
-
index 943c942d72b959856c55cbfcd115afa9aeb34523..a28dc7800072b24428e88414932b3b85647b8496 100644 (file)
@@ -65,7 +65,7 @@ static void print_buserr(void)
                        cpu_err_stat & SGIMC_CSTAT_BAD_DATA ? "BAD_DATA " : "",
                        cpu_err_addr);
        if (gio_err_stat & GIO_ERRMASK)
-               printk(KERN_ERR "GIO error 0x%x:<%s%s%s%s%s%s%s%s> @ 0x08%x\n",
+               printk(KERN_ERR "GIO error 0x%x:<%s%s%s%s%s%s%s%s> @ 0x%08x\n",
                        gio_err_stat,
                        gio_err_stat & SGIMC_GSTAT_RD ? "RD " : "",
                        gio_err_stat & SGIMC_GSTAT_WR ? "WR " : "",
index acb44a18d5c433d2d105e7a39a447176c7cf0212..ea2844d29e6ecca93dbfe898d3f003edd2d6812b 100644 (file)
@@ -309,7 +309,7 @@ static struct irqaction map1_cascade = {
 
 extern void mips_cpu_irq_init(unsigned int irq_base);
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
 
@@ -371,7 +371,6 @@ void __init init_IRQ(void)
 
        set_except_vector(0, indyIRQ);
 
-       init_generic_irq();
        /* init CPU irqs */
        mips_cpu_irq_init(SGINT_CPU);
 
index fe7f546d328379a0e550e1da37c1214b3895aaab..d77a9d2071094dc64892599e9a604efdce2903e9 100644 (file)
 #include <asm/sgi/hpc3.h>
 #include <asm/sgi/ip22.h>
 
-#ifdef CONFIG_KGDB
-extern void rs_kgdb_hook(int);
-extern void breakpoint(void);
-static int remote_debug = 0;
-#endif
-
 unsigned long sgi_gfxaddr;
 
 /*
@@ -43,7 +37,6 @@ unsigned long sgi_gfxaddr;
  *
  * FIXME: provide a mechanism to change the value of stop_a_enabled.
  */
-int serial_console;
 int stop_a_enabled;
 
 void ip22_do_break(void)
@@ -63,9 +56,6 @@ extern void ip22_time_init(void) __init;
 static int __init ip22_setup(void)
 {
        char *ctype;
-#ifdef CONFIG_KGDB
-       char *kgdb_ttyd;
-#endif
 
        board_be_init = ip22_be_init;
        ip22_time_init();
@@ -84,9 +74,10 @@ static int __init ip22_setup(void)
        indy_sc_init();
 #endif
 
-       /* Set EISA IO port base for Indigo2 */
-       set_io_port_base(KSEG1ADDR(0x00080000));
-
+       /* Set EISA IO port base for Indigo2
+        * ioremap cannot fail */
+       set_io_port_base((unsigned long)ioremap(0x00080000,
+                                               0x1fffffff - 0x00080000));
        /* ARCS console environment variable is set to "g?" for
         * graphics console, it is set to "d" for the first serial
         * line and "d2" for the second serial line.
@@ -106,7 +97,9 @@ static int __init ip22_setup(void)
        }
 
 #ifdef CONFIG_KGDB
-       kgdb_ttyd = prom_getcmdline();
+       {
+       char *kgdb_ttyd = prom_getcmdline();
+
        if ((kgdb_ttyd = strstr(kgdb_ttyd, "kgdb=ttyd")) != NULL) {
                int line;
                kgdb_ttyd += strlen("kgdb=ttyd");
@@ -121,9 +114,10 @@ static int __init ip22_setup(void)
                printk(KERN_INFO "KGDB: Using serial line /dev/ttyd%d for "
                       "session, please connect your debugger\n", line ? 1:2);
 
-               remote_debug = 1;
+               kgdb_enabled = 1;
                /* Breakpoints and stuff are in sgi_irq_setup() */
        }
+       }
 #endif
 
 #ifdef CONFIG_VT
index 79e0d6c36da20c628bb00fbbb67e796fa86bf47b..524b371f9397ae2bff5eb527614666c866f31343 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <linux/bitops.h>
 #include <linux/string.h>
+#include <linux/mmzone.h>
 #include <asm/sn/addrs.h>
 #include <asm/sn/arch.h>
 #include <asm/sn/hub.h>
@@ -44,7 +45,7 @@ unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget,
 
        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))
+               if (test_and_set_bit(i, hub_data(cnode)->h_bigwin_used))
                        continue;
 
                /*
@@ -177,7 +178,7 @@ void hub_pio_init(cnodeid_t cnode)
        unsigned i;
 
        /* initialize big window piomaps for this hub */
-       bitmap_zero(HUB_DATA(cnode)->h_bigwin_used, HUB_NUM_BIG_WINDOW);
+       bitmap_zero(hub_data(cnode)->h_bigwin_used, HUB_NUM_BIG_WINDOW);
        for (i = 0; i < HUB_NUM_BIG_WINDOW; i++)
                IIO_ITTE_DISABLE(nasid, i);
 
index b8ee02cd02331cd1a767f806b165964a1aca1dbf..f624f9da5262a5009f2159c69ef62e0408d044d3 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/sched.h>
 #include <linux/mmzone.h>      /* for numnodes */
 #include <linux/mm.h>
+#include <linux/module.h>
 #include <linux/cpumask.h>
 #include <asm/cpu.h>
 #include <asm/io.h>
 #define CPU_NONE               (cpuid_t)-1
 
 static DECLARE_BITMAP(hub_init_mask, MAX_COMPACT_NODES);
-static hubreg_t region_mask;
-static int     fine_mode;
-static int router_distance;
 nasid_t master_nasid = INVALID_NASID;
 
 cnodeid_t      nasid_to_compact_node[MAX_NASIDS];
 nasid_t                compact_to_nasid_node[MAX_COMPACT_NODES];
 cnodeid_t      cpuid_to_compact_node[MAXCPUS];
-char           node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES];
 
-static hubreg_t get_region(cnodeid_t cnode)
-{
-       if (fine_mode)
-               return COMPACT_TO_NASID_NODEID(cnode) >> NASID_TO_FINEREG_SHFT;
-       else
-               return COMPACT_TO_NASID_NODEID(cnode) >> NASID_TO_COARSEREG_SHFT;
-}
-
-static void gen_region_mask(hubreg_t *region_mask, int maxnodes)
-{
-       cnodeid_t cnode;
-
-       (*region_mask) = 0;
-       for (cnode = 0; cnode < maxnodes; cnode++) {
-               (*region_mask) |= 1ULL << get_region(cnode);
-       }
-}
-
-static int is_fine_dirmode(void)
-{
-       return (((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_REGIONSIZE_MASK)
-               >> NSRI_REGIONSIZE_SHFT) & REGIONSIZE_FINE);
-}
+EXPORT_SYMBOL(nasid_to_compact_node);
 
 extern void pcibr_setup(cnodeid_t);
 
-static __init void per_slice_init(cnodeid_t cnode, int slice)
-{
-       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)
+static void __init per_hub_init(cnodeid_t cnode)
 {
-       struct hub_data *hub = HUB_DATA(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;
 
@@ -142,13 +78,13 @@ void __init per_hub_init(cnodeid_t cnode)
         * copy over the caliased exception handlers.
         */
        if (get_compact_nodeid() == cnode) {
-               extern char except_vec0, except_vec1_r10k;
+               extern char except_vec0, except_vec1_r4k;
                extern char except_vec2_generic, except_vec3_generic;
 
                memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
                memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
                memcpy((void *)KSEG0, &except_vec0, 0x80);
-               memcpy((void *)KSEG0 + 0x080, &except_vec1_r10k, 0x80);
+               memcpy((void *)KSEG0 + 0x080, &except_vec1_r4k, 0x80);
                memcpy((void *)(KSEG0 + 0x100), (void *) KSEG0, 0x80);
                memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x100);
                __flush_cache_all();
@@ -156,260 +92,76 @@ void __init per_hub_init(cnodeid_t cnode)
 #endif
 }
 
-/*
- * 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);
-}
-
-/*
- * 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
-
-static void router_recurse(klrou_t *router_a, klrou_t *router_b, int depth)
+void __init per_cpu_init(void)
 {
-       klrou_t *router;
-       lboard_t *brd;
-       int     port;
-
-       if (router_a->rou_rflag == 1)
-               return;
+       int cpu = smp_processor_id();
+       int slice = LOCAL_HUB_L(PI_CPU_NUM);
+       cnodeid_t cnode = get_compact_nodeid();
+       struct hub_data *hub = hub_data(cnode);
+       struct slice_data *si = hub->slice + slice;
+       int i;
 
-       if (depth >= router_distance)
+       if (test_and_set_bit(slice, &hub->slice_map))
                return;
 
-       router_a->rou_rflag = 1;
-
-       for (port = 1; port <= MAX_ROUTER_PORTS; port++) {
-               if (router_a->rou_port[port].port_nasid == INVALID_NASID)
-                       continue;
-
-               brd = (lboard_t *)NODE_OFFSET_TO_K0(
-                       router_a->rou_port[port].port_nasid,
-                       router_a->rou_port[port].port_offset);
-
-               if (brd->brd_type == KLTYPE_ROUTER) {
-                       router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]);
-                       if (router == router_b) {
-                               if (depth < router_distance)
-                                       router_distance = depth;
-                       }
-                       else
-                               router_recurse(router, router_b, depth + 1);
-               }
-       }
-
-       router_a->rou_rflag = 0;
-}
-
-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;
-       cnodeid_t cnode;
-       nasid_t nasid;
-       int port;
-
-       /* Figure out which routers nodes in question are connected to */
-       for (cnode = 0; cnode < numnodes; cnode++) {
-               nasid = COMPACT_TO_NASID_NODEID(cnode);
-
-               if (nasid == -1) continue;
-
-               brd = find_lboard_class((lboard_t *)KL_CONFIG_INFO(nasid),
-                                       KLTYPE_ROUTER);
-
-               if (!brd)
-                       continue;
-
-               do {
-                       if (brd->brd_flags & DUPLICATE_BOARD)
-                               continue;
-
-                       router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]);
-                       router->rou_rflag = 0;
+       clear_c0_status(ST0_IM);
 
-                       for (port = 1; port <= MAX_ROUTER_PORTS; port++) {
-                               if (router->rou_port[port].port_nasid == INVALID_NASID)
-                                       continue;
+       for (i = 0; i < LEVELS_PER_SLICE; i++)
+               si->level_to_irq[i] = -1;
 
-                               dest_brd = (lboard_t *)NODE_OFFSET_TO_K0(
-                                       router->rou_port[port].port_nasid,
-                                       router->rou_port[port].port_offset);
+       /*
+        * 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);
+       }
 
-                               if (dest_brd->brd_type == KLTYPE_IP27) {
-                                       if (dest_brd->brd_nasid == nasid_a)
-                                               router_a = router;
-                                       if (dest_brd->brd_nasid == nasid_b)
-                                               router_b = router;
-                               }
-                       }
+       __set_bit(IP_PEND0_6_63, si->irq_alloc_mask);
+       LOCAL_HUB_S(PI_INT_PEND_MOD, IP_PEND0_6_63);
 
-               } while ((brd = find_lboard_class(KLCF_NEXT(brd), KLTYPE_ROUTER)));
+       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);
        }
 
-       if (router_a == NULL) {
-               printk("node_distance: router_a NULL\n");
-               return -1;
-       }
-       if (router_b == NULL) {
-               printk("node_distance: router_b NULL\n");
-               return -1;
-       }
+       LOCAL_HUB_L(PI_INT_PEND0);
 
-       if (nasid_a == nasid_b)
-               return 0;
+       /*
+        * We use this so we can find the local hub's data as fast as only
+        * possible.
+        */
+       cpu_data[cpu].data = si;
 
-       if (router_a == router_b)
-               return 1;
+       cpu_time_init();
+       install_ipi();
 
-       router_distance = 100;
-       router_recurse(router_a, router_b, 2);
+       /* Install our NMI handler if symmon hasn't installed one. */
+       install_cpu_nmi_handler(cputoslice(cpu));
 
-       return router_distance;
-}
+       set_c0_status(SRB_DEV0 | SRB_DEV1);
 
-static void init_topology_matrix(void)
-{
-       nasid_t nasid, nasid2;
-       cnodeid_t row, col;
-
-       for (row = 0; row < MAX_COMPACT_NODES; row++)
-               for (col = 0; col < MAX_COMPACT_NODES; col++)
-                       node_distances[row][col] = -1;
-
-       for (row = 0; row < numnodes; row++) {
-               nasid = COMPACT_TO_NASID_NODEID(row);
-               for (col = 0; col < numnodes; col++) {
-                       nasid2 = COMPACT_TO_NASID_NODEID(col);
-                       node_distances[row][col] = node_distance(nasid, nasid2);
-               }
-       }
+       per_hub_init(cnode);
 }
 
-static void dump_topology(void)
+/*
+ * get_nasid() returns the physical node id number of the caller.
+ */
+nasid_t
+get_nasid(void)
 {
-       nasid_t nasid;
-       cnodeid_t cnode;
-       lboard_t *brd, *dest_brd;
-       int port;
-       int router_num = 0;
-       klrou_t *router;
-       cnodeid_t row, col;
-
-       printk("************** Topology ********************\n");
-
-       printk("    ");
-       for (col = 0; col < numnodes; col++)
-               printk("%02d ", col);
-       printk("\n");
-       for (row = 0; row < numnodes; row++) {
-               printk("%02d  ", row);
-               for (col = 0; col < numnodes; col++)
-                       printk("%2d ", node_distances[row][col]);
-               printk("\n");
-       }
-
-       for (cnode = 0; cnode < numnodes; cnode++) {
-               nasid = COMPACT_TO_NASID_NODEID(cnode);
-
-               if (nasid == -1) continue;
-
-               brd = find_lboard_class((lboard_t *)KL_CONFIG_INFO(nasid),
-                                       KLTYPE_ROUTER);
-
-               if (!brd)
-                       continue;
-
-               do {
-                       if (brd->brd_flags & DUPLICATE_BOARD)
-                               continue;
-                       printk("Router %d:", router_num);
-                       router_num++;
-
-                       router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]);
-
-                       for (port = 1; port <= MAX_ROUTER_PORTS; port++) {
-                               if (router->rou_port[port].port_nasid == INVALID_NASID)
-                                       continue;
-
-                               dest_brd = (lboard_t *)NODE_OFFSET_TO_K0(
-                                       router->rou_port[port].port_nasid,
-                                       router->rou_port[port].port_offset);
-
-                               if (dest_brd->brd_type == KLTYPE_IP27)
-                                       printk(" %d", dest_brd->brd_nasid);
-                               if (dest_brd->brd_type == KLTYPE_ROUTER)
-                                       printk(" r");
-                       }
-                       printk("\n");
-
-               } while ( (brd = find_lboard_class(KLCF_NEXT(brd), KLTYPE_ROUTER)) );
-       }
+       return (nasid_t)((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_NODEID_MASK)
+                        >> NSRI_NODEID_SHFT);
 }
 
-void mlreset(void)
+/*
+ * Map the physical node id to a virtual node id (virtual node ids are contiguous).
+ */
+cnodeid_t get_compact_nodeid(void)
 {
-       int i;
-
-       master_nasid = get_nasid();
-       fine_mode = is_fine_dirmode();
-
-       /*
-        * Probe for all CPUs - this creates the cpumask and sets up the
-        * mapping tables.  We need to do this as early as possible.
-        */
-#ifdef CONFIG_SMP
-       cpu_node_probe();
-#endif
-
-       init_topology_matrix();
-       dump_topology();
-
-       gen_region_mask(&region_mask, numnodes);
-
-       setup_replication_mask(numnodes);
-
-       /*
-        * Set all nodes' calias sizes to 8k
-        */
-       for (i = 0; i < numnodes; i++) {
-               nasid_t nasid;
-
-               nasid = COMPACT_TO_NASID_NODEID(i);
-
-               /*
-                * Always have node 0 in the region mask, otherwise
-                * CALIAS accesses get exceptions since the hub
-                * thinks it is a node 0 address.
-                */
-               REMOTE_HUB_S(nasid, PI_REGION_PRESENT, (region_mask | 1));
-#ifdef CONFIG_REPLICATE_EXHANDLERS
-               REMOTE_HUB_S(nasid, PI_CALIAS_SIZE, PI_CALIAS_SIZE_8K);
-#else
-               REMOTE_HUB_S(nasid, PI_CALIAS_SIZE, PI_CALIAS_SIZE_0);
-#endif
-
-#ifdef LATER
-               /*
-                * Set up all hubs to have a big window pointing at
-                * widget 0. Memory mode, widget 0, offset 0
-                */
-               REMOTE_HUB_S(nasid, IIO_ITTE(SWIN0_BIGWIN),
-                       ((HUB_PIO_MAP_TO_MEM << IIO_ITTE_IOSP_SHIFT) |
-                       (0 << IIO_ITTE_WIDGET_SHIFT)));
-#endif
-       }
+       return NASID_TO_COMPACT_NODEID(get_nasid());
 }
 
 /* Extracted from the IOC3 meta driver.  FIXME.  */
@@ -444,20 +196,6 @@ static inline void ioc3_eth_init(void)
        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);
index 6678b903c0742a02170b3c93d3d20c63d2be0548..61817a18aed2a7666b45d870687e6ef89300561b 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
+#include <linux/irq.h>
 #include <linux/timex.h>
 #include <linux/slab.h>
 #include <linux/random.h>
@@ -151,9 +152,6 @@ void ip27_do_irq_mask0(struct pt_regs *regs)
        if (!pend0)
                return;
 
-       /* Prevent any of the picked intrs from recursing */
-       LOCAL_HUB_S(pi_int_mask0, mask0 & ~pend0);
-
        swlevel = ms1bit(pend0);
 #ifdef CONFIG_SMP
        if (pend0 & (1UL << CPU_RESCHED_A_IRQ)) {
@@ -176,11 +174,6 @@ void ip27_do_irq_mask0(struct pt_regs *regs)
                do_IRQ(irq, regs);
        }
 
-       /* clear bit in pend0 */
-       pend0 ^= 1UL << swlevel;
-
-       /* Now allow the set of serviced intrs again */
-       LOCAL_HUB_S(pi_int_mask0, mask0);
        LOCAL_HUB_L(PI_INT_PEND0);
 }
 
@@ -200,19 +193,12 @@ void ip27_do_irq_mask1(struct pt_regs *regs)
        if (!pend1)
                return;
 
-       /* Prevent any of the picked intrs from recursing */
-       LOCAL_HUB_S(pi_int_mask1, mask1 & ~pend1);
-
        swlevel = ms1bit(pend1);
        /* "map" swlevel to irq */
        irq = si->level_to_irq[swlevel];
        LOCAL_HUB_CLR_INTR(swlevel);
        do_IRQ(irq, regs);
-       /* clear bit in pend1 */
-       pend1 ^= 1UL << swlevel;
 
-       /* Now allow the set of serviced intrs again */
-       LOCAL_HUB_S(pi_int_mask1, mask1);
        LOCAL_HUB_L(PI_INT_PEND1);
 }
 
@@ -233,9 +219,6 @@ static int intr_connect_level(int cpu, int bit)
 
        __set_bit(bit, si->irq_enable_mask);
 
-       /* Make sure it's not already pending when we connect it. */
-       REMOTE_HUB_CLR_INTR(nasid, bit);
-
        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]);
@@ -272,6 +255,7 @@ static unsigned int startup_bridge_irq(unsigned int irq)
        bridgereg_t device;
        bridge_t *bridge;
        int pin, swlevel;
+       cpuid_t cpu;
 
        pin = SLOT_FROM_PCI_IRQ(irq);
        bc = IRQ_TO_BRIDGE(irq);
@@ -282,13 +266,10 @@ static unsigned int startup_bridge_irq(unsigned int irq)
         * "map" irq to a swlevel greater than 6 since the first 6 bits
         * of INT_PEND0 are taken
         */
-       swlevel = alloc_level(bc->irq_cpu, irq);
-       intr_connect_level(bc->irq_cpu, swlevel);
-
+       swlevel = find_level(&cpu, irq);
        bridge->b_int_addr[pin].addr = (0x20000 | swlevel | (bc->nasid << 8));
        bridge->b_int_enable |= (1 << pin);
-       /* more stuff in int_enable reg */
-       bridge->b_int_enable |= 0x7ffffe00;
+       bridge->b_int_enable |= 0x7ffffe00;     /* more stuff in int_enable */
 
        /*
         * Enable sending of an interrupt clear packt to the hub on a high to
@@ -308,7 +289,7 @@ static unsigned int startup_bridge_irq(unsigned int irq)
        device |= (pin << (pin*3));
        bridge->b_int_device = device;
 
-        bridge->b_widget.w_tflush;                      /* Flush */
+        bridge->b_wid_tflush;
 
         return 0;       /* Never anything pending.  */
 }
@@ -336,26 +317,37 @@ static void shutdown_bridge_irq(unsigned int irq)
        si->level_to_irq[swlevel] = -1;
 
        bridge->b_int_enable &= ~(1 << pin);
-       bridge->b_widget.w_tflush;                      /* Flush */
+       bridge->b_wid_tflush;
 }
 
 static inline void enable_bridge_irq(unsigned int irq)
 {
-       /* All the braindamage happens magically for us in ip27_do_irq */
+       cpuid_t cpu;
+       int swlevel;
+
+       swlevel = find_level(&cpu, irq);        /* Criminal offence */
+       intr_connect_level(cpu, swlevel);
 }
 
-static void disable_bridge_irq(unsigned int irq)
+static inline void disable_bridge_irq(unsigned int irq)
 {
-       /* All the braindamage happens magically for us in ip27_do_irq */
+       cpuid_t cpu;
+       int swlevel;
+
+       swlevel = find_level(&cpu, irq);        /* Criminal offence */
+       intr_disconnect_level(cpu, swlevel);
 }
 
 static void mask_and_ack_bridge_irq(unsigned int irq)
 {
-       /* All the braindamage happens magically for us in ip27_do_irq */
+       disable_bridge_irq(irq);
 }
 
 static void end_bridge_irq(unsigned int irq)
 {
+       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)) &&
+           irq_desc[irq].action)
+               enable_bridge_irq(irq);
 }
 
 static struct hw_interrupt_type bridge_irq_type = {
@@ -370,15 +362,15 @@ static struct hw_interrupt_type bridge_irq_type = {
 
 static unsigned long irq_map[NR_IRQS / BITS_PER_LONG];
 
-unsigned int allocate_irqno(void)
+static int allocate_irqno(void)
 {
        int irq;
 
 again:
-       irq = find_first_zero_bit(irq_map, LEVELS_PER_SLICE);
+       irq = find_first_zero_bit(irq_map, NR_IRQS);
 
        if (irq >= NR_IRQS)
-               return -1;
+               return -ENOSPC;
 
        if (test_and_set_bit(irq, irq_map))
                goto again;
@@ -391,21 +383,49 @@ void free_irqno(unsigned int irq)
        clear_bit(irq, irq_map);
 }
 
-void __init init_IRQ(void)
+void __devinit register_bridge_irq(unsigned int irq)
 {
-       int i;
+       irq_desc[irq].status    = IRQ_DISABLED;
+       irq_desc[irq].action    = 0;
+       irq_desc[irq].depth     = 1;
+       irq_desc[irq].handler   = &bridge_irq_type;
+}
 
-       set_except_vector(0, ip27_irq);
+int __devinit request_bridge_irq(struct bridge_controller *bc)
+{
+       int irq = allocate_irqno();
+       int swlevel, cpu;
+       nasid_t nasid;
+
+       if (irq < 0)
+               return irq;
 
        /*
-        * Right now the bridge irq is our kitchen sink interrupt type
+        * "map" irq to a swlevel greater than 6 since the first 6 bits
+        * of INT_PEND0 are taken
         */
-       for (i = 0; i <= NR_IRQS; i++) {
-               irq_desc[i].status      = IRQ_DISABLED;
-               irq_desc[i].action      = 0;
-               irq_desc[i].depth       = 1;
-               irq_desc[i].handler     = &bridge_irq_type;
+       cpu = bc->irq_cpu;
+       swlevel = alloc_level(cpu, irq);
+       if (unlikely(swlevel < 0)) {
+               free_irqno(irq);
+
+               return -EAGAIN;
        }
+
+       /* Make sure it's not already pending when we connect it. */
+       nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
+       REMOTE_HUB_CLR_INTR(nasid, swlevel);
+
+       intr_connect_level(cpu, swlevel);
+
+       register_bridge_irq(irq);
+
+       return irq;
+}
+
+void __init arch_init_irq(void)
+{
+       set_except_vector(0, ip27_irq);
 }
 
 void install_ipi(void)
index b5e86ad9867edbd59bbe8b58fcfccd4d60cab1ae..fb47c75c45f295f3e3e244d861036d301def06ec 100644 (file)
@@ -61,12 +61,12 @@ void __init setup_replication_mask(int maxnodes)
 
 static __init void set_ktext_source(nasid_t client_nasid, nasid_t server_nasid)
 {
-       kern_vars_t *kvp;
        cnodeid_t client_cnode;
+       kern_vars_t *kvp;
 
        client_cnode = NASID_TO_COMPACT_NODEID(client_nasid);
 
-       kvp = &(HUB_DATA(client_nasid)->kern_vars);
+       kvp = &hub_data(client_nasid)->kern_vars;
 
        KERN_VARS_ADDR(client_nasid) = (unsigned long)kvp;
 
index e3cdb958265f0e08875567c62513ac4967710b8f..327eadb4f3da09cad3eac9fb681532bd74a982fa 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/mmzone.h>
+#include <linux/module.h>
 #include <linux/swap.h>
 #include <linux/bootmem.h>
 #include <asm/page.h>
@@ -36,8 +37,226 @@ 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 pglist_data *node_data[MAX_COMPACT_NODES];
-struct hub_data *hub_data[MAX_COMPACT_NODES];
+struct node_data *__node_data[MAX_COMPACT_NODES];
+
+EXPORT_SYMBOL(__node_data);
+
+static int fine_mode;
+
+static int is_fine_dirmode(void)
+{
+       return (((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_REGIONSIZE_MASK)
+               >> NSRI_REGIONSIZE_SHFT) & REGIONSIZE_FINE);
+}
+
+static hubreg_t get_region(cnodeid_t cnode)
+{
+       if (fine_mode)
+               return COMPACT_TO_NASID_NODEID(cnode) >> NASID_TO_FINEREG_SHFT;
+       else
+               return COMPACT_TO_NASID_NODEID(cnode) >> NASID_TO_COARSEREG_SHFT;
+}
+
+static hubreg_t region_mask;
+
+static void gen_region_mask(hubreg_t *region_mask, int maxnodes)
+{
+       cnodeid_t cnode;
+
+       (*region_mask) = 0;
+       for (cnode = 0; cnode < maxnodes; cnode++) {
+               (*region_mask) |= 1ULL << get_region(cnode);
+       }
+}
+
+#define        rou_rflag       rou_flags
+
+static int router_distance;
+
+static void router_recurse(klrou_t *router_a, klrou_t *router_b, int depth)
+{
+       klrou_t *router;
+       lboard_t *brd;
+       int     port;
+
+       if (router_a->rou_rflag == 1)
+               return;
+
+       if (depth >= router_distance)
+               return;
+
+       router_a->rou_rflag = 1;
+
+       for (port = 1; port <= MAX_ROUTER_PORTS; port++) {
+               if (router_a->rou_port[port].port_nasid == INVALID_NASID)
+                       continue;
+
+               brd = (lboard_t *)NODE_OFFSET_TO_K0(
+                       router_a->rou_port[port].port_nasid,
+                       router_a->rou_port[port].port_offset);
+
+               if (brd->brd_type == KLTYPE_ROUTER) {
+                       router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]);
+                       if (router == router_b) {
+                               if (depth < router_distance)
+                                       router_distance = depth;
+                       }
+                       else
+                               router_recurse(router, router_b, depth + 1);
+               }
+       }
+
+       router_a->rou_rflag = 0;
+}
+
+unsigned char __node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES];
+
+static int __init compute_node_distance(nasid_t nasid_a, nasid_t nasid_b)
+{
+       klrou_t *router, *router_a = NULL, *router_b = NULL;
+       lboard_t *brd, *dest_brd;
+       cnodeid_t cnode;
+       nasid_t nasid;
+       int port;
+
+       /* Figure out which routers nodes in question are connected to */
+       for (cnode = 0; cnode < numnodes; cnode++) {
+               nasid = COMPACT_TO_NASID_NODEID(cnode);
+
+               if (nasid == -1) continue;
+
+               brd = find_lboard_class((lboard_t *)KL_CONFIG_INFO(nasid),
+                                       KLTYPE_ROUTER);
+
+               if (!brd)
+                       continue;
+
+               do {
+                       if (brd->brd_flags & DUPLICATE_BOARD)
+                               continue;
+
+                       router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]);
+                       router->rou_rflag = 0;
+
+                       for (port = 1; port <= MAX_ROUTER_PORTS; port++) {
+                               if (router->rou_port[port].port_nasid == INVALID_NASID)
+                                       continue;
+
+                               dest_brd = (lboard_t *)NODE_OFFSET_TO_K0(
+                                       router->rou_port[port].port_nasid,
+                                       router->rou_port[port].port_offset);
+
+                               if (dest_brd->brd_type == KLTYPE_IP27) {
+                                       if (dest_brd->brd_nasid == nasid_a)
+                                               router_a = router;
+                                       if (dest_brd->brd_nasid == nasid_b)
+                                               router_b = router;
+                               }
+                       }
+
+               } while ((brd = find_lboard_class(KLCF_NEXT(brd), KLTYPE_ROUTER)));
+       }
+
+       if (router_a == NULL) {
+               printk("node_distance: router_a NULL\n");
+               return -1;
+       }
+       if (router_b == NULL) {
+               printk("node_distance: router_b NULL\n");
+               return -1;
+       }
+
+       if (nasid_a == nasid_b)
+               return 0;
+
+       if (router_a == router_b)
+               return 1;
+
+       router_distance = 100;
+       router_recurse(router_a, router_b, 2);
+
+       return router_distance;
+}
+
+static void __init init_topology_matrix(void)
+{
+       nasid_t nasid, nasid2;
+       cnodeid_t row, col;
+
+       for (row = 0; row < MAX_COMPACT_NODES; row++)
+               for (col = 0; col < MAX_COMPACT_NODES; col++)
+                       __node_distances[row][col] = -1;
+
+       for (row = 0; row < numnodes; row++) {
+               nasid = COMPACT_TO_NASID_NODEID(row);
+               for (col = 0; col < numnodes; col++) {
+                       nasid2 = COMPACT_TO_NASID_NODEID(col);
+                       __node_distances[row][col] =
+                               compute_node_distance(nasid, nasid2);
+               }
+       }
+}
+
+static void __init dump_topology(void)
+{
+       nasid_t nasid;
+       cnodeid_t cnode;
+       lboard_t *brd, *dest_brd;
+       int port;
+       int router_num = 0;
+       klrou_t *router;
+       cnodeid_t row, col;
+
+       printk("************** Topology ********************\n");
+
+       printk("    ");
+       for (col = 0; col < numnodes; col++)
+               printk("%02d ", col);
+       printk("\n");
+       for (row = 0; row < numnodes; row++) {
+               printk("%02d  ", row);
+               for (col = 0; col < numnodes; col++)
+                       printk("%2d ", node_distance(row, col));
+               printk("\n");
+       }
+
+       for (cnode = 0; cnode < numnodes; cnode++) {
+               nasid = COMPACT_TO_NASID_NODEID(cnode);
+
+               if (nasid == -1) continue;
+
+               brd = find_lboard_class((lboard_t *)KL_CONFIG_INFO(nasid),
+                                       KLTYPE_ROUTER);
+
+               if (!brd)
+                       continue;
+
+               do {
+                       if (brd->brd_flags & DUPLICATE_BOARD)
+                               continue;
+                       printk("Router %d:", router_num);
+                       router_num++;
+
+                       router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]);
+
+                       for (port = 1; port <= MAX_ROUTER_PORTS; port++) {
+                               if (router->rou_port[port].port_nasid == INVALID_NASID)
+                                       continue;
+
+                               dest_brd = (lboard_t *)NODE_OFFSET_TO_K0(
+                                       router->rou_port[port].port_nasid,
+                                       router->rou_port[port].port_offset);
+
+                               if (dest_brd->brd_type == KLTYPE_IP27)
+                                       printk(" %d", dest_brd->brd_nasid);
+                               if (dest_brd->brd_type == KLTYPE_ROUTER)
+                                       printk(" r");
+                       }
+                       printk("\n");
+
+               } while ( (brd = find_lboard_class(KLCF_NEXT(brd), KLTYPE_ROUTER)) );
+       }
+}
 
 static pfn_t __init slot_getbasepfn(cnodeid_t cnode, int slot)
 {
@@ -126,6 +345,60 @@ static pfn_t __init slot_psize_compute(cnodeid_t node, int slot)
        }
 }
 
+static void __init mlreset(void)
+{
+       int i;
+
+       master_nasid = get_nasid();
+       fine_mode = is_fine_dirmode();
+
+       /*
+        * Probe for all CPUs - this creates the cpumask and sets up the
+        * mapping tables.  We need to do this as early as possible.
+        */
+#ifdef CONFIG_SMP
+       cpu_node_probe();
+#endif
+
+       init_topology_matrix();
+       dump_topology();
+
+       gen_region_mask(&region_mask, numnodes);
+
+       setup_replication_mask(numnodes);
+
+       /*
+        * Set all nodes' calias sizes to 8k
+        */
+       for (i = 0; i < numnodes; i++) {
+               nasid_t nasid;
+
+               nasid = COMPACT_TO_NASID_NODEID(i);
+
+               /*
+                * Always have node 0 in the region mask, otherwise
+                * CALIAS accesses get exceptions since the hub
+                * thinks it is a node 0 address.
+                */
+               REMOTE_HUB_S(nasid, PI_REGION_PRESENT, (region_mask | 1));
+#ifdef CONFIG_REPLICATE_EXHANDLERS
+               REMOTE_HUB_S(nasid, PI_CALIAS_SIZE, PI_CALIAS_SIZE_8K);
+#else
+               REMOTE_HUB_S(nasid, PI_CALIAS_SIZE, PI_CALIAS_SIZE_0);
+#endif
+
+#ifdef LATER
+               /*
+                * Set up all hubs to have a big window pointing at
+                * widget 0. Memory mode, widget 0, offset 0
+                */
+               REMOTE_HUB_S(nasid, IIO_ITTE(SWIN0_BIGWIN),
+                       ((HUB_PIO_MAP_TO_MEM << IIO_ITTE_IOSP_SHIFT) |
+                       (0 << IIO_ITTE_WIDGET_SHIFT)));
+#endif
+       }
+}
+
 static void __init szmem(void)
 {
        pfn_t slot_psize, slot0sz = 0, nodebytes;       /* Hack to detect problem configs */
@@ -164,6 +437,45 @@ static void __init szmem(void)
        }
 }
 
+static void __init node_mem_init(cnodeid_t node)
+{
+       pfn_t slot_firstpfn = slot_getbasepfn(node, 0);
+       pfn_t slot_lastpfn = slot_firstpfn + slot_getsize(node, 0);
+       pfn_t slot_freepfn = node_getfirstfree(node);
+       struct pglist_data *pd;
+       unsigned long bootmap_size;
+
+       /*
+        * Allocate the node data structures on the node first.
+        */
+       __node_data[node] = __va(slot_freepfn << PAGE_SHIFT);
+
+       pd = NODE_DATA(node);
+       pd->bdata = &plat_node_bdata[node];
+
+       cpus_clear(hub_data(node)->h_cpus);
+
+       slot_freepfn += PFN_UP(sizeof(struct pglist_data) +
+                              sizeof(struct hub_data));
+
+       bootmap_size = init_bootmem_node(NODE_DATA(node), slot_freepfn,
+                                       slot_firstpfn, slot_lastpfn);
+       free_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
+                       (slot_lastpfn - slot_firstpfn) << PAGE_SHIFT);
+       reserve_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
+               ((slot_freepfn - slot_firstpfn) << PAGE_SHIFT) + bootmap_size);
+}
+
+/*
+ * A node with nothing.  We use it to avoid any special casing in
+ * node_to_cpumask
+ */
+static struct node_data null_node = {
+       .hub = {
+               .h_cpus = CPU_MASK_NONE
+       }
+};
+
 /*
  * Currently, the intranode memory hole support assumes that each slot
  * contains at least 32 MBytes of memory. We assume all bootmem data
@@ -176,31 +488,12 @@ void __init prom_meminit(void)
        mlreset();
        szmem();
 
-       for (node = 0; node < numnodes; node++) {
-               pfn_t slot_firstpfn = slot_getbasepfn(node, 0);
-               pfn_t slot_lastpfn = slot_firstpfn + slot_getsize(node, 0);
-               pfn_t slot_freepfn = node_getfirstfree(node);
-               unsigned long bootmap_size;
-
-               /*
-                * Allocate the node data structures on the node first.
-                */
-               node_data[node] = __va(slot_freepfn << PAGE_SHIFT);
-               node_data[node]->bdata = &plat_node_bdata[node];
-
-               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));
-       
-               bootmap_size = init_bootmem_node(NODE_DATA(node), slot_freepfn,
-                                               slot_firstpfn, slot_lastpfn);
-               free_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
-                               (slot_lastpfn - slot_firstpfn) << PAGE_SHIFT);
-               reserve_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
-                 ((slot_freepfn - slot_firstpfn) << PAGE_SHIFT) + bootmap_size);
+       for (node = 0; node < MAX_COMPACT_NODES; node++) {
+               if (node < numnodes) {
+                       node_mem_init(node);
+                       continue;
+               }
+               __node_data[node] = &null_node;
        }
 }
 
index 1e5ce4ca2b1bf82f67f674d15cc42f26bbe7354b..1103e2910289b206e685dee727b86fe8dd03a66e 100644 (file)
@@ -122,10 +122,6 @@ void cpu_node_probe(void)
        printk("Discovered %d cpus on %d nodes\n", highest + 1, numnodes);
 }
 
-void __init prom_build_cpu_map(void)
-{
-}
-
 static void intr_clear_bits(nasid_t nasid, volatile hubreg_t *pend,
        int base_level)
 {
@@ -158,9 +154,6 @@ void __init prom_prepare_cpus(unsigned int max_cpus)
        for (cnode = 0; cnode < numnodes; cnode++)
                intr_clear_all(COMPACT_TO_NASID_NODEID(cnode));
 
-       /* Master has already done per_cpu_init() */
-       install_ipi();
-
        replicate_kernel_text(numnodes);
 
        /*
index a8c7a776a271ebcccb217c6e5852cce33414c890..7f771bf68976b24afe3f81d6ec6e2c23f40e90d6 100644 (file)
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
 #include <asm/bootinfo.h>
+#include <asm/io.h>
 #include <asm/mipsregs.h>
 #include <asm/ptrace.h>
 #include <asm/page.h>
 #include <asm/ip32/crime.h>
 #include <asm/ip32/mace.h>
 
-void *sgi_crime;
+struct sgi_crime *crime;
 struct sgi_mace *mace;
 
 void __init crime_init(void)
@@ -24,13 +25,12 @@ void __init crime_init(void)
        unsigned int id, rev;
        const int field = 2 * sizeof(unsigned long);
        
-       sgi_crime = ioremap(CRIME_BASE, 1);
+       crime = ioremap(CRIME_BASE, sizeof(struct sgi_crime));
        mace = ioremap(MACE_BASE, sizeof(struct sgi_mace));
 
-       id = crime_read(CRIME_ID);
+       id = crime->id;
        rev = id & CRIME_ID_REV;
        id = (id & CRIME_ID_IDBITS) >> 4;
-
        printk (KERN_INFO "CRIME id %1x rev %d at 0x%0*lx\n",
                id, rev, field, (unsigned long) CRIME_BASE);
 }
@@ -41,19 +41,18 @@ crime_memerr_intr (unsigned int irq, void *dev_id, struct pt_regs *regs)
        unsigned long stat, addr;
        int fatal = 0;
 
-       stat = crime_read(CRIME_MEM_ERROR_STAT) & CRIME_MEM_ERROR_STAT_MASK;
-       addr = crime_read(CRIME_MEM_ERROR_ADDR) & CRIME_MEM_ERROR_ADDR_MASK;
+       stat = crime->mem_error_stat & CRIME_MEM_ERROR_STAT_MASK;
+       addr = crime->mem_error_addr & CRIME_MEM_ERROR_ADDR_MASK;
 
        printk("CRIME memory error at 0x%08lx ST 0x%08lx<", addr, stat);
 
        if (stat & CRIME_MEM_ERROR_INV)
                printk("INV,");
        if (stat & CRIME_MEM_ERROR_ECC) {
-               unsigned long ecc_syn = crime_read(CRIME_MEM_ERROR_ECC_SYN) &
-                                       CRIME_MEM_ERROR_ECC_SYN_MASK;
-               unsigned long ecc_gen = crime_read(CRIME_MEM_ERROR_ECC_CHK) &
-                                       CRIME_MEM_ERROR_ECC_CHK_MASK;
-
+               unsigned long ecc_syn =
+                       crime->mem_ecc_syn & CRIME_MEM_ERROR_ECC_SYN_MASK;
+               unsigned long ecc_gen =
+                       crime->mem_ecc_chk & CRIME_MEM_ERROR_ECC_CHK_MASK;
                printk("ECC,SYN=0x%08lx,GEN=0x%08lx,", ecc_syn, ecc_gen);
        }
        if (stat & CRIME_MEM_ERROR_MULTIPLE) {
@@ -77,7 +76,7 @@ crime_memerr_intr (unsigned int irq, void *dev_id, struct pt_regs *regs)
        if (stat & CRIME_MEM_ERROR_MACE_ACCESS)
                printk("MACE,MACEID=0x%02lx,", stat & CRIME_MEM_ERROR_MACE_ID);
 
-       crime_write(0, CRIME_MEM_ERROR_STAT);
+       crime->mem_error_stat = 0;
 
        if (fatal) {
                printk("FATAL>\n");
@@ -91,15 +90,12 @@ crime_memerr_intr (unsigned int irq, void *dev_id, struct pt_regs *regs)
 irqreturn_t
 crime_cpuerr_intr (unsigned int irq, void *dev_id, struct pt_regs *regs)
 {
-       unsigned long stat = crime_read(CRIME_CPU_ERROR_STAT) &
-                            CRIME_CPU_ERROR_MASK;
-       uint64_t addr = crime_read(CRIME_CPU_ERROR_ADDR) &
-                       CRIME_CPU_ERROR_ADDR_MASK;
-       addr <<= 2;
+       unsigned long stat = crime->cpu_error_stat & CRIME_CPU_ERROR_MASK;
+       unsigned long addr = crime->cpu_error_addr & CRIME_CPU_ERROR_ADDR_MASK;
 
+       addr <<= 2;
        printk ("CRIME CPU error at 0x%09lx status 0x%08lx\n", addr, stat);
-
-       crime_write(0, CRIME_CPU_ERROR_STAT);
+       crime->cpu_error_stat = 0;
 
        return IRQ_HANDLED;
 }
index 3d7b04c66aded9a86dab8b8a9ce7c4a13adf8acd..9519e5fae35b30aa84d748ed95108783f0def1dc 100644 (file)
 #include <asm/ip32/ip32_ints.h>
 
 /* issue a PIO read to make sure no PIO writes are pending */
-#define flush_crime_bus() crime_read(CRIME_CONTROL);
+static void inline flush_crime_bus(void)
+{
+       volatile unsigned long junk = crime->control;
+}
+
 static void inline flush_mace_bus(void)
 {
-       volatile unsigned long junk = mace_perif_ctrl_read(misc);
+       volatile unsigned long junk = mace->perif.ctrl.misc;
 }
 
 #undef DEBUG_IRQ
@@ -182,7 +186,7 @@ static void enable_crime_irq(unsigned int irq)
 
        spin_lock_irqsave(&ip32_irq_lock, flags);
        crime_mask |= 1 << (irq - 1);
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
 
@@ -198,7 +202,7 @@ static void disable_crime_irq(unsigned int irq)
 
        spin_lock_irqsave(&ip32_irq_lock, flags);
        crime_mask &= ~(1 << (irq - 1));
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        flush_crime_bus();
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
@@ -213,9 +217,9 @@ static void mask_and_ack_crime_irq(unsigned int irq)
            || (irq >= CRIME_SOFT0_IRQ && irq <= CRIME_SOFT2_IRQ)) {
                uint64_t crime_int;
                spin_lock_irqsave(&ip32_irq_lock, flags);
-               crime_int = crime_read(CRIME_HARD_INT);
+               crime_int = crime->hard_int;
                crime_int &= ~(1 << (irq - 1));
-               crime_write(crime_int, CRIME_HARD_INT);
+               crime->hard_int = crime_int;
                spin_unlock_irqrestore(&ip32_irq_lock, flags);
        }
        disable_crime_irq(irq);
@@ -256,7 +260,7 @@ static void enable_macepci_irq(unsigned int irq)
        macepci_mask |= MACEPCI_CONTROL_INT(irq - 9);
        mace->pci.control = macepci_mask;
        crime_mask |= 1 << (irq - 1);
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
 
@@ -272,7 +276,7 @@ static void disable_macepci_irq(unsigned int irq)
 
        spin_lock_irqsave(&ip32_irq_lock, flags);
        crime_mask &= ~(1 << (irq - 1));
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        flush_crime_bus();
        macepci_mask &= ~MACEPCI_CONTROL_INT(irq - 9);
        mace->pci.control = macepci_mask;
@@ -360,9 +364,9 @@ static void enable_maceisa_irq (unsigned int irq)
        DBG ("crime_int %08x enabled\n", crime_int);
        spin_lock_irqsave(&ip32_irq_lock, flags);
        crime_mask |= crime_int;
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        maceisa_mask |= 1 << (irq - 33);
-       mace_perif_ctrl_write(maceisa_mask, imask);
+       mace->perif.ctrl.imask = maceisa_mask;
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
 
@@ -386,9 +390,9 @@ static void disable_maceisa_irq(unsigned int irq)
         if(!(maceisa_mask & MACEISA_SUPERIO_INT))
                crime_int |= MACE_SUPERIO_INT;
        crime_mask &= ~crime_int;
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        flush_crime_bus();
-       mace_perif_ctrl_write(maceisa_mask, imask);
+       mace->perif.ctrl.imask = maceisa_mask;
        flush_mace_bus();
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
@@ -403,9 +407,9 @@ static void mask_and_ack_maceisa_irq(unsigned int irq)
        case MACEISA_SERIAL2_TDMAPR_IRQ:
                /* edge triggered */
                spin_lock_irqsave(&ip32_irq_lock, flags);
-               mace_int = mace_perif_ctrl_read(istat);
+               mace_int = mace->perif.ctrl.istat;
                mace_int &= ~(1 << (irq - 33));
-               mace_perif_ctrl_write(mace_int, istat);
+               mace->perif.ctrl.istat = mace_int;
                spin_unlock_irqrestore(&ip32_irq_lock, flags);
                break;
        }
@@ -441,7 +445,7 @@ static void enable_mace_irq(unsigned int irq)
 
        spin_lock_irqsave(&ip32_irq_lock, flags);
        crime_mask |= 1 << (irq - 1);
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
 
@@ -457,7 +461,7 @@ static void disable_mace_irq(unsigned int irq)
 
        spin_lock_irqsave(&ip32_irq_lock, flags);
        crime_mask &= ~(1 << (irq - 1));
-       crime_write(crime_mask, CRIME_INT_MASK);
+       crime->imask = crime_mask;
        flush_crime_bus();
        spin_unlock_irqrestore(&ip32_irq_lock, flags);
 }
@@ -484,19 +488,14 @@ static struct hw_interrupt_type ip32_mace_interrupt = {
 
 static void ip32_unknown_interrupt(struct pt_regs *regs)
 {
-       uint64_t crime;
-
        printk ("Unknown interrupt occurred!\n");
        printk ("cp0_status: %08x\n", read_c0_status());
        printk ("cp0_cause: %08x\n", read_c0_cause());
-       crime = crime_read(CRIME_INT_MASK);
-       printk ("CRIME intr mask: %016lx\n", crime);
-       crime = crime_read(CRIME_INT_STAT);
-       printk ("CRIME intr status: %016lx\n", crime);
-       crime = crime_read(CRIME_HARD_INT);
-       printk ("CRIME hardware intr register: %016lx\n", crime);
-       printk ("MACE ISA intr mask: %08lx\n", mace_perif_ctrl_read(imask));
-       printk ("MACE ISA intr status: %08lx\n", mace_perif_ctrl_read(istat));
+       printk ("CRIME intr mask: %016lx\n", crime->imask);
+       printk ("CRIME intr status: %016lx\n", crime->istat);
+       printk ("CRIME hardware intr register: %016lx\n", crime->hard_int);
+       printk ("MACE ISA intr mask: %08lx\n", mace->perif.ctrl.imask);
+       printk ("MACE ISA intr status: %08lx\n", mace->perif.ctrl.istat);
        printk ("MACE PCI control register: %08x\n", mace->pci.control);
 
        printk("Register dump:\n");
@@ -514,12 +513,12 @@ void ip32_irq0(struct pt_regs *regs)
        uint64_t crime_int;
        int irq = 0;
 
-       crime_int = crime_read(CRIME_INT_STAT) & crime_mask;
+       crime_int = crime->istat & crime_mask;
        irq = ffs(crime_int);
        crime_int = 1 << (irq - 1);
 
        if (crime_int & CRIME_MACEISA_INT_MASK) {
-               unsigned long mace_int = mace_perif_ctrl_read(istat);
+               unsigned long mace_int = mace->perif.ctrl.istat;
                irq = ffs(mace_int & maceisa_mask) + 32;
        }
        DBG("*irq %u*\n", irq);
@@ -551,18 +550,17 @@ void ip32_irq5(struct pt_regs *regs)
        ll_timer_interrupt(IP32_R4K_TIMER_IRQ, regs);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        unsigned int irq;
 
-       init_generic_irq();
        /* Install our interrupt handler, then clear and disable all
         * CRIME and MACE interrupts. */
-       crime_write(0, CRIME_INT_MASK);
-       crime_write(0, CRIME_HARD_INT);
-       crime_write(0, CRIME_SOFT_INT);
-       mace_perif_ctrl_write(0, istat);
-       mace_perif_ctrl_write(0, imask);
+       crime->imask = 0;
+       crime->hard_int = 0;
+       crime->soft_int = 0;
+       mace->perif.ctrl.istat = 0;
+       mace->perif.ctrl.imask = 0;
        set_except_vector(0, ip32_handle_int);
 
        for (irq = 0; irq <= IP32_IRQ_MAX; irq++) {
index ac65798bd20cff203d879c41e8db5938fe8e328e..6340468d4a23a97d552d44ec0755256505290188 100644 (file)
@@ -41,7 +41,7 @@ static void ip32_machine_power_off(void) __attribute__((noreturn));
 
 static void ip32_machine_restart(char *cmd)
 {
-       crime_write(CRIME_CONTROL_HARD_RESET, CRIME_CONTROL);
+       crime->control = CRIME_CONTROL_HARD_RESET;
        while (1);
 }
 
@@ -83,9 +83,9 @@ static void power_timeout(unsigned long data)
 
 static void blink_timeout(unsigned long data)
 {
-       unsigned long led = mace_perif_ctrl_read(misc) ^ MACEISA_LED_RED;
-       mace_perif_ctrl_write(led, misc);
-       mod_timer(&blink_timer, jiffies+data);
+       unsigned long led = mace->perif.ctrl.misc ^ MACEISA_LED_RED;
+       mace->perif.ctrl.misc = led;
+       mod_timer(&blink_timer, jiffies + data);
 }
 
 static void debounce(unsigned long data)
@@ -165,8 +165,8 @@ static int panic_event(struct notifier_block *this, unsigned long event,
        has_paniced = 1;
 
        /* turn off the green LED */
-       led = mace_perif_ctrl_read(misc) | MACEISA_LED_GREEN;
-       mace_perif_ctrl_write(led, misc);
+       led = mace->perif.ctrl.misc | MACEISA_LED_GREEN;
+       mace->perif.ctrl.misc = led;
 
        blink_timer.data = PANIC_FREQ;
        blink_timeout(PANIC_FREQ);
@@ -181,10 +181,10 @@ static struct notifier_block panic_block = {
 static __init int ip32_reboot_setup(void)
 {
        /* turn on the green led only */
-       unsigned long led = mace_perif_ctrl_read(misc);
+       unsigned long led = mace->perif.ctrl.misc;
        led |= MACEISA_LED_RED;
        led &= ~MACEISA_LED_GREEN;
-       mace_perif_ctrl_write(led, misc);
+       mace->perif.ctrl.misc = led;
 
        _machine_restart = ip32_machine_restart;
        _machine_halt = ip32_machine_halt;
index 51cad2d843f2ef86b3c3ee7f4e003214022c0613..5fccded2962266ca24520da8a87bf23f9bb825fa 100644 (file)
@@ -80,8 +80,8 @@ 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) ;
+       crime->timer = 0;
+       while (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);
 }
@@ -114,7 +114,7 @@ static int __init ip32_setup(void)
                o2_serial[0].type       = PORT_16550A;
                o2_serial[0].line       = 0;
                o2_serial[0].irq        = MACEISA_SERIAL1_IRQ;
-               o2_serial[0].flags      = STD_COM_FLAGS | UPF_RESOURCES;
+               o2_serial[0].flags      = STD_COM_FLAGS;
                o2_serial[0].uartclk    = BASE_BAUD * 16;
                o2_serial[0].iotype     = UPIO_MEM;
                o2_serial[0].membase    = (char *)&mace->isa.serial1;
@@ -125,7 +125,7 @@ static int __init ip32_setup(void)
                o2_serial[1].type       = PORT_16550A;
                o2_serial[1].line       = 1;
                o2_serial[1].irq        = MACEISA_SERIAL2_IRQ;
-               o2_serial[1].flags      = STD_COM_FLAGS | UPF_RESOURCES;
+               o2_serial[1].flags      = STD_COM_FLAGS;
                o2_serial[1].uartclk    = BASE_BAUD * 16;
                o2_serial[1].iotype     = UPIO_MEM;
                o2_serial[1].membase    = (char *)&mace->isa.serial2;
index 3dd85d5ba49c4ab0755c906cc5bd518afba0ae0e..d6d0364fa7603a1a29e6be2371f54cd6174566ba 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/linkage.h>
 #include <linux/mm.h>
 #include <linux/blkdev.h>
 #include <linux/bootmem.h>
@@ -55,36 +56,45 @@ int cfe_cons_handle;
 
 #ifdef CONFIG_BLK_DEV_INITRD
 extern unsigned long initrd_start, initrd_end;
-extern void * __rd_start, * __rd_end;
-#endif
-
-#ifdef CONFIG_SMP
-static int reboot_smp = 0;
 #endif
 
 #ifdef CONFIG_KGDB
 extern int kgdb_port;
 #endif
 
-static void cfe_linux_exit(void)
+static void ATTRIB_NORET cfe_linux_exit(void *arg)
 {
-#ifdef CONFIG_SMP
+       int warm = *(int *)arg;
+
        if (smp_processor_id()) {
-               if (reboot_smp) {
-                       /* Don't repeat the process from another CPU */
-                       for (;;);
-               } else {
+               static int reboot_smp;
+
+               /* Don't repeat the process from another CPU */
+               if (!reboot_smp) {
                        /* Get CPU 0 to do the cfe_exit */
                        reboot_smp = 1;
-                       smp_call_function((void *)_machine_restart, NULL, 1, 0);
-                       for (;;);
+                       smp_call_function(cfe_linux_exit, arg, 1, 0);
                }
+       } else {
+               printk("Passing control back to CFE...\n");
+               cfe_exit(warm, 0);
+               printk("cfe_exit returned??\n");
        }
-#endif
-       printk("passing control back to CFE\n");
-       cfe_exit(1, 0);
-       printk("cfe_exit returned??\n");
-       while(1);
+       while (1);
+}
+
+static void ATTRIB_NORET cfe_linux_restart(char *command)
+{
+       static const int zero;
+
+       cfe_linux_exit((void *)&zero);
+}
+
+static void ATTRIB_NORET cfe_linux_halt(void)
+{
+       static const int one = 1;
+
+       cfe_linux_exit((void *)&one);
 }
 
 static __init void prom_meminit(void)
@@ -97,17 +107,6 @@ static __init void prom_meminit(void)
        unsigned long initrd_pstart;
        unsigned long initrd_pend;
 
-#ifdef CONFIG_EMBEDDED_RAMDISK
-       /* If we're using an embedded ramdisk, then __rd_start and __rd_end
-          are defined by the linker to be on either side of the ramdisk
-          area.  Otherwise, initrd_start should be defined by kernel command
-          line arguments */
-       if (initrd_start == 0) {
-               initrd_start = (unsigned long)&__rd_start;
-               initrd_end = (unsigned long)&__rd_end;
-       }
-#endif
-
        initrd_pstart = CPHYSADDR(initrd_start);
        initrd_pend = CPHYSADDR(initrd_end);
        if (initrd_start &&
@@ -247,9 +246,9 @@ void __init prom_init(void)
        char *arg;
 #endif
 
-       _machine_restart   = (void (*)(char *))cfe_linux_exit;
-       _machine_halt      = cfe_linux_exit;
-       _machine_power_off = cfe_linux_exit;
+       _machine_restart   = cfe_linux_restart;
+       _machine_halt      = cfe_linux_halt;
+       _machine_power_off = cfe_linux_halt;
 
        /*
         * Check if a loader was used; if NOT, the 4 arguments are
index fada7042ed8241b3091026abc41033926a24e6b7..73392190d2b17f7851f0d5ee9d004e1e7679c9c9 100644 (file)
  * Use CFE to find out how many CPUs are available, setting up
  * phys_cpu_present_map and the logical/physical mappings.
  * XXXKW will the boot CPU ever not be physical 0?
+ *
+ * Common setup before any secondaries are started
  */
-void __init prom_build_cpu_map(void)
+void __init prom_prepare_cpus(unsigned int max_cpus)
 {
        int i, num;
 
@@ -48,13 +50,6 @@ void __init prom_build_cpu_map(void)
        printk("Detected %i available secondary CPU(s)\n", num);
 }
 
-/*
- * Common setup before any secondaries are started
- */
-void prom_prepare_cpus(unsigned int max_cpus)
-{
-}
-
 /*
  * Setup the PC, SP, and GP of a secondary processor and start it
  * running!
index ddbe64b2d371985da32f8d20670a8eb4adabb4c5..88d524edcff4e03629a80cfda8ab3ecad3160a75 100644 (file)
@@ -61,19 +61,8 @@ extern unsigned long ldt_eoi_space;
 #endif
 
 #ifdef CONFIG_KGDB
-#include <asm/gdb-stub.h>
-extern void breakpoint(void);
 static int kgdb_irq;
 
-/* kgdb is on when configured.  Pass "nokgdb" kernel arg to turn it off */
-static int kgdb_flag = 1;
-static int __init nokgdb(char *str)
-{
-       kgdb_flag = 0;
-       return 1;
-}
-__setup("nokgdb", nokgdb);
-
 /* Default to UART1 */
 int kgdb_port = 1;
 #ifdef CONFIG_SIBYTE_SB1250_DUART
@@ -307,10 +296,10 @@ int sb1250_steal_irq(int irq)
 }
 
 /*
- *  init_IRQ is called early in the boot sequence from init/main.c.  It
- *  is responsible for setting up the interrupt mapper and installing the
- *  handler that will be responsible for dispatching interrupts to the
- *  "right" place.
+ *  arch_init_irq is called early in the boot sequence from init/main.c via
+ *  init_IRQ.  It is responsible for setting up the interrupt mapper and
+ *  installing the handler that will be responsible for dispatching interrupts
+ *  to the "right" place.
  */
 /*
  * For now, map all interrupts to IP[2].  We could save
@@ -332,7 +321,7 @@ int sb1250_steal_irq(int irq)
 #define IMR_IP5_VAL    K_INT_MAP_I3
 #define IMR_IP6_VAL    K_INT_MAP_I4
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
 
        unsigned int i;
@@ -405,10 +394,6 @@ void __init init_IRQ(void)
                             IOADDR(A_IMR_REGISTER(0, R_IMR_INTERRUPT_MAP_BASE) +
                                    (kgdb_irq<<3)));
                sb1250_unmask_irq(0, kgdb_irq);
-
-               prom_printf("Waiting for GDB on UART port %d\n", kgdb_port);
-               set_debug_traps();
-               breakpoint();
        }
 #endif
 }
index ad6c6b055952641e261a9009527f8a67987c4733..75b57a67ad45aebd8455c932ce5a7e6ea72a8dcb 100644 (file)
@@ -18,8 +18,8 @@
 
 /*
  * sb1250_handle_int() is the routine that is actually called when an interrupt
- * occurs.  It is installed as the exception vector handler in init_IRQ() in
- * arch/mips/sibyte/sb1250/irq.c
+ * occurs.  It is installed as the exception vector handler in arch_init_irq()
+ * in arch/mips/sibyte/sb1250/irq.c
  *
  * In the handle we figure out which interrupts need handling, and use that to
  * call the dispatcher, which will take care of actually calling registered
index 426fb3014c6432516f13875a2bd43c333592eee5..de62ab0f55a25091be2e24b249bc27ade2a9f675 100644 (file)
 #include <linux/blkdev.h>
 #include <linux/bootmem.h>
 #include <linux/smp.h>
+#include <linux/initrd.h>
 
 #include <asm/bootinfo.h>
 #include <asm/reboot.h>
 
-#ifdef CONFIG_EMBEDDED_RAMDISK
-/* These are symbols defined by the ramdisk linker script */
-extern unsigned char __rd_start;
-extern unsigned char __rd_end;
-#endif
-
 #define MAX_RAM_SIZE ((CONFIG_SIBYTE_STANDALONE_RAM_SIZE * 1024 * 1024) - 1)
 
 static __init void prom_meminit(void)
@@ -41,17 +36,6 @@ static __init void prom_meminit(void)
        unsigned long initrd_pstart;
        unsigned long initrd_pend;
 
-#ifdef CONFIG_EMBEDDED_RAMDISK
-       /* If we're using an embedded ramdisk, then __rd_start and __rd_end
-          are defined by the linker to be on either side of the ramdisk
-          area.  Otherwise, initrd_start should be defined by kernel command
-          line arguments */
-       if (initrd_start == 0) {
-               initrd_start = (unsigned long)&__rd_start;
-               initrd_end = (unsigned long)&__rd_end;
-       }
-#endif
-
        initrd_pstart = __pa(initrd_start);
        initrd_pend = __pa(initrd_end);
        if (initrd_start &&
index 638da090387106cede36c90240849c5dfe3246e9..9e7336c7c81471cf8f105c8421816132cbfc9654 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
+ * Copyright (C) 2004 by 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
@@ -26,6 +27,8 @@
 #include <linux/bootmem.h>
 #include <linux/blkdev.h>
 #include <linux/init.h>
+#include <linux/tty.h>
+#include <linux/initrd.h>
 
 #include <asm/irq.h>
 #include <asm/io.h>
@@ -34,7 +37,6 @@
 #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>
index caa44d1d9f5c169d08cfcea652bb418afbfcb457..afb660218770fdd3df91040a28b76f3a3401a7a1 100644 (file)
@@ -173,13 +173,12 @@ void __init init_pciasic(void)
  * driver compatibility reasons interrupts 0 - 15 to be the i8295
  * interrupts even if the hardware uses a different interrupt numbering.
  */
-void __init init_IRQ (void)
+void __init arch_init_irq(void)
 {
        int i;
 
        set_except_vector(0, sni_rm200_pci_handle_int);
 
-       init_generic_irq();
        init_i8259_irqs();                      /* Integrated i8259  */
        init_pciasic();
 
index d2fa8b1eb43b8ab32d6d52b11e12bacf718c9dc6..8f67cee4317bd17051daf8f8b582eda6426051c6 100644 (file)
@@ -5,7 +5,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 1996, 1997, 1998, 2000, 2003, 2004 by Ralf Baechle
+ * Copyright (C) 1996, 97, 98, 2000, 03, 04 Ralf Baechle (ralf@linux-mips.org)
  */
 #include <linux/config.h>
 #include <linux/eisa.h>
@@ -27,7 +27,6 @@
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/mc146818-time.h>
-#include <asm/pci_channel.h>
 #include <asm/processor.h>
 #include <asm/ptrace.h>
 #include <asm/reboot.h>
index 573c753093f65278aefc335da59c90def7fcd236..8fa126b296e1f2ddde15c504e1b4ab4f014966f2 100644 (file)
@@ -8,4 +8,5 @@
 
 obj-y  += tx4927_prom.o tx4927_setup.o tx4927_irq.o tx4927_irq_handler.o
 
+obj-$(CONFIG_TOSHIBA_FPCIB0)      += smsc_fdc37m81x.o
 obj-$(CONFIG_KGDB)                 += tx4927_dbgio.o
index c89dd5f94d93f0ba3ba722473633434f7769b172..80a0efc9f125b293cfbe389bdf7decc2fa855dfa 100644 (file)
@@ -48,8 +48,6 @@
 /*
  * DEBUG
  */
-#define TX4927_IRQ_CHECK_CP0
-#define TX4927_IRQ_CHECK_PIC
 
 #undef TX4927_IRQ_DEBUG
 
@@ -239,16 +237,6 @@ static unsigned int tx4927_irq_cp0_startup(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_STARTUP, "irq=%d \n", irq);
 
-#ifdef TX4927_IRQ_CHECK_CP0
-       {
-               if (irq < TX4927_IRQ_CP0_BEG || irq > TX4927_IRQ_CP0_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        tx4927_irq_cp0_enable(irq);
 
        return (0);
@@ -258,16 +246,6 @@ static void tx4927_irq_cp0_shutdown(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_SHUTDOWN, "irq=%d \n", irq);
 
-#ifdef TX4927_IRQ_CHECK_CP0
-       {
-               if (irq < TX4927_IRQ_CP0_BEG || irq > TX4927_IRQ_CP0_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        tx4927_irq_cp0_disable(irq);
 
        return;
@@ -279,16 +257,6 @@ static void tx4927_irq_cp0_enable(unsigned int irq)
 
        TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_ENABLE, "irq=%d \n", irq);
 
-#ifdef TX4927_IRQ_CHECK_CP0
-       {
-               if (irq < TX4927_IRQ_CP0_BEG || irq > TX4927_IRQ_CP0_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        spin_lock_irqsave(&tx4927_cp0_lock, flags);
 
        tx4927_irq_cp0_modify(CCP0_STATUS, 0, tx4927_irq_cp0_mask(irq));
@@ -304,16 +272,6 @@ static void tx4927_irq_cp0_disable(unsigned int irq)
 
        TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_DISABLE, "irq=%d \n", irq);
 
-#ifdef TX4927_IRQ_CHECK_CP0
-       {
-               if (irq < TX4927_IRQ_CP0_BEG || irq > TX4927_IRQ_CP0_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        spin_lock_irqsave(&tx4927_cp0_lock, flags);
 
        tx4927_irq_cp0_modify(CCP0_STATUS, tx4927_irq_cp0_mask(irq), 0);
@@ -327,16 +285,6 @@ static void tx4927_irq_cp0_mask_and_ack(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_MASK, "irq=%d \n", irq);
 
-#ifdef TX4927_IRQ_CHECK_CP0
-       {
-               if (irq < TX4927_IRQ_CP0_BEG || irq > TX4927_IRQ_CP0_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        tx4927_irq_cp0_disable(irq);
 
        return;
@@ -346,16 +294,6 @@ static void tx4927_irq_cp0_end(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_ENDIRQ, "irq=%d \n", irq);
 
-#ifdef TX4927_IRQ_CHECK_CP0
-       {
-               if (irq < TX4927_IRQ_CP0_BEG || irq > TX4927_IRQ_CP0_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
                tx4927_irq_cp0_enable(irq);
        }
@@ -516,16 +454,6 @@ static unsigned int tx4927_irq_pic_startup(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_STARTUP, "irq=%d\n", irq);
 
-#ifdef TX4927_IRQ_CHECK_PIC
-       {
-               if (irq < TX4927_IRQ_PIC_BEG || irq > TX4927_IRQ_PIC_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        tx4927_irq_pic_enable(irq);
 
        return (0);
@@ -535,16 +463,6 @@ static void tx4927_irq_pic_shutdown(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_SHUTDOWN, "irq=%d\n", irq);
 
-#ifdef TX4927_IRQ_CHECK_PIC
-       {
-               if (irq < TX4927_IRQ_PIC_BEG || irq > TX4927_IRQ_PIC_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        tx4927_irq_pic_disable(irq);
 
        return;
@@ -556,16 +474,6 @@ static void tx4927_irq_pic_enable(unsigned int irq)
 
        TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_ENABLE, "irq=%d\n", irq);
 
-#ifdef TX4927_IRQ_CHECK_PIC
-       {
-               if (irq < TX4927_IRQ_PIC_BEG || irq > TX4927_IRQ_PIC_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        spin_lock_irqsave(&tx4927_pic_lock, flags);
 
        tx4927_irq_pic_modify(tx4927_irq_pic_addr(irq), 0,
@@ -582,16 +490,6 @@ static void tx4927_irq_pic_disable(unsigned int irq)
 
        TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_DISABLE, "irq=%d\n", irq);
 
-#ifdef TX4927_IRQ_CHECK_PIC
-       {
-               if (irq < TX4927_IRQ_PIC_BEG || irq > TX4927_IRQ_PIC_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        spin_lock_irqsave(&tx4927_pic_lock, flags);
 
        tx4927_irq_pic_modify(tx4927_irq_pic_addr(irq),
@@ -606,16 +504,6 @@ static void tx4927_irq_pic_mask_and_ack(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_MASK, "irq=%d\n", irq);
 
-#ifdef TX4927_IRQ_CHECK_PIC
-       {
-               if (irq < TX4927_IRQ_PIC_BEG || irq > TX4927_IRQ_PIC_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        tx4927_irq_pic_disable(irq);
 
        return;
@@ -625,16 +513,6 @@ static void tx4927_irq_pic_end(unsigned int irq)
 {
        TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_ENDIRQ, "irq=%d\n", irq);
 
-#ifdef TX4927_IRQ_CHECK_PIC
-       {
-               if (irq < TX4927_IRQ_PIC_BEG || irq > TX4927_IRQ_PIC_END) {
-                       TX4927_IRQ_DPRINTK(TX4927_IRQ_EROR,
-                                          "bad irq=%d \n", irq);
-                       panic("\n");
-               }
-       }
-#endif
-
        if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
                tx4927_irq_pic_enable(irq);
        }
index 88d02973d132c38afce110fed1f48781f6379789..16bcbdc6d1cc7f0a182d4b390329040c84b0c2af 100644 (file)
@@ -92,15 +92,6 @@ void __init tx4927_time_init(void)
        }
 #endif
 
-#ifdef CONFIG_KGDB
-       {
-               printk("Calling breakpoint() -- start remote kgdb\n");
-               set_debug_traps();
-               breakpoint();
-               printk("Calling breakpoint() -- done\n");
-       }
-#endif
-
        return;
 }
 
index 9303045854439f9020873c90df3a7841a873ab1f..ac3dbb597a81072ccf014015dad3f77f61440dfb 100644 (file)
@@ -134,10 +134,10 @@ JP7 is not bus master -- do NOT use -- only 4 pci bus master's allowed -- SouthB
 #include <linux/bootmem.h>
 #include <linux/blkdev.h>
 #ifdef CONFIG_RTC_DS1742
-#include <asm/rtc_ds1742.h>
+#include <linux/ds1742rtc.h>
 #endif
 #ifdef CONFIG_TOSHIBA_FPCIB0
-#include <asm/smsc_fdc37m81x.h>
+#include <asm/tx4927/smsc_fdc37m81x.h>
 #endif
 #include <asm/tx4927/toshiba_rbtx4927.h>
 
@@ -665,7 +665,7 @@ static void toshiba_rbtx4927_irq_isa_end(unsigned int irq)
 #endif
 
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        extern void tx4927_irq_init(void);
 
@@ -681,13 +681,6 @@ void __init init_IRQ(void)
        }
 #endif
 
-#ifdef CONFIG_PCI
-       {
-               extern void toshiba_rbtx4927_pci_irq_init(void);
-               toshiba_rbtx4927_pci_irq_init();
-       }
-#endif
-
        wbflush();
 
        return;
index 3519020b5bc89e62c2b211e30d1d7c22cf941755..e4d095d3e19293eb4769e79fb8a73471fef6a5a6 100644 (file)
@@ -6,6 +6,9 @@
  *
  * Copyright 2001-2002 MontaVista Software Inc.
  *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@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
@@ -86,3 +89,9 @@ const char *get_system_type(void)
 {
        return "Toshiba RBTX4927/RBTX4937";
 }
+
+char * __init prom_getcmdline(void)
+{
+        return &(arcs_cmdline[0]);
+}
+
index 77698daa03b3974a0957d40c112b784ed2467f6e..b2385c1eee05a6feaa5179a5d44b920d37402d28 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright 2001-2002 MontaVista Software Inc.
  *
- * Copyright (C) 1996, 1997, 2001  Ralf Baechle
+ * Copyright (C) 1996, 97, 2001, 04  Ralf Baechle (ralf@linux-mips.org)
  * Copyright (C) 2000 RidgeRun, Inc.
  * Author: RidgeRun, Inc.
  *   glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
  * Copyright 2002 MontaVista Software Inc.
  * Author: Michael Pruznick, michael_pruznick@mvista.com
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
+ *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@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
 #include <linux/bootmem.h>
 #include <linux/blkdev.h>
 #ifdef CONFIG_RTC_DS1742
-#include <asm/rtc_ds1742.h>
+#include <linux/ds1742rtc.h>
 #endif
 #ifdef CONFIG_TOSHIBA_FPCIB0
-#include <asm/smsc_fdc37m81x.h>
+#include <asm/tx4927/smsc_fdc37m81x.h>
 #endif
 #include <asm/tx4927/toshiba_rbtx4927.h>
 #ifdef CONFIG_PCI
 #include <asm/tx4927/tx4927_pci.h>
-#include <asm/pci_channel.h>
 #endif
 #ifdef CONFIG_BLK_DEV_IDEPCI
 #include <linux/hdreg.h>
@@ -146,49 +148,15 @@ static int tx4927_pcic_trdyto = 0;        /* default: disabled */
 unsigned long tx4927_ce_base[8];
 void tx4927_pci_setup(void);
 void tx4927_reset_pci_pcic(void);
-#ifdef  TX4927_SUPPORT_PCI_66
-void tx4927_pci66_setup(void);
-extern int tx4927_pci66_check(void);
-#endif
 int tx4927_pci66 = 0;          /* 0:auto */
 #endif
 
 char *toshiba_name = "";
 
 #ifdef CONFIG_PCI
-void tx4927_dump_pcic_settings(void)
-{
-       printk("%s pcic settings:",toshiba_name);
-       {
-               int i;
-               unsigned long *preg = (unsigned long *) tx4927_pcicptr;
-               for (i = 0; i < sizeof(struct tx4927_pcic_reg); i += 4) {
-                       if (i % 32 == 0)
-                               printk("\n%04x:", i);
-                       if (preg == &tx4927_pcicptr->g2pintack
-                           || preg == &tx4927_pcicptr->g2pspc
-#ifdef CONFIG_TX4927BUG_WORKAROUND
-                           || preg == &tx4927_pcicptr->g2pcfgadrs
-                           || preg == &tx4927_pcicptr->g2pcfgdata
-#endif
-                           ) {
-                               printk(" XXXXXXXX");
-                               preg++;
-                               continue;
-                       }
-                       printk(" %08lx", *preg++);
-                       if (preg == &tx4927_pcicptr->g2pcfgadrs)
-                               break;
-               }
-               printk("\n");
-       }
-}
-
 static void tx4927_pcierr_interrupt(int irq, void *dev_id,
                                    struct pt_regs *regs)
 {
-       extern void tx4927_dump_pcic_settings(void);
-
 #ifdef CONFIG_BLK_DEV_IDEPCI
        /* ignore MasterAbort for ide probing... */
        if (irq == TX4927_IRQ_IRC_PCIERR &&
@@ -203,6 +171,7 @@ static void tx4927_pcierr_interrupt(int irq, void *dev_id,
        }
 #endif
        printk("PCI error interrupt (irq 0x%x).\n", irq);
+
        printk("pcistat:%04x, g2pstatus:%08lx, pcicstatus:%08lx\n",
               (unsigned short) (tx4927_pcicptr->pcistatus >> 16),
               tx4927_pcicptr->g2pstatus, tx4927_pcicptr->pcicstatus);
@@ -211,23 +180,10 @@ static void tx4927_pcierr_interrupt(int irq, void *dev_id,
               (unsigned long) (tx4927_ccfgptr->tear >> 32),
               (unsigned long) tx4927_ccfgptr->tear);
        show_regs(regs);
-       //tx4927_dump_pcic_settings();
-       panic("PCI error at PC:%08lx.", regs->cp0_epc);
 }
 
-static struct irqaction pcic_action = {
-       tx4927_pcierr_interrupt, 0, 0, "PCI-C", NULL, NULL
-};
-
-static struct irqaction pcierr_action = {
-       tx4927_pcierr_interrupt, 0, 0, "PCI-ERR", NULL, NULL
-};
-
-
 void __init toshiba_rbtx4927_pci_irq_init(void)
 {
-       setup_irq(TX4927_IRQ_IRC_PCIC, &pcic_action);
-       setup_irq(TX4927_IRQ_IRC_PCIERR, &pcierr_action);
        return;
 }
 
@@ -245,91 +201,26 @@ void tx4927_reset_pci_pcic(void)
 #endif /* CONFIG_PCI */
 
 #ifdef CONFIG_PCI
-#ifdef  TX4927_SUPPORT_PCI_66
-void tx4927_pci66_setup(void)
-{
-       int pciclk, pciclkin = 1;
-
-       TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCI66,
-                                      "-\n");
-
-       if (tx4927_ccfgptr->ccfg & TX4927_CCFG_PCI66)
-               return;
-
-       tx4927_reset_pci_pcic();
-
-       /* Assert M66EN */
-       tx4927_ccfgptr->ccfg |= TX4927_CCFG_PCI66;
-       /* set PCICLK 66MHz */
-       if (tx4927_ccfgptr->pcfg & TX4927_PCFG_PCICLKEN_ALL) {
-               unsigned int pcidivmode = 0;
-               pcidivmode =
-                   (unsigned long) tx4927_ccfgptr->
-                   ccfg & TX4927_CCFG_PCIDIVMODE_MASK;
-               if (tx4927_cpu_clock >= 170000000) {
-                       /* CPU 200MHz */
-                       pcidivmode = TX4927_CCFG_PCIDIVMODE_3;
-                       pciclk = tx4927_cpu_clock / 3;
-               } else {
-                       /* CPU 166MHz */
-                       pcidivmode = TX4927_CCFG_PCIDIVMODE_2_5;
-                       pciclk = tx4927_cpu_clock * 2 / 5;
-               }
-               tx4927_ccfgptr->ccfg =
-                   (tx4927_ccfgptr->ccfg & ~TX4927_CCFG_PCIDIVMODE_MASK)
-                   | pcidivmode;
-               TOSHIBA_RBTX4927_SETUP_DPRINTK
-                   (TOSHIBA_RBTX4927_SETUP_PCI66,
-                    ":PCICLK: ccfg:0x%08lx\n",
-                    (unsigned long) tx4927_ccfgptr->ccfg);
-       } else {
-               int pciclk_setting = *tx4927_pci_clk_ptr;
-               pciclkin = 0;
-               pciclk = 66666666;
-               pciclk_setting &= ~TX4927_PCI_CLK_MASK;
-               pciclk_setting |= TX4927_PCI_CLK_66;
-               *tx4927_pci_clk_ptr = pciclk_setting;
-               TOSHIBA_RBTX4927_SETUP_DPRINTK
-                   (TOSHIBA_RBTX4927_SETUP_PCI66,
-                    "PCICLK: pci_clk:%02x\n", *tx4927_pci_clk_ptr);
-       }
-
-       udelay(10000);
-
-       /* clear PCIC reset */
-       tx4927_ccfgptr->clkctr &= ~TX4927_CLKCTR_PCIRST;
-       /* clear PCI reset */
-       *tx4927_pcireset_ptr = 0;
-
-       TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCI66,
-                                      "+\n");
-       return;
-}
-#endif                         /* TX4927_SUPPORT_PCI_66 */
-
 void print_pci_status(void)
 {
        printk("PCI STATUS %lx\n", tx4927_pcicptr->pcistatus);
        printk("PCIC STATUS %lx\n", tx4927_pcicptr->pcicstatus);
 }
 
+extern struct pci_controller tx4927_controller;
+
 static struct pci_dev *fake_pci_dev(struct pci_controller *hose,
                                    int top_bus, int busnr, int devfn)
 {
        static struct pci_dev dev;
        static struct pci_bus bus;
 
-       dev.bus = &bus;
-       dev.sysdata = hose;
+       dev.sysdata = (void *)hose;
        dev.devfn = devfn;
        bus.number = busnr;
        bus.ops = hose->pci_ops;
-
-       if (busnr != top_bus)
-               /* Fake a parent bus structure. */
-               bus.parent = &bus;
-       else
-               bus.parent = NULL;
+       bus.parent = NULL;
+       dev.bus = &bus;
 
        return &dev;
 }
@@ -350,15 +241,19 @@ EARLY_PCI_OP(write, byte, u8)
 EARLY_PCI_OP(write, word, u16)
 EARLY_PCI_OP(write, dword, u32)
 
-static int __init tx4927_pcibios_init(int busno, struct pci_controller *hose)
+static int __init tx4927_pcibios_init(void)
 {
        unsigned int id;
        u32 pci_devfn;
+       int devfn_start = 0;
+       int devfn_stop = 0xff;
+       int busno = 0; /* One bus on the Toshiba */
+       struct pci_controller *hose = &tx4927_controller;
 
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCIBIOS,
                                       "-\n");
 
-       for (pci_devfn = 0x0; pci_devfn < 0xff; pci_devfn++) {
+       for (pci_devfn = devfn_start; pci_devfn < devfn_stop; pci_devfn++) {
                early_read_config_dword(hose, busno, busno, pci_devfn,
                                        PCI_VENDOR_ID, &id);
 
@@ -581,12 +476,15 @@ static int __init tx4927_pcibios_init(int busno, struct pci_controller *hose)
 
        }
 
+       register_pci_controller(&tx4927_controller);
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCIBIOS,
                                       "+\n");
 
-       return busno;
+       return 0;
 }
 
+arch_initcall(tx4927_pcibios_init);
+
 extern struct resource pci_io_resource;
 extern struct resource pci_mem_resource;
 
@@ -597,11 +495,6 @@ void tx4927_pci_setup(void)
 
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCI2, "-\n");
 
-#ifndef  TX4927_SUPPORT_PCI_66
-       if (tx4927_ccfgptr->ccfg & TX4927_CCFG_PCI66)
-               printk("PCI 66 current unsupported\n");
-#endif
-
        mips_memory_upper = tx4927_get_mem_size() << 20;
        mips_memory_upper += KSEG0;
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCI2,
@@ -736,19 +629,6 @@ void tx4927_pci_setup(void)
        /* PCI->GB mappings (I/O 256B) */
        tx4927_pcicptr->p2giopbase = 0; /* 256B */
 
-
-#ifdef TX4927_SUPPORT_COMMAND_IO
-       tx4927_pcicptr->p2giogbase = 0 | TX4927_PCIC_P2GIOGBASE_TIOEN |
-#ifdef __BIG_ENDIAN
-           TX4927_PCIC_P2GIOGBASE_TECHG
-#else
-           TX4927_PCIC_P2GIOGBASE_TBSDIS
-#endif
-           ;
-#else
-       tx4927_pcicptr->p2giogbase = 0;
-#endif
-
        /* PCI->GB mappings (MEM 512MB) M0 gets all of memory */
        tx4927_pcicptr->p2gm0plbase = 0;
        tx4927_pcicptr->p2gm0pubase = 0;
@@ -791,8 +671,6 @@ void tx4927_pci_setup(void)
        if (tx4927_pcic_trdyto >= 0) {
                tx4927_pcicptr->g2ptocnt &= ~0xff;
                tx4927_pcicptr->g2ptocnt |= (tx4927_pcic_trdyto & 0xff);
-               //printk("%s PCIC -- TRDYTO:%02lx\n",toshiba_name,
-               //      tx4927_pcicptr->g2ptocnt & 0xff);
        }
 
        /* Clear All Local Bus Status */
@@ -825,17 +703,10 @@ void tx4927_pci_setup(void)
 
        tx4927_pcicptr->pcistatus = PCI_COMMAND_MASTER |
            PCI_COMMAND_MEMORY |
-#ifdef TX4927_SUPPORT_COMMAND_IO
-           PCI_COMMAND_IO |
-#endif
            PCI_COMMAND_PARITY | PCI_COMMAND_SERR;
 
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCI2,
                                       ":pci setup complete:\n");
-       //tx4927_dump_pcic_settings();
-
-       tx4927_pcibios_init(0, &tx4927_controller);
-
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_PCI2, "+\n");
 }
 
@@ -883,6 +754,7 @@ void toshiba_rbtx4927_power_off(void)
 void __init toshiba_rbtx4927_setup(void)
 {
        vu32 cp0_config;
+       char *argptr;
 
        printk("CPU is %s\n", toshiba_name);
 
@@ -923,21 +795,16 @@ void __init toshiba_rbtx4927_setup(void)
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP,
                                       "+\n");
 
-
-
-       mips_io_port_base = KSEG1 + TBTX4927_ISA_IO_OFFSET;
+       set_io_port_base(KSEG1 + TBTX4927_ISA_IO_OFFSET);
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP,
                                       ":mips_io_port_base=0x%08lx\n",
                                       mips_io_port_base);
 
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP,
                                       ":Resource\n");
-       ioport_resource.start = 0;
        ioport_resource.end = 0xffffffff;
-       iomem_resource.start = 0;
        iomem_resource.end = 0xffffffff;
 
-
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP,
                                       ":ResetRoutines\n");
        _machine_restart = toshiba_rbtx4927_restart;
@@ -1000,25 +867,11 @@ void __init toshiba_rbtx4927_setup(void)
                tx4927_sdramcptr->tr |= 0x02000000;     /* RCD:3tck */
 #endif
 
-#ifdef  TX4927_SUPPORT_PCI_66
-       tx4927_pci66_setup();
-#endif
-
        tx4927_pci_setup();
-#endif
-
-
-       {
-               u32 id = 0;
-               early_read_config_dword(&tx4927_controller, 0, 0, 0x90,
-                                       PCI_VENDOR_ID, &id);
-               if (id == 0x94601055) {
-                       tx4927_using_backplane = 1;
-                       printk("backplane board IS installed\n");
-               } else {
-                       printk("backplane board NOT installed\n");
-               }
-       }
+       if (tx4927_using_backplane == 1)
+               printk("backplane board IS installed\n");
+       else
+               printk("No Backplane \n");
 
        /* this is on ISA bus behind PCI bus, so need PCI up first */
 #ifdef CONFIG_TOSHIBA_FPCIB0
@@ -1065,11 +918,41 @@ void __init toshiba_rbtx4927_setup(void)
        }
 #endif
 
+#endif /* CONFIG_PCI */
+
+#ifdef CONFIG_SERIAL_TXX9_CONSOLE
+        argptr = prom_getcmdline();
+        if (strstr(argptr, "console=") == NULL) {
+                strcat(argptr, " console=ttyS0,38400");
+        }
+#endif
+
+#ifdef CONFIG_ROOT_NFS
+        argptr = prom_getcmdline();
+        if (strstr(argptr, "root=") == NULL) {
+                strcat(argptr, " root=/dev/nfs rw");
+        }
+#endif
+
+
+#ifdef CONFIG_IP_PNP
+        argptr = prom_getcmdline();
+        if (strstr(argptr, "ip=") == NULL) {
+                strcat(argptr, " ip=any");
+        }
+#endif
+
 
        TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP,
-                                      "+\n");
+                              "+\n");
 }
 
+#ifdef CONFIG_RTC_DS1742
+extern unsigned long rtc_ds1742_get_time(void);
+extern int rtc_ds1742_set_time(unsigned long);
+extern void rtc_ds1742_wait(void);
+#endif
+
 void __init
 toshiba_rbtx4927_time_init(void)
 {
index 4a2458f8bc8b466cabb05a886b5a782f9a625187..e4fe177b196a2bd678939884c6bee8d524e75070 100644 (file)
@@ -184,10 +184,9 @@ static struct irqaction cascade =
 static struct irqaction reserved =
        { no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade", NULL, NULL };
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
        int i;
-       extern irq_desc_t irq_desc[];
 
        set_except_vector(0, vr4181_handle_irq);
 
@@ -237,13 +236,4 @@ void __init init_IRQ(void)
         */
        setup_irq(VR4181_IRQ_RTCL1, &reserved);
        setup_irq(VR4181_IRQ_RTCL2, &reserved);
-
-#ifdef CONFIG_KGDB
-       printk("Setting debug traps - please connect the remote debugger.\n");
-
-       set_debug_traps();
-
-       // you may move this line to whereever you want
-       breakpoint();
-#endif
 }
index 19ccb3b56b1fceda09d9aa981847531c9830fb01..9d73c6e8b2aac3ce5bd1c831da7d4d29aa6f9dd4 100644 (file)
@@ -747,11 +747,8 @@ static inline void init_vr41xx_icu_irq(void)
        setup_irq(INT4_CASCADE_IRQ, &icu_cascade);
 }
 
-void __init init_IRQ(void)
+void __init arch_init_irq(void)
 {
-       memset(irq_desc, 0, sizeof(irq_desc));
-
-       init_generic_irq();
        mips_cpu_irq_init(MIPS_CPU_IRQ_BASE);
        init_vr41xx_icu_irq();
        init_vr41xx_giuint_irq();
index 8e816364aec1275c6fa701723f5552dcc9795ce8..f3eda9d9b74f16bb5fec9523ce38ce3ce7eebaad 100644 (file)
 #define _ACAST64_              (_ATYPE64_)             /* do _not_ narrow */
 #endif
 
-/*
- * Memory segments (32bit kernel mode addresses)
- * These are the traditional names used in the 32-bit universe.
- */
-#define KUSEG                  0x00000000
-#define KSEG0                  0x80000000
-#define KSEG1                  0xa0000000
-#define KSEG2                  0xc0000000
-#define KSEG3                  0xe0000000
-
 /*
  * Returns the kernel segment base of a given address
  */
 #define CPHYSADDR(a)           ((_ACAST32_ (a)) & 0x1fffffff)
 #define XPHYSADDR(a)            ((_ACAST64_ (a)) & 0x000000ffffffffff)
 
-/*
- * Map an address to a certain kernel segment
- */
-#define KSEG0ADDR(a)           (CPHYSADDR(a) | KSEG0)
-#define KSEG1ADDR(a)           (CPHYSADDR(a) | KSEG1)
-#define KSEG2ADDR(a)           (CPHYSADDR(a) | KSEG2)
-#define KSEG3ADDR(a)           (CPHYSADDR(a) | KSEG3)
-
-#define CKSEG0ADDR(a)          (CPHYSADDR(a) | CKSEG0)
-#define CKSEG1ADDR(a)          (CPHYSADDR(a) | CKSEG1)
-#define CKSEG2ADDR(a)          (CPHYSADDR(a) | CKSEG2)
-#define CKSEG3ADDR(a)          (CPHYSADDR(a) | CKSEG3)
+#ifdef CONFIG_MIPS64
 
 /*
  * Memory segments (64bit kernel mode addresses)
 #define CKSSEG                 0xffffffffc0000000
 #define CKSEG3                 0xffffffffe0000000
 
+#define CKSEG0ADDR(a)          (CPHYSADDR(a) | CKSEG0)
+#define CKSEG1ADDR(a)          (CPHYSADDR(a) | CKSEG1)
+#define CKSEG2ADDR(a)          (CPHYSADDR(a) | CKSEG2)
+#define CKSEG3ADDR(a)          (CPHYSADDR(a) | CKSEG3)
+
+#else
+
+#define CKSEG0ADDR(a)          (CPHYSADDR(a) | KSEG0)
+#define CKSEG1ADDR(a)          (CPHYSADDR(a) | KSEG1)
+#define CKSEG2ADDR(a)          (CPHYSADDR(a) | KSEG2)
+#define CKSEG3ADDR(a)          (CPHYSADDR(a) | KSEG3)
+
+/*
+ * Map an address to a certain kernel segment
+ */
+#define KSEG0ADDR(a)           (CPHYSADDR(a) | KSEG0)
+#define KSEG1ADDR(a)           (CPHYSADDR(a) | KSEG1)
+#define KSEG2ADDR(a)           (CPHYSADDR(a) | KSEG2)
+#define KSEG3ADDR(a)           (CPHYSADDR(a) | KSEG3)
+
+/*
+ * Memory segments (32bit kernel mode addresses)
+ * These are the traditional names used in the 32-bit universe.
+ */
+#define KUSEG                  0x00000000
+#define KSEG0                  0x80000000
+#define KSEG1                  0xa0000000
+#define KSEG2                  0xc0000000
+#define KSEG3                  0xe0000000
+
+#define CKUSEG                 0x00000000
+#define CKSEG0                 0x80000000
+#define CKSEG1                 0xa0000000
+#define CKSEG2                 0xc0000000
+#define CKSEG3                 0xe0000000
+
+#endif
+
 /*
  * Cache modes for XKPHYS address conversion macros
  */
index 1d927d07cf14fc76d63f7e7f790385b1f855220d..ac8823df255461a30d9a8b91538a5b9704a70b05 100644 (file)
@@ -12,8 +12,8 @@
 #include <asm/fpregdef.h>
 #include <asm/mipsregs.h>
 
-       .macro  fpu_save_double thread tmp=t0
-       cfc1    \tmp,  fcr31
+       .macro  fpu_save_double thread status tmp1=t0 tmp2
+       cfc1    \tmp1,  fcr31
        sdc1    $f0,  THREAD_FPR0(\thread)
        sdc1    $f2,  THREAD_FPR2(\thread)
        sdc1    $f4,  THREAD_FPR4(\thread)
@@ -30,7 +30,7 @@
        sdc1    $f26, THREAD_FPR26(\thread)
        sdc1    $f28, THREAD_FPR28(\thread)
        sdc1    $f30, THREAD_FPR30(\thread)
-       sw      \tmp, THREAD_FCR31(\thread)
+       sw      \tmp1, THREAD_FCR31(\thread)
        .endm
 
        .macro  fpu_save_single thread tmp=t0
index 10b71cc877bc1711dddfae0b35187f38402b4b44..bbed35511f5a79d61b22437de45d6a1c96a86ca4 100644 (file)
@@ -15,6 +15,7 @@
 
        .macro  fpu_save_16even thread tmp=t0
        cfc1    \tmp, fcr31
+       sdc1    $f0,  THREAD_FPR0(\thread)
        sdc1    $f2,  THREAD_FPR2(\thread)
        sdc1    $f4,  THREAD_FPR4(\thread)
        sdc1    $f6,  THREAD_FPR6(\thread)
        sdc1    $f31, THREAD_FPR31(\thread)
        .endm
 
+       .macro  fpu_save_double thread status tmp1 tmp2
+       sll     \tmp2, \tmp1, 5
+       bgez    \tmp2, 2f
+       fpu_save_16odd \thread
+2:
+       fpu_save_16even \thread \tmp1                   # clobbers t1
+       .endm
+
        .macro  fpu_restore_16even thread tmp=t0
        lw      \tmp, THREAD_FCR31(\thread)
        ldc1    $f0,  THREAD_FPR0(\thread)
        ldc1    $f31, THREAD_FPR31(\thread)
        .endm
 
+       .macro  fpu_restore_double thread tmp
+       mfc0    t0, CP0_STATUS
+       sll     t1, t0, 5
+       bgez    t1, 1f                          # 16 register mode?
+
+       fpu_restore_16odd a0
+1:     fpu_restore_16even a0, t0               # clobbers t0
+       .endm
+
        .macro  cpu_save_nonscratch thread
        LONG_S  s0, THREAD_REG16(\thread)
        LONG_S  s1, THREAD_REG17(\thread)
index c8c6a5a8c5aa7aa42de1f660189b5a629dcbb571..7d89e87bc8c6fd9544ef3b247f57421248741396 100644 (file)
@@ -23,6 +23,9 @@
 #ifndef _ASM_ATOMIC_H
 #define _ASM_ATOMIC_H
 
+#include <asm/cpu-features.h>
+#include <asm/war.h>
+
 extern spinlock_t atomic_lock;
 
 typedef struct { volatile int counter; } atomic_t;
@@ -46,8 +49,6 @@ typedef struct { volatile int counter; } atomic_t;
  */
 #define atomic_set(v,i)                ((v)->counter = (i))
 
-#ifdef CONFIG_CPU_HAS_LLSC
-
 /*
  * atomic_add - add integer to atomic variable
  * @i: integer value to add
@@ -57,15 +58,33 @@ typedef struct { volatile int counter; } atomic_t;
  */
 static __inline__ void atomic_add(int i, atomic_t * v)
 {
-       unsigned long temp;
-
-       __asm__ __volatile__(
-       "1:     ll      %0, %1          # atomic_add            \n"
-       "       addu    %0, %2                                  \n"
-       "       sc      %0, %1                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       : "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter));
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %0, %1          # atomic_add            \n"
+               "       addu    %0, %2                                  \n"
+               "       sc      %0, %1                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %0, %1          # atomic_add            \n"
+               "       addu    %0, %2                                  \n"
+               "       sc      %0, %1                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               v->counter += i;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 }
 
 /*
@@ -77,15 +96,33 @@ static __inline__ void atomic_add(int i, atomic_t * v)
  */
 static __inline__ void atomic_sub(int i, atomic_t * v)
 {
-       unsigned long temp;
-
-       __asm__ __volatile__(
-       "1:     ll      %0, %1          # atomic_sub            \n"
-       "       subu    %0, %2                                  \n"
-       "       sc      %0, %1                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       : "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter));
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %0, %1          # atomic_sub            \n"
+               "       subu    %0, %2                                  \n"
+               "       sc      %0, %1                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %0, %1          # atomic_sub            \n"
+               "       subu    %0, %2                                  \n"
+               "       sc      %0, %1                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               v->counter -= i;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 }
 
 /*
@@ -93,36 +130,86 @@ static __inline__ void atomic_sub(int i, atomic_t * v)
  */
 static __inline__ int atomic_add_return(int i, atomic_t * v)
 {
-       unsigned long temp, result;
-
-       __asm__ __volatile__(
-       "1:     ll      %1, %2          # atomic_add_return     \n"
-       "       addu    %0, %1, %3                              \n"
-       "       sc      %0, %2                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       "       addu    %0, %1, %3                              \n"
-       "       sync                                            \n"
-       : "=&r" (result), "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter)
-       : "memory");
+       unsigned long result;
+
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # atomic_add_return     \n"
+               "       addu    %0, %1, %3                              \n"
+               "       sc      %0, %2                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               "       addu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # atomic_add_return     \n"
+               "       addu    %0, %1, %3                              \n"
+               "       sc      %0, %2                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               "       addu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               result = v->counter;
+               result += i;
+               v->counter = result;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 
        return result;
 }
 
 static __inline__ int atomic_sub_return(int i, atomic_t * v)
 {
-       unsigned long temp, result;
-
-       __asm__ __volatile__(
-       "1:     ll      %1, %2          # atomic_sub_return     \n"
-       "       subu    %0, %1, %3                              \n"
-       "       sc      %0, %2                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       "       subu    %0, %1, %3                              \n"
-       "       sync                                            \n"
-       : "=&r" (result), "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter)
-       : "memory");
+       unsigned long result;
+
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # atomic_sub_return     \n"
+               "       subu    %0, %1, %3                              \n"
+               "       sc      %0, %2                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               "       subu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # atomic_sub_return     \n"
+               "       subu    %0, %1, %3                              \n"
+               "       sc      %0, %2                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               "       subu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               result = v->counter;
+               result -= i;
+               v->counter = result;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 
        return result;
 }
@@ -136,112 +223,50 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
  */
 static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
 {
-       unsigned long temp, result;
-
-       __asm__ __volatile__(
-       "1:     ll      %1, %2          # atomic_sub_if_positive\n"
-       "       subu    %0, %1, %3                              \n"
-       "       bltz    %0, 1f                                  \n"
-       "       sc      %0, %2                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       "       sync                                            \n"
-       "1:                                                     \n"
-       : "=&r" (result), "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter)
-       : "memory");
+       unsigned long result;
+
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # atomic_sub_if_positive\n"
+               "       subu    %0, %1, %3                              \n"
+               "       bltz    %0, 1f                                  \n"
+               "       sc      %0, %2                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               "       sync                                            \n"
+               "1:                                                     \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # atomic_sub_if_positive\n"
+               "       subu    %0, %1, %3                              \n"
+               "       bltz    %0, 1f                                  \n"
+               "       sc      %0, %2                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               "       sync                                            \n"
+               "1:                                                     \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               result = v->counter;
+               result -= i;
+               if (result >= 0)
+                       v->counter = result;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 
        return result;
 }
 
-#else
-
-/*
- * The MIPS I implementation is only atomic with respect to
- * interrupts.  R3000 based multiprocessor machines are rare anyway ...
- *
- * atomic_add - add integer to atomic variable
- * @i: integer value to add
- * @v: pointer of type atomic_t
- *
- * Atomically adds @i to @v.
- */
-static __inline__ void atomic_add(int i, atomic_t * v)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       v->counter += i;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-}
-
-/*
- * atomic_sub - subtract the atomic variable
- * @i: integer value to subtract
- * @v: pointer of type atomic_t
- *
- * Atomically subtracts @i from @v.
- */
-static __inline__ void atomic_sub(int i, atomic_t * v)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       v->counter -= i;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-}
-
-static __inline__ int atomic_add_return(int i, atomic_t * v)
-{
-       unsigned long flags;
-       int temp;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       temp = v->counter;
-       temp += i;
-       v->counter = temp;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-
-       return temp;
-}
-
-static __inline__ int atomic_sub_return(int i, atomic_t * v)
-{
-       unsigned long flags;
-       int temp;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       temp = v->counter;
-       temp -= i;
-       v->counter = temp;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-
-       return temp;
-}
-
-/*
- * atomic_sub_if_positive - add integer to atomic variable
- * @v: pointer of type atomic_t
- *
- * Atomically test @v and decrement if it is greater than 0.
- * The function returns the old value of @v minus 1.
- */
-static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
-{
-       unsigned long flags;
-       int temp;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       temp = v->counter;
-       temp -= i;
-       if (temp >= 0)
-               v->counter = temp;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-
-       return temp;
-}
-
-#endif /* CONFIG_CPU_HAS_LLSC */
-
 #define atomic_dec_return(v) atomic_sub_return(1,(v))
 #define atomic_inc_return(v) atomic_add_return(1,(v))
 
@@ -329,8 +354,6 @@ typedef struct { volatile __s64 counter; } atomic64_t;
  */
 #define atomic64_set(v,i)      ((v)->counter = (i))
 
-#ifdef CONFIG_CPU_HAS_LLDSCD
-
 /*
  * atomic64_add - add integer to atomic variable
  * @i: integer value to add
@@ -340,15 +363,33 @@ typedef struct { volatile __s64 counter; } atomic64_t;
  */
 static __inline__ void atomic64_add(long i, atomic64_t * v)
 {
-       unsigned long temp;
-
-       __asm__ __volatile__(
-       "1:     lld     %0, %1          # atomic64_add          \n"
-       "       addu    %0, %2                                  \n"
-       "       scd     %0, %1                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       : "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter));
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %0, %1          # atomic64_add          \n"
+               "       addu    %0, %2                                  \n"
+               "       scd     %0, %1                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %0, %1          # atomic64_add          \n"
+               "       addu    %0, %2                                  \n"
+               "       scd     %0, %1                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               v->counter += i;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 }
 
 /*
@@ -360,15 +401,33 @@ static __inline__ void atomic64_add(long i, atomic64_t * v)
  */
 static __inline__ void atomic64_sub(long i, atomic64_t * v)
 {
-       unsigned long temp;
-
-       __asm__ __volatile__(
-       "1:     lld     %0, %1          # atomic64_sub          \n"
-       "       subu    %0, %2                                  \n"
-       "       scd     %0, %1                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       : "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter));
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %0, %1          # atomic64_sub          \n"
+               "       subu    %0, %2                                  \n"
+               "       scd     %0, %1                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %0, %1          # atomic64_sub          \n"
+               "       subu    %0, %2                                  \n"
+               "       scd     %0, %1                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter));
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               v->counter -= i;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 }
 
 /*
@@ -376,36 +435,86 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v)
  */
 static __inline__ long atomic64_add_return(long i, atomic64_t * v)
 {
-       unsigned long temp, result;
-
-       __asm__ __volatile__(
-       "1:     lld     %1, %2          # atomic64_add_return   \n"
-       "       addu    %0, %1, %3                              \n"
-       "       scd     %0, %2                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       "       addu    %0, %1, %3                              \n"
-       "       sync                                            \n"
-       : "=&r" (result), "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter)
-       : "memory");
+       unsigned long result;
+
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %1, %2          # atomic64_add_return   \n"
+               "       addu    %0, %1, %3                              \n"
+               "       scd     %0, %2                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               "       addu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %1, %2          # atomic64_add_return   \n"
+               "       addu    %0, %1, %3                              \n"
+               "       scd     %0, %2                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               "       addu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               result = v->counter;
+               result += i;
+               v->counter = result;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 
        return result;
 }
 
 static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
 {
-       unsigned long temp, result;
-
-       __asm__ __volatile__(
-       "1:     lld     %1, %2          # atomic64_sub_return   \n"
-       "       subu    %0, %1, %3                              \n"
-       "       scd     %0, %2                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       "       subu    %0, %1, %3                              \n"
-       "       sync                                            \n"
-       : "=&r" (result), "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter)
-       : "memory");
+       unsigned long result;
+
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %1, %2          # atomic64_sub_return   \n"
+               "       subu    %0, %1, %3                              \n"
+               "       scd     %0, %2                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               "       subu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %1, %2          # atomic64_sub_return   \n"
+               "       subu    %0, %1, %3                              \n"
+               "       scd     %0, %2                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               "       subu    %0, %1, %3                              \n"
+               "       sync                                            \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               result = v->counter;
+               result -= i;
+               v->counter = result;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 
        return result;
 }
@@ -419,112 +528,50 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
  */
 static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
 {
-       unsigned long temp, result;
-
-       __asm__ __volatile__(
-       "1:     lld     %1, %2          # atomic64_sub_if_positive\n"
-       "       dsubu   %0, %1, %3                              \n"
-       "       bltz    %0, 1f                                  \n"
-       "       scd     %0, %2                                  \n"
-       "       beqz    %0, 1b                                  \n"
-       "       sync                                            \n"
-       "1:                                                     \n"
-       : "=&r" (result), "=&r" (temp), "=m" (v->counter)
-       : "Ir" (i), "m" (v->counter)
-       : "memory");
+       unsigned long result;
+
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %1, %2          # atomic64_sub_if_positive\n"
+               "       dsubu   %0, %1, %3                              \n"
+               "       bltz    %0, 1f                                  \n"
+               "       scd     %0, %2                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               "       sync                                            \n"
+               "1:                                                     \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     lld     %1, %2          # atomic64_sub_if_positive\n"
+               "       dsubu   %0, %1, %3                              \n"
+               "       bltz    %0, 1f                                  \n"
+               "       scd     %0, %2                                  \n"
+               "       beqz    %0, 1b                                  \n"
+               "       sync                                            \n"
+               "1:                                                     \n"
+               : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+               : "Ir" (i), "m" (v->counter)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               spin_lock_irqsave(&atomic_lock, flags);
+               result = v->counter;
+               result -= i;
+               if (result >= 0)
+                       v->counter = result;
+               spin_unlock_irqrestore(&atomic_lock, flags);
+       }
 
        return result;
 }
 
-#else
-
-/*
- * This implementation is only atomic with respect to interrupts.  It can't
- * be used on SMP
- *
- * atomic64_add - add integer to atomic variable
- * @i: integer value to add
- * @v: pointer of type atomic64_t
- *
- * Atomically adds @i to @v.
- */
-static __inline__ void atomic64_add(long i, atomic64_t * v)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       v->counter += i;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-}
-
-/*
- * atomic64_sub - subtract the atomic variable
- * @i: integer value to subtract
- * @v: pointer of type atomic64_t
- *
- * Atomically subtracts @i from @v.
- */
-static __inline__ void atomic64_sub(long i, atomic64_t * v)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       v->counter -= i;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-}
-
-static __inline__ long atomic64_add_return(long i, atomic64_t * v)
-{
-       unsigned long flags;
-       long temp;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       temp = v->counter;
-       temp += i;
-       v->counter = temp;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-
-       return temp;
-}
-
-static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
-{
-       unsigned long flags;
-       long temp;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       temp = v->counter;
-       temp -= i;
-       v->counter = temp;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-
-       return temp;
-}
-
-/*
- * atomic64_sub_if_positive - add integer to atomic variable
- * @v: pointer of type atomic64_t
- *
- * Atomically test @v and decrement if it is greater than 0.
- * The function returns the old value of @v minus 1.
- */
-static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
-{
-       unsigned long flags;
-       long temp;
-
-       spin_lock_irqsave(&atomic_lock, flags);
-       temp = v->counter;
-       temp -= i;
-       if (temp >= 0)
-               v->counter = temp;
-       spin_unlock_irqrestore(&atomic_lock, flags);
-
-       return temp;
-}
-
-#endif /* CONFIG_CPU_HAS_LLDSCD */
-
 #define atomic64_dec_return(v) atomic64_sub_return(1,(v))
 #define atomic64_inc_return(v) atomic64_add_return(1,(v))
 
diff --git a/include/asm-mips/baget/baget.h b/include/asm-mips/baget/baget.h
deleted file mode 100644 (file)
index d3f0256..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * baget.h: Definitions specific to Baget/MIPS machines.
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#ifndef _MIPS_BAGET_H
-#define _MIPS_BAGET_H
-
-#include "vic.h"
-#include "vac.h"
-
-#define VIC_BASE         0xBFFC0000
-#define VAC_BASE         0xBFFD0000
-
-
-/* Baget interrupt registers and their sizes */
-
-struct  baget_int_reg {
-       unsigned long address;
-       int size;  /* in bytes */
-};
-#define BAGET_INT_NONE   {0,0}
-
-#define BAGET_INT0_ACK   {0xbffa0003,1}
-#define BAGET_INT1_ACK   {0xbffa0008,4}
-#define BAGET_INT5_ACK   {0xbff00000,1}
-
-#define BAGET_WRERR_ACK  ((volatile char*)0xbff00000)
-
-
-/* Baget address spaces */
-
-#define BAGET_A24M_BASE       0xFC000000      /* VME-master A24 base address  */
-#define BAGET_A24S_BASE       0x00000000      /* VME-slave A24 base address   */
-#define BAGET_A24S_MASK       0x00c00000      /* VME-slave A24 address mask   */
-#define BAGET_GSW_BASE        0xf000          /* global switches address base */
-#define BAGET_MSW_BASE(P) (0xe000+(P)*0x100)  /* module switches address base */
-
-#define BAGET_LED_BASE  ((volatile short *)(0xbffd0000 + 0x00001800))
-
-#define BAGET_PIL_NR            8
-#define BAGET_IRQ_NR            NR_IRQS /* 64 */
-#define BAGET_IRQ_MASK(x)       ((NR_IRQS-1) & (x))
-
-#define BAGET_FPU_IRQ           0x26
-#define BAGET_VIC_TIMER_IRQ     0x32
-#define BAGET_VAC_TIMER_IRQ     0x36
-#define BAGET_BSM_IRQ           0x3C
-
-#define BAGET_LANCE_MEM_BASE    0xfcf10000
-#define BAGET_LANCE_MEM_SIZE    0x10000
-#define BAGET_LANCE_IO_BASE     0xbffeff00
-
-#define BALO_OFFSET     0x400000 /* sync with ld.script.balo  */
-#define BALO_SIZE       0x200000 /* sync with image segs size */
-
-/* move it to the right place, somehere in include/asm */
-#define CAUSE_DBE       0x1C
-#define CAUSE_MASK      0x7C
-
-/* Simple debug fascilities */
-extern void outc(char);
-extern void outs(char *);
-extern void baget_write(char *s, int l);
-extern int  baget_printk(const char *, ...);
-extern void balo_printf( char *f, ... );
-extern void balo_hungup(void);
-
-#endif /* !(_MIPS_BAGET_H) */
diff --git a/include/asm-mips/baget/vac.h b/include/asm-mips/baget/vac.h
deleted file mode 100644 (file)
index 5ca62dc..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * vac.h: Various VIC controller defines.  The VIC is a VME controller
- *        used in Baget/MIPS series.
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#ifndef _ASM_VAC_H
-#define _ASM_VAC_H
-
-#define VAC_SLSEL1_MASK      0x000
-#define VAC_SLSEL1_BASE      0x100
-#define VAC_SLSEL0_MASK      0x200
-#define VAC_SLSEL0_BASE      0x300
-#define VAC_ICFSEL_BASE      0x400
-#define VAC_ICFSEL_GLOBAL_VAL(x) (((x)>>8)&0xff)
-#define VAC_ICFSEL_MODULE_VAL(x) ((x)&0xff)
-#define VAC_DRAM_MASK        0x500
-#define VAC_BNDR2            0x600
-#define VAC_BNDR3            0x700
-#define VAC_A24_BASE         0x800
-#define    VAC_A24_MASK          (0x3f<<9)
-#define    VAC_A24_D32_ENABLE    (1<<8)
-#define    VAC_A24_A24_CACHINH   (1<<7)
-#define    VAC_A24_A16D32_ENABLE (1<<6)
-#define    VAC_A24_A16D32        (1<<5)
-#define    VAC_A24_DATAPATH      (1<<4)
-#define    VAC_A24_IO_CACHINH    (1<<3)
-#define VAC_REG1             0x900
-#define VAC_REG2             0xA00
-#define VAC_REG3             0xB00
-#define    VAC_REG_WORD      (1<<15)
-#define    VAC_REG_ASIZ1     (1<<14)
-#define    VAC_REG_ASIZ0     (1<<13)
-#define    VAC_REG_ASIZ_VAL(x) (((x)>>13)&3)
-#define    VAC_REG_CACHINH   (1<<12)
-#define    VAC_REG_INACTIVE  (0<<10)
-#define    VAC_REG_SHARED    (1<<10)
-#define    VAC_REG_VSB       (2<<10)
-#define    VAC_REG_MWB       (3<<10)
-#define    VAC_REG_MASK      (3<<10)
-#define    VAC_REG_MODE(x)   (((x)>>10)&3)
-#define VAC_IOSEL4_CTRL      0xC00
-#define VAC_IOSEL5_CTRL      0xD00
-#define VAC_SHRCS_CTRL       0xE00
-#define VAC_EPROMCS_CTRL     0xF00
-#define VAC_IOSEL0_CTRL      0x1000
-#define VAC_IOSEL1_CTRL      0x1100
-#define VAC_IOSEL2_CTRL      0x1200
-#define VAC_IOSEL3_CTRL      0x1300
-#define    VAC_CTRL_IOWR               (1<<0)
-#define    VAC_CTRL_IORD               (1<<1)
-#define    VAC_CTRL_DELAY_IOSELI(x)    (((x)&3)<<2)
-#define    VAC_CTRL_DELAY_IOSELI_VAL(x) (((x)>>2)&3)
-#define    VAC_CTRL_DELAY_IOWR(x)      (((x)&3)<<4)
-#define    VAC_CTRL_DELAY_IOWR_VAL(x)  (((x)>>4)&3)
-#define    VAC_CTRL_DELAY_IORD(x)      (((x)&3)<<6)
-#define    VAC_CTRL_DELAY_IORD_VAL(x)  (((x)>>6)&3)
-#define    VAC_CTRL_RECOVERY_IOSELI(x) ((((x)-1)&7)<<8)
-#define    VAC_CTRL_RECOVERY_IOSELI_VAL(x) ((((x)>>8)&7)+1)
-#define    VAC_CTRL_DSACK0             (1<<11)
-#define    VAC_CTRL_DSACK1             (1<<12)
-#define    VAC_CTRL_DELAY_DSACKI(x)    ((((x)-1)&7)<<13)
-#define    VAC_CTRL_DELAY_DSACKI_VAL(x) ((((x)>>13)&7)+1)
-#define VAC_DECODE_CTRL      0x1400
-#define    VAC_DECODE_FPUCS   (1<<0)
-#define    VAC_DECODE_CPUCLK(x)  (((x)&3)<<1)
-#define    VAC_DECODE_CPUCLK_VAL(x) (((x)>>1)&3)
-#define    VAC_DECODE_RDR_SLSEL0 (1<<3)
-#define    VAC_DECODE_RDR_SLSEL1 (1<<4)
-#define    VAC_DECODE_DSACK   (1<<5)
-#define    VAC_DECODE_QFY_BNDR    (1<<6)
-#define    VAC_DECODE_QFY_ICFSEL  (1<<7)
-#define    VAC_DECODE_QFY_SLSEL1  (1<<8)
-#define    VAC_DECODE_QFY_SLSEL0  (1<<9)
-#define    VAC_DECODE_CMP_SLSEL1_LO  (1<<10)
-#define    VAC_DECODE_CMP_SLSEL1_HI  (1<<11)
-#define    VAC_DECODE_CMP_SLSEL1_VAL(x) (((x)>>10)&3)
-#define    VAC_DECODE_DRAMCS  (3<<12)
-#define    VAC_DECODE_SHRCS   (2<<12)
-#define    VAC_DECODE_VSBSEL  (1<<12)
-#define    VAC_DECODE_EPROMCS (0<<12)
-#define    VAC_DECODE_MODE_VAL(x) (((x)>>12)&3)
-#define    VAC_DECODE_QFY_DRAMCS  (1<<14)
-#define    VAC_DECODE_DSACKI  (1<<15)
-#define VAC_INT_STATUS       0x1500
-#define VAC_INT_CTRL         0x1600
-#define    VAC_INT_CTRL_TIMER_PIO11    (3<<0)
-#define    VAC_INT_CTRL_TIMER_PIO10    (2<<0)
-#define    VAC_INT_CTRL_TIMER_PIO7     (1<<0)
-#define    VAC_INT_CTRL_TIMER_DISABLE  (0<<0)
-#define    VAC_INT_CTRL_TIMER_MASK     (3<<0)
-#define    VAC_INT_CTRL_UART_B_PIO11   (3<<2)
-#define    VAC_INT_CTRL_UART_B_PIO10   (2<<2)
-#define    VAC_INT_CTRL_UART_B_PIO7    (1<<2)
-#define    VAC_INT_CTRL_UART_B_DISABLE (0<<2)
-#define    VAC_INT_CTRL_UART_A_PIO11   (3<<4)
-#define    VAC_INT_CTRL_UART_A_PIO10   (2<<4)
-#define    VAC_INT_CTRL_UART_A_PIO7    (1<<4)
-#define    VAC_INT_CTRL_UART_A_DISABLE (0<<4)
-#define    VAC_INT_CTRL_MBOX_PIO11     (3<<6)
-#define    VAC_INT_CTRL_MBOX_PIO10     (2<<6)
-#define    VAC_INT_CTRL_MBOX_PIO7      (1<<6)
-#define    VAC_INT_CTRL_MBOX_DISABLE   (0<<6)
-#define    VAC_INT_CTRL_PIO4_PIO11     (3<<8)
-#define    VAC_INT_CTRL_PIO4_PIO10     (2<<8)
-#define    VAC_INT_CTRL_PIO4_PIO7      (1<<8)
-#define    VAC_INT_CTRL_PIO4_DISABLE   (0<<8)
-#define    VAC_INT_CTRL_PIO7_PIO11     (3<<10)
-#define    VAC_INT_CTRL_PIO7_PIO10     (2<<10)
-#define    VAC_INT_CTRL_PIO7_PIO7      (1<<10)
-#define    VAC_INT_CTRL_PIO7_DISABLE   (0<<10)
-#define    VAC_INT_CTRL_PIO8_PIO11     (3<<12)
-#define    VAC_INT_CTRL_PIO8_PIO10     (2<<12)
-#define    VAC_INT_CTRL_PIO8_PIO7      (1<<12)
-#define    VAC_INT_CTRL_PIO8_DISABLE   (0<<12)
-#define    VAC_INT_CTRL_PIO9_PIO11     (3<<14)
-#define    VAC_INT_CTRL_PIO9_PIO10     (2<<14)
-#define    VAC_INT_CTRL_PIO9_PIO7      (1<<14)
-#define    VAC_INT_CTRL_PIO9_DISABLE   (0<<14)
-#define VAC_DEV_LOC          0x1700
-#define    VAC_DEV_LOC_IOSEL(x)   (1<<(x))
-#define VAC_PIO_DATA_OUT     0x1800
-#define VAC_PIO_PIN          0x1900
-#define VAC_PIO_DIRECTION    0x1A00
-#define    VAC_PIO_DIR_OUT(x)     (1<<(x))
-#define    VAC_PIO_DIR_IN(x)      (0<<(x))
-#define    VAC_PIO_DIR_FCIACK     (1<<14)
-#define VAC_PIO_FUNC         0x1B00
-#define    VAC_PIO_FUNC_UART_A_TX (1<<0)
-#define    VAC_PIO_FUNC_UART_A_RX (1<<1)
-#define    VAC_PIO_FUNC_UART_B_TX (1<<2)
-#define    VAC_PIO_FUNC_UART_B_RX (1<<3)
-#define    VAC_PIO_FUNC_IORD      (1<<4)
-#define    VAC_PIO_FUNC_IOWR      (1<<5)
-#define    VAC_PIO_FUNC_IOSEL3    (1<<6)
-#define    VAC_PIO_FUNC_IRQ7      (1<<7)
-#define    VAC_PIO_FUNC_IOSEL4    (1<<8)
-#define    VAC_PIO_FUNC_IOSEL5    (1<<9)
-#define    VAC_PIO_FUNC_IRQ10     (1<<10)
-#define    VAC_PIO_FUNC_IRQ11     (1<<11)
-#define    VAC_PIO_FUNC_OUT       (1<<12)
-#define    VAC_PIO_FUNC_IOSEL2    (1<<13)
-#define    VAC_PIO_FUNC_DELAY     (1<<14)
-#define    VAC_PIO_FUNC_FCIACK    (1<<15)
-#define VAC_CPU_CLK_DIV      0x1C00
-#define VAC_UART_A_MODE      0x1D00
-#define    VAC_UART_MODE_PARITY_ENABLE  (1<<15) /* Inversed in manual ? */
-#define    VAC_UART_MODE_PARITY_ODD     (1<<14) /* Inversed in manual ? */
-#define    VAC_UART_MODE_8BIT_CHAR      (1<<13)
-#define    VAC_UART_MODE_BAUD(x)        (((x)&7)<<10)
-#define    VAC_UART_MODE_CHAR_RX_ENABLE (1<<9)
-#define    VAC_UART_MODE_CHAR_TX_ENABLE (1<<8)
-#define    VAC_UART_MODE_TX_ENABLE      (1<<7)
-#define    VAC_UART_MODE_RX_ENABLE      (1<<6)
-#define    VAC_UART_MODE_SEND_BREAK     (1<<5)
-#define    VAC_UART_MODE_LOOPBACK       (1<<4)
-#define    VAC_UART_MODE_INITIAL        (VAC_UART_MODE_8BIT_CHAR | \
-                                         VAC_UART_MODE_TX_ENABLE | \
-                                         VAC_UART_MODE_RX_ENABLE | \
-                                         VAC_UART_MODE_CHAR_TX_ENABLE | \
-                                         VAC_UART_MODE_CHAR_RX_ENABLE | \
-                                         VAC_UART_MODE_BAUD(5)) /* 9600/4 */
-#define VAC_UART_A_TX        0x1E00
-#define VAC_UART_B_MODE      0x1F00
-#define VAC_UART_A_RX        0x2000
-#define    VAC_UART_RX_ERR_BREAK        (1<<10)
-#define    VAC_UART_RX_ERR_FRAME        (1<<9)
-#define    VAC_UART_RX_ERR_PARITY       (1<<8)
-#define    VAC_UART_RX_DATA_MASK        (0xff)
-#define VAC_UART_B_RX        0x2100
-#define VAC_UART_B_TX        0x2200
-#define VAC_UART_A_INT_MASK  0x2300
-#define    VAC_UART_INT_RX_READY        (1<<15)
-#define    VAC_UART_INT_RX_FULL         (1<<14)
-#define    VAC_UART_INT_RX_BREAK_CHANGE (1<<13)
-#define    VAC_UART_INT_RX_ERRS         (1<<12)
-#define    VAC_UART_INT_TX_READY        (1<<11)
-#define    VAC_UART_INT_TX_EMPTY        (1<<10)
-#define VAC_UART_B_INT_MASK  0x2400
-#define VAC_UART_A_INT_STATUS  0x2500
-#define    VAC_UART_STATUS_RX_READY        (1<<15)
-#define    VAC_UART_STATUS_RX_FULL         (1<<14)
-#define    VAC_UART_STATUS_RX_BREAK_CHANGE (1<<13)
-#define    VAC_UART_STATUS_RX_ERR_PARITY   (1<<12)
-#define    VAC_UART_STATUS_RX_ERR_FRAME    (1<<11)
-#define    VAC_UART_STATUS_RX_ERR_OVERRUN  (1<<10)
-#define    VAC_UART_STATUS_TX_READY        (1<<9)
-#define    VAC_UART_STATUS_TX_EMPTY        (1<<8)
-#define    VAC_UART_STATUS_INTS            (0xff<<8)
-#define VAC_UART_B_INT_STATUS  0x2600
-#define VAC_TIMER_DATA       0x2700
-#define VAC_TIMER_CTRL       0x2800
-#define    VAC_TIMER_ONCE      (1<<15)
-#define    VAC_TIMER_ENABLE    (1<<14)
-#define    VAC_TIMER_PRESCALE(x) (((x)&0x3F)<<8)
-#define VAC_ID               0x2900
-
-
-#ifndef __ASSEMBLY__
-
-#define vac_inb(p)    (*(volatile unsigned char *)(VAC_BASE + (p)))
-#define vac_outb(v,p) (*((volatile unsigned char *)(VAC_BASE + (p))) = v)
-#define vac_inw(p)    (*(volatile unsigned short*)(VAC_BASE + (p)))
-#define vac_outw(v,p) (*((volatile unsigned short*)(VAC_BASE + (p))) = v)
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* _ASM_VAC_H */
diff --git a/include/asm-mips/baget/vic.h b/include/asm-mips/baget/vic.h
deleted file mode 100644 (file)
index c70f303..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * vic.h: Various VIC controller defines.  The VIC is an interrupt controller
- *        used in Baget/MIPS series.
- *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-#ifndef _ASM_BAGET_VIC_H
-#define _ASM_BAGET_VIC_H
-
-#define VIC_VME_II       0x3
-#define VIC_VME_INT1     0x7
-#define VIC_VME_INT2     0xB
-#define VIC_VME_INT3     0xF
-#define VIC_VME_INT4     0x13
-#define VIC_VME_INT5     0x17
-#define VIC_VME_INT6     0x1B
-#define VIC_VME_INT7     0x1F
-#define VIC_DMA_INT      0x23
-#define VIC_LINT1        0x27
-#define VIC_LINT2        0x2B
-#define VIC_LINT3        0x2F
-#define VIC_LINT4        0x33
-#define VIC_LINT5        0x37
-#define VIC_LINT6        0x3B
-#define VIC_LINT7        0x3F
-#define VIC_ICGS_INT     0x43
-#define VIC_ICMS_INT     0x47
-#define    VIC_INT_IPL(lev)  ((~(lev))&0x7)
-#define    VIC_INT_ACTIVE    (1<<3)
-#define    VIC_INT_AUTO      (0<<4)
-#define    VIC_INT_NOAUTO    (1<<4)
-#define    VIC_INT_LEVEL     (0<<5)
-#define    VIC_INT_EDGE      (1<<5)
-#define    VIC_INT_LOW       (0<<6)
-#define    VIC_INT_HIGH      (1<<6)
-#define    VIC_INT_ENABLE    (0<<7)
-#define    VIC_INT_DISABLE   (1<<7)
-#define    VIC_INT_SWITCH(x) (1<<(((x)&0x3)+4))
-#define VIC_ERR_INT      0x4B
-#define    VIC_ERR_INT_SYSFAIL_ACTIVE  (1<<3)
-#define    VIC_ERR_INT_SYSFAIL  (1<<4)
-#define    VIC_ERR_INT_TIMO     (1<<5)
-#define    VIC_ERR_INT_WRPOST   (1<<6)
-#define    VIC_ERR_INT_ACFAIL   (1<<7)
-#define VIC_ICGS_BASE    0x4F
-#define VIC_ICMS_BASE    0x53
-#define    VIC_ICxS_BASE_GSWITCH_MASK 0x3
-#define    VIC_ICxS_BASE_ID(x)  (((x)&0x3f)<<2)
-#define VIC_LOCAL_BASE   0x57
-#define    VIC_LOCAL_BASE_LINT_MASK 0x7
-#define    VIC_LOCAL_BASE_ID(x)  (((x)&0x1f)<<3)
-#define VIC_ERR_BASE     0x5B
-#define    VIC_ERR_BASE_ACFAIL   0
-#define    VIC_ERR_BASE_WRPOST   1
-#define    VIC_ERR_BASE_TIMO     2
-#define    VIC_ERR_BASE_SYSFAIL  3
-#define    VIC_ERR_BASE_VMEACK   4
-#define    VIC_ERR_BASE_DMA      5
-#define    VIC_ERR_BASE_ID(x)  (((x)&0x1f)<<3)
-#define VIC_ICS          0x5F
-#define VIC_IC0          0x63
-#define VIC_IC1          0x67
-#define VIC_IC2          0x6B
-#define VIC_IC3          0x6F
-#define VIC_IC4          0x73
-#define VIC_ID           0x77
-#define VIC_IC6          0x7B
-#define    VIC_IC6_IRESET_STATUS (1<<7)
-#define    VIC_IC6_HALT_STATUS   (1<<6)
-#define    VIC_IC6_SYSRESET   (3<<0)
-#define    VIC_IC6_RESET      (2<<0)
-#define    VIC_IC6_HALT       (1<<0)
-#define    VIC_IC6_RUN        (0<<0)
-#define VIC_IC7          0x7F
-#define    VIC_IC7_SYSFAIL     (1<<7)
-#define    VIC_IC7_RESET       (1<<6)
-#define    VIC_IC7_VME_MASTER  (1<<5)
-#define    VIC_IC7_SEMSET(x)   ((1<<(x))&0x1f)
-#define VIC_VME_REQ      0x83
-#define VIC_VME_BASE1    0x87
-#define VIC_VME_BASE2    0x8B
-#define VIC_VME_BASE3    0x8F
-#define VIC_VME_BASE4    0x93
-#define VIC_VME_BASE5    0x97
-#define VIC_VME_BASE6    0x9B
-#define VIC_VME_BASE7    0x9F
-#define VIC_XFER_TIMO    0xA3
-#define    VIC_XFER_TIMO_VME_PERIOD_INF (7<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_512 (6<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_256 (5<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_128 (4<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_64 (3<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_32 (2<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_16 (1<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_4  (0<<5)
-#define    VIC_XFER_TIMO_VME_PERIOD_VAL(x) (((x)>>5)&7)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_INF (7<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_512 (6<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_256 (5<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_128 (4<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_64 (3<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_32 (2<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_16 (1<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_4  (0<<2)
-#define    VIC_XFER_TIMO_LOCAL_PERIOD_VAL(x) (((x)>>2)&7)
-#define    VIC_XFER_TIMO_ARB  (1<<1)
-#define    VIC_XFER_TIMO_VME  (1<<0)
-#define VIC_LOCAL_TIM    0xA7
-#define    VIC_LOCAL_TIM_PAS_ASSERT(x)   (((x)-2)&0xf)
-#define    VIC_LOCAL_TIM_PAS_ASSERT_VAL(x) (((x)&0xf)+2)
-#define    VIC_LOCAT_TIM_DS_DEASSERT(x)  ((((x)-1)&1)<<4)
-#define    VIC_LOCAT_TIM_DS_DEASSERT_VAL(x)  ((((x)>>4)&1)+1)
-#define    VIC_LOCAL_TIM_PAS_DEASSERT(x) ((((x)-1)&0x7)<<5)
-#define    VIC_LOCAL_TIM_PAS_DEASSERT_VAL(x) ((((x)>>5)&0x7)+1)
-#define VIC_BXFER_DEF    0xAB
-#define    VIC_BXFER_DEF_VME_CROSS    (1<<3)
-#define    VIC_BXFER_DEF_LOCAL_CROSS  (1<<2)
-#define    VIC_BXFER_DEF_AMSR   (1<<1)
-#define    VIC_BXFER_DEF_DUAL   (1<<0)
-#define VIC_IFACE_CFG    0xAF
-#define    VIC_IFACE_CFG_RMC3    (1<<7)
-#define    VIC_IFACE_CFG_RMC2    (1<<6)
-#define    VIC_IFACE_CFG_RMC1    (1<<5)
-#define    VIC_IFACE_CFG_HALT    (1<<4)
-#define    VIC_IFACE_CFG_NOHALT  (0<<4)
-#define    VIC_IFACE_CFG_NORMC   (1<<3)
-#define    VIC_IFACE_CFG_DEADLOCK_VAL(x) (((x)>>3)&3)
-#define    VIC_IFACE_CFG_MSTAB   (1<<2)
-#define    VIC_IFACE_CFG_TURBO   (1<<1)
-#define    VIC_IFACE_CFG_NOTURBO (0<<1)
-#define    VIC_IFACE_CFG_VME     (1<<0)
-#define VIC_REQ_CFG      0xB3
-#define    VIC_REQ_CFG_FAIRNESS_DISABLED  0
-#define    VIC_REQ_CFG_FAIRNESS_ENABLED   1
-#define    VIC_REQ_CFG_TIMO_DISABLED      0xf
-#define    VIC_REQ_CFG_DRAM_REFRESH       (1<<4)
-#define    VIC_REQ_CFG_LEVEL(x)           (((x)&3)<<5)
-#define    VIC_REQ_CFG_PRIO_ARBITRATION   (1<<7)
-#define    VIC_REQ_CFG_RR_ARBITRATION     (0<<7)
-#define VIC_AMS          0xB7
-#define    VIC_AMS_AM_2_0   (1<<7)
-#define    VIC_AMS_AM_5_3   (1<<6)
-#define    VIC_AMS_CODE(x)  ((x)&0x1f)
-#define VIC_BERR_STATUS  0xBB
-#define VIC_DMA_STATUS   0xBF
-#define VIC_SS0CR0       0xC3
-#define VIC_SS1CR0       0xCB
-#define    VIC_SSxCR0_LOCAL_XFER_ACCEL  (2)
-#define    VIC_SSxCR0_LOCAL_XFER_SINGLE (1)
-#define    VIC_SSxCR0_LOCAL_XFER_NONE   (0)
-#define    VIC_SSxCR0_A32       (0<<2)
-#define    VIC_SSxCR0_A24       (1<<2)
-#define    VIC_SSxCR0_A16       (2<<2)
-#define    VIC_SSxCR0_USER      (3<<2)
-#define    VIC_SSxCR0_D32       (1<<4)
-#define    VIC_SSxCR0_SUPER     (1<<5)
-#define    VIC_SS0CR0_TIMER_FREQ_MASK   (3<<6)
-#define    VIC_SS0CR0_TIMER_FREQ_NONE   (0<<6)
-#define    VIC_SS0CR0_TIMER_FREQ_50HZ   (1<<6)
-#define    VIC_SS0CR0_TIMER_FREQ_1000HZ (2<<6)
-#define    VIC_SS0CR0_TIMER_FREQ_100HZ  (3<<6)
-#define    VIC_SS1CR0_MASTER_WRPOST (1<<6)
-#define    VIC_SS1CR0_SLAVE_WRPOST  (1<<7)
-#define VIC_SS0CR1       0xC7
-#define VIC_SS1CR1       0xCF
-#define    VIC_SSxCR1_TF2(x)  (((x)&0xf)<<4)
-#define    VIC_SSxCR1_TF1(x)  ((x)&0xf)
-#define VIC_RELEASE      0xD3
-#define    VIC_RELEASE_BLKXFER_BLEN(x) ((x)&0x1f)
-#define    VIC_RELEASE_ROR             (0<<6)
-#define    VIC_RELEASE_RWD             (1<<6)
-#define    VIC_RELEASE_ROC             (2<<6)
-#define    VIC_RELEASE_BCAP            (3<<6)
-#define VIC_BXFER_CTRL   0xD7
-#define    VIC_BXFER_CTRL_MODULE     (1<<7)
-#define    VIC_BXFER_CTRL_LOCAL      (1<<6)
-#define    VIC_BXFER_CTRL_MOVEM      (1<<5)
-#define    VIC_BXFER_CTRL_READ       (1<<4)
-#define    VIC_BXFER_CTRL_WRITE      (0<<4)
-#define    VIC_BXFER_CTRL_INTERLEAVE(x)  ((x)&0xf)
-#define VIC_BXFER_LEN_LO    0xDB
-#define VIC_BXFER_LEN_HI    0xDF
-#define VIC_SYS_RESET    0xE3
-
-#ifndef __ASSEMBLY__
-
-#define vic_inb(p)    (*(volatile unsigned char *)(VIC_BASE + (p)))
-#define vic_outb(v,p) (*((volatile unsigned char *)(VIC_BASE + (p))) = v)
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* _ASM_BAGET_VIC_H */
index cb06e891d0aa3f1147acbbe948995e26772121a6..3f41f32433b1c975698c51e188d6e8be32f8e0f5 100644 (file)
 #include <linux/compiler.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>             /* sigh ... */
+#include <asm/cpu-features.h>
 
 #if (_MIPS_SZLONG == 32)
 #define SZLONG_LOG 5
 #define SZLONG_MASK 31UL
-#define __LL   "ll"
-#define __SC   "sc"
+#define __LL   "ll     "
+#define __SC   "sc     "
 #define cpu_to_lelongp(x) cpu_to_le32p((__u32 *) (x)) 
 #elif (_MIPS_SZLONG == 64)
 #define SZLONG_LOG 6
 #define SZLONG_MASK 63UL
-#define __LL   "lld"
-#define __SC   "scd"
+#define __LL   "lld    "
+#define __SC   "scd    "
 #define cpu_to_lelongp(x) cpu_to_le64p((__u64 *) (x)) 
 #endif
 
 #ifdef __KERNEL__
 
+#include <asm/interrupt.h>
 #include <asm/sgidefs.h>
-#include <asm/system.h>
+#include <asm/war.h>
 
 /*
  * clear_bit() doesn't provide any barrier for the compiler.
  * Only disable interrupt for kernel mode stuff to keep usermode stuff
  * that dares to use kernel include files alive.
  */
+
 #define __bi_flags                     unsigned long flags
-#define __bi_cli()                     local_irq_disable()
-#define __bi_save_flags(x)             local_save_flags(x)
 #define __bi_local_irq_save(x)         local_irq_save(x)
 #define __bi_local_irq_restore(x)      local_irq_restore(x)
 #else
 #define __bi_flags
-#define __bi_cli()
-#define __bi_save_flags(x)
 #define __bi_local_irq_save(x)
 #define __bi_local_irq_restore(x)
 #endif /* __KERNEL__ */
 
-#ifdef CONFIG_CPU_HAS_LLSC
-
-/*
- * These functions for MIPS ISA > 1 are interrupt and SMP proof and
- * interrupt friendly
- */
-
 /*
  * set_bit - Atomically set a bit in memory
  * @nr: the bit to set
@@ -78,13 +70,33 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
        unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
        unsigned long temp;
 
-       __asm__ __volatile__(
-               "1:\t" __LL "\t%0, %1\t\t# set_bit\n\t"
-               "or\t%0, %2\n\t"
-               __SC "\t%0, %1\n\t"
-               "beqz\t%0, 1b"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1                  # set_bit       \n"
+               "       or      %0, %2                                  \n"
+               "       "__SC   "%0, %1                                 \n"
+               "       beqzl   %0, 1b                                  \n"
                : "=&r" (temp), "=m" (*m)
                : "ir" (1UL << (nr & SZLONG_MASK)), "m" (*m));
+       } else if (cpu_has_llsc) {
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1                  # set_bit       \n"
+               "       or      %0, %2                                  \n"
+               "       "__SC   "%0, %1                                 \n"
+               "       beqz    %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (*m)
+               : "ir" (1UL << (nr & SZLONG_MASK)), "m" (*m));
+       } else {
+               volatile unsigned long *a = addr;
+               unsigned long mask;
+               __bi_flags;
+
+               a += nr >> SZLONG_LOG;
+               mask = 1 << (nr & SZLONG_MASK);
+               __bi_local_irq_save(flags);
+               *a |= mask;
+               __bi_local_irq_restore(flags);
+       }
 }
 
 /*
@@ -118,13 +130,33 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
        unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
        unsigned long temp;
 
-       __asm__ __volatile__(
-               "1:\t" __LL "\t%0, %1\t\t# clear_bit\n\t"
-               "and\t%0, %2\n\t"
-               __SC "\t%0, %1\n\t"
-               "beqz\t%0, 1b\n\t"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1                  # clear_bit     \n"
+               "       and     %0, %2                                  \n"
+               "       " __SC "%0, %1                                  \n"
+               "       beqzl   %0, 1b                                  \n"
+               : "=&r" (temp), "=m" (*m)
+               : "ir" (~(1UL << (nr & SZLONG_MASK))), "m" (*m));
+       } else if (cpu_has_llsc) {
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1                  # clear_bit     \n"
+               "       and     %0, %2                                  \n"
+               "       " __SC "%0, %1                                  \n"
+               "       beqz    %0, 1b                                  \n"
                : "=&r" (temp), "=m" (*m)
                : "ir" (~(1UL << (nr & SZLONG_MASK))), "m" (*m));
+       } else {
+               volatile unsigned long *a = addr;
+               unsigned long mask;
+               __bi_flags;
+
+               a += nr >> SZLONG_LOG;
+               mask = 1 << (nr & SZLONG_MASK);
+               __bi_local_irq_save(flags);
+               *a &= ~mask;
+               __bi_local_irq_restore(flags);
+       }
 }
 
 /*
@@ -154,16 +186,39 @@ static inline void __clear_bit(unsigned long nr, volatile unsigned long * addr)
  */
 static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
 {
-       unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
-       unsigned long temp;
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp;
 
-       __asm__ __volatile__(
-               "1:\t" __LL "\t%0, %1\t\t# change_bit\n\t"
-               "xor\t%0, %2\n\t"
-               __SC "\t%0, %1\n\t"
-               "beqz\t%0, 1b"
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1          # change_bit    \n"
+               "       xor     %0, %2                          \n"
+               "       "__SC   "%0, %1                         \n"
+               "       beqzl   %0, 1b                          \n"
                : "=&r" (temp), "=m" (*m)
                : "ir" (1UL << (nr & SZLONG_MASK)), "m" (*m));
+       } else if (cpu_has_llsc) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp;
+
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1          # change_bit    \n"
+               "       xor     %0, %2                          \n"
+               "       "__SC   "%0, %1                         \n"
+               "       beqz    %0, 1b                          \n"
+               : "=&r" (temp), "=m" (*m)
+               : "ir" (1UL << (nr & SZLONG_MASK)), "m" (*m));
+       } else {
+               volatile unsigned long *a = addr;
+               unsigned long mask;
+               __bi_flags;
+
+               a += nr >> SZLONG_LOG;
+               mask = 1 << (nr & SZLONG_MASK);
+               __bi_local_irq_save(flags);
+               *a ^= mask;
+               __bi_local_irq_restore(flags);
+       }
 }
 
 /*
@@ -193,25 +248,59 @@ static inline void __change_bit(unsigned long nr, volatile unsigned long * addr)
 static inline int test_and_set_bit(unsigned long nr,
        volatile unsigned long *addr)
 {
-       unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
-       unsigned long temp, res;
-
-       __asm__ __volatile__(
-               ".set\tnoreorder\t\t# test_and_set_bit\n"
-               "1:\t" __LL "\t%0, %1\n\t"
-               "or\t%2, %0, %3\n\t"
-               __SC "\t%2, %1\n\t"
-               "beqz\t%2, 1b\n\t"
-               " and\t%2, %0, %3\n\t"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp, res;
+
+               __asm__ __volatile__(
+               "1:     " __LL "%0, %1          # test_and_set_bit      \n"
+               "       or      %2, %0, %3                              \n"
+               "       " __SC  "%2, %1                                 \n"
+               "       beqzl   %2, 1b                                  \n"
+               "       and     %2, %0, %3                              \n"
 #ifdef CONFIG_SMP
-               "sync\n\t"
+               "sync                                                   \n"
+#endif
+               : "=&r" (temp), "=m" (*m), "=&r" (res)
+               : "r" (1UL << (nr & SZLONG_MASK)), "m" (*m)
+               : "memory");
+
+               return res != 0;
+       } else if (cpu_has_llsc) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp, res;
+
+               __asm__ __volatile__(
+               "       .set    noreorder       # test_and_set_bit      \n"
+               "1:     " __LL "%0, %1                                  \n"
+               "       or      %2, %0, %3                              \n"
+               "       " __SC  "%2, %1                                 \n"
+               "       beqz    %2, 1b                                  \n"
+               "        and    %2, %0, %3                              \n"
+#ifdef CONFIG_SMP
+               "sync                                                   \n"
 #endif
                ".set\treorder"
                : "=&r" (temp), "=m" (*m), "=&r" (res)
                : "r" (1UL << (nr & SZLONG_MASK)), "m" (*m)
                : "memory");
 
-       return res != 0;
+               return res != 0;
+       } else {
+               volatile unsigned long *a = addr;
+               unsigned long mask;
+               int retval;
+               __bi_flags;
+
+               a += nr >> SZLONG_LOG;
+               mask = 1 << (nr & SZLONG_MASK);
+               __bi_local_irq_save(flags);
+               retval = (mask & *a) != 0;
+               *a |= mask;
+               __bi_local_irq_restore(flags);
+
+               return retval;
+       }
 }
 
 /*
@@ -249,26 +338,61 @@ static inline int __test_and_set_bit(unsigned long nr,
 static inline int test_and_clear_bit(unsigned long nr,
        volatile unsigned long *addr)
 {
-       unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
-       unsigned long temp, res;
-
-       __asm__ __volatile__(
-               ".set\tnoreorder\t\t# test_and_clear_bit\n"
-               "1:\t" __LL "\t%0, %1\n\t"
-               "or\t%2, %0, %3\n\t"
-               "xor\t%2, %3\n\t"
-               __SC "\t%2, %1\n\t"
-               "beqz\t%2, 1b\n\t"
-               " and\t%2, %0, %3\n\t"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp, res;
+
+               __asm__ __volatile__(
+               "1:     " __LL  "%0, %1         # test_and_clear_bit    \n"
+               "       or      %2, %0, %3                              \n"
+               "       xor     %2, %3                                  \n"
+                       __SC    "%2, %1                                 \n"
+               "       beqzl   %2, 1b                                  \n"
+               "       and     %2, %0, %3                              \n"
 #ifdef CONFIG_SMP
-               "sync\n\t"
+               "       sync                                            \n"
 #endif
-               ".set\treorder"
                : "=&r" (temp), "=m" (*m), "=&r" (res)
                : "r" (1UL << (nr & SZLONG_MASK)), "m" (*m)
                : "memory");
 
-       return res != 0;
+               return res != 0;
+       } else if (cpu_has_llsc) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp, res;
+
+               __asm__ __volatile__(
+               "       .set    noreorder       # test_and_clear_bit    \n"
+               "1:     " __LL  "%0, %1                                 \n"
+               "       or      %2, %0, %3                              \n"
+               "       xor     %2, %3                                  \n"
+                       __SC    "%2, %1                                 \n"
+               "       beqz    %2, 1b                                  \n"
+               "        and    %2, %0, %3                              \n"
+#ifdef CONFIG_SMP
+               "       sync                                            \n"
+#endif
+               "       .set    reorder                                 \n"
+               : "=&r" (temp), "=m" (*m), "=&r" (res)
+               : "r" (1UL << (nr & SZLONG_MASK)), "m" (*m)
+               : "memory");
+
+               return res != 0;
+       } else {
+               volatile unsigned long *a = addr;
+               unsigned long mask;
+               int retval;
+               __bi_flags;
+
+               a += nr >> SZLONG_LOG;
+               mask = 1 << (nr & SZLONG_MASK);
+               __bi_local_irq_save(flags);
+               retval = (mask & *a) != 0;
+               *a &= ~mask;
+               __bi_local_irq_restore(flags);
+
+               return retval;
+       }
 }
 
 /*
@@ -306,322 +430,88 @@ static inline int __test_and_clear_bit(unsigned long nr,
 static inline int test_and_change_bit(unsigned long nr,
        volatile unsigned long *addr)
 {
-       unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
-       unsigned long temp, res;
-
-       __asm__ __volatile__(
-               ".set\tnoreorder\t\t# test_and_change_bit\n"
-               "1:\t" __LL "\t%0, %1\n\t"
-               "xor\t%2, %0, %3\n\t"
-               __SC "\t%2, %1\n\t"
-               "beqz\t%2, 1b\n\t"
-               " and\t%2, %0, %3\n\t"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp, res;
+
+               __asm__ __volatile__(
+               "1:     " __LL  " %0, %1        # test_and_change_bit   \n"
+               "       xor     %2, %0, %3                              \n"
+               "       "__SC   "%2, %1                                 \n"
+               "       beqzl   %2, 1b                                  \n"
+               "       and     %2, %0, %3                              \n"
 #ifdef CONFIG_SMP
-               "sync\n\t"
+               "       sync                                            \n"
 #endif
-               ".set\treorder"
                : "=&r" (temp), "=m" (*m), "=&r" (res)
                : "r" (1UL << (nr & SZLONG_MASK)), "m" (*m)
                : "memory");
 
-       return res != 0;
-}
-
-/*
- * __test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_change_bit(unsigned long nr,
-       volatile unsigned long *addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       int retval;
-
-       a += (nr >> SZLONG_LOG);
-       mask = 1UL << (nr & SZLONG_MASK);
-       retval = ((mask & *a) != 0);
-       *a ^= mask;
-
-       return retval;
-}
-
-#else /* MIPS I */
-
-/*
- * set_bit - Atomically set a bit in memory
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * This function is atomic and may not be reordered.  See __set_bit()
- * if you do not require the atomic guarantees.
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
-static inline void set_bit(unsigned long nr, volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       __bi_flags;
-
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       __bi_local_irq_save(flags);
-       *a |= mask;
-       __bi_local_irq_restore(flags);
-}
-
-/*
- * __set_bit - Set a bit in memory
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * Unlike set_bit(), this function is non-atomic and may be reordered.
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
-static inline void __set_bit(unsigned long nr, volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       *a |= mask;
-}
-
-/*
- * clear_bit - Clears a bit in memory
- * @nr: Bit to clear
- * @addr: Address to start counting from
- *
- * clear_bit() is atomic and may not be reordered.  However, it does
- * not contain a memory barrier, so if it is used for locking purposes,
- * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
- * in order to ensure changes are visible on other processors.
- */
-static inline void clear_bit(unsigned long nr, volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       __bi_flags;
+               return res != 0;
+       } else if (cpu_has_llsc) {
+               unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+               unsigned long temp, res;
+
+               __asm__ __volatile__(
+               "       .set    noreorder       # test_and_change_bit   \n"
+               "1:     " __LL  " %0, %1                                \n"
+               "       xor     %2, %0, %3                              \n"
+               "       "__SC   "\t%2, %1                               \n"
+               "       beqz    %2, 1b                                  \n"
+               "        and    %2, %0, %3                              \n"
+#ifdef CONFIG_SMP
+               "       sync                                            \n"
+#endif
+               "       .set    reorder                                 \n"
+               : "=&r" (temp), "=m" (*m), "=&r" (res)
+               : "r" (1UL << (nr & SZLONG_MASK)), "m" (*m)
+               : "memory");
 
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       __bi_local_irq_save(flags);
-       *a &= ~mask;
-       __bi_local_irq_restore(flags);
-}
+               return res != 0;
+       } else {
+               volatile unsigned long *a = addr;
+               unsigned long mask, retval;
+               __bi_flags;
 
-static inline void __clear_bit(unsigned long nr, volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
+               a += nr >> SZLONG_LOG;
+               mask = 1 << (nr & SZLONG_MASK);
+               __bi_local_irq_save(flags);
+               retval = (mask & *a) != 0;
+               *a ^= mask;
+               __bi_local_irq_restore(flags);
 
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       *a &= ~mask;
+               return retval;
+       }
 }
 
 /*
- * change_bit - Toggle a bit in memory
+ * __test_and_change_bit - Change a bit and return its old value
  * @nr: Bit to change
- * @addr: Address to start counting from
- *
- * change_bit() is atomic and may not be reordered.
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
-static inline void change_bit(unsigned long nr, volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       __bi_flags;
-
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       __bi_local_irq_save(flags);
-       *a ^= mask;
-       __bi_local_irq_restore(flags);
-}
-
-/*
- * __change_bit - Toggle a bit in memory
- * @nr: the bit to change
- * @addr: the address to start counting from
- *
- * Unlike change_bit(), this function is non-atomic and may be reordered.
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
-static inline void __change_bit(unsigned long nr, volatile unsigned long * addr)
-{
-       unsigned long * m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
-
-       *m ^= 1UL << (nr & SZLONG_MASK);
-}
-
-/*
- * test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_set_bit(unsigned long nr,
-       volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       int retval;
-       __bi_flags;
-
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       __bi_local_irq_save(flags);
-       retval = (mask & *a) != 0;
-       *a |= mask;
-       __bi_local_irq_restore(flags);
-
-       return retval;
-}
-
-/*
- * __test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-static inline int __test_and_set_bit(unsigned long nr,
+static inline int __test_and_change_bit(unsigned long nr,
        volatile unsigned long *addr)
 {
        volatile unsigned long *a = addr;
        unsigned long mask;
        int retval;
 
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       retval = (mask & *a) != 0;
-       *a |= mask;
-
-       return retval;
-}
-
-/*
- * test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_clear_bit(unsigned long nr,
-       volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       int retval;
-       __bi_flags;
-
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       __bi_local_irq_save(flags);
-       retval = (mask & *a) != 0;
-       *a &= ~mask;
-       __bi_local_irq_restore(flags);
-
-       return retval;
-}
-
-/*
- * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_clear_bit(unsigned long nr,
-       volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       int retval;
-
        a += (nr >> SZLONG_LOG);
        mask = 1UL << (nr & SZLONG_MASK);
        retval = ((mask & *a) != 0);
-       *a &= ~mask;
-
-       return retval;
-}
-
-/*
- * test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_change_bit(unsigned long nr,
-       volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask, retval;
-       __bi_flags;
-
-       a += nr >> SZLONG_LOG;
-       mask = 1 << (nr & SZLONG_MASK);
-       __bi_local_irq_save(flags);
-       retval = (mask & *a) != 0;
-       *a ^= mask;
-       __bi_local_irq_restore(flags);
-
-       return retval;
-}
-
-/*
- * __test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_change_bit(unsigned long nr,
-       volatile unsigned long * addr)
-{
-       volatile unsigned long *a = addr;
-       unsigned long mask;
-       int retval;
-
-       a += (nr >> SZLONG_LOG);
-       mask = 1 << (nr & SZLONG_MASK);
-       retval = (mask & *a) != 0;
        *a ^= mask;
 
        return retval;
 }
 
 #undef __bi_flags
-#undef __bi_cli
-#undef __bi_save_flags
+#undef __bi_local_irq_save
 #undef __bi_local_irq_restore
 
-#endif /* MIPS I */
-
 /*
  * test_bit - Determine whether a bit is set
  * @nr: bit number to test
index c9c257c201eb03a7a760d1fb519a025fcf505384..9e49d9c71263fb0ee577e06c2fcad92956e51bfc 100644 (file)
 #define  MACH_MOMENCO_OCELOT_G 1
 #define  MACH_MOMENCO_OCELOT_C 2
 #define  MACH_MOMENCO_JAGUAR_ATX 3
+#define  MACH_MOMENCO_OCELOT_3 4
 
 /*
  * Valid machtype for group ITE
 #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 */
+#define  MACH_DB1550           9       /* Au1550-based eval board */
 
 /*
  * Valid machtype for group NEC_VR41XX
index 06542646827223d1df960de5f82b415e13ffb2e0..799beca4e8da903a389f77cab42996fcd15cad8d 100644 (file)
@@ -46,6 +46,7 @@ static inline unsigned int csum_and_copy_to_user (const char *src,
                                                  int len, int sum,
                                                  int *err_ptr)
 {
+       might_sleep();
        sum = csum_partial(src, len, sum);
 
        if (copy_to_user(dst, src, len)) {
index 88ca4d50d42a7a2c075e893e0c3e23329e7e0f4e..38b2116c78d290cad2948ef5910fd90c1955a0d2 100644 (file)
@@ -132,10 +132,10 @@ static inline void *compat_ptr(compat_uptr_t uptr)
 
 static inline void *compat_alloc_user_space(long len)
 {
-       unsigned long sp = (unsigned long) current_thread_info() +
-                           THREAD_SIZE - 32;
+       struct pt_regs *regs = (struct pt_regs *)
+               ((unsigned long) current_thread_info() + THREAD_SIZE - 32) - 1;
 
-       return (void *) (sp - len);
+       return (void *) (regs->regs[29] - len);
 }
 
 #endif /* _ASM_COMPAT_H */
diff --git a/include/asm-mips/compiler.h b/include/asm-mips/compiler.h
new file mode 100644 (file)
index 0000000..169ae26
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2004  Maciej W. Rozycki
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+#ifndef _ASM_COMPILER_H
+#define _ASM_COMPILER_H
+
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#define GCC_REG_ACCUM "$0"
+#else
+#define GCC_REG_ACCUM "accum"
+#endif
+
+#endif /* _ASM_COMPILER_H */
index 1bc8758b39cc75ec10ad5cb9abd6810758d7d41d..ea559a3ba03392b3b3b5b14161392cc1f42de5fd 100644 (file)
@@ -8,6 +8,8 @@
 #ifndef __ASM_CPU_FEATURES_H
 #define __ASM_CPU_FEATURES_H
 
+#include <asm/cpu.h>
+#include <asm/cpu-info.h>
 #include <cpu-feature-overrides.h>
 
 /*
 #define cpu_has_dc_aliases     (cpu_data[0].dcache.flags & MIPS_CACHE_ALIASES)
 #endif
 #ifndef cpu_has_ic_fills_f_dc
-#define cpu_has_ic_fills_f_dc  (cpu_data[0].dcache.flags & MIPS_CACHE_IC_F_DC)
+#define cpu_has_ic_fills_f_dc  (cpu_data[0].icache.flags & MIPS_CACHE_IC_F_DC)
+#endif
+
+/*
+ * Certain CPUs may throw bizarre exceptions if not the whole cacheline
+ * contains valid instructions.  For these we ensure proper alignment of
+ * signal trampolines and pad them to the size of a full cache lines with
+ * nops.  This is also used in structure definitions so can't be a test macro
+ * like the others.
+ */
+#ifndef PLAT_TRAMPOLINE_STUFF_LINE
+#define PLAT_TRAMPOLINE_STUFF_LINE     0UL
 #endif
 
 #ifdef CONFIG_MIPS32
diff --git a/include/asm-mips/cpu-info.h b/include/asm-mips/cpu-info.h
new file mode 100644 (file)
index 0000000..984277a
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * 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 Waldorf GMBH
+ * Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003 Ralf Baechle
+ * Copyright (C) 1996 Paul M. Antoine
+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ */
+#ifndef __ASM_CPU_INFO_H
+#define __ASM_CPU_INFO_H
+
+#include <linux/config.h>
+#include <asm/cache.h>
+
+#ifdef CONFIG_SGI_IP27
+#include <asm/sn/types.h>
+#endif
+
+/*
+ * Descriptor for a cache
+ */
+struct cache_desc {
+       unsigned short linesz;  /* Size of line in bytes */
+       unsigned short ways;    /* Number of ways */
+       unsigned short sets;    /* Number of lines per set */
+       unsigned int waysize;   /* Bytes per way */
+       unsigned int waybit;    /* Bits to select in a cache set */
+       unsigned int flags;     /* Flags describing cache properties */
+};
+
+/*
+ * Flag definitions
+ */
+#define MIPS_CACHE_NOT_PRESENT 0x00000001
+#define MIPS_CACHE_VTAG                0x00000002      /* Virtually tagged cache */
+#define MIPS_CACHE_ALIASES     0x00000004      /* Cache could have aliases */
+#define MIPS_CACHE_IC_F_DC     0x00000008      /* Ic can refill from D-cache */
+
+struct cpuinfo_mips {
+       unsigned long           udelay_val;
+       unsigned long           asid_cache;
+#if defined(CONFIG_SGI_IP27)
+//     cpuid_t         p_cpuid;        /* PROM assigned cpuid */
+       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 */
+#endif
+#if 0
+       unsigned long           loops_per_sec;
+       unsigned long           ipi_count;
+       unsigned long           irq_attempt[NR_IRQS];
+       unsigned long           smp_local_irq_count;
+       unsigned long           prof_multiplier;
+       unsigned long           prof_counter;
+#endif
+
+       /*
+        * Capability and feature descriptor structure for MIPS CPU
+        */
+       unsigned long           options;
+       unsigned int            processor_id;
+       unsigned int            fpu_id;
+       unsigned int            cputype;
+       int                     isa_level;
+       int                     tlbsize;
+       struct cache_desc       icache; /* Primary I-cache */
+       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[];
+#define current_cpu_data cpu_data[smp_processor_id()]
+
+extern void cpu_probe(void);
+extern void cpu_report(void);
+
+#endif /* __ASM_CPU_INFO_H */
index e5466194cade4ac3b7f5f4c2376cac051d3277a0..d71370708cc8b7edfbbd5e8fa843d93bb7f55333 100644 (file)
@@ -1,5 +1,6 @@
 /*
- * Debug macros for run-time debugging.  Turned on/off with CONFIG_RUNTIME_DEBUG option.
+ * Debug macros for run-time debugging.
+ * Turned on/off with CONFIG_RUNTIME_DEBUG option.
  *
  * Copyright (C) 2001 MontaVista Software Inc.
  * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
diff --git a/include/asm-mips/dec/serial.h b/include/asm-mips/dec/serial.h
new file mode 100644 (file)
index 0000000..acad758
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ *     include/asm-mips/dec/serial.h
+ *
+ *     Definitions common to all DECstation serial devices.
+ *
+ *     Copyright (C) 2004  Maciej W. Rozycki
+ *
+ *     Based on bits extracted from drivers/tc/zs.h for which
+ *     the following copyrights apply:
+ *
+ *     Copyright (C) 1995  David S. Miller (davem@caip.rutgers.edu)
+ *     Copyright (C) 1996  Paul Mackerras (Paul.Mackerras@cs.anu.edu.au)
+ *     Copyright (C)       Harald Koerfgen
+ *
+ *     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_MIPS_DEC_SERIAL_H
+#define __ASM_MIPS_DEC_SERIAL_H
+
+struct dec_serial_hook {
+       int (*init_channel)(void *handle);
+       void (*init_info)(void *handle);
+       void (*rx_char)(unsigned char ch, unsigned char fl);
+       int (*poll_rx_char)(void *handle);
+       int (*poll_tx_char)(void *handle, unsigned char ch);
+       unsigned int cflags;
+};
+
+extern int register_dec_serial_hook(unsigned int channel,
+                                   struct dec_serial_hook *hook);
+extern int unregister_dec_serial_hook(unsigned int channel);
+
+#endif /* __ASM_MIPS_DEC_SERIAL_H */
index 91fdf79fd68719ff3118bf941743ed5469746018..d0f68447e5a713ba53fa185e2e44d5c9a009afdf 100644 (file)
@@ -13,6 +13,8 @@
 #include <linux/config.h>
 #include <linux/param.h>
 
+#include <asm/compiler.h>
+
 extern unsigned long loops_per_jiffy;
 
 static inline void __delay(unsigned long loops)
@@ -69,11 +71,13 @@ static inline void __udelay(unsigned long usecs, unsigned long lpj)
        if (sizeof(long) == 4)
                __asm__("multu\t%2, %3"
                : "=h" (usecs), "=l" (lo)
-               : "r" (usecs),"r" (lpj));
+               : "r" (usecs), "r" (lpj)
+               : GCC_REG_ACCUM);
        else if (sizeof(long) == 8)
                __asm__("dmultu\t%2, %3"
                : "=h" (usecs), "=l" (lo)
-               : "r" (usecs),"r" (lpj));
+               : "r" (usecs), "r" (lpj)
+               : GCC_REG_ACCUM);
 
        __delay(usecs);
 }
index 7e7e2ea0d6cf9c47bc61585ad41d8fc8e17f7172..5f7dcf5452e75db5a35ea9b41d8ed0a67fd29d07 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000 Maciej W. Rozycki
+ * Copyright (C) 2000, 2004  Maciej W. Rozycki
  * Copyright (C) 2003 Ralf Baechle
  *
  * This file is subject to the terms and conditions of the GNU General Public
@@ -11,6 +11,8 @@
 
 #if (_MIPS_SZLONG == 32)
 
+#include <asm/compiler.h>
+
 /*
  * No traps on overflows for any of these...
  */
@@ -67,7 +69,8 @@
        if (__high) \
                __asm__("divu   $0, %z2, %z3" \
                        : "=h" (__upper), "=l" (__high) \
-                       : "Jr" (__high), "Jr" (__base)); \
+                       : "Jr" (__high), "Jr" (__base) \
+                       : GCC_REG_ACCUM); \
        \
        __mod = do_div64_32(__low, __upper, __low, __base); \
        \
index 716951187bf08713e9f8a9a082f26f764c6de53b..af28dc88930b40aa59c6c6102e46ac7d5e62ec09 100644 (file)
@@ -68,4 +68,12 @@ extern int dma_is_consistent(dma_addr_t dma_addr);
 extern void dma_cache_sync(void *vaddr, size_t size,
               enum dma_data_direction direction);
 
+#define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY
+
+extern int dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
+       dma_addr_t device_addr, size_t size, int flags);
+extern void dma_release_declared_memory(struct device *dev);
+extern void * dma_mark_declared_memory_occupied(struct device *dev,
+       dma_addr_t device_addr, size_t size);
+
 #endif /* _ASM_DMA_MAPPING_H */
index b86291d8ae80eb56e7d5c29eff4bd25ad6ec57c6..26b6a90a690bbbd472e8f136f882c0cfc1302106 100644 (file)
@@ -14,7 +14,6 @@
 #define _ASM_FIXMAP_H
 
 #include <linux/config.h>
-#include <linux/kernel.h>
 #include <asm/page.h>
 #ifdef CONFIG_HIGHMEM
 #include <linux/threads.h>
index bbc328f248a1aa36b1c34e3012d1a31dc544b517..22f67d4a71abac6831f5d7facdb877e9b4b45051 100644 (file)
@@ -207,6 +207,7 @@ struct gdb_regs {
  * Prototypes
  */
 
+extern int kgdb_enabled;
 void set_debug_traps(void);
 void set_async_breakpoint(unsigned long *epc);
 
index 47a0237ac136dad5c174a11f8743a82df8749d35..8f535d02de1c5b0e127051f79b4506d66c4d6489 100644 (file)
@@ -20,24 +20,6 @@ typedef struct {
 
 #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
 
-#define HARDIRQ_BITS   8
-
-/*
- * The hardirq mask has to be large enough to have
- * space for potentially all IRQ sources in the system
- * nesting on a single CPU:
- */
-#if (1 << HARDIRQ_BITS) < NR_IRQS
-# error HARDIRQ_BITS is too low!
-#endif
-
-#define irq_enter()            (preempt_count() += HARDIRQ_OFFSET)
-#define irq_exit()                                                     \
-do {                                                                   \
-       preempt_count() -= IRQ_EXIT_OFFSET;                     \
-       if (!in_interrupt() && softirq_pending(smp_processor_id())) \
-               do_softirq();                                   \
-       preempt_enable_no_resched();                            \
-} while (0)
+extern void ack_bad_irq(unsigned int irq);
 
 #endif /* _ASM_HARDIRQ_H */
index f70b9362aa9f8633cdc91f0927e5049ce0acb686..4b5f12de55945a8411c1d68f1ddbc7675871cbc7 100644 (file)
@@ -13,7 +13,7 @@
 #ifdef __ASSEMBLY__
 
        .macro  _ssnop
-       sll     $0, $2, 1
+       sll     $0, $0, 1
        .endm
 
 /*
index 8be338b9ac1061e0a834a2420aca07de7ddc9570..c854d017c0e5b2090af5b3bdadc56751b839a504 100644 (file)
@@ -11,8 +11,6 @@
 #include <linux/profile.h>
 #include <asm/atomic.h>
 
-extern void mask_irq(unsigned int irq);
-extern void unmask_irq(unsigned int irq);
 extern void disable_8259A_irq(unsigned int irq);
 extern void enable_8259A_irq(unsigned int irq);
 extern int i8259A_irq_pending(unsigned int irq);
index 1992aac41a8e5371e8e4d7343f9c30777684df1a..bb674c3b0303dfdd9dfec4b0ec5b6be94906b366 100644 (file)
@@ -4,22 +4,10 @@
  * for more details.
  *
  * This file contains the MIPS architecture specific IDE code.
- *
- * Copyright (C) 1994-1996  Linus Torvalds & authors
  */
-
 #ifndef __ASM_IDE_H
 #define __ASM_IDE_H
 
-#ifdef __KERNEL__
-
 #include <ide.h>
 
-#define __ide_mm_insw   ide_insw
-#define __ide_mm_insl   ide_insl
-#define __ide_mm_outsw  ide_outsw
-#define __ide_mm_outsl  ide_outsl
-
-#endif /* __KERNEL__ */
-
 #endif /* __ASM_IDE_H */
diff --git a/include/asm-mips/interrupt.h b/include/asm-mips/interrupt.h
new file mode 100644 (file)
index 0000000..e8357f5
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ * 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, 95, 96, 97, 98, 99, 2003 by Ralf Baechle
+ * Copyright (C) 1996 by Paul M. Antoine
+ * Copyright (C) 1999 Silicon Graphics
+ * Copyright (C) 2000 MIPS Technologies, Inc.
+ */
+#ifndef _ASM_INTERRUPT_H
+#define _ASM_INTERRUPT_H
+
+#include <asm/hazards.h>
+
+__asm__ (
+       ".macro\tlocal_irq_enable\n\t"
+       ".set\tpush\n\t"
+       ".set\treorder\n\t"
+       ".set\tnoat\n\t"
+       "mfc0\t$1,$12\n\t"
+       "ori\t$1,0x1f\n\t"
+       "xori\t$1,0x1e\n\t"
+       "mtc0\t$1,$12\n\t"
+       "irq_enable_hazard\n\t"
+       ".set\tpop\n\t"
+       ".endm");
+
+static inline void local_irq_enable(void)
+{
+       __asm__ __volatile__(
+               "local_irq_enable"
+               : /* no outputs */
+               : /* no inputs */
+               : "memory");
+}
+
+/*
+ * For cli() we have to insert nops to make sure that the new value
+ * has actually arrived in the status register before the end of this
+ * macro.
+ * R4000/R4400 need three nops, the R4600 two nops and the R10000 needs
+ * no nops at all.
+ */
+__asm__ (
+       ".macro\tlocal_irq_disable\n\t"
+       ".set\tpush\n\t"
+       ".set\tnoat\n\t"
+       "mfc0\t$1,$12\n\t"
+       "ori\t$1,1\n\t"
+       "xori\t$1,1\n\t"
+       ".set\tnoreorder\n\t"
+       "mtc0\t$1,$12\n\t"
+       "irq_disable_hazard\n\t"
+       ".set\tpop\n\t"
+       ".endm");
+
+static inline void local_irq_disable(void)
+{
+       __asm__ __volatile__(
+               "local_irq_disable"
+               : /* no outputs */
+               : /* no inputs */
+               : "memory");
+}
+
+__asm__ (
+       ".macro\tlocal_save_flags flags\n\t"
+       ".set\tpush\n\t"
+       ".set\treorder\n\t"
+       "mfc0\t\\flags, $12\n\t"
+       ".set\tpop\n\t"
+       ".endm");
+
+#define local_save_flags(x)                                            \
+__asm__ __volatile__(                                                  \
+       "local_save_flags %0"                                           \
+       : "=r" (x))
+
+__asm__ (
+       ".macro\tlocal_irq_save result\n\t"
+       ".set\tpush\n\t"
+       ".set\treorder\n\t"
+       ".set\tnoat\n\t"
+       "mfc0\t\\result, $12\n\t"
+       "ori\t$1, \\result, 1\n\t"
+       "xori\t$1, 1\n\t"
+       ".set\tnoreorder\n\t"
+       "mtc0\t$1, $12\n\t"
+       "irq_disable_hazard\n\t"
+       ".set\tpop\n\t"
+       ".endm");
+
+#define local_irq_save(x)                                              \
+__asm__ __volatile__(                                                  \
+       "local_irq_save\t%0"                                            \
+       : "=r" (x)                                                      \
+       : /* no inputs */                                               \
+       : "memory")
+
+__asm__ (
+       ".macro\tlocal_irq_restore flags\n\t"
+       ".set\tnoreorder\n\t"
+       ".set\tnoat\n\t"
+       "mfc0\t$1, $12\n\t"
+       "andi\t\\flags, 1\n\t"
+       "ori\t$1, 1\n\t"
+       "xori\t$1, 1\n\t"
+       "or\t\\flags, $1\n\t"
+       "mtc0\t\\flags, $12\n\t"
+       "irq_disable_hazard\n\t"
+       ".set\tat\n\t"
+       ".set\treorder\n\t"
+       ".endm");
+
+#define local_irq_restore(flags)                                       \
+do {                                                                   \
+       unsigned long __tmp1;                                           \
+                                                                       \
+       __asm__ __volatile__(                                           \
+               "local_irq_restore\t%0"                                 \
+               : "=r" (__tmp1)                                         \
+               : "0" (flags)                                           \
+               : "memory");                                            \
+} while(0)
+
+#define irqs_disabled()                                                        \
+({                                                                     \
+       unsigned long flags;                                            \
+       local_save_flags(flags);                                        \
+       !(flags & 1);                                                   \
+})
+
+#endif /* _ASM_INTERRUPT_H */
index c6bd278c5ea0df73c4a4009e343d21843ac65adc..6f7142059080759a0678216e2f5a8026bbe47b9e 100644 (file)
@@ -11,6 +11,7 @@
 #define _ASM_IO_H
 
 #include <linux/config.h>
+#include <linux/compiler.h>
 #include <linux/types.h>
 
 #include <asm/addrspace.h>
@@ -169,9 +170,9 @@ extern unsigned long isa_slot_offset;
 #define page_to_phys(page)     ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
 
 extern void * __ioremap(phys_t offset, phys_t size, unsigned long flags);
-extern void __iounmap(void *addr);
+extern void __iounmap(volatile void __iomem *addr);
 
-static inline void * __ioremap_mode(unsigned long offset, unsigned long size,
+static inline void * __ioremap_mode(phys_t offset, unsigned long size,
        unsigned long flags)
 {
        if (cpu_has_64bit_addresses) {
@@ -236,7 +237,7 @@ static inline void * __ioremap_mode(unsigned long offset, unsigned long size,
 #define ioremap_uncached_accelerated(offset, size)                     \
        __ioremap_mode((offset), (size), _CACHE_UNCACHED_ACCELERATED)
 
-static inline void iounmap(void *addr)
+static inline void iounmap(volatile void __iomem *addr)
 {
        if (cpu_has_64bits)
                return;
@@ -244,9 +245,12 @@ static inline void iounmap(void *addr)
        __iounmap(addr);
 }
 
-#define __raw_readb(addr)      (*(volatile unsigned char *)(addr))
-#define __raw_readw(addr)      (*(volatile unsigned short *)(addr))
-#define __raw_readl(addr)      (*(volatile unsigned int *)(addr))
+#define __raw_readb(addr)                                              \
+       (*(volatile unsigned char *) __swizzle_addr_b((unsigned long)(addr)))
+#define __raw_readw(addr)                                              \
+       (*(volatile unsigned short *) __swizzle_addr_w((unsigned long)(addr)))
+#define __raw_readl(addr)                                              \
+       (*(volatile unsigned int *) __swizzle_addr_l((unsigned long)(addr)))
 #ifdef CONFIG_MIPS32
 #define ____raw_readq(addr)                                            \
 ({                                                                     \
@@ -259,7 +263,7 @@ static inline void iounmap(void *addr)
                "       sll     %L0, %L0, 0                     \n"     \
                "       .set    mips0                           \n"     \
                : "=r" (__res)                                          \
-               : "r" (addr));                                          \
+               : "r" (__swizzle_addr_q((unsigned long)(addr))));       \
        __res;                                                          \
 })
 #define __raw_readq(addr)                                              \
@@ -274,7 +278,8 @@ static inline void iounmap(void *addr)
 })
 #endif
 #ifdef CONFIG_MIPS64
-#define ____raw_readq(addr)    (*(volatile unsigned long *)(addr))
+#define ____raw_readq(addr)                                            \
+       (*(volatile unsigned long *)__swizzle_addr_q((unsigned long)(addr)))
 #define __raw_readq(addr)      ____raw_readq(addr)
 #endif
 
@@ -287,16 +292,24 @@ static inline void iounmap(void *addr)
 #define readl_relaxed(addr)    readl(addr)
 #define readq_relaxed(addr)    readq(addr)
 
-#define __raw_writeb(b,addr)   ((*(volatile unsigned char *)(addr)) = (b))
-#define __raw_writew(w,addr)   ((*(volatile unsigned short *)(addr)) = (w))
-#define __raw_writel(l,addr)   ((*(volatile unsigned int *)(addr)) = (l))
+#define __raw_writeb(b,addr)                                           \
+do {                                                                   \
+       ((*(volatile unsigned char *)__swizzle_addr_b((unsigned long)(addr))) = (b));   \
+} while (0)
 
-/* Depends on MIPS III instruction set */
-#define mmiowb() asm volatile ("sync" ::: "memory")
+#define __raw_writew(w,addr)                                           \
+do {                                                                   \
+       ((*(volatile unsigned short *)__swizzle_addr_w((unsigned long)(addr))) = (w));  \
+} while (0)
+
+#define __raw_writel(l,addr)                                           \
+do {                                                                   \
+       ((*(volatile unsigned int *)__swizzle_addr_l((unsigned long)(addr))) = (l));    \
+} while (0)
 
 #ifdef CONFIG_MIPS32
-#define ____raw_writeq(val,addr)                                               \
-({                                                                     \
+#define ____raw_writeq(val,addr)                                       \
+do {                                                                   \
        u64 __tmp;                                                      \
                                                                        \
        __asm__ __volatile__ (                                          \
@@ -308,19 +321,25 @@ static inline void iounmap(void *addr)
                "       sd      %L0, (%2)                       \n"     \
                "       .set    mips0                           \n"     \
                : "=r" (__tmp)                                          \
-               : "0" ((unsigned long long)val), "r" (addr));           \
-})
+               : "0" ((unsigned long long)val),                        \
+                 "r" (__swizzle_addr_q((unsigned long)(addr))));       \
+} while (0)
+
 #define __raw_writeq(val,addr)                                         \
-({                                                                     \
+do {                                                                   \
        unsigned long __flags;                                          \
                                                                        \
        local_irq_save(__flags);                                        \
        ____raw_writeq(val, addr);                                      \
        local_irq_restore(__flags);                                     \
-})
+} while (0)
 #endif
 #ifdef CONFIG_MIPS64
-#define ____raw_writeq(q,addr) ((*(volatile unsigned long *)(addr)) = (q))
+#define ____raw_writeq(q,addr)                                         \
+do {                                                                   \
+       *(volatile unsigned long *)__swizzle_addr_q((unsigned long)(addr)) = (q);       \
+} while (0)
+
 #define __raw_writeq(q,addr)   ____raw_writeq(q, addr)
 #endif
 
@@ -329,6 +348,9 @@ static inline void iounmap(void *addr)
 #define writel(l,addr)         __raw_writel(__ioswab32(l),(addr))
 #define writeq(q,addr)         __raw_writeq(__ioswab64(q),(addr))
 
+/* Depends on MIPS II instruction set */
+#define mmiowb() asm volatile ("sync" ::: "memory")
+
 #define memset_io(a,b,c)       memset((void *)(a),(b),(c))
 #define memcpy_fromio(a,b,c)   memcpy((a),(void *)(b),(c))
 #define memcpy_toio(a,b,c)     memcpy((void *)(a),(b),(c))
index 8caae23e183df6813a08cc6d046574ddf213d417..556843a9910b600425a3b77ce05cdf3701557bbf 100644 (file)
@@ -1,5 +1,6 @@
 /*
- * Definitions for the SGI O2 Crime chip.
+ * Definitions for the SGI CRIME (CPU, Rendering, Interconnect and Memory
+ * Engine)
  *
  * 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
 #ifndef __ASM_CRIME_H__
 #define __ASM_CRIME_H__
 
-#include <asm/addrspace.h>
-#include <asm/io.h>
-
 /*
  * Address map
  */
 #define CRIME_BASE     0x14000000      /* physical */
 
-extern void *sgi_crime;
-
-static inline uint64_t crime_read(unsigned long offset)
-{
-        return readq(sgi_crime + offset);
-}
-static inline void crime_write(uint64_t val, unsigned long offset)
-{
-       writeq(val, sgi_crime + offset);
-}
-
 #undef BIT
-#define BIT(x) (1UL << (x))
-
-/* All CRIME registers are 64 bits */
-#define CRIME_ID               0x000
-
-#define CRIME_ID_MASK          0xff
-#define CRIME_ID_IDBITS                0xf0
-#define CRIME_ID_IDVALUE       0xa0
-#define CRIME_ID_REV           0x0f
-
-#define CRIME_REV_PETTY                0x00
-#define CRIME_REV_11           0x11
-#define CRIME_REV_13           0x13
-#define CRIME_REV_14           0x14
-
-#define CRIME_CONTROL          0x008
-#define CRIME_CONTROL_MASK     0x3fff
-
-/* CRIME_CONTROL register bits */
+#define BIT(x) (1UL << (x))
+
+struct sgi_crime {
+       volatile unsigned long id;
+#define CRIME_ID_MASK                  0xff
+#define CRIME_ID_IDBITS                        0xf0
+#define CRIME_ID_IDVALUE               0xa0
+#define CRIME_ID_REV                   0x0f
+#define CRIME_REV_PETTY                        0x00
+#define CRIME_REV_11                   0x11
+#define CRIME_REV_13                   0x13
+#define CRIME_REV_14                   0x14
+
+       volatile unsigned long control;
+#define CRIME_CONTROL_MASK             0x3fff
 #define CRIME_CONTROL_TRITON_SYSADC    0x2000
 #define CRIME_CONTROL_CRIME_SYSADC     0x1000
 #define CRIME_CONTROL_HARD_RESET       0x0800
 #define CRIME_CONTROL_SOFT_RESET       0x0400
 #define CRIME_CONTROL_DOG_ENA          0x0200
 #define CRIME_CONTROL_ENDIANESS                0x0100
-
 #define CRIME_CONTROL_ENDIAN_BIG       0x0100
 #define CRIME_CONTROL_ENDIAN_LITTLE    0x0000
-
 #define CRIME_CONTROL_CQUEUE_HWM       0x000f
 #define CRIME_CONTROL_CQUEUE_SHFT      0
 #define CRIME_CONTROL_WBUF_HWM         0x00f0
 #define CRIME_CONTROL_WBUF_SHFT                8
 
-#define CRIME_INT_STAT                 0x010
-#define CRIME_INT_MASK                 0x018
-#define CRIME_SOFT_INT                 0x020
-#define CRIME_HARD_INT                 0x028
-
-/* Bits in CRIME_INT_XXX and CRIME_HARD_INT */
-#define MACE_VID_IN1_INT               BIT (0)
-#define MACE_VID_IN2_INT               BIT (1)
-#define MACE_VID_OUT_INT               BIT (2)
-#define MACE_ETHERNET_INT              BIT (3)
-#define MACE_SUPERIO_INT               BIT (4)
-#define MACE_MISC_INT                  BIT (5)
-#define MACE_AUDIO_INT                 BIT (6)
-#define MACE_PCI_BRIDGE_INT            BIT (7)
-#define MACEPCI_SCSI0_INT              BIT (8)
-#define MACEPCI_SCSI1_INT              BIT (9)
-#define MACEPCI_SLOT0_INT              BIT (10)
-#define MACEPCI_SLOT1_INT              BIT (11)
-#define MACEPCI_SLOT2_INT              BIT (12)
-#define MACEPCI_SHARED0_INT            BIT (13)
-#define MACEPCI_SHARED1_INT            BIT (14)
-#define MACEPCI_SHARED2_INT            BIT (15)
-#define CRIME_GBE0_INT                 BIT (16)
-#define CRIME_GBE1_INT                 BIT (17)
-#define CRIME_GBE2_INT                 BIT (18)
-#define CRIME_GBE3_INT                 BIT (19)
-#define CRIME_CPUERR_INT               BIT (20)
-#define CRIME_MEMERR_INT               BIT (21)
-#define CRIME_RE_EMPTY_E_INT           BIT (22)
-#define CRIME_RE_FULL_E_INT            BIT (23)
-#define CRIME_RE_IDLE_E_INT            BIT (24)
-#define CRIME_RE_EMPTY_L_INT           BIT (25)
-#define CRIME_RE_FULL_L_INT            BIT (26)
-#define CRIME_RE_IDLE_L_INT                    BIT (27)
-#define CRIME_SOFT0_INT                        BIT (28)
-#define CRIME_SOFT1_INT                        BIT (29)
-#define CRIME_SOFT2_INT                        BIT (30)
+       volatile unsigned long istat;
+       volatile unsigned long imask;
+       volatile unsigned long soft_int;
+       volatile unsigned long hard_int;
+#define MACE_VID_IN1_INT               BIT(0)
+#define MACE_VID_IN2_INT               BIT(1)
+#define MACE_VID_OUT_INT               BIT(2)
+#define MACE_ETHERNET_INT              BIT(3)
+#define MACE_SUPERIO_INT               BIT(4)
+#define MACE_MISC_INT                  BIT(5)
+#define MACE_AUDIO_INT                 BIT(6)
+#define MACE_PCI_BRIDGE_INT            BIT(7)
+#define MACEPCI_SCSI0_INT              BIT(8)
+#define MACEPCI_SCSI1_INT              BIT(9)
+#define MACEPCI_SLOT0_INT              BIT(10)
+#define MACEPCI_SLOT1_INT              BIT(11)
+#define MACEPCI_SLOT2_INT              BIT(12)
+#define MACEPCI_SHARED0_INT            BIT(13)
+#define MACEPCI_SHARED1_INT            BIT(14)
+#define MACEPCI_SHARED2_INT            BIT(15)
+#define CRIME_GBE0_INT                 BIT(16)
+#define CRIME_GBE1_INT                 BIT(17)
+#define CRIME_GBE2_INT                 BIT(18)
+#define CRIME_GBE3_INT                 BIT(19)
+#define CRIME_CPUERR_INT               BIT(20)
+#define CRIME_MEMERR_INT               BIT(21)
+#define CRIME_RE_EMPTY_E_INT           BIT(22)
+#define CRIME_RE_FULL_E_INT            BIT(23)
+#define CRIME_RE_IDLE_E_INT            BIT(24)
+#define CRIME_RE_EMPTY_L_INT           BIT(25)
+#define CRIME_RE_FULL_L_INT            BIT(26)
+#define CRIME_RE_IDLE_L_INT                    BIT(27)
+#define CRIME_SOFT0_INT                        BIT(28)
+#define CRIME_SOFT1_INT                        BIT(29)
+#define CRIME_SOFT2_INT                        BIT(30)
 #define CRIME_SYSCORERR_INT            CRIME_SOFT2_INT
-#define CRIME_VICE_INT                 BIT (31)
-
+#define CRIME_VICE_INT                 BIT(31)
 /* Masks for deciding who handles the interrupt */
 #define CRIME_MACE_INT_MASK            0x8f
 #define CRIME_MACEISA_INT_MASK         0x70
 #define CRIME_MACEPCI_INT_MASK         0xff00
 #define CRIME_CRIME_INT_MASK           0xffff0000
 
-#define CRIME_DOG                      0x030
-#define CRIME_DOG_MASK                 0x001fffff
-
-/* CRIME_DOG register bits */
+       volatile unsigned long watchdog;
 #define CRIME_DOG_POWER_ON_RESET       0x00010000
 #define CRIME_DOG_WARM_RESET           0x00080000
 #define CRIME_DOG_TIMEOUT              (CRIME_DOG_POWER_ON_RESET|CRIME_DOG_WARM_RESET)
 #define CRIME_DOG_VALUE                        0x00007fff
 
-#define CRIME_TIMER                    0x038
-#define CRIME_TIMER_MASK               0x0000ffffffffffff
-
+       volatile unsigned long timer;
 #define CRIME_MASTER_FREQ              66666500        /* Crime upcounter frequency */
 #define CRIME_NS_PER_TICK              15              /* for delay_calibrate */
 
-#define CRIME_CPU_ERROR_ADDR           0x040
+       volatile unsigned long cpu_error_addr;
 #define CRIME_CPU_ERROR_ADDR_MASK      0x3ffffffff
 
-#define CRIME_CPU_ERROR_STAT           0x048
-/* REV_PETTY only! */
-#define CRIME_CPU_ERROR_ENA            0x050
-
-/*
- * bit definitions for CRIME/VICE error status and enable registers
- */
-#define CRIME_CPU_ERROR_MASK           0x7     /* cpu error stat is 3 bits */
-#define CRIME_CPU_ERROR_CPU_ILL_ADDR   0x4
-#define CRIME_CPU_ERROR_VICE_WRT_PRTY  0x2
-#define CRIME_CPU_ERROR_CPU_WRT_PRTY   0x1
+       volatile unsigned long cpu_error_stat;
+#define CRIME_CPU_ERROR_MASK           0x7             /* cpu error stat is 3 bits */
+#define CRIME_CPU_ERROR_CPU_ILL_ADDR   0x4
+#define CRIME_CPU_ERROR_VICE_WRT_PRTY  0x2
+#define CRIME_CPU_ERROR_CPU_WRT_PRTY   0x1
 
-/*
- * these are the definitions for the error status/enable  register in
- * petty crime.  Note that the enable register does not exist in crime
- * rev 1 and above.
- */
-#define CRIME_CPU_ERROR_MASK_REV0              0x3ff   /* cpu error stat is 9 bits */
-#define CRIME_CPU_ERROR_CPU_INV_ADDR_RD                0x200
-#define CRIME_CPU_ERROR_VICE_II                        0x100
-#define CRIME_CPU_ERROR_VICE_SYSAD             0x80
-#define CRIME_CPU_ERROR_VICE_SYSCMD            0x40
-#define CRIME_CPU_ERROR_VICE_INV_ADDR          0x20
-#define CRIME_CPU_ERROR_CPU_II                 0x10
-#define CRIME_CPU_ERROR_CPU_SYSAD              0x8
-#define CRIME_CPU_ERROR_CPU_SYSCMD             0x4
-#define CRIME_CPU_ERROR_CPU_INV_ADDR_WR                0x2
-#define CRIME_CPU_ERROR_CPU_INV_REG_ADDR       0x1
-
-#define CRIME_VICE_ERROR_ADDR          0x058
-#define CRIME_VICE_ERROR_ADDR_MASK     0x3fffffff
-
-#define CRIME_MEM_CONTROL              0x200
-#define CRIME_MEM_CONTROL_MASK         0x3     /* 25 cent register */
-#define CRIME_MEM_CONTROL_ECC_ENA      0x1
-#define CRIME_MEM_CONTROL_USE_ECC_REPL 0x2
+       unsigned long _pad0[54];
 
-/*
- * macros for CRIME memory bank control registers.
- */
-#define CRIME_MEM_BANK_CONTROL(__bank)         (0x208 + ((__bank) << 3))
-#define CRIME_MEM_BANK_CONTROL_MASK            0x11f /* 9 bits 7:5 reserved */
+       volatile unsigned long mc_ctrl;
+       volatile unsigned long bank_ctrl[8];
+#define CRIME_MEM_BANK_CONTROL_MASK            0x11f   /* 9 bits 7:5 reserved */
 #define CRIME_MEM_BANK_CONTROL_ADDR            0x01f
 #define CRIME_MEM_BANK_CONTROL_SDRAM_SIZE      0x100
 #define CRIME_MAXBANKS                         8
 
-#define CRIME_MEM_REFRESH_COUNTER      0x248
-#define CRIME_MEM_REFRESH_COUNTER_MASK 0x7ff   
+       volatile unsigned long mem_ref_counter;
+#define CRIME_MEM_REF_COUNTER_MASK     0x3ff           /* 10bit */
 
-/*
- * CRIME Memory error status register bit definitions
- */
-#define CRIME_MEM_ERROR_STAT           0x250
-#define CRIME_MEM_ERROR_STAT_MASK       0x0ff7ffff    /* 28-bit register */
+       volatile unsigned long mem_error_stat;
+#define CRIME_MEM_ERROR_STAT_MASK       0x0ff7ffff     /* 28-bit register */
 #define CRIME_MEM_ERROR_MACE_ID                0x0000007f
 #define CRIME_MEM_ERROR_MACE_ACCESS    0x00000080
 #define CRIME_MEM_ERROR_RE_ID          0x00007f00
@@ -200,18 +139,21 @@ static inline void crime_write(uint64_t val, unsigned long offset)
 #define CRIME_MEM_ERROR_INV            0x0e000000
 #define CRIME_MEM_ERROR_INV_MEM_ADDR_RD        0x02000000
 #define CRIME_MEM_ERROR_INV_MEM_ADDR_WR        0x04000000
-#define CRIME_MEM_ERROR_INV_MEM_ADDR_RMW       0x08000000
+#define CRIME_MEM_ERROR_INV_MEM_ADDR_RMW 0x08000000
 
-#define CRIME_MEM_ERROR_ADDR           0x258
+       volatile unsigned long mem_error_addr;
 #define CRIME_MEM_ERROR_ADDR_MASK      0x3fffffff
 
-#define CRIME_MEM_ERROR_ECC_SYN                0x260
+       volatile unsigned long mem_ecc_syn;
 #define CRIME_MEM_ERROR_ECC_SYN_MASK   0xffffffff
 
-#define CRIME_MEM_ERROR_ECC_CHK                0x268
-#define CRIME_MEM_ERROR_ECC_CHK_MASK    0xffffffff
+       volatile unsigned long mem_ecc_chk;
+#define CRIME_MEM_ERROR_ECC_CHK_MASK   0xffffffff
 
-#define CRIME_MEM_ERROR_ECC_REPL       0x270
+       volatile unsigned long mem_ecc_repl;
 #define CRIME_MEM_ERROR_ECC_REPL_MASK  0xffffffff
+};
+
+extern struct sgi_crime *crime;
 
 #endif /* __ASM_CRIME_H__ */
index 255e9b2b87f597bce6a99726840bb6e8183cd467..2b7b0fdeac194129060a2bc47bfc81dc57f5984a 100644 (file)
 #ifndef __ASM_MACE_H__
 #define __ASM_MACE_H__
 
-#include <linux/config.h>
-#include <asm/io.h>
-
 /*
  * Address map
  */
 #define MACE_BASE      0x1f000000      /* physical */
 
 #undef BIT
-#define BIT(x) (1ULL << (x))
-
-#ifdef CONFIG_MIPS32
-typedef struct {
-       volatile unsigned long long reg;
-} mace64_t;
-
-typedef struct {
-       unsigned long pad;
-       volatile unsigned long reg;
-} mace32_t;
-#endif
-#ifdef CONFIG_MIPS64
-typedef struct {
-       volatile unsigned long reg;
-} mace64_t;
-
-typedef struct {
-       volatile unsigned long reg;
-} mace32_t;
-#endif
-
-#define mace_read(r)   \
-       (sizeof(r.reg) == 4 ? readl(&r.reg) : readq(&r.reg))
-#define mace_write(v,r)        \
-       (sizeof(r.reg) == 4 ? writel(v,&r.reg) : writeq(v,&r.reg))
+#define BIT(x) (1UL << (x))
 
 /*
  * PCI interface
@@ -119,48 +91,43 @@ struct mace_pci {
  * Video interface
  */
 struct mace_video {
-       mace32_t xxx;   /* later... */
+       unsigned long xxx;      /* later... */
 };
 
 /* 
  * Ethernet interface
  */
 struct mace_ethernet {
-       mace32_t mac_ctrl;
-       mace32_t int_stat;
-       mace32_t dma_ctrl;
-       mace32_t timer;
-       mace32_t tx_int_al;
-       mace32_t rx_int_al;
-       mace32_t tx_info;
-       mace32_t tx_info_al;
-       mace32_t rx_buff;
-       mace32_t rx_buff_al1;
-       mace32_t rx_buff_al2;
-       mace64_t diag;
-       mace32_t phy_data;
-       mace32_t phy_regs;
-       mace32_t phy_trans_go;
-       mace32_t backoff_seed;
+       volatile unsigned long mac_ctrl;
+       volatile unsigned long int_stat;
+       volatile unsigned long dma_ctrl;
+       volatile unsigned long timer;
+       volatile unsigned long tx_int_al;
+       volatile unsigned long rx_int_al;
+       volatile unsigned long tx_info;
+       volatile unsigned long tx_info_al;
+       volatile unsigned long rx_buff;
+       volatile unsigned long rx_buff_al1;
+       volatile unsigned long rx_buff_al2;
+       volatile unsigned long diag;
+       volatile unsigned long phy_data;
+       volatile unsigned long phy_regs;
+       volatile unsigned long phy_trans_go;
+       volatile unsigned long backoff_seed;
        /*===================================*/
-       mace64_t imq_reserved[4];
-       mace64_t mac_addr;
-       mace64_t mac_addr2;
-       mace64_t mcast_filter;
-       mace32_t tx_ring_base;
+       volatile unsigned long imq_reserved[4];
+       volatile unsigned long mac_addr;
+       volatile unsigned long mac_addr2;
+       volatile unsigned long mcast_filter;
+       volatile unsigned long tx_ring_base;
        /* Following are read-only registers for debugging */
-       mace64_t tx_pkt1_hdr;
-       mace64_t tx_pkt1_ptr[3];
-       mace64_t tx_pkt2_hdr;
-       mace64_t tx_pkt2_ptr[3];
+       volatile unsigned long tx_pkt1_hdr;
+       volatile unsigned long tx_pkt1_ptr[3];
+       volatile unsigned long tx_pkt2_hdr;
+       volatile unsigned long tx_pkt2_ptr[3];
        /*===================================*/
-       mace32_t rx_fifo;
+       volatile unsigned long rx_fifo;
 };
-#define mace_eth_read(r)       \
-       mace_read(mace->eth.r)
-#define mace_eth_write(v,r)    \
-       mace_write(v,mace->eth.r)
-
 
 /* 
  * Peripherals
@@ -168,28 +135,24 @@ struct mace_ethernet {
 
 /* Audio registers */
 struct mace_audio {
-       mace32_t control;
-       mace32_t codec_control;         /* codec status control */
-       mace32_t codec_mask;            /* codec status input mask */
-       mace32_t codec_read;            /* codec status read data */
+       volatile unsigned long control;
+       volatile unsigned long codec_control;           /* codec status control */
+       volatile unsigned long codec_mask;              /* codec status input mask */
+       volatile unsigned long codec_read;              /* codec status read data */
        struct {
-               mace32_t control;       /* channel control */
-               mace32_t read_ptr;      /* channel read pointer */
-               mace32_t write_ptr;     /* channel write pointer */
-               mace32_t depth;         /* channel depth */
-       } channel[3];
+               volatile unsigned long control;         /* channel control */
+               volatile unsigned long read_ptr;        /* channel read pointer */
+               volatile unsigned long write_ptr;       /* channel write pointer */
+               volatile unsigned long depth;           /* channel depth */
+       } chan[3];
 };
-#define mace_perif_audio_read(r)       \
-       mace_read(mace->perif.audio.r)
-#define mace_perif_audio_write(v,r)    \
-       mace_write(v,mace->perif.audio.r)
 
 /* ISA Control and DMA registers */
 struct mace_isactrl {
-       mace32_t ringbase;
+       volatile unsigned long ringbase;
 #define MACEISA_RINGBUFFERS_SIZE       (8 * 4096)
 
-       mace32_t misc;
+       volatile unsigned long misc;
 #define MACEISA_FLASH_WE               BIT(0)  /* 1=> Enable FLASH writes */
 #define MACEISA_PWD_CLEAR              BIT(1)  /* 1=> PWD CLEAR jumper detected */
 #define MACEISA_NIC_DEASSERT           BIT(2)
@@ -198,8 +161,8 @@ struct mace_isactrl {
 #define MACEISA_LED_GREEN              BIT(5)  /* 0=> Illuminate green LED */
 #define MACEISA_DP_RAM_ENABLE          BIT(6)
 
-       mace32_t istat;
-       mace32_t imask;
+       volatile unsigned long istat;
+       volatile unsigned long imask;
 #define MACEISA_AUDIO_SW_INT           BIT(0)
 #define MACEISA_AUDIO_SC_INT           BIT(1)
 #define MACEISA_AUDIO1_DMAT_INT                BIT(2)
@@ -233,22 +196,18 @@ struct mace_isactrl {
 #define MACEISA_SERIAL2_RDMAT_INT      BIT(30)
 #define MACEISA_SERIAL2_RDMAOR_INT     BIT(31)
 
-       mace64_t _pad[0x2000/8 - 4];
+       volatile unsigned long _pad[0x2000/8 - 4];
 
-       mace64_t dp_ram[0x400];
+       volatile unsigned long dp_ram[0x400];
 };
-#define mace_perif_ctrl_read(r)                \
-       mace_read(mace->perif.ctrl.r)
-#define mace_perif_ctrl_write(v,r)     \
-       mace_write(v,mace->perif.ctrl.r)
 
 /* Keyboard & Mouse registers
  * -> drivers/input/serio/maceps2.c */
 struct mace_ps2port {
-       mace32_t tx;
-       mace32_t rx;
-       mace32_t control;
-       mace32_t status;
+       volatile unsigned long tx;
+       volatile unsigned long rx;
+       volatile unsigned long control;
+       volatile unsigned long status;
 };
 
 struct mace_ps2 {
@@ -259,20 +218,20 @@ struct mace_ps2 {
 /* I2C registers
  * -> drivers/i2c/algos/i2c-algo-sgi.c */
 struct mace_i2c {
-       mace32_t config;
+       volatile unsigned long config;
 #define MACEI2C_RESET           BIT(0)
 #define MACEI2C_FAST            BIT(1)
 #define MACEI2C_DATA_OVERRIDE   BIT(2)
 #define MACEI2C_CLOCK_OVERRIDE  BIT(3)
 #define MACEI2C_DATA_STATUS     BIT(4)
 #define MACEI2C_CLOCK_STATUS    BIT(5)
-       mace32_t control;
-       mace32_t data;
+       volatile unsigned long control;
+       volatile unsigned long data;
 };
 
 /* Timer registers */
 typedef union {
-       mace64_t ust_msc;
+       volatile unsigned long ust_msc;
        struct reg {
                volatile unsigned int ust;
                volatile unsigned int msc;
@@ -280,12 +239,12 @@ typedef union {
 } timer_reg;
 
 struct mace_timers {
-       mace32_t ust;
+       volatile unsigned long ust;
 #define MACE_UST_PERIOD_NS     960
 
-       mace32_t compare1;
-       mace32_t compare2;
-       mace32_t compare3;
+       volatile unsigned long compare1;
+       volatile unsigned long compare2;
+       volatile unsigned long compare3;
 
        timer_reg audio_in;
        timer_reg audio_out1;
@@ -326,7 +285,7 @@ struct mace_ecp1284 {       /* later... */
 
 /* Serial port */
 struct mace_serial {
-       mace64_t xxx;   /* later... */
+       volatile unsigned long xxx;     /* later... */
 };
 
 struct mace_isa {
index d9667a8fbbfb8f3cd3312db283af6fae1701990c..b90b11d0b886b34ea45a57c012c57d77fe54daf3 100644 (file)
@@ -22,14 +22,32 @@ static inline int irq_canonicalize(int irq)
 #define irq_canonicalize(irq) (irq)    /* Sane hardware, sane code ... */
 #endif
 
-extern void disable_irq(unsigned int);
-extern void disable_irq_nosync(unsigned int);
-extern void enable_irq(unsigned int);
-
 struct pt_regs;
-extern asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs);
 
-extern void init_generic_irq(void);
+#ifdef CONFIG_PREEMPT
+
+extern asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs);
+
+#else
+
+/*
+ * do_IRQ handles all normal device IRQ's (the special
+ * SMP cross-CPU interrupts have their own specific
+ * handlers).
+ *
+ * Ideally there should be away to get this into kernel/irq/handle.c to
+ * avoid the overhead of a call for just a tiny function ...
+ */
+#define do_IRQ(irq, regs)                                              \
+do {                                                                   \
+       irq_enter();                                                    \
+       __do_IRQ((irq), (regs));                                        \
+       irq_exit();                                                     \
+} while (0)
+
+#endif
+
+extern void arch_init_irq(void);
 
 struct irqaction;
 int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *);
index 4e62ee69e219a3d037b42bae3a0c99c19602e074..81cbf004fd1313259638f1b1459fc16903ef131e 100644 (file)
@@ -107,6 +107,8 @@ typedef struct {
        unsigned char command;
 } jazz_keyboard_hardware;
 
+#define jazz_kh ((keyboard_hardware *) JAZZ_KEYBOARD_ADDRESS)
+
 typedef struct {
        unsigned char pad0[3];
        unsigned char data;
index 8799f921af9601752d608032eea5d8027fe7228e..64f3b1aa79e47e0dceae7e4f182b7e1985b1c0c4 100644 (file)
@@ -29,7 +29,7 @@
 #define RTC_EXTENT     16
 #define RTC_IRQ                ATLASINT_RTC
 
-#if CONFIG_CPU_LITTLE_ENDIAN
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
 #define ATLAS_RTC_PORT(x) (RTC_PORT(x) + 0)
 #else
 #define ATLAS_RTC_PORT(x) (RTC_PORT(x) + 3)
index 326f266968ab1ae6c98492bc1aad1f52beadf9b4..51870bec13a466eb74fd3433705d76cc21c5a301 100644 (file)
@@ -161,6 +161,7 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #endif
 
 /* SDRAM Controller */
+#if defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1100)
 #define MEM_SDMODE0                0xB4000000
 #define MEM_SDMODE1                0xB4000004
 #define MEM_SDMODE2                0xB4000008
@@ -179,6 +180,7 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 
 #define MEM_SDSLEEP                0xB4000030
 #define MEM_SDSMCKE                0xB4000034
+#endif
 
 /* Static Bus Controller */
 #define MEM_STCFG0                 0xB4001000
@@ -197,7 +199,7 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define MEM_STTIME3                0xB4001034
 #define MEM_STADDR3                0xB4001038
 
-#ifdef CONFIG_SOC_AU1550
+#if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200)
 #define MEM_STNDCTL                0xB4001100
 #define MEM_STSTAT                 0xB4001104
 
@@ -292,21 +294,14 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define INTC_INT_HIGH_AND_LOW_LEVEL    0x7
 
 /* Interrupt Numbers */
+/* Au1000 */
+#ifdef CONFIG_SOC_AU1000
 #define AU1000_UART0_INT          0
 #define AU1000_UART1_INT          1 /* au1000 */
 #define AU1000_UART2_INT          2 /* au1000 */
-
-#define AU1000_PCI_INTA           1 /* au1500 */
-#define AU1000_PCI_INTB           2 /* au1500 */
-
 #define AU1000_UART3_INT          3
-
 #define AU1000_SSI0_INT           4 /* au1000 */
 #define AU1000_SSI1_INT           5 /* au1000 */
-
-#define AU1000_PCI_INTC           4 /* au1500 */
-#define AU1000_PCI_INTD           5 /* au1500 */
-
 #define AU1000_DMA_INT_BASE       6
 #define AU1000_TOY_INT            14
 #define AU1000_TOY_MATCH0_INT     15
@@ -324,11 +319,8 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define AU1000_ACSYNC_INT         27
 #define AU1000_MAC0_DMA_INT       28
 #define AU1000_MAC1_DMA_INT       29
-#define AU1000_ETH0_IRQ           AU1000_MAC0_DMA_INT
-#define AU1000_ETH1_IRQ           AU1000_MAC1_DMA_INT
 #define AU1000_I2S_UO_INT         30 /* au1000 */
 #define AU1000_AC97C_INT          31
-#define AU1000_LAST_INTC0_INT     AU1000_AC97C_INT
 #define AU1000_GPIO_0             32
 #define AU1000_GPIO_1             33
 #define AU1000_GPIO_2             34
@@ -345,8 +337,6 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define AU1000_GPIO_13            45
 #define AU1000_GPIO_14            46
 #define AU1000_GPIO_15            47
-
-/* Au1000 only */
 #define AU1000_GPIO_16            48
 #define AU1000_GPIO_17            49
 #define AU1000_GPIO_18            50
@@ -364,7 +354,62 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define AU1000_GPIO_30            62
 #define AU1000_GPIO_31            63
 
-/* Au1500 only */
+#define UART0_ADDR                0xB1100000
+#define UART1_ADDR                0xB1200000
+#define UART2_ADDR                0xB1300000
+#define UART3_ADDR                0xB1400000
+
+#define USB_OHCI_BASE             0x10100000 // phys addr for ioremap
+#define USB_HOST_CONFIG           0xB017fffc
+
+#define AU1000_ETH0_BASE      0xB0500000
+#define AU1000_ETH1_BASE      0xB0510000
+#define AU1000_MAC0_ENABLE       0xB0520000
+#define AU1000_MAC1_ENABLE       0xB0520004
+#define NUM_ETH_INTERFACES 2
+#endif // CONFIG_SOC_AU1000
+
+/* Au1500 */
+#ifdef CONFIG_SOC_AU1500
+#define AU1500_UART0_INT          0
+#define AU1000_PCI_INTA           1 /* au1500 */
+#define AU1000_PCI_INTB           2 /* au1500 */
+#define AU1500_UART3_INT          3
+#define AU1000_PCI_INTC           4 /* au1500 */
+#define AU1000_PCI_INTD           5 /* au1500 */
+#define AU1000_DMA_INT_BASE       6
+#define AU1000_TOY_INT            14
+#define AU1000_TOY_MATCH0_INT     15
+#define AU1000_TOY_MATCH1_INT     16
+#define AU1000_TOY_MATCH2_INT     17
+#define AU1000_RTC_INT            18
+#define AU1000_RTC_MATCH0_INT     19
+#define AU1000_RTC_MATCH1_INT     20
+#define AU1000_RTC_MATCH2_INT     21
+#define AU1500_PCI_ERR_INT        22
+#define AU1000_USB_DEV_REQ_INT    24
+#define AU1000_USB_DEV_SUS_INT    25
+#define AU1000_USB_HOST_INT       26
+#define AU1000_ACSYNC_INT         27
+#define AU1500_MAC0_DMA_INT       28
+#define AU1500_MAC1_DMA_INT       29
+#define AU1000_AC97C_INT          31
+#define AU1000_GPIO_0             32
+#define AU1000_GPIO_1             33
+#define AU1000_GPIO_2             34
+#define AU1000_GPIO_3             35
+#define AU1000_GPIO_4             36
+#define AU1000_GPIO_5             37
+#define AU1000_GPIO_6             38
+#define AU1000_GPIO_7             39
+#define AU1000_GPIO_8             40
+#define AU1000_GPIO_9             41
+#define AU1000_GPIO_10            42
+#define AU1000_GPIO_11            43
+#define AU1000_GPIO_12            44
+#define AU1000_GPIO_13            45
+#define AU1000_GPIO_14            46
+#define AU1000_GPIO_15            47
 #define AU1500_GPIO_200           48
 #define AU1500_GPIO_201           49
 #define AU1500_GPIO_202           50
@@ -382,14 +427,79 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define AU1500_GPIO_207           62
 #define AU1500_GPIO_208_215       63
 
-#define AU1000_MAX_INTR           63
+#define UART0_ADDR                0xB1100000
+#define UART3_ADDR                0xB1400000
 
-#define AU1100_SD              2
+#define USB_OHCI_BASE             0x10100000 // phys addr for ioremap
+#define USB_HOST_CONFIG           0xB017fffc
+
+#define AU1500_ETH0_BASE         0xB1500000
+#define AU1500_ETH1_BASE         0xB1510000
+#define AU1500_MAC0_ENABLE       0xB1520000
+#define AU1500_MAC1_ENABLE       0xB1520004
+#define NUM_ETH_INTERFACES 2
+#endif // CONFIG_SOC_AU1500
+
+/* Au1100 */
+#ifdef CONFIG_SOC_AU1100
+#define AU1100_UART0_INT          0
+#define AU1100_UART1_INT          1
+#define AU1100_SD_INT             2
+#define AU1100_UART3_INT          3
+#define AU1000_SSI0_INT           4
+#define AU1000_SSI1_INT           5
+#define AU1000_DMA_INT_BASE       6
+#define AU1000_TOY_INT            14
+#define AU1000_TOY_MATCH0_INT     15
+#define AU1000_TOY_MATCH1_INT     16
+#define AU1000_TOY_MATCH2_INT     17
+#define AU1000_RTC_INT            18
+#define AU1000_RTC_MATCH0_INT     19
+#define AU1000_RTC_MATCH1_INT     20
+#define AU1000_RTC_MATCH2_INT     21
+#define AU1000_IRDA_TX_INT        22
+#define AU1000_IRDA_RX_INT        23
+#define AU1000_USB_DEV_REQ_INT    24
+#define AU1000_USB_DEV_SUS_INT    25
+#define AU1000_USB_HOST_INT       26
+#define AU1000_ACSYNC_INT         27
+#define AU1100_MAC0_DMA_INT       28
 #define        AU1100_GPIO_208_215     29
-// Seperate defines for AU1550 SOC
-#define AU1550_UART0_INT          AU1000_UART0_INT
-#define AU1550_PCI_INTA           AU1000_PCI_INTA
-#define AU1550_PCI_INTB           AU1000_PCI_INTB
+#define        AU1100_LCD_INT            30
+#define AU1000_AC97C_INT          31
+#define AU1000_GPIO_0             32
+#define AU1000_GPIO_1             33
+#define AU1000_GPIO_2             34
+#define AU1000_GPIO_3             35
+#define AU1000_GPIO_4             36
+#define AU1000_GPIO_5             37
+#define AU1000_GPIO_6             38
+#define AU1000_GPIO_7             39
+#define AU1000_GPIO_8             40
+#define AU1000_GPIO_9             41
+#define AU1000_GPIO_10            42
+#define AU1000_GPIO_11            43
+#define AU1000_GPIO_12            44
+#define AU1000_GPIO_13            45
+#define AU1000_GPIO_14            46
+#define AU1000_GPIO_15            47
+
+#define UART0_ADDR                0xB1100000
+#define UART1_ADDR                0xB1200000
+#define UART3_ADDR                0xB1400000
+
+#define USB_OHCI_BASE             0x10100000 // phys addr for ioremap
+#define USB_HOST_CONFIG           0xB017fffc
+
+#define AU1100_ETH0_BASE         0xB0500000
+#define AU1100_MAC0_ENABLE       0xB0520000
+#define NUM_ETH_INTERFACES 1
+#endif // CONFIG_SOC_AU1100
+
+#ifdef CONFIG_SOC_AU1550
+#define AU1550_UART0_INT          0
+#define AU1550_PCI_INTA           1
+#define AU1550_PCI_INTB           2
 #define AU1550_DDMA_INT           3
 #define AU1550_CRYPTO_INT         4
 #define AU1550_PCI_INTC           5
@@ -413,11 +523,27 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define AU1550_USB_DEV_REQ_INT    24
 #define AU1550_USB_DEV_SUS_INT    25
 #define AU1550_USB_HOST_INT       26
+#define AU1000_USB_DEV_REQ_INT    AU1550_USB_DEV_REQ_INT
+#define AU1000_USB_DEV_SUS_INT    AU1550_USB_DEV_SUS_INT
+#define AU1000_USB_HOST_INT       AU1550_USB_HOST_INT
 #define AU1550_MAC0_DMA_INT       27
 #define AU1550_MAC1_DMA_INT       28
-#define AU1550_ETH0_IRQ           AU1550_MAC0_DMA_INT
-#define AU1550_ETH1_IRQ           AU1550_MAC1_DMA_INT
-
+#define AU1000_GPIO_0             32
+#define AU1000_GPIO_1             33
+#define AU1000_GPIO_2             34
+#define AU1000_GPIO_3             35
+#define AU1000_GPIO_4             36
+#define AU1000_GPIO_5             37
+#define AU1000_GPIO_6             38
+#define AU1000_GPIO_7             39
+#define AU1000_GPIO_8             40
+#define AU1000_GPIO_9             41
+#define AU1000_GPIO_10            42
+#define AU1000_GPIO_11            43
+#define AU1000_GPIO_12            44
+#define AU1000_GPIO_13            45
+#define AU1000_GPIO_14            46
+#define AU1000_GPIO_15            47
 #define AU1550_GPIO_200           48
 #define AU1500_GPIO_201_205       49   // Logical or of GPIO201:205
 #define AU1500_GPIO_16            50
@@ -435,7 +561,101 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define AU1500_GPIO_207           62
 #define AU1500_GPIO_208_218       63   // Logical or of GPIO208:218
 
-// REDEFINE SECONDARY GPIO BLOCK INTO IC1 CONTROLLER HERE
+#define UART0_ADDR                0xB1100000
+#define UART1_ADDR                0xB1200000
+#define UART3_ADDR                0xB1400000
+
+#define USB_OHCI_BASE             0x14020000 // phys addr for ioremap
+#define USB_HOST_CONFIG           0xB4027ffc
+
+#define AU1550_ETH0_BASE      0xB0500000
+#define AU1550_ETH1_BASE      0xB0510000
+#define AU1550_MAC0_ENABLE       0xB0520000
+#define AU1550_MAC1_ENABLE       0xB0520004
+#define NUM_ETH_INTERFACES 2
+#endif // CONFIG_SOC_AU1550
+
+#ifdef CONFIG_SOC_AU1200
+#define AU1200_UART0_INT          0
+#define AU1200_SWT_INT            1
+#define AU1200_SD_INT             2
+#define AU1200_DDMA_INT           3
+#define AU1200_MAE_BE_INT         4
+#define AU1200_GPIO_200           5
+#define AU1200_GPIO_201           6
+#define AU1200_GPIO_202           7
+#define AU1200_UART1_INT          8
+#define AU1200_MAE_FE_INT         9
+#define AU1200_PSC0_INT           10
+#define AU1200_PSC1_INT           11
+#define AU1200_AES_INT            12
+#define AU1200_CAMERA_INT         13
+#define AU1200_TOY_INT                   14
+#define AU1200_TOY_MATCH0_INT     15
+#define AU1200_TOY_MATCH1_INT     16
+#define AU1200_TOY_MATCH2_INT     17
+#define AU1200_RTC_INT            18
+#define AU1200_RTC_MATCH0_INT     19
+#define AU1200_RTC_MATCH1_INT     20
+#define AU1200_RTC_MATCH2_INT     21
+#define AU1200_NAND_INT           23
+#define AU1200_GPIO_204           24
+#define AU1200_GPIO_205           25
+#define AU1200_GPIO_206           26
+#define AU1200_GPIO_207           27
+#define AU1200_GPIO_208_215       28 // Logical OR of 208:215
+#define AU1200_USB_INT            29
+#define AU1200_LCD_INT            30
+#define AU1200_MAE_BOTH_INT       31
+#define AU1000_GPIO_0             32
+#define AU1000_GPIO_1             33
+#define AU1000_GPIO_2             34
+#define AU1000_GPIO_3             35
+#define AU1000_GPIO_4             36
+#define AU1000_GPIO_5             37
+#define AU1000_GPIO_6             38
+#define AU1000_GPIO_7             39
+#define AU1000_GPIO_8             40
+#define AU1000_GPIO_9             41
+#define AU1000_GPIO_10            42
+#define AU1000_GPIO_11            43
+#define AU1000_GPIO_12            44
+#define AU1000_GPIO_13            45
+#define AU1000_GPIO_14            46
+#define AU1000_GPIO_15            47
+#define AU1000_GPIO_16            48
+#define AU1000_GPIO_17            49
+#define AU1000_GPIO_18            50
+#define AU1000_GPIO_19            51
+#define AU1000_GPIO_20            52
+#define AU1000_GPIO_21            53
+#define AU1000_GPIO_22            54
+#define AU1000_GPIO_23            55
+#define AU1000_GPIO_24            56
+#define AU1000_GPIO_25            57
+#define AU1000_GPIO_26            58
+#define AU1000_GPIO_27            59
+#define AU1000_GPIO_28            60
+#define AU1000_GPIO_29            61
+#define AU1000_GPIO_30            62
+#define AU1000_GPIO_31            63
+
+#define UART0_ADDR                0xB1100000
+#define UART1_ADDR                0xB1200000
+
+#define USB_OHCI_BASE             0x14020000 // phys addr for ioremap
+#define USB_HOST_CONFIG           0xB4027ffc
+
+// these are here for prototyping on au1550 (do not exist on au1200)
+#define AU1200_ETH0_BASE      0xB0500000
+#define AU1200_ETH1_BASE      0xB0510000
+#define AU1200_MAC0_ENABLE       0xB0520000
+#define AU1200_MAC1_ENABLE       0xB0520004
+#define NUM_ETH_INTERFACES 2
+#endif // CONFIG_SOC_AU1200
+
+#define AU1000_LAST_INTC0_INT     31
+#define AU1000_MAX_INTR           63
 
 
 /* Programmable Counters 0 and 1 */
@@ -509,16 +729,7 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
   #define I2S_CONTROL_CE        (1<<0)
 
 /* USB Host Controller */
-// We pass USB_OHCI_BASE to ioremap, so it needs to be a physical address
-#if defined( CONFIG_SOC_AU1550 )
-#define USB_OHCI_BASE             0x14020000
-#define USB_OHCI_LEN              0x00100000
-#define USB_HOST_CONFIG           0xB4027ffc
-#else
-#define USB_OHCI_BASE             0x10100000
 #define USB_OHCI_LEN              0x00100000
-#define USB_HOST_CONFIG           0xB017fffc
-#endif
 
 /* USB Device Controller */
 #define USBD_EP0RD                0xB0200000
@@ -563,13 +774,6 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
   #define USBDEV_CE     (1<<0)
 
 /* Ethernet Controllers  */
-#define AU1000_ETH0_BASE          0xB0500000
-#define AU1000_ETH1_BASE          0xB0510000
-#define AU1500_ETH0_BASE         0xB1500000
-#define AU1500_ETH1_BASE         0xB1510000
-#define AU1100_ETH0_BASE         0xB0500000
-#define AU1550_ETH0_BASE      0xB0500000
-#define AU1550_ETH1_BASE      0xB0510000
 
 /* 4 byte offsets from AU1000_ETH_BASE */
 #define MAC_CONTROL                     0x0
@@ -614,11 +818,6 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define MAC_VLAN2_TAG                  0x24
 
 /* Ethernet Controller Enable */
-#define AU1000_MAC0_ENABLE       0xB0520000
-#define AU1000_MAC1_ENABLE       0xB0520004
-#define AU1500_MAC0_ENABLE       0xB1520000
-#define AU1500_MAC1_ENABLE       0xB1520004
-#define AU1100_MAC0_ENABLE       0xB0520000
 
   #define MAC_EN_CLOCK_ENABLE         (1<<0)
   #define MAC_EN_RESET0               (1<<1)
@@ -702,10 +901,6 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 
 
 /* UARTS 0-3 */
-#define UART0_ADDR                0xB1100000
-#define UART1_ADDR                0xB1200000
-#define UART2_ADDR                0xB1300000
-#define UART3_ADDR                0xB1400000
 #define UART_BASE                 UART0_ADDR
 #define UART_DEBUG_BASE           UART3_ADDR
 
@@ -976,7 +1171,6 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
   #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
@@ -1134,12 +1328,12 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
  * addresses.  For PCI IO, it's simpler because we get to do the ioremap
  * ourselves and then adjust the device's resources.
  */
-#define Au1500_EXT_CFG            0x600000000
-#define Au1500_EXT_CFG_TYPE1      0x680000000
-#define Au1500_PCI_IO_START       0x500000000
-#define Au1500_PCI_IO_END         0x5000FFFFF
-#define Au1500_PCI_MEM_START      0x440000000
-#define Au1500_PCI_MEM_END        0x44FFFFFFF
+#define Au1500_EXT_CFG            0x600000000ULL
+#define Au1500_EXT_CFG_TYPE1      0x680000000ULL
+#define Au1500_PCI_IO_START       0x500000000ULL
+#define Au1500_PCI_IO_END         0x5000FFFFFULL
+#define Au1500_PCI_MEM_START      0x440000000ULL
+#define Au1500_PCI_MEM_END        0x44FFFFFFFULL
 
 #define PCI_IO_START    (Au1500_PCI_IO_START + 0x1000)
 #define PCI_IO_END      (Au1500_PCI_IO_END)
@@ -1148,7 +1342,7 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 #define PCI_FIRST_DEVFN (0<<3)
 #define PCI_LAST_DEVFN  (19<<3)
 
-#define IOPORT_RESOURCE_START 0x00001000 /* skip the legacy ide probing */
+#define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */
 #define IOPORT_RESOURCE_END   0xffffffff
 #define IOMEM_RESOURCE_START  0x10000000
 #define IOMEM_RESOURCE_END    0xffffffff
@@ -1194,11 +1388,6 @@ extern au1xxx_irq_map_t au1xxx_irq_map[];
 
 #endif
 
-#if defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550)
-#define NUM_ETH_INTERFACES 2
-#elif defined(CONFIG_SOC_AU1100)
-#define NUM_ETH_INTERFACES 1
-#endif
 /* Processor information base on prid.
  * Copied from PowerPC.
  */
@@ -1208,11 +1397,10 @@ struct cpu_spec {
        unsigned int    prid_value;
 
        char            *cpu_name;
-       unsigned int    cpu_od;         /* Set Config[OD] */
-       unsigned int    cpu_bclk;       /* Enable BCLK switching */
+       unsigned char   cpu_od;         /* Set Config[OD] */
+       unsigned char   cpu_bclk;       /* Enable BCLK switching */
 };
 
 extern struct cpu_spec         cpu_specs[];
 extern struct cpu_spec         *cur_cpu_spec[];
-
 #endif
index 3b03b0b0a7e93e89be45c90f4457ba2dc829cc37..0812ea6b028c79729ff105dbd581bfd1c7d36024 100644 (file)
@@ -29,6 +29,7 @@
 
 #ifdef CONFIG_MIPS_DB1550
 #define BCSR_KSEG1_ADDR 0xAF000000
+#define NAND_PHYS_ADDR  0x20000000
 #else
 #define BCSR_KSEG1_ADDR 0xAE000000
 #endif
@@ -130,15 +131,6 @@ typedef volatile struct
 #define SET_VCC_VPP(VCC, VPP, SLOT)\
        ((((VCC)<<2) | ((VPP)<<0)) << ((SLOT)*8))
 
-/* MTD CONFIG OPTIONS */
-#if defined(CONFIG_MTD_DB1X00_BOOT) && defined(CONFIG_MTD_DB1X00_USER)
-#define DB1X00_BOTH_BANKS
-#elif defined(CONFIG_MTD_DB1X00_BOOT) && !defined(CONFIG_MTD_DB1X00_USER)
-#define DB1X00_BOOT_ONLY
-#elif !defined(CONFIG_MTD_DB1X00_BOOT) && defined(CONFIG_MTD_DB1X00_USER)
-#define DB1X00_USER_ONLY
-#endif
-
 /* SD controller macros */
 /*
  * Detect card.
@@ -182,5 +174,29 @@ typedef volatile struct
                } \
        } while (0)
 
+
+/* NAND defines */
+/* 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_DB1X00_H */
 
index d47601392f0f98597ceaa6dddc612645dc14117c..682a5858f8d711ffe04fb187236db84b7377b2f5 100644 (file)
@@ -12,7 +12,6 @@
 #include <linux/init.h>
 #include <linux/ioport.h>
 #include <linux/sched.h>
-#include <linux/kernel.h>
 #include <linux/linkage.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index fa2760afa51cd367c3bc31af465ca6153200ae65..7cdd4649fff8ab197d2c751e4fbb60d7c90d314b 100644 (file)
@@ -3,13 +3,18 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * IDE routines for typical pc-like legacy IDE configurations.
+ * Copyright (C) 1994-1996  Linus Torvalds & authors
  *
- * Copyright (C) 1998, 1999, 2001, 2003 by Ralf Baechle
+ * Copied from i386; many of the especially older MIPS or ISA-based platforms
+ * are basically identical.  Using this file probably implies i8259 PIC
+ * support in a system but the very least interrupt numbers 0 - 15 need to
+ * be put aside for legacy devices.
  */
 #ifndef __ASM_MACH_GENERIC_IDE_H
 #define __ASM_MACH_GENERIC_IDE_H
 
+#ifdef __KERNEL__
+
 #include <linux/config.h>
 
 #ifndef MAX_HWIFS
@@ -22,7 +27,7 @@
 
 #define IDE_ARCH_OBSOLETE_DEFAULTS
 
-static inline int ide_default_irq(unsigned long base)
+static __inline__ int ide_default_irq(unsigned long base)
 {
        switch (base) {
                case 0x1f0: return 14;
@@ -36,11 +41,11 @@ static inline int ide_default_irq(unsigned long base)
        }
 }
 
-static inline unsigned long ide_default_io_base(int index)
+static __inline__ unsigned long ide_default_io_base(int index)
 {
        switch (index) {
-               case 0: return 0x1f0;
-               case 1: return 0x170;
+               case 0: return 0x1f0;
+               case 1: return 0x170;
                case 2: return 0x1e8;
                case 3: return 0x168;
                case 4: return 0x1e0;
@@ -59,4 +64,8 @@ static inline unsigned long ide_default_io_base(int index)
 #define ide_init_default_irq(base)     ide_default_irq(base)
 #endif
 
+#include <asm-generic/ide_iops.h>
+
+#endif /* __KERNEL__ */
+
 #endif /* __ASM_MACH_GENERIC_IDE_H */
index ba82007a57a1dcbfa5556e57cd1344390f2fd67e..4a98d83b8ec7f26776f50e0637f14ca22e095218 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_MACH_GENERIC_MANGLE_PORT_H
 #define __ASM_MACH_GENERIC_MANGLE_PORT_H
@@ -11,5 +11,6 @@
 #define __swizzle_addr_b(port) (port)
 #define __swizzle_addr_w(port) (port)
 #define __swizzle_addr_l(port) (port)
+#define __swizzle_addr_q(port) (port)
 
 #endif /* __ASM_MACH_GENERIC_MANGLE_PORT_H */
index 4b565cfb7976fc5f79d24371b3f7bb3776e6f7af..63c0a81c78329ca8728a2d2bc7d5661f51458bd9 100644 (file)
@@ -7,8 +7,8 @@
  * Copyright (C) 2000, 2002  Maciej W. Rozycki
  * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
  */
-#ifndef _ASM_MACH_SPACES_H
-#define _ASM_MACH_SPACES_H
+#ifndef _ASM_MACH_GENERIC_SPACES_H
+#define _ASM_MACH_GENERIC_SPACES_H
 
 #include <linux/config.h>
 
diff --git a/include/asm-mips/mach-ip22/spaces.h b/include/asm-mips/mach-ip22/spaces.h
new file mode 100644 (file)
index 0000000..30d42fc
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * 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_IP22_SPACES_H
+#define _ASM_MACH_IP22_SPACES_H
+
+#include <linux/config.h>
+
+#ifdef CONFIG_MIPS32
+
+#define CAC_BASE               0x80000000
+#define IO_BASE                        0xa0000000
+#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
+#define PAGE_OFFSET            0xffffffff80000000UL
+
+#ifndef HIGHMEM_START
+#define HIGHMEM_START          (1UL << 59UL)
+#endif
+
+#define CAC_BASE               0xffffffff80000000
+#define IO_BASE                        0xffffffffa0000000
+#define UNCAC_BASE             0xffffffffa0000000
+#define MAP_BASE               0xffffffffc0000000
+
+#define TO_PHYS(x)             (             ((x) & TO_PHYS_MASK))
+#define TO_CAC(x)              (CAC_BASE   | ((x) & TO_PHYS_MASK))
+#define TO_UNCAC(x)            (UNCAC_BASE | ((x) & TO_PHYS_MASK))
+
+#endif /* CONFIG_MIPS64 */
+
+#endif /* __ASM_MACH_IP22_SPACES_H */
index 661995e769a5158ae1c5dbfbe9118370e0c3ff6e..f76c448804513e434c918dc1daeeb0211a2e01e2 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_MACH_IP27_MANGLE_PORT_H
 #define __ASM_MACH_IP27_MANGLE_PORT_H
@@ -11,5 +11,6 @@
 #define __swizzle_addr_b(port) (port)
 #define __swizzle_addr_w(port) ((port) ^ 2)
 #define __swizzle_addr_l(port) (port)
+#define __swizzle_addr_q(port) (port)
 
 #endif /* __ASM_MACH_IP27_MANGLE_PORT_H */
index 4d95609b1c729ca8d2b48d8990342e9b2b96dd6f..d3f566362e9dc90966b6ab3dc7f326211f8762ff 100644 (file)
@@ -3,7 +3,34 @@
 
 #include <asm/sn/addrs.h>
 #include <asm/sn/arch.h>
+#include <asm/sn/hub.h>
 
 #define pa_to_nid(addr)                NASID_TO_COMPACT_NODEID(NASID_GET(addr))
 
+#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];
+};
+
+struct node_data {
+       struct pglist_data pglist;
+       struct hub_data hub;
+};
+
+extern struct node_data *__node_data[];
+
+#define NODE_DATA(n)           (&__node_data[(n)]->pglist)
+#define hub_data(n)            (&__node_data[(n)]->hub)
+
 #endif /* _ASM_MACH_MMZONE_H */
index e0cf74d3293716949424524712cb72fe2c17b8b0..e3b3fe32eeb16307461b55f1a589bb7f9cdaec92 100644 (file)
@@ -7,8 +7,8 @@
  * Copyright (C) 2000, 2002  Maciej W. Rozycki
  * Copyright (C) 1990, 1999 by Silicon Graphics, Inc.
  */
-#ifndef _ASM_MACH_SPACES_H
-#define _ASM_MACH_SPACES_H
+#ifndef _ASM_MACH_IP27_SPACES_H
+#define _ASM_MACH_IP27_SPACES_H
 
 /*
  * IP27 uses the R10000's uncached attribute feature.  Attribute 3 selects
@@ -31,4 +31,4 @@
 
 #define HIGHMEM_START          (~0UL)
 
-#endif /* _ASM_MACH_SPACES_H */
+#endif /* _ASM_MACH_IP27_SPACES_H */
index de8eb53eb9307361a513517da67513a52051da88..a70a81257c3d760853df0eed83a42f801238fd7d 100644 (file)
@@ -1,15 +1,38 @@
 #ifndef _ASM_MACH_TOPOLOGY_H
 #define _ASM_MACH_TOPOLOGY_H   1
 
+#include <asm/sn/arch.h>
 #include <asm/sn/hub.h>
+#include <asm/mmzone.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_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)
+extern unsigned char __node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES];
+
+#define node_distance(from, to)        (__node_distances[(from)][(to)])
+
+/* sched_domains SD_NODE_INIT for SGI IP27 machines */
+#define SD_NODE_INIT (struct sched_domain) {           \
+       .span                   = CPU_MASK_NONE,        \
+       .parent                 = NULL,                 \
+       .groups                 = NULL,                 \
+       .min_interval           = 8,                    \
+       .max_interval           = 32,                   \
+       .busy_factor            = 32,                   \
+       .imbalance_pct          = 125,                  \
+       .cache_hot_time         = (10*1000),            \
+       .cache_nice_tries       = 1,                    \
+       .per_cpu_gain           = 100,                  \
+       .flags                  = SD_LOAD_BALANCE       \
+                               | SD_BALANCE_EXEC       \
+                               | SD_WAKE_BALANCE,      \
+       .last_balance           = jiffies,              \
+       .balance_interval       = 1,                    \
+       .nr_balance_failed      = 0,                    \
+}
 
 #endif /* _ASM_MACH_TOPOLOGY_H */
index 6842af46eeff332b13075229946f83444b69196f..6e25b52ed8f2157c547ef1b03eb12678e947eabc 100644 (file)
@@ -4,6 +4,7 @@
  * for more details.
  *
  * Copyright (C) 2003 Ladislav Michl
+ * Copyright (C) 2004 Ralf Baechle
  */
 #ifndef __ASM_MACH_IP32_MANGLE_PORT_H
 #define __ASM_MACH_IP32_MANGLE_PORT_H
@@ -11,5 +12,6 @@
 #define __swizzle_addr_b(port) ((port) ^ 3)
 #define __swizzle_addr_w(port) ((port) ^ 2)
 #define __swizzle_addr_l(port) (port)
+#define __swizzle_addr_q(port) (port)
 
 #endif /* __ASM_MACH_IP32_MANGLE_PORT_H */
diff --git a/include/asm-mips/mach-ip32/spaces.h b/include/asm-mips/mach-ip32/spaces.h
new file mode 100644 (file)
index 0000000..649864c
--- /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.
+ *
+ * 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_IP32_SPACES_H
+#define _ASM_MACH_IP32_SPACES_H
+
+#include <linux/config.h>
+
+/*
+ * This handles the memory map.
+ */
+#define PAGE_OFFSET            0xffffffff80000000
+
+/*
+ * 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
+#define CAC_BASE               0xa800000000000000
+#endif
+#define IO_BASE                        0x9000000000000000
+#define UNCAC_BASE             0x9000000000000000
+#define MAP_BASE               0xc000000000000000
+
+#define TO_PHYS(x)             (             ((x) & TO_PHYS_MASK))
+#define TO_CAC(x)              (CAC_BASE   | ((x) & TO_PHYS_MASK))
+#define TO_UNCAC(x)            (UNCAC_BASE | ((x) & TO_PHYS_MASK))
+
+#endif /* __ASM_MACH_IP32_SPACES_H */
index 2dce66f287efd35c4166c58fab27b78f09f623d1..d2018ebfe33ec27aa7a38da5c94b65fad363ca12 100644 (file)
 #define cpu_icache_line_size() 32
 #define cpu_scache_line_size() 32
 
+/*
+ * On the RM9000 we need to ensure that I-cache lines being fetches only
+ * contain valid instructions are funny things will happen.
+ */
+#define PLAT_TRAMPOLINE_STUFF_LINE     32UL
+
 #endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-mips/cpu-feature-overrides.h b/include/asm-mips/mach-mips/cpu-feature-overrides.h
new file mode 100644 (file)
index 0000000..2aba654
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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 Chris Dearman
+ */
+#ifndef __ASM_MACH_MIPS_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_MIPS_CPU_FEATURE_OVERRIDES_H
+
+/*
+ * CPU feature overrides for MIPS boards
+ */
+#ifdef CONFIG_CPU_MIPS32
+#define cpu_has_tlb            1
+#define cpu_has_4kex           1
+#define cpu_has_4ktlb          1
+/* #define cpu_has_fpu         ? */
+/* #define cpu_has_32fpr       ? */
+#define cpu_has_counter                1
+/* #define cpu_has_watch       ? */
+#define cpu_has_divec          1
+#define cpu_has_vce            0
+/* #define cpu_has_cache_cdex_p        ? */
+/* #define cpu_has_cache_cdex_s        ? */
+/* #define cpu_has_prefetch    ? */
+#define cpu_has_mcheck         1
+/* #define cpu_has_ejtag       ? */
+#define cpu_has_llsc           1
+/* #define cpu_has_vtag_icache ? */
+/* #define cpu_has_dc_aliases  ? */
+/* #define cpu_has_ic_fills_f_dc ? */
+#define cpu_has_nofpuex                0
+/* #define cpu_has_64bits      ? */
+/* #define cpu_has_64bit_zero_reg ? */
+/* #define cpu_has_subset_pcaches ? */
+#endif
+
+#ifdef CONFIG_CPU_MIPS64
+#define cpu_has_tlb            1
+#define cpu_has_4kex           1
+#define cpu_has_4ktlb          1
+/* #define cpu_has_fpu         ? */
+/* #define cpu_has_32fpr       ? */
+#define cpu_has_counter                1
+/* #define cpu_has_watch       ? */
+#define cpu_has_divec          1
+#define cpu_has_vce            0
+/* #define cpu_has_cache_cdex_p        ? */
+/* #define cpu_has_cache_cdex_s        ? */
+/* #define cpu_has_prefetch    ? */
+#define cpu_has_mcheck         1
+/* #define cpu_has_ejtag       ? */
+#define cpu_has_llsc           1
+/* #define cpu_has_vtag_icache ? */
+/* #define cpu_has_dc_aliases  ? */
+/* #define cpu_has_ic_fills_f_dc ? */
+#define cpu_has_nofpuex                0
+/* #define cpu_has_64bits      ? */
+/* #define cpu_has_64bit_zero_reg ? */
+/* #define cpu_has_subset_pcaches ? */
+#endif
+
+#endif /* __ASM_MACH_MIPS_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h b/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
new file mode 100644 (file)
index 0000000..6cebe12
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * 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) 2004 MontaVista Software Inc.
+ * Author: Manish Lachwani, mlachwani@mvista.com
+ * Copyright (C) 2004 Ralf Baechle
+ */
+#ifndef __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H
+
+/*
+ * Momentum Ocelot-3 is based on Rm7900 processor which
+ * is based on the E9000 core.
+ */
+#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
+
+/*
+ * On the RM9000 we need to ensure that I-cache lines being fetches only
+ * contain valid instructions are funny things will happen.
+ */
+#define PLAT_TRAMPOLINE_STUFF_LINE     32UL
+
+#endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-sibyte/cpu-feature-overrides.h b/include/asm-mips/mach-sibyte/cpu-feature-overrides.h
new file mode 100644 (file)
index 0000000..5bb8b89
--- /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_SIBYTE_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_SIBYTE_CPU_FEATURE_OVERRIDES_H
+
+/*
+ * Sibyte are MIPS64 processors weired to a specific configuration
+ */
+#define cpu_has_watch          1
+#define cpu_has_mips16         0
+#define cpu_has_divec          1
+#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         1
+#define cpu_has_ejtag          1
+
+#define cpu_has_llsc           1
+#define cpu_has_vtag_icache    1
+#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_SIBYTE_CPU_FEATURE_OVERRIDES_H */
index 1de5c32a58844d85c651ffbb0720bcfa4d80babb..ae12c1ccfb5c2974c8bc252564c0c867c73027d4 100644 (file)
 #define cpu_icache_line_size() 32
 #define cpu_scache_line_size() 32
 
+/*
+ * On the RM9000 we need to ensure that I-cache lines being fetches only
+ * contain valid instructions are funny things will happen.
+ */
+#define PLAT_TRAMPOLINE_STUFF_LINE     32UL
+
 #endif /* __ASM_MACH_YOSEMITE_CPU_FEATURE_OVERRIDES_H */
index 2e3bc6732d1cbcf0b6b37e9103e5456bfedaa3de..9225b3397a4fb4d126cce26b4a37602696c0cd6d 100644 (file)
@@ -11,7 +11,6 @@
 #include <linux/pci.h>
 
 #include <asm/byteorder.h>
-#include <asm/pci_channel.h>
 
 extern unsigned long marvell_base;
 
index 71198779fcd6f741b21c8e5c64ebc593e90aac05..a3bdfc6bf60745f77a417fbd5874f81263d18e40 100644 (file)
 #define ST0_DE                 0x00010000
 #define ST0_CE                 0x00020000
 
+/*
+ * Setting c0_status.co enables Hit_Writeback and Hit_Writeback_Invalidate
+ * cacheops in userspace.  This bit exists only on RM7000 and RM9000
+ * processors.
+ */
+#define ST0_CO                 0x08000000
+
 /*
  * Bitfields in the R[23]000 cp0 status register.
  */
index dd7591b48ee1eddc4bd61ad59a58dbf30a319713..9dbf3448ff177c04dd4110b74312edb73498bc3b 100644 (file)
@@ -126,8 +126,8 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
         * Mark current->active_mm as not "active" anymore.
         * We don't want to mislead possible IPI tlb flush routines.
         */
-       clear_bit(cpu, &prev->cpu_vm_mask);
-       set_bit(cpu, &next->cpu_vm_mask);
+       cpu_clear(cpu, prev->cpu_vm_mask);
+       cpu_set(cpu, next->cpu_vm_mask);
 
        local_irq_restore(flags);
 }
@@ -161,8 +161,8 @@ activate_mm(struct mm_struct *prev, struct mm_struct *next)
        TLBMISS_HANDLER_SETUP_PGD(next->pgd);
 
        /* mark mmu ownership change */
-       clear_bit(cpu, &prev->cpu_vm_mask);
-       set_bit(cpu, &next->cpu_vm_mask);
+       cpu_clear(cpu, prev->cpu_vm_mask);
+       cpu_set(cpu, next->cpu_vm_mask);
 
        local_irq_restore(flags);
 }
@@ -178,7 +178,7 @@ drop_mmu_context(struct mm_struct *mm, unsigned cpu)
 
        local_irq_save(flags);
 
-       if (test_bit(cpu, &mm->cpu_vm_mask))  {
+       if (cpu_isset(cpu, mm->cpu_vm_mask))  {
                get_new_mmu_context(mm, cpu);
                write_c0_entryhi(cpu_asid(cpu, mm));
        } else {
index 27ad26cb9fe9997927fa86370deebd747aef87e8..29ee13be0b2ad28687ae2eb57edc546f5ca9fdf0 100644 (file)
@@ -8,9 +8,6 @@
 #include <asm/page.h>
 #include <mmzone.h>
 
-extern struct pglist_data *node_data[];
-
-#define NODE_DATA(n)           (node_data[(n)])
 #define kvaddr_to_nid(kvaddr)  pa_to_nid(__pa(kvaddr))
 #define pfn_to_nid(pfn)                pa_to_nid((pfn) << PAGE_SHIFT)
 
diff --git a/include/asm-mips/msc01_ic.h b/include/asm-mips/msc01_ic.h
new file mode 100644 (file)
index 0000000..64f1720
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * PCI Register definitions for the MIPS System Controller.
+ *
+ * Copyright (C) 2004 MIPS Technologies, Inc.  All rights reserved.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef __ASM_MIPS_BOARDS_MSC01_IC_H
+#define __ASM_MIPS_BOARDS_MSC01_IC_H
+
+/*****************************************************************************
+ * Register offset addresses
+ *****************************************************************************/
+
+#define MSC01_IC_RST_OFS     0x00008    /* Software reset              */
+#define MSC01_IC_ENAL_OFS    0x00100    /* Int_in enable mask 31:0     */
+#define MSC01_IC_ENAH_OFS    0x00108    /* Int_in enable mask 63:32    */
+#define MSC01_IC_DISL_OFS    0x00120    /* Int_in disable mask 31:0    */
+#define MSC01_IC_DISH_OFS    0x00128    /* Int_in disable mask 63:32   */
+#define MSC01_IC_ISBL_OFS    0x00140    /* Raw int_in 31:0             */
+#define MSC01_IC_ISBH_OFS    0x00148    /* Raw int_in 63:32            */
+#define MSC01_IC_ISAL_OFS    0x00160    /* Masked int_in 31:0          */
+#define MSC01_IC_ISAH_OFS    0x00168    /* Masked int_in 63:32         */
+#define MSC01_IC_LVL_OFS     0x00180    /* Disable priority int_out    */
+#define MSC01_IC_RAMW_OFS    0x00180    /* Shadow set RAM (EI)        */
+#define MSC01_IC_OSB_OFS     0x00188    /* Raw int_out                 */
+#define MSC01_IC_OSA_OFS     0x00190    /* Masked int_out              */
+#define MSC01_IC_GENA_OFS    0x00198    /* Global HW int enable        */
+#define MSC01_IC_BASE_OFS    0x001a0    /* Base address of IC_VEC      */
+#define MSC01_IC_VEC_OFS     0x001b0    /* Active int's vector address */
+#define MSC01_IC_EOI_OFS     0x001c0    /* Enable lower level ints     */
+#define MSC01_IC_CFG_OFS     0x001c8    /* Configuration register      */
+#define MSC01_IC_TRLD_OFS    0x001d0    /* Interval timer reload val   */
+#define MSC01_IC_TVAL_OFS    0x001e0    /* Interval timer current val  */
+#define MSC01_IC_TCFG_OFS    0x001f0    /* Interval timer config       */
+#define MSC01_IC_SUP_OFS     0x00200    /* Set up int_in line 0        */
+#define MSC01_IC_ENA_OFS     0x00800    /* Int_in enable mask 63:0     */
+#define MSC01_IC_DIS_OFS     0x00820    /* Int_in disable mask 63:0    */
+#define MSC01_IC_ISB_OFS     0x00840    /* Raw int_in 63:0             */
+#define MSC01_IC_ISA_OFS     0x00860    /* Masked int_in 63:0          */
+
+/*****************************************************************************
+ * Register field encodings
+ *****************************************************************************/
+
+#define MSC01_IC_RST_RST_SHF      0
+#define MSC01_IC_RST_RST_MSK      0x00000001
+#define MSC01_IC_RST_RST_BIT      MSC01_IC_RST_RST_MSK
+#define MSC01_IC_LVL_LVL_SHF      0
+#define MSC01_IC_LVL_LVL_MSK      0x000000ff
+#define MSC01_IC_LVL_SPUR_SHF     16
+#define MSC01_IC_LVL_SPUR_MSK     0x00010000
+#define MSC01_IC_LVL_SPUR_BIT     MSC01_IC_LVL_SPUR_MSK
+#define MSC01_IC_RAMW_RIPL_SHF   0
+#define MSC01_IC_RAMW_RIPL_MSK   0x0000003f
+#define MSC01_IC_RAMW_DATA_SHF   6
+#define MSC01_IC_RAMW_DATA_MSK   0x00000fc0
+#define MSC01_IC_RAMW_ADDR_SHF   25
+#define MSC01_IC_RAMW_ADDR_MSK   0x7e000000
+#define MSC01_IC_RAMW_READ_SHF   31
+#define MSC01_IC_RAMW_READ_MSK   0x80000000
+#define MSC01_IC_RAMW_READ_BIT   MSC01_IC_RAMW_READ_MSK
+#define MSC01_IC_OSB_OSB_SHF      0
+#define MSC01_IC_OSB_OSB_MSK      0x000000ff
+#define MSC01_IC_OSA_OSA_SHF      0
+#define MSC01_IC_OSA_OSA_MSK      0x000000ff
+#define MSC01_IC_GENA_GENA_SHF    0
+#define MSC01_IC_GENA_GENA_MSK    0x00000001
+#define MSC01_IC_GENA_GENA_BIT    MSC01_IC_GENA_GENA_MSK
+#define MSC01_IC_CFG_DIS_SHF      0
+#define MSC01_IC_CFG_DIS_MSK      0x00000001
+#define MSC01_IC_CFG_DIS_BIT      MSC01_IC_CFG_DIS_MSK
+#define MSC01_IC_CFG_SHFT_SHF     8
+#define MSC01_IC_CFG_SHFT_MSK     0x00000f00
+#define MSC01_IC_TCFG_ENA_SHF     0
+#define MSC01_IC_TCFG_ENA_MSK     0x00000001
+#define MSC01_IC_TCFG_ENA_BIT     MSC01_IC_TCFG_ENA_MSK
+#define MSC01_IC_TCFG_INT_SHF     8
+#define MSC01_IC_TCFG_INT_MSK     0x00000100
+#define MSC01_IC_TCFG_INT_BIT     MSC01_IC_TCFG_INT_MSK
+#define MSC01_IC_TCFG_EDGE_SHF    16
+#define MSC01_IC_TCFG_EDGE_MSK    0x00010000
+#define MSC01_IC_TCFG_EDGE_BIT    MSC01_IC_TCFG_EDGE_MSK
+#define MSC01_IC_SUP_PRI_SHF      0
+#define MSC01_IC_SUP_PRI_MSK      0x00000007
+#define MSC01_IC_SUP_EDGE_SHF     8
+#define MSC01_IC_SUP_EDGE_MSK     0x00000100
+#define MSC01_IC_SUP_EDGE_BIT     MSC01_IC_SUP_EDGE_MSK
+#define MSC01_IC_SUP_STEP         8
+
+/*
+ * MIPS System controller interrupt register base.
+ *
+ * FIXME - are these macros specific to Malta and co or to the MSC?  If the
+ * latter, they should be moved elsewhere.
+ */
+#define MIPS_MSC01_IC_REG_BASE 0x1bc40000
+
+/*****************************************************************************
+ * Absolute register addresses
+ *****************************************************************************/
+
+#define MSC01_IC_RST     (MSC01_IC_REG_BASE + MSC01_IC_RST_OFS)
+#define MSC01_IC_ENAL    (MSC01_IC_REG_BASE + MSC01_IC_ENAL_OFS)
+#define MSC01_IC_ENAH    (MSC01_IC_REG_BASE + MSC01_IC_ENAH_OFS)
+#define MSC01_IC_DISL    (MSC01_IC_REG_BASE + MSC01_IC_DISL_OFS)
+#define MSC01_IC_DISH    (MSC01_IC_REG_BASE + MSC01_IC_DISH_OFS)
+#define MSC01_IC_ISBL    (MSC01_IC_REG_BASE + MSC01_IC_ISBL_OFS)
+#define MSC01_IC_ISBH    (MSC01_IC_REG_BASE + MSC01_IC_ISBH_OFS)
+#define MSC01_IC_ISAL    (MSC01_IC_REG_BASE + MSC01_IC_ISAL_OFS)
+#define MSC01_IC_ISAH    (MSC01_IC_REG_BASE + MSC01_IC_ISAH_OFS)
+#define MSC01_IC_LVL     (MSC01_IC_REG_BASE + MSC01_IC_LVL_OFS)
+#define MSC01_IC_RAMW    (MSC01_IC_REG_BASE + MSC01_IC_RAMW_OFS)
+#define MSC01_IC_OSB     (MSC01_IC_REG_BASE + MSC01_IC_OSB_OFS)
+#define MSC01_IC_OSA     (MSC01_IC_REG_BASE + MSC01_IC_OSA_OFS)
+#define MSC01_IC_GENA    (MSC01_IC_REG_BASE + MSC01_IC_GENA_OFS)
+#define MSC01_IC_BASE    (MSC01_IC_REG_BASE + MSC01_IC_BASE_OFS)
+#define MSC01_IC_VEC     (MSC01_IC_REG_BASE + MSC01_IC_VEC_OFS)
+#define MSC01_IC_EOI     (MSC01_IC_REG_BASE + MSC01_IC_EOI_OFS)
+#define MSC01_IC_CFG     (MSC01_IC_REG_BASE + MSC01_IC_CFG_OFS)
+#define MSC01_IC_TRLD    (MSC01_IC_REG_BASE + MSC01_IC_TRLD_OFS)
+#define MSC01_IC_TVAL    (MSC01_IC_REG_BASE + MSC01_IC_TVAL_OFS)
+#define MSC01_IC_TCFG    (MSC01_IC_REG_BASE + MSC01_IC_TCFG_OFS)
+#define MSC01_IC_SUP     (MSC01_IC_REG_BASE + MSC01_IC_SUP_OFS)
+#define MSC01_IC_ENA     (MSC01_IC_REG_BASE + MSC01_IC_ENA_OFS)
+#define MSC01_IC_DIS     (MSC01_IC_REG_BASE + MSC01_IC_DIS_OFS)
+#define MSC01_IC_ISB     (MSC01_IC_REG_BASE + MSC01_IC_ISB_OFS)
+#define MSC01_IC_ISA     (MSC01_IC_REG_BASE + MSC01_IC_ISA_OFS)
+
+/*
+ * Soc-it interrupts are configurable.
+ * Every board describes its IRQ mapping with this table.
+ */
+typedef struct msc_irqmap {
+       int     im_irq;
+       int     im_type;
+       int     im_lvl;
+} msc_irqmap_t;
+
+/* im_type */
+#define MSC01_IRQ_LEVEL                0
+#define MSC01_IRQ_EDGE         1
+
+extern void __init init_msc_irqs(unsigned int base, msc_irqmap_t *imp, int nirq);
+extern void ll_msc_irq(struct pt_regs *regs);
+
+#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */
+
index fceef695ea5d270d7766a182cc68db06870f99f9..4f00c16ceeb0e5a77501806370712848d02aada4 100644 (file)
@@ -2,6 +2,6 @@
 #define _ASM_MAX_NUMNODES_H
 
 /* Max 128 Nodes */
-#define NODES_SHIFT    7
+#define NODES_SHIFT    6
 
 #endif /* _ASM_MAX_NUMNODES_H */
index 47ca67f25e54e98193038f10b7869c16db7741b3..d1bf8240e73b258ff411918683ae7045cdf5493c 100644 (file)
@@ -15,6 +15,8 @@
 
 #include <spaces.h>
 
+#endif
+
 /*
  * PAGE_SHIFT determines the page size
  */
 #define PAGE_SHIFT     16
 #endif
 #define PAGE_SIZE      (1UL << PAGE_SHIFT)
-#define PAGE_MASK      (~(PAGE_SIZE-1))
+#define PAGE_MASK       (~((1 << PAGE_SHIFT) - 1))
 
+
+#ifdef __KERNEL__
 #ifndef __ASSEMBLY__
 
 extern void clear_page(void * page);
@@ -72,15 +76,22 @@ static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
  * These are used to make use of C type-checking..
  */
 #ifdef CONFIG_64BIT_PHYS_ADDR
-typedef struct { unsigned long long pte; } pte_t;
+  #ifdef CONFIG_CPU_MIPS32
+    typedef struct { unsigned long pte_low, pte_high; } pte_t;
+    #define pte_val(x)    ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
+  #else
+     typedef struct { unsigned long long pte; } pte_t;
+     #define pte_val(x)        ((x).pte)
+  #endif
 #else
 typedef struct { unsigned long pte; } pte_t;
+#define pte_val(x)     ((x).pte)
 #endif
+
 typedef struct { unsigned long pmd; } pmd_t;
 typedef struct { unsigned long pgd; } pgd_t;
 typedef struct { unsigned long pgprot; } pgprot_t;
 
-#define pte_val(x)     ((x).pte)
 #define pmd_val(x)     ((x).pmd)
 #define pgd_val(x)     ((x).pgd)
 #define pgprot_val(x)  ((x).pgprot)
index 1af4e5b600c6b354d50f1e54bdc540463eecc5a8..987090e07a65fceb7e0bf71d379d65dd9f1f4518 100644 (file)
 
 #ifdef __KERNEL__
 
+/*
+ * This file essentially defines the interface between board
+ * specific PCI code and MIPS common PCI code.  Should potentially put
+ * into include/asm/pci.h file.
+ */
+
+#include <linux/ioport.h>
+
+/*
+ * Each pci channel is a top-level PCI bus seem by CPU.  A machine  with
+ * multiple PCI channels may have multiple PCI host controllers or a
+ * single controller supporting multiple channels.
+ */
+struct pci_controller {
+       struct pci_controller *next;
+       struct pci_bus *bus;
+
+       struct pci_ops *pci_ops;
+       struct resource *mem_resource;
+       unsigned long mem_offset;
+       struct resource *io_resource;
+       unsigned long io_offset;
+
+       unsigned int index;
+       /* For compatibility with current (as of July 2003) pciutils
+          and XFree86. Eventually will be removed. */
+       unsigned int need_domain_info;
+
+       int iommu;
+};
+
+/*
+ * Used by boards to register their PCI busses before the actual scanning.
+ */
+extern struct pci_controller * alloc_pci_controller(void);
+extern void register_pci_controller(struct pci_controller *hose);
+
+/*
+ * board supplied pci irq fixup routine
+ */
+extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin);
+
+
 /* Can be used to override the logic in pci_scan_bus for skipping
    already-configured bus numbers - to be used for buggy BIOSes
    or architectures with incomplete PCI setup by the loader */
@@ -90,6 +133,25 @@ extern void pci_dac_dma_sync_single_for_device(struct pci_dev *pdev,
 extern void pcibios_resource_to_bus(struct pci_dev *dev,
        struct pci_bus_region *region, struct resource *res);
 
+#ifdef CONFIG_PCI_DOMAINS
+
+#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
+
+static inline int
+pci_name_bus(char *name, struct pci_bus *bus)
+{
+       struct pci_controller *hose = bus->sysdata;
+
+       if (likely(hose->need_domain_info == 0)) {
+               sprintf(name, "%02x", bus->number);
+       } else {
+               sprintf(name, "%04x:%02x", hose->index, bus->number);
+       }
+       return 0;
+}
+
+#endif /* CONFIG_PCI_DOMAINS */
+
 #endif /* __KERNEL__ */
 
 /* implement the pci_ DMA API in terms of the generic device dma_ one */
@@ -99,4 +161,7 @@ static inline void pcibios_add_platform_entries(struct pci_dev *dev)
 {
 }
 
+/* Do platform specific device initialization at pci_enable_device() time */
+extern int pcibios_plat_dev_init(struct pci_dev *dev);
+
 #endif /* _ASM_PCI_H */
index c043f643fac64ea00e52bb45549045d75a468f9c..b4ee995c56e6370ebb492e80c0869501594b56be 100644 (file)
@@ -13,7 +13,7 @@
 #define _ASM_PCI_BRIDGE_H
 
 #include <linux/types.h>
-#include <asm/pci_channel.h>
+#include <linux/pci.h>
 #include <asm/xtalk/xwidget.h>         /* generic widget header */
 
 /* I/O page size */
@@ -830,7 +830,6 @@ typedef union ate_u {
 
 #define BRIDGE_INTERNAL_ATES   128
 
-
 struct bridge_controller {
        struct pci_controller   pc;
        struct resource         mem;
@@ -840,9 +839,13 @@ struct bridge_controller {
        unsigned int            widget_id;
        unsigned int            irq_cpu;
        dma64_addr_t            baddr;
+       unsigned int            pci_int[8];
 };
 
 #define BRIDGE_CONTROLLER(bus) \
        ((struct bridge_controller *)((bus)->sysdata))
 
+extern void register_bridge_irq(unsigned int irq);
+extern int request_bridge_irq(struct bridge_controller *bc);
+
 #endif /* _ASM_PCI_BRIDGE_H */
diff --git a/include/asm-mips/pci_channel.h b/include/asm-mips/pci_channel.h
deleted file mode 100644 (file)
index a7cdb42..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef __ASM_PCI_CHANNEL_H
-#define __ASM_PCI_CHANNEL_H
-
-/*
- * This file essentially defines the interface between board
- * specific PCI code and MIPS common PCI code.  Should potentially put
- * into include/asm/pci.h file.
- */
-
-#include <linux/ioport.h>
-#include <linux/pci.h>
-
-/*
- * Each pci channel is a top-level PCI bus seem by CPU.  A machine  with
- * multiple PCI channels may have multiple PCI host controllers or a
- * single controller supporting multiple channels.
- */
-struct pci_controller {
-       struct pci_controller *next;
-       struct pci_bus *bus;
-
-       struct pci_ops *pci_ops;
-       struct resource *mem_resource;
-       unsigned long mem_offset;
-       struct resource *io_resource;
-       unsigned long io_offset;
-
-       /* For compatibility with current (as of July 2003) pciutils
-          and XFree86. Eventually will be removed. */
-       unsigned int need_domain_info;
-
-       int iommu;
-};
-
-/*
- * Used by boards to register their PCI interfaces before the actual scanning.
- */
-extern struct pci_controller * alloc_pci_controller(void);
-extern void register_pci_controller(struct pci_controller *hose);
-
-/*
- * board supplied pci irq fixup routine
- */
-extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin);
-
-#endif  /* __ASM_PCI_CHANNEL_H */
index 65bee143ebe36c97e81a4cb767748fad7588b700..472a3e78e3fdd87b812988bfd46576dbc3c5d568 100644 (file)
@@ -130,8 +130,21 @@ static inline int pgd_bad(pgd_t pgd)               { return 0; }
 static inline int pgd_present(pgd_t pgd)       { return 1; }
 static inline void pgd_clear(pgd_t *pgdp)      { }
 
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
 #define pte_page(x)            pfn_to_page(pte_pfn(x))
+#define pte_pfn(x)             ((unsigned long)((x).pte_high >> 6))
+static inline pte_t
+pfn_pte(unsigned long pfn, pgprot_t prot)
+{
+       pte_t pte;
+       pte.pte_high = (pfn << 6) | (pgprot_val(prot) & 0x3f);
+       pte.pte_low = pgprot_val(prot);
+       return pte;
+}
 
+#else
+
+#define pte_page(x)            pfn_to_page(pte_pfn(x))
 
 #ifdef CONFIG_CPU_VR41XX
 #define pte_pfn(x)             ((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
@@ -140,6 +153,7 @@ static inline void pgd_clear(pgd_t *pgdp)   { }
 #define pte_pfn(x)             ((unsigned long)((x).pte >> PAGE_SHIFT))
 #define pfn_pte(pfn, prot)     __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
 #endif
+#endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */
 
 #define __pgd_offset(address)  pgd_index(address)
 #define __pmd_offset(address)  (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1))
@@ -207,11 +221,19 @@ static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
  */
 #define PTE_FILE_MAX_BITS      27
 
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
+       /* fixme */
+#define pte_to_pgoff(_pte) (((_pte).pte_high >> 6) + ((_pte).pte_high & 0x3f))
+#define pgoff_to_pte(off) \
+       ((pte_t){(((off) & 0x3f) + ((off) << 6) + _PAGE_FILE)})
+
+#else
 #define pte_to_pgoff(_pte) \
        ((((_pte).pte >> 3) & 0x1f ) + (((_pte).pte >> 9) << 6 ))
 
 #define pgoff_to_pte(off) \
        ((pte_t) { (((off) & 0x1f) << 3) + (((off) >> 6) << 9) + _PAGE_FILE })
+#endif
 
 #endif
 
index 333d9a8f585f5af1826101067db412f1c5c7b00f..704b551f59e9f93198826f76dbf65f80087eb85b 100644 (file)
  * that the failure is recognized later on. Linux does not seem to
  * handle these failures very well though. The empty_bad_page_table has
  * invalid pte entries in it, to force page faults.
- * Vmalloc handling: vmalloc uses swapper_pg_dir[0] (returned by
- * pgd_offset_k), which is initalized to point to kpmdtbl. kpmdtbl is
- * the only single page pmd in the system. kpmdtbl entries point into
- * kptbl[] array. We reserve 1 << PGD_ORDER pages to hold the
- * vmalloc range translations, which the fault handler looks at.
+ *
+ * Kernel mappings: kernel mappings are held in the swapper_pg_table.
+ * The layout is identical to userspace except it's indexed with the
+ * fault address - VMALLOC_START.
  */
 
 /* PMD_SHIFT determines the size of the area a second-level page table can map */
@@ -66,7 +65,7 @@
  */
 #ifdef CONFIG_PAGE_SIZE_4KB
 #define PGD_ORDER              1
-#define PMD_ORDER              1
+#define PMD_ORDER              0
 #define PTE_ORDER              0
 #endif
 #ifdef CONFIG_PAGE_SIZE_8KB
@@ -94,7 +93,7 @@
 
 #define VMALLOC_START          XKSEG
 #define VMALLOC_END    \
-       (VMALLOC_START + ((1 << PGD_ORDER) * PTRS_PER_PTE * PAGE_SIZE))
+       (VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
 
 #define pte_ERROR(e) \
        printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))
@@ -225,10 +224,4 @@ static inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
 #define pgoff_to_pte(off) \
        ((pte_t) { (((off) & 0x1f) << 3) + (((off) >> 6) << 9) + _PAGE_FILE })
 
-/*
- * 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 6a890420643fb14f0329117f6be3883f4bd9b235..3aad751ccd5fd5add24df49546c6086390b8b5de 100644 (file)
  * unpredictable things.  The code (when it is written) to deal with
  * this problem will be in the update_mmu_cache() code for the r4k.
  */
+#if defined(CONFIG_CPU_MIPS32) && defined(CONFIG_64BIT_PHYS_ADDR)
+
+#define _PAGE_PRESENT               (1<<6)  /* implemented in software */
+#define _PAGE_READ                  (1<<7)  /* implemented in software */
+#define _PAGE_WRITE                 (1<<8)  /* implemented in software */
+#define _PAGE_ACCESSED              (1<<9)  /* implemented in software */
+#define _PAGE_MODIFIED              (1<<10) /* implemented in software */
+#define _PAGE_FILE                  (1<<10)  /* set:pagecache unset:swap */
+
+#define _PAGE_R4KBUG                (1<<0)  /* workaround for r4k bug  */
+#define _PAGE_GLOBAL                (1<<0)
+#define _PAGE_VALID                 (1<<1)
+#define _PAGE_SILENT_READ           (1<<1)  /* synonym                 */
+#define _PAGE_DIRTY                 (1<<2)  /* The MIPS dirty bit      */
+#define _PAGE_SILENT_WRITE          (1<<2)
+#define _CACHE_MASK                 (7<<3)
+
+/* MIPS32 defines only values 2 and 3. The rest are implementation
+ * dependent.
+ */
+#define _CACHE_UNCACHED             (2<<3)
+#define _CACHE_CACHABLE_NONCOHERENT (3<<3)
+#define _CACHE_CACHABLE_COW         (3<<3)  /* Au1x                    */
+
+#else
+
 #define _PAGE_PRESENT               (1<<0)  /* implemented in software */
 #define _PAGE_READ                  (1<<1)  /* implemented in software */
 #define _PAGE_WRITE                 (1<<2)  /* implemented in software */
 
 #endif
 #endif
+#endif /* defined(CONFIG_CPU_MIPS32) && defined(CONFIG_64BIT_PHYS_ADDR) */
 
 #define __READABLE     (_PAGE_READ | _PAGE_SILENT_READ | _PAGE_ACCESSED)
 #define __WRITEABLE    (_PAGE_WRITE | _PAGE_SILENT_WRITE | _PAGE_MODIFIED)
 #elif defined(CONFIG_DMA_NONCOHERENT)
 #define PAGE_CACHABLE_DEFAULT  _CACHE_CACHABLE_NONCOHERENT
 #elif defined(CONFIG_CPU_RM9000)
-#define PAGE_CACHABLE_DEFAULT  _CACHE_CWBEA
+#define PAGE_CACHABLE_DEFAULT  _CACHE_CWB
 #else
 #define PAGE_CACHABLE_DEFAULT  _CACHE_CACHABLE_COW
 #endif
 
+#if defined(CONFIG_CPU_MIPS32) && defined(CONFIG_64BIT_PHYS_ADDR)
+#define CONF_CM_DEFAULT                (PAGE_CACHABLE_DEFAULT >> 3)
+#else
 #define CONF_CM_DEFAULT                (PAGE_CACHABLE_DEFAULT >> 9)
+#endif
 
 #endif /* _ASM_PGTABLE_BITS_H */
index c5d69bb707aa2d04b03ab14d2ee172ac8321608c..1da0683985e27fcd1c5a76727f4633d08f5b4563 100644 (file)
@@ -80,6 +80,34 @@ extern void paging_init(void);
 #define pte_none(pte)          (!(pte_val(pte) & ~_PAGE_GLOBAL))
 #define pte_present(pte)       (pte_val(pte) & _PAGE_PRESENT)
 
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
+static inline void set_pte(pte_t *ptep, pte_t pte)
+{
+       ptep->pte_high = pte.pte_high;
+       smp_wmb();
+       ptep->pte_low = pte.pte_low;
+       //printk("pte_high %x pte_low %x\n", ptep->pte_high, ptep->pte_low);
+
+       if (pte_val(pte) & _PAGE_GLOBAL) {
+               pte_t *buddy = ptep_buddy(ptep);
+               /*
+                * Make sure the buddy is global too (if it's !none,
+                * it better already be global)
+                */
+               if (pte_none(*buddy))
+                       buddy->pte_low |= _PAGE_GLOBAL;
+       }
+}
+
+static inline void pte_clear(pte_t *ptep)
+{
+       /* Preserve global status for the pair */
+       if (pte_val(*ptep_buddy(ptep)) & _PAGE_GLOBAL)
+               set_pte(ptep, __pte(_PAGE_GLOBAL));
+       else
+               set_pte(ptep, __pte(0));
+}
+#else
 /*
  * Certain architectures need to do special things when pte's
  * within a page table are directly modified.  Thus, the following
@@ -111,6 +139,7 @@ static inline void pte_clear(pte_t *ptep)
 #endif
                set_pte(ptep, __pte(0));
 }
+#endif
 
 /*
  * (pmds are folded into pgds so this doesn't get actually called,
@@ -130,6 +159,79 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
  * Undefined behaviour if not..
  */
 static inline int pte_user(pte_t pte)  { BUG(); return 0; }
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
+static inline int pte_read(pte_t pte)  { return (pte).pte_low & _PAGE_READ; }
+static inline int pte_write(pte_t pte) { return (pte).pte_low & _PAGE_WRITE; }
+static inline int pte_dirty(pte_t pte) { return (pte).pte_low & _PAGE_MODIFIED; }
+static inline int pte_young(pte_t pte) { return (pte).pte_low & _PAGE_ACCESSED; }
+static inline int pte_file(pte_t pte)  { return (pte).pte_low & _PAGE_FILE; }
+static inline pte_t pte_wrprotect(pte_t pte)
+{
+       (pte).pte_low &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
+       (pte).pte_high &= ~_PAGE_SILENT_WRITE;
+       return pte;
+}
+
+static inline pte_t pte_rdprotect(pte_t pte)
+{
+       (pte).pte_low &= ~(_PAGE_READ | _PAGE_SILENT_READ);
+       (pte).pte_high &= ~_PAGE_SILENT_READ;
+       return pte;
+}
+
+static inline pte_t pte_mkclean(pte_t pte)
+{
+       (pte).pte_low &= ~(_PAGE_MODIFIED|_PAGE_SILENT_WRITE);
+       (pte).pte_high &= ~_PAGE_SILENT_WRITE;
+       return pte;
+}
+
+static inline pte_t pte_mkold(pte_t pte)
+{
+       (pte).pte_low &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ);
+       (pte).pte_high &= ~_PAGE_SILENT_READ;
+       return pte;
+}
+
+static inline pte_t pte_mkwrite(pte_t pte)
+{
+       (pte).pte_low |= _PAGE_WRITE;
+       if ((pte).pte_low & _PAGE_MODIFIED) {
+               (pte).pte_low |= _PAGE_SILENT_WRITE;
+               (pte).pte_high |= _PAGE_SILENT_WRITE;
+       }
+       return pte;
+}
+
+static inline pte_t pte_mkread(pte_t pte)
+{
+       (pte).pte_low |= _PAGE_READ;
+       if ((pte).pte_low & _PAGE_ACCESSED) {
+               (pte).pte_low |= _PAGE_SILENT_READ;
+               (pte).pte_high |= _PAGE_SILENT_READ;
+       }
+       return pte;
+}
+
+static inline pte_t pte_mkdirty(pte_t pte)
+{
+       (pte).pte_low |= _PAGE_MODIFIED;
+       if ((pte).pte_low & _PAGE_WRITE) {
+               (pte).pte_low |= _PAGE_SILENT_WRITE;
+               (pte).pte_high |= _PAGE_SILENT_WRITE;
+       }
+       return pte;
+}
+
+static inline pte_t pte_mkyoung(pte_t pte)
+{
+       (pte).pte_low |= _PAGE_ACCESSED;
+       if ((pte).pte_low & _PAGE_READ)
+               (pte).pte_low |= _PAGE_SILENT_READ;
+               (pte).pte_high |= _PAGE_SILENT_READ;
+       return pte;
+}
+#else
 static inline int pte_read(pte_t pte)  { return pte_val(pte) & _PAGE_READ; }
 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; }
 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_MODIFIED; }
@@ -191,6 +293,7 @@ static inline pte_t pte_mkyoung(pte_t pte)
                pte_val(pte) |= _PAGE_SILENT_READ;
        return pte;
 }
+#endif
 
 /*
  * Macro to make mark a page protection value as "uncacheable".  Note
@@ -215,10 +318,20 @@ static inline pgprot_t pgprot_noncached(pgprot_t _prot)
  */
 #define mk_pte(page, pgprot)   pfn_pte(page_to_pfn(page), (pgprot))
 
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
+static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
+{
+       pte.pte_low &= _PAGE_CHG_MASK;
+       pte.pte_low |= pgprot_val(newprot);
+       pte.pte_high |= pgprot_val(newprot) & 0x3f;
+       return pte;
+}
+#else
 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
 {
        return __pte((pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot));
 }
+#endif
 
 
 extern void __update_tlb(struct vm_area_struct *vma, unsigned long address,
@@ -237,6 +350,24 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
 #define kern_addr_valid(addr)  (1)
 #endif
 
+#ifdef CONFIG_64BIT_PHYS_ADDR
+extern phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size);
+extern int remap_pfn_range(struct vm_area_struct *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot);
+
+static inline int io_remap_page_range(struct vm_area_struct *vma,
+               unsigned long vaddr,
+               unsigned long paddr,
+               unsigned long size,
+               pgprot_t prot)
+{
+       phys_t phys_addr_high = fixup_bigphys_addr(paddr, size);
+       return remap_pfn_range(vma, vaddr, phys_addr_high >> PAGE_SHIFT, size, prot);
+}
+#else
+#define io_remap_page_range(vma, vaddr, paddr, size, prot)             \
+       remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
+#endif
+
 #include <asm-generic/pgtable.h>
 
 /*
@@ -245,9 +376,6 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
  */
 #define HAVE_ARCH_UNMAPPED_AREA
 
-#define io_remap_page_range(vma, vaddr, paddr, size, prot)             \
-               remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
-
 /*
  * No page table caches to initialise
  */
index 9ec09821c5fdcbc1f86ef45a6e109e3f2facbb6a..c2e8a0070daf71ce2e626759ba8f76ebc0044916 100644 (file)
@@ -28,8 +28,8 @@ typedef unsigned int  __kernel_nlink_t;
 typedef long           __kernel_off_t;
 typedef int            __kernel_pid_t;
 typedef int            __kernel_ipc_pid_t;
-typedef int            __kernel_uid_t;
-typedef int            __kernel_gid_t;
+typedef unsigned int   __kernel_uid_t;
+typedef unsigned int   __kernel_gid_t;
 #if (_MIPS_SZLONG == 32)
 typedef unsigned int   __kernel_size_t;
 typedef int            __kernel_ssize_t;
@@ -50,8 +50,8 @@ typedef char *                __kernel_caddr_t;
 
 typedef unsigned short __kernel_uid16_t;
 typedef unsigned short __kernel_gid16_t;
-typedef int            __kernel_uid32_t;
-typedef int            __kernel_gid32_t;
+typedef unsigned int   __kernel_uid32_t;
+typedef unsigned int   __kernel_gid32_t;
 typedef __kernel_uid_t __kernel_old_uid_t;
 typedef __kernel_gid_t __kernel_old_gid_t;
 typedef unsigned int   __kernel_old_dev_t;
index a502e8360230d25395dd2ea8b37e25f03fd4dab9..b461fd0c9831d1b1756ee3292e1d4ed44283d25e 100644 (file)
 #define _ASM_PROCESSOR_H
 
 #include <linux/config.h>
-#include <linux/cache.h>
 #include <linux/threads.h>
 
 #include <asm/cachectl.h>
 #include <asm/cpu.h>
+#include <asm/cpu-info.h>
 #include <asm/mipsregs.h>
 #include <asm/prefetch.h>
 #include <asm/system.h>
 
-#ifdef CONFIG_SGI_IP27
-#include <asm/sn/types.h>
-#endif
-
-/*
- * Descriptor for a cache
- */
-struct cache_desc {
-       unsigned short linesz;  /* Size of line in bytes */
-       unsigned short ways;    /* Number of ways */
-       unsigned short sets;    /* Number of lines per set */
-       unsigned int waysize;   /* Bytes per way */
-       unsigned int waybit;    /* Bits to select in a cache set */
-       unsigned int flags;     /* Flags describing cache properties */
-};
-
-/*
- * Flag definitions
- */
-#define MIPS_CACHE_NOT_PRESENT 0x00000001
-#define MIPS_CACHE_VTAG                0x00000002      /* Virtually tagged cache */
-#define MIPS_CACHE_ALIASES     0x00000004      /* Cache could have aliases */
-#define MIPS_CACHE_IC_F_DC     0x00000008      /* Ic can refill from D-cache */
-
-struct cpuinfo_mips {
-       unsigned long           udelay_val;
-       unsigned long           asid_cache;
-#if defined(CONFIG_SGI_IP27)
-//     cpuid_t         p_cpuid;        /* PROM assigned cpuid */
-       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 */
-#endif
-#if 0
-       unsigned long           loops_per_sec;
-       unsigned long           ipi_count;
-       unsigned long           irq_attempt[NR_IRQS];
-       unsigned long           smp_local_irq_count;
-       unsigned long           prof_multiplier;
-       unsigned long           prof_counter;
-#endif
-
-       /*
-        * Capability and feature descriptor structure for MIPS CPU
-        */
-       unsigned long           options;
-       unsigned int            processor_id;
-       unsigned int            fpu_id;
-       unsigned int            cputype;
-       int                     isa_level;
-       int                     tlbsize;
-       struct cache_desc       icache; /* Primary I-cache */
-       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[];
-#define current_cpu_data cpu_data[smp_processor_id()]
-
-extern void cpu_probe(void);
-extern void cpu_report(void);
-
 /*
  * Return current * instruction pointer ("program counter").
  */
@@ -143,7 +79,7 @@ extern unsigned int vced_count, vcei_count;
 
 #define NUM_FPU_REGS   32
 
-typedef u64 fpureg_t;
+typedef __u64 fpureg_t;
 
 struct mips_fpu_hard_struct {
        fpureg_t        fpr[NUM_FPU_REGS];
@@ -235,8 +171,6 @@ struct thread_struct {
        MF_FIXADE, 0, 0 \
 }
 
-#ifdef __KERNEL__
-
 struct task_struct;
 
 /* Free all resources held by a thread. */
@@ -264,8 +198,6 @@ unsigned long get_wchan(struct task_struct *p);
 
 #define cpu_relax()    barrier()
 
-#endif /* __KERNEL__ */
-
 /*
  * Return_address is a replacement for __builtin_return_address(count)
  * which on certain architectures cannot reasonably be implemented in GCC
index 2a090cf369b7600855fca4187893d45b9a4f354e..d3c46d6338266f7c29300d54fce0ad9e4c2c1ab6 100644 (file)
@@ -60,6 +60,8 @@ struct pt_regs {
 
 #ifdef __KERNEL__
 
+#include <linux/linkage.h>
+
 /*
  * Does the process account for user or for system time?
  */
index 8a12fb6b07de5264d40ed18be96c613c2aab69bf..649f397a3472b413d1ce8a45a92daceee64122f1 100644 (file)
@@ -26,7 +26,7 @@
  *  - We need a properly sign extended address for 64-bit code.  To get away
  *    without ifdefs we let the compiler do it by a type cast.
  */
-#define INDEX_BASE     ((int) KSEG0)
+#define INDEX_BASE     CKSEG0
 
 #define cache_op(op,addr)                                              \
        __asm__ __volatile__(                                           \
index 83c735adef9866712f537260ca772ab0290773a3..8a70ff58f7603ebfc27c9422ba2df30546eec0e0 100644 (file)
@@ -55,7 +55,7 @@
 
 #define C_P(card,port) (((card)<<6|(port)<<3) + 1)
 
-#ifdef CONFIG_MIPS_JAZZ
+#ifdef CONFIG_MACH_JAZZ
 #include <asm/jazz.h>
 
 #ifndef CONFIG_OLIVETTI_M700
 
 #ifdef CONFIG_SERIAL_AU1X00
 #include <asm/mach-au1x00/au1000.h>
-#define AU1000_SERIAL_PORT_DEFNS                              \
-    { .baud_base = 0, .port = UART0_ADDR, .irq = AU1000_UART0_INT,  \
-      .flags = STD_COM_FLAGS, .type = 1 },                        \
-    { .baud_base = 0, .port = UART1_ADDR, .irq = AU1000_UART1_INT,  \
-      .flags = STD_COM_FLAGS, .type = 1 },     \
-    { .baud_base = 0, .port = UART2_ADDR, .irq = AU1000_UART2_INT,  \
-      .flags = STD_COM_FLAGS, .type = 1 },    \
-    { .baud_base = 0, .port = UART3_ADDR, .irq = AU1000_UART3_INT,  \
-      .flags = STD_COM_FLAGS, .type = 1 },
+#ifdef CONFIG_SOC_AU1000
+#define AU1000_SERIAL_PORT_DEFNS                       \
+    { .baud_base = 0, .port = UART0_ADDR,              \
+      .iomem_base = (unsigned char *)UART0_ADDR,       \
+      .irq = AU1000_UART0_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART1_ADDR,              \
+      .iomem_base = (unsigned char *)UART1_ADDR,       \
+      .irq = AU1000_UART1_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART2_ADDR,              \
+      .iomem_base = (unsigned char *)UART2_ADDR,       \
+      .irq = AU1000_UART2_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART3_ADDR,              \
+      .iomem_base = (unsigned char *)UART3_ADDR,       \
+      .irq = AU1000_UART3_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },
+#endif
+
+#ifdef CONFIG_SOC_AU1500
+#define AU1000_SERIAL_PORT_DEFNS                       \
+    { .baud_base = 0, .port = UART0_ADDR,              \
+      .iomem_base = (unsigned char *)UART0_ADDR,       \
+      .irq = AU1500_UART0_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART3_ADDR,              \
+      .iomem_base = (unsigned char *)UART3_ADDR,       \
+      .irq = AU1500_UART3_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },
+#endif
+
+#ifdef CONFIG_SOC_AU1100
+#define AU1000_SERIAL_PORT_DEFNS                       \
+    { .baud_base = 0, .port = UART0_ADDR,              \
+      .iomem_base = (unsigned char *)UART0_ADDR,       \
+      .irq = AU1100_UART0_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART1_ADDR,              \
+      .iomem_base = (unsigned char *)UART1_ADDR,       \
+      .irq = AU1100_UART1_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART3_ADDR,              \
+      .iomem_base = (unsigned char *)UART3_ADDR,       \
+      .irq = AU1100_UART3_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },
+#endif
+
+#ifdef CONFIG_SOC_AU1550
+#define AU1000_SERIAL_PORT_DEFNS                       \
+    { .baud_base = 0, .port = UART0_ADDR,              \
+      .iomem_base = (unsigned char *)UART0_ADDR,       \
+      .irq = AU1550_UART0_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART1_ADDR,              \
+      .iomem_base = (unsigned char *)UART1_ADDR,       \
+      .irq = AU1550_UART1_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART3_ADDR,              \
+      .iomem_base = (unsigned char *)UART3_ADDR,       \
+      .irq = AU1550_UART3_INT,  .flags = STD_COM_FLAGS,\
+      .iomem_reg_shift = 2 },
+#endif
+
+#ifdef CONFIG_SOC_AU1200
+#define AU1000_SERIAL_PORT_DEFNS                       \
+    { .baud_base = 0, .port = UART0_ADDR,              \
+      .iomem_base = (unsigned char *)UART0_ADDR,       \
+      .irq = AU1200_UART0_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },                          \
+    { .baud_base = 0, .port = UART1_ADDR,              \
+      .iomem_base = (unsigned char *)UART1_ADDR,       \
+      .irq = AU1200_UART1_INT, .flags = STD_COM_FLAGS, \
+      .iomem_reg_shift = 2 },
+#endif
+
 #else
 #define AU1000_SERIAL_PORT_DEFNS
 #endif
 #define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS
 #endif
 
+#ifdef CONFIG_MOMENCO_OCELOT_3
+#define OCELOT_3_BASE_BAUD     ( 20000000 / 16 )
+#define OCELOT_3_SERIAL_IRQ    6
+#define OCELOT_3_SERIAL_BASE   (signed)0xfd000020
+
+#define _OCELOT_3_SERIAL_INIT(int, base)                               \
+       { baud_base: OCELOT_3_BASE_BAUD, irq: int,                      \
+         flags: STD_COM_FLAGS,                                         \
+         iomem_base: (u8 *) base, iomem_reg_shift: 2,                  \
+         io_type: SERIAL_IO_MEM }
+
+#define MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS                             \
+       _OCELOT_3_SERIAL_INIT(OCELOT_3_SERIAL_IRQ, OCELOT_3_SERIAL_BASE)
+#else
+#define MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS
+#endif
+
 #ifdef CONFIG_MOMENCO_OCELOT
 /* Ordinary NS16552 duart with a 20MHz crystal.  */
 #define OCELOT_BASE_BAUD ( 20000000 / 16 )
        MOMENCO_OCELOT_G_SERIAL_PORT_DEFNS              \
        MOMENCO_OCELOT_C_SERIAL_PORT_DEFNS              \
        MOMENCO_OCELOT_SERIAL_PORT_DEFNS                \
+       MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS              \
        TXX927_SERIAL_PORT_DEFNS                        \
        AU1000_SERIAL_PORT_DEFNS
 
index 3e16b4d9d621b4552ad729c3a62235a60f5681d3..169187f53fbc8df39e72de48a14fc1e6de2685bc 100644 (file)
@@ -120,7 +120,7 @@ extern u8 sgi_ioc_reset, sgi_ioc_write;
 struct sgioc_regs {
        struct pi1_regs pport;
        u32 _unused0[2];
-       struct sgioc_uart_regs serport;
+       struct sgioc_uart_regs uart;
        struct sgioc_keyb_regs kbdmouse;
        u8 _gcsel[3];
        volatile u8 gcsel;
index d63ef67ceb27ba033d9e310d647b702a8f342bd5..59450335f04982f1000b8b4f818d0b82a73d61a1 100644 (file)
@@ -371,7 +371,7 @@ struct linux_smonblock {
 
 #define __arc_clobbers                                                 \
        "$2","$3" /* ... */, "$8","$9","$10","$11",                     \
-       "$12","$13","$14","$15","$16","$24","25","$31"
+       "$12","$13","$14","$15","$16","$24","$25","$31"
 
 #define ARC_CALL0(dest)                                                        \
 ({     long __res;                                                     \
@@ -464,7 +464,7 @@ struct linux_smonblock {
        long __vec = (long) romvec->dest;                               \
        __asm__ __volatile__(                                           \
        "dsubu\t$29, 32\n\t"                                            \
-       "sw\t%6, 16($29)\n\t"                                           \
+       "sw\t%7, 16($29)\n\t"                                           \
        "jalr\t%1\n\t"                                                  \
        "daddu\t$29, 32\n\t"                                            \
        "move\t%0, $2"                                                  \
index fec216976f9e149906e81a503984bd8b67cedf78..8ddd3c99bcf786def122495b35fbc1d65f218b31 100644 (file)
@@ -13,7 +13,7 @@
 
 #define SIGEV_HEAD_SIZE        (sizeof(long) + 2*sizeof(int))
 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE-SIGEV_HEAD_SIZE) / sizeof(int))
-#define SI_PAD_SIZE    ((SI_MAX_SIZE/sizeof(int)) - 4)
+#undef __ARCH_SI_TRAPNO        /* exception code needs to fill this ...  */
 
 #define HAVE_ARCH_SIGINFO_T
 
 #define HAVE_ARCH_COPY_SIGINFO
 struct siginfo;
 
-#include <asm-generic/siginfo.h>
+/*
+ * Careful to keep union _sifields from shifting ...
+ */
+#ifdef CONFIG_MIPS32
+#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
+#endif
+#ifdef CONFIG_MIPS64
+#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
+#endif
 
-/* This structure matches the 32/n32 ABIs for source compatibility but
-   has Linux extensions.  */
+#include <asm-generic/siginfo.h>
 
 typedef struct siginfo {
        int si_signo;
        int si_code;
        int si_errno;
+       int __pad0[SI_MAX_SIZE / sizeof(int) - SI_PAD_SIZE - 3];
 
        union {
                int _pad[SI_PAD_SIZE];
@@ -40,131 +48,57 @@ typedef struct siginfo {
                /* kill() */
                struct {
                        pid_t _pid;             /* sender's pid */
-                       uid_t _uid;             /* sender's uid */
+                       __ARCH_SI_UID_T _uid;   /* sender's uid */
                } _kill;
 
-               /* SIGCHLD */
-               struct {
-                       pid_t _pid;             /* which child */
-                       uid_t _uid;             /* sender's uid */
-                       int _status;            /* exit code */
-                       clock_t _utime;
-                       clock_t _stime;
-               } _sigchld;
-
-               /* IRIX SIGCHLD */
-               struct {
-                       pid_t _pid;             /* which child */
-                       clock_t _utime;
-                       int _status;            /* exit code */
-                       clock_t _stime;
-               } _irix_sigchld;
-
-               /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
-               struct {
-                       void *_addr; /* faulting insn/memory ref. */
-               } _sigfault;
-
-               /* SIGPOLL, SIGXFSZ (To do ...)  */
-               struct {
-#ifdef CONFIG_MIPS32
-                       int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
-#endif
-#ifdef CONFIG_MIPS64
-                       long _band;     /* POLL_IN, POLL_OUT, POLL_MSG */
-#endif
-                       int _fd;
-               } _sigpoll;
-
                /* POSIX.1b timers */
                struct {
                        timer_t _tid;           /* timer id */
                        int _overrun;           /* overrun count */
                        char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
                        sigval_t _sigval;       /* same as below */
-                       int _sys_private;       /* not to be passed to user */
+                       int _sys_private;       /* not to be passed to user */
                } _timer;
 
                /* POSIX.1b signals */
                struct {
                        pid_t _pid;             /* sender's pid */
-                       uid_t _uid;             /* sender's uid */
+                       __ARCH_SI_UID_T _uid;   /* sender's uid */
                        sigval_t _sigval;
                } _rt;
 
-       } _sifields;
-} siginfo_t;
-
-#if defined(__KERNEL__) && defined(CONFIG_COMPAT)
-
-#include <linux/compat.h>
-
-#define SI_PAD_SIZE32   ((SI_MAX_SIZE/sizeof(int)) - 3)
-
-typedef union sigval32 {
-       int sival_int;
-       s32 sival_ptr;
-} sigval_t32;
-
-typedef struct siginfo32 {
-       int si_signo;
-       int si_code;
-       int si_errno;
-
-       union {
-               int _pad[SI_PAD_SIZE32];
-
-               /* kill() */
-               struct {
-                       compat_pid_t _pid;      /* sender's pid */
-                       compat_uid_t _uid;      /* sender's uid */
-               } _kill;
-
                /* SIGCHLD */
                struct {
-                       compat_pid_t _pid;      /* which child */
-                       compat_uid_t _uid;      /* sender's uid */
-                       compat_clock_t _utime;
+                       pid_t _pid;             /* which child */
+                       __ARCH_SI_UID_T _uid;   /* sender's uid */
                        int _status;            /* exit code */
-                       compat_clock_t _stime;
+                       clock_t _utime;
+                       clock_t _stime;
                } _sigchld;
 
                /* IRIX SIGCHLD */
                struct {
-                       compat_pid_t _pid;      /* which child */
-                       compat_clock_t _utime;
+                       pid_t _pid;             /* which child */
+                       clock_t _utime;
                        int _status;            /* exit code */
-                       compat_clock_t _stime;
+                       clock_t _stime;
                } _irix_sigchld;
 
                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
                struct {
-                       s32 _addr; /* faulting insn/memory ref. */
+                       void __user *_addr; /* faulting insn/memory ref. */
+#ifdef __ARCH_SI_TRAPNO
+                       int _trapno;    /* TRAP # which caused the signal */
+#endif
                } _sigfault;
 
                /* SIGPOLL, SIGXFSZ (To do ...)  */
                struct {
-                       int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
+                       __ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */
                        int _fd;
                } _sigpoll;
-
-               /* POSIX.1b timers */
-               struct {
-                       unsigned int _timer1;
-                       unsigned int _timer2;
-               } _timer;
-
-               /* POSIX.1b signals */
-               struct {
-                       compat_pid_t _pid;      /* sender's pid */
-                       compat_uid_t _uid;      /* sender's uid */
-                       sigval_t32 _sigval;
-               } _rt;
-
        } _sifields;
-} siginfo_t32;
-
-#endif /* defined(__KERNEL__) && defined(CONFIG_COMPAT) */
+} siginfo_t;
 
 /*
  * si_code values
index a88c3375055524dfa0c649738333f87b264564cf..6333169be329e65e385e368d8aa34b3749941578 100644 (file)
@@ -13,9 +13,6 @@
 
 #include <asm/offset.h>
 
-/* Used in declaration of save_static functions.  */
-#define static_unused static __attribute__((unused))
-
 #define __str2(x) #x
 #define __str(x) __str2(x)
 
@@ -39,6 +36,7 @@ __asm__ (                                                             \
        "sw\t$22,"__str(PT_R22)"($29)\n\t"                              \
        "sw\t$23,"__str(PT_R23)"($29)\n\t"                              \
        "sw\t$30,"__str(PT_R30)"($29)\n\t"                              \
+       "j\t_" #symbol "\n\t"                                           \
        ".end\t" #symbol "\n\t"                                         \
        ".size\t" #symbol",. - " #symbol)
 
@@ -66,6 +64,7 @@ __asm__ (                                                             \
        "sd\t$22,"__str(PT_R22)"($29)\n\t"                              \
        "sd\t$23,"__str(PT_R23)"($29)\n\t"                              \
        "sd\t$30,"__str(PT_R30)"($29)\n\t"                              \
+       "j\t_" #symbol "\n\t"                                           \
        ".end\t" #symbol "\n\t"                                         \
        ".size\t" #symbol",. - " #symbol)
 
index f0ef26b43f7e80ef093ea186f3c3c9d046427aef..8ba370ecfd4cc26b9138da3bf2fce8ca759fa4fa 100644 (file)
@@ -67,11 +67,6 @@ static inline int num_booting_cpus(void)
  */
 extern void core_send_ipi(int cpu, unsigned int action);
 
-/*
- * Detect available CPUs, populate phys_cpu_present_map
- */
-extern void prom_build_cpu_map(void);
-
 /*
  * Firmware CPU startup hook
  */
@@ -84,7 +79,7 @@ extern void prom_boot_secondary(int cpu, struct task_struct *idle);
 extern void prom_init_secondary(void);
 
 /*
- * Callout to firmware before smp_init
+ * Detect available CPUs, populate phys_cpu_present_map before smp_init
  */
 extern void prom_prepare_cpus(unsigned int max_cpus);
 
index 89b92104f97e525e66f1b1e7bb366e0a4a72e396..1992d9254a08637f7ab192b92fba0b11c925d81e 100644 (file)
@@ -8,25 +8,6 @@
 #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);
index 8229c6e29a910ba7d614d1cdb5d63f1686182bda..43d5dc9b330257893ace39104c004abdb550eaa0 100644 (file)
@@ -10,12 +10,10 @@ extern cnodeid_t get_compact_nodeid(void);
 extern void hub_rtc_init(cnodeid_t);
 extern void cpu_time_init(void);
 extern void per_cpu_init(void);
-extern void per_hub_init(cnodeid_t cnode);
 extern void install_cpu_nmi_handler(int slice);
 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 eba99d2ac63b6d97d83e675a31e921209bc9f709..020b4db70ee57f04844e6300a1e3e88c31b0f4cd 100644 (file)
@@ -68,6 +68,8 @@ To add: #define SO_REUSEPORT 0x0200   /* Allow local address and port reuse.  */
 
 #define SO_PEERSEC             30
 
+#ifdef __KERNEL__
+
 /** sock_type - Socket types
  *
  * Please notice that for binary compat reasons MIPS has to
@@ -93,6 +95,8 @@ enum sock_type {
 
 #define SOCK_MAX (SOCK_PACKET + 1)
 
-#define ARCH_HAS_SOCKET_TYPES
+#define ARCH_HAS_SOCKET_TYPES 1
+
+#endif /* __KERNEL__ */
 
 #endif /* _ASM_SOCKET_H */
index f16118f57e79b04ae35eb9fd0b52673589978ddb..adbca38ead51225e7bb41cb63093dbb7857cac6e 100644 (file)
@@ -9,6 +9,8 @@
 #ifndef _ASM_SPINLOCK_H
 #define _ASM_SPINLOCK_H
 
+#include <asm/war.h>
+
 /*
  * Your basic SMP spinlocks, allowing only a single CPU anywhere
  */
@@ -36,27 +38,43 @@ static inline void _raw_spin_lock(spinlock_t *lock)
 {
        unsigned int tmp;
 
-       __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_spin_lock\n"
-       "1:\tll\t%1, %2\n\t"
-       "bnez\t%1, 1b\n\t"
-       " li\t%1, 1\n\t"
-       "sc\t%1, %0\n\t"
-       "beqz\t%1, 1b\n\t"
-       " sync\n\t"
-       ".set\treorder"
-       : "=m" (lock->lock), "=&r" (tmp)
-       : "m" (lock->lock)
-       : "memory");
+       if (R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_spin_lock        \n"
+               "1:     ll      %1, %2                                  \n"
+               "       bnez    %1, 1b                                  \n"
+               "        li     %1, 1                                   \n"
+               "       sc      %1, %0                                  \n"
+               "       beqzl   %1, 1b                                  \n"
+               "        nop                                            \n"
+               "       sync                                            \n"
+               "       .set    reorder                                 \n"
+               : "=m" (lock->lock), "=&r" (tmp)
+               : "m" (lock->lock)
+               : "memory");
+       } else {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_spin_lock        \n"
+               "1:     ll      %1, %2                                  \n"
+               "       bnez    %1, 1b                                  \n"
+               "        li     %1, 1                                   \n"
+               "       sc      %1, %0                                  \n"
+               "       beqz    %1, 1b                                  \n"
+               "        sync                                           \n"
+               "       .set    reorder                                 \n"
+               : "=m" (lock->lock), "=&r" (tmp)
+               : "m" (lock->lock)
+               : "memory");
+       }
 }
 
 static inline void _raw_spin_unlock(spinlock_t *lock)
 {
        __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_spin_unlock\n\t"
-       "sync\n\t"
-       "sw\t$0, %0\n\t"
-       ".set\treorder"
+       "       .set    noreorder       # _raw_spin_unlock      \n"
+       "       sync                                            \n"
+       "       sw      $0, %0                                  \n"
+       "       .set\treorder                                   \n"
        : "=m" (lock->lock)
        : "m" (lock->lock)
        : "memory");
@@ -66,17 +84,34 @@ static inline unsigned int _raw_spin_trylock(spinlock_t *lock)
 {
        unsigned int temp, res;
 
-       __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_spin_trylock\n\t"
-       "1:\tll\t%0, %3\n\t"
-       "ori\t%2, %0, 1\n\t"
-       "sc\t%2, %1\n\t"
-       "beqz\t%2, 1b\n\t"
-       " andi\t%2, %0, 1\n\t"
-       ".set\treorder"
-       : "=&r" (temp), "=m" (lock->lock), "=&r" (res)
-       : "m" (lock->lock)
-       : "memory");
+       if (R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_spin_trylock     \n"
+               "1:     ll      %0, %3                                  \n"
+               "       ori     %2, %0, 1                               \n"
+               "       sc      %2, %1                                  \n"
+               "       beqzl   %2, 1b                                  \n"
+               "        nop                                            \n"
+               "       andi    %2, %0, 1                               \n"
+               "       sync                                            \n"
+               "       .set    reorder"
+               : "=&r" (temp), "=m" (lock->lock), "=&r" (res)
+               : "m" (lock->lock)
+               : "memory");
+       } else {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_spin_trylock     \n"
+               "1:     ll      %0, %3                                  \n"
+               "       ori     %2, %0, 1                               \n"
+               "       sc      %2, %1                                  \n"
+               "       beqz    %2, 1b                                  \n"
+               "        andi   %2, %0, 1                               \n"
+               "       sync                                            \n"
+               "       .set    reorder"
+               : "=&r" (temp), "=m" (lock->lock), "=&r" (res)
+               : "m" (lock->lock)
+               : "memory");
+       }
 
        return res == 0;
 }
@@ -104,18 +139,34 @@ static inline void _raw_read_lock(rwlock_t *rw)
 {
        unsigned int tmp;
 
-       __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_read_lock\n"
-       "1:\tll\t%1, %2\n\t"
-       "bltz\t%1, 1b\n\t"
-       " addu\t%1, 1\n\t"
-       "sc\t%1, %0\n\t"
-       "beqz\t%1, 1b\n\t"
-       " sync\n\t"
-       ".set\treorder"
-       : "=m" (rw->lock), "=&r" (tmp)
-       : "m" (rw->lock)
-       : "memory");
+       if (R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_read_lock        \n"
+               "1:     ll      %1, %2                                  \n"
+               "       bltz    %1, 1b                                  \n"
+               "        addu   %1, 1                                   \n"
+               "       sc      %1, %0                                  \n"
+               "       beqzl   %1, 1b                                  \n"
+               "        nop                                            \n"
+               "       sync                                            \n"
+               "       .set    reorder                                 \n"
+               : "=m" (rw->lock), "=&r" (tmp)
+               : "m" (rw->lock)
+               : "memory");
+       } else {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_read_lock        \n"
+               "1:     ll      %1, %2                                  \n"
+               "       bltz    %1, 1b                                  \n"
+               "        addu   %1, 1                                   \n"
+               "       sc      %1, %0                                  \n"
+               "       beqz    %1, 1b                                  \n"
+               "        sync                                           \n"
+               "       .set    reorder                                 \n"
+               : "=m" (rw->lock), "=&r" (tmp)
+               : "m" (rw->lock)
+               : "memory");
+       }
 }
 
 /* Note the use of sub, not subu which will make the kernel die with an
@@ -125,44 +176,71 @@ static inline void _raw_read_unlock(rwlock_t *rw)
 {
        unsigned int tmp;
 
-       __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_read_unlock\n"
-       "1:\tll\t%1, %2\n\t"
-       "sub\t%1, 1\n\t"
-       "sc\t%1, %0\n\t"
-       "beqz\t%1, 1b\n\t"
-       " sync\n\t"
-       ".set\treorder"
-       : "=m" (rw->lock), "=&r" (tmp)
-       : "m" (rw->lock)
-       : "memory");
+       if (R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "1:     ll      %1, %2          # _raw_read_unlock      \n"
+               "       sub     %1, 1                                   \n"
+               "       sc      %1, %0                                  \n"
+               "       beqzl   %1, 1b                                  \n"
+               "       sync                                            \n"
+               : "=m" (rw->lock), "=&r" (tmp)
+               : "m" (rw->lock)
+               : "memory");
+       } else {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_read_unlock      \n"
+               "1:     ll      %1, %2                                  \n"
+               "       sub     %1, 1                                   \n"
+               "       sc      %1, %0                                  \n"
+               "       beqz    %1, 1b                                  \n"
+               "        sync                                           \n"
+               "       .set    reorder                                 \n"
+               : "=m" (rw->lock), "=&r" (tmp)
+               : "m" (rw->lock)
+               : "memory");
+       }
 }
 
 static inline void _raw_write_lock(rwlock_t *rw)
 {
        unsigned int tmp;
 
-       __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_write_lock\n"
-       "1:\tll\t%1, %2\n\t"
-       "bnez\t%1, 1b\n\t"
-       " lui\t%1, 0x8000\n\t"
-       "sc\t%1, %0\n\t"
-       "beqz\t%1, 1b\n\t"
-       " sync\n\t"
-       ".set\treorder"
-       : "=m" (rw->lock), "=&r" (tmp)
-       : "m" (rw->lock)
-       : "memory");
+       if (R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_write_lock       \n"
+               "1:     ll      %1, %2                                  \n"
+               "       bnez    %1, 1b                                  \n"
+               "        lui    %1, 0x8000                              \n"
+               "       sc      %1, %0                                  \n"
+               "       beqzl   %1, 1b                                  \n"
+               "        nop                                            \n"
+               "       sync                                            \n"
+               "       .set    reorder                                 \n"
+               : "=m" (rw->lock), "=&r" (tmp)
+               : "m" (rw->lock)
+               : "memory");
+       } else {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_write_lock       \n"
+               "1:     ll      %1, %2                                  \n"
+               "       bnez    %1, 1b                                  \n"
+               "        lui    %1, 0x8000                              \n"
+               "       sc      %1, %0                                  \n"
+               "       beqz    %1, 1b                                  \n"
+               "        nop                                            \n"
+               "       sync                                            \n"
+               "       .set    reorder                                 \n"
+               : "=m" (rw->lock), "=&r" (tmp)
+               : "m" (rw->lock)
+               : "memory");
+       }
 }
 
 static inline void _raw_write_unlock(rwlock_t *rw)
 {
        __asm__ __volatile__(
-       ".set\tnoreorder\t\t\t# _raw_write_unlock\n\t"
-       "sync\n\t"
-       "sw\t$0, %0\n\t"
-       ".set\treorder"
+       "       sync                    # _raw_write_unlock     \n"
+       "       sw      $0, %0                                  \n"
        : "=m" (rw->lock)
        : "m" (rw->lock)
        : "memory");
@@ -173,21 +251,40 @@ 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");
+       if (R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_write_trylock    \n"
+               "       li      %2, 0                                   \n"
+               "1:     ll      %1, %3                                  \n"
+               "       bnez    %1, 2f                                  \n"
+               "        lui    %1, 0x8000                              \n"
+               "       sc      %1, %0                                  \n"
+               "       beqzl   %1, 1b                                  \n"
+               "        nop                                            \n"
+               "       sync                                            \n"
+               "       li      %2, 1                                   \n"
+               "       .set    reorder                                 \n"
+               "2:                                                     \n"
+               : "=m" (rw->lock), "=&r" (tmp), "=&r" (ret)
+               : "m" (rw->lock)
+               : "memory");
+       } else {
+               __asm__ __volatile__(
+               "       .set    noreorder       # _raw_write_trylock    \n"
+               "       li      %2, 0                                   \n"
+               "1:     ll      %1, %3                                  \n"
+               "       bnez    %1, 2f                                  \n"
+               "       lui     %1, 0x8000                              \n"
+               "       sc      %1, %0                                  \n"
+               "       beqz    %1, 1b                                  \n"
+               "        sync                                           \n"
+               "       li      %2, 1                                   \n"
+               "       .set    reorder                                 \n"
+               "2:                                                     \n"
+               : "=m" (rw->lock), "=&r" (tmp), "=&r" (ret)
+               : "m" (rw->lock)
+               : "memory");
+       }
 
        return ret;
 }
index 53a441c3cb3bb30a328c7b453a20e65917c667fc..acf55526f356dbee490059ea1064ca5a2bcb3f9a 100644 (file)
@@ -68,7 +68,7 @@
                MFC0    k1, CP0_CONTEXT
                dsra    k1, 23
                lui     k0, %hi(pgd_current)
-               daddiu  k0, %lo(pgd_current)
+               addiu   k0, %lo(pgd_current)
                dsubu   k1, k0
                lui     k0, %hi(kernelsp)
                daddu   k1, k0
index ef15465abdf99251ad68d0a3c7144cca4ead4701..5076fec65780ff39c6f3852f1423c389fedfe5a2 100644 (file)
@@ -28,9 +28,9 @@ struct statfs {
        long            f_bfree;
        long            f_files;
        long            f_ffree;
+       long            f_bavail;
 
        /* Linux specials */
-       long    f_bavail;
        __kernel_fsid_t f_fsid;
        long            f_namelen;
        long            f_spare[6];
@@ -44,15 +44,16 @@ struct statfs {
 struct statfs64 {
        __u32   f_type;
        __u32   f_bsize;
+       __u32   f_frsize;       /* Fragment size - unsupported */
+       __u32   __pad;
        __u64   f_blocks;
        __u64   f_bfree;
-       __u64   f_bavail;
        __u64   f_files;
        __u64   f_ffree;
+       __u64   f_bavail;
        __kernel_fsid_t f_fsid;
        __u32   f_namelen;
-       __u32   f_frsize;
-       __u32   f_spare[5];
+       __u32   f_spare[6];
 };
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
@@ -67,26 +68,27 @@ struct statfs64 {                   /* Same as struct statfs */
        long            f_bfree;
        long            f_files;
        long            f_ffree;
+       long            f_bavail;
 
        /* Linux specials */
-       long    f_bavail;
        __kernel_fsid_t f_fsid;
        long            f_namelen;
        long            f_spare[6];
 };
 
 struct compat_statfs64 {
-       __u32 f_type;
-       __u32 f_bsize;
-       __u64 f_blocks;
-       __u64 f_bfree;
-       __u64 f_bavail;
-       __u64 f_files;
-       __u64 f_ffree;
+       __u32   f_type;
+       __u32   f_bsize;
+       __u32   f_frsize;       /* Fragment size - unsupported */
+       __u32   __pad;
+       __u64   f_blocks;
+       __u64   f_bfree;
+       __u64   f_files;
+       __u64   f_ffree;
+       __u64   f_bavail;
        __kernel_fsid_t f_fsid;
-       __u32 f_namelen;
-       __u32 f_frsize;
-       __u32 f_spare[5];
+       __u32   f_namelen;
+       __u32   f_spare[6];
 };
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
index 9bacd119796ba2f68b8f95aba3e9d0577524de7d..a421cdb1e0da06b7ce164de62d88d35dcb23480a 100644 (file)
 #define _ASM_SYSTEM_H
 
 #include <linux/config.h>
-#include <asm/sgidefs.h>
-
-#include <linux/kernel.h>
+#include <linux/types.h>
 
 #include <asm/addrspace.h>
+#include <asm/cpu-features.h>
 #include <asm/ptrace.h>
-#include <asm/hazards.h>
-
-__asm__ (
-       ".macro\tlocal_irq_enable\n\t"
-       ".set\tpush\n\t"
-       ".set\treorder\n\t"
-       ".set\tnoat\n\t"
-       "mfc0\t$1,$12\n\t"
-       "ori\t$1,0x1f\n\t"
-       "xori\t$1,0x1e\n\t"
-       "mtc0\t$1,$12\n\t"
-       "irq_enable_hazard\n\t"
-       ".set\tpop\n\t"
-       ".endm");
-
-static inline void local_irq_enable(void)
-{
-       __asm__ __volatile__(
-               "local_irq_enable"
-               : /* no outputs */
-               : /* no inputs */
-               : "memory");
-}
-
-/*
- * For cli() we have to insert nops to make sure that the new value
- * has actually arrived in the status register before the end of this
- * macro.
- * R4000/R4400 need three nops, the R4600 two nops and the R10000 needs
- * no nops at all.
- */
-__asm__ (
-       ".macro\tlocal_irq_disable\n\t"
-       ".set\tpush\n\t"
-       ".set\tnoat\n\t"
-       "mfc0\t$1,$12\n\t"
-       "ori\t$1,1\n\t"
-       "xori\t$1,1\n\t"
-       ".set\tnoreorder\n\t"
-       "mtc0\t$1,$12\n\t"
-       "irq_disable_hazard\n\t"
-       ".set\tpop\n\t"
-       ".endm");
-
-static inline void local_irq_disable(void)
-{
-       __asm__ __volatile__(
-               "local_irq_disable"
-               : /* no outputs */
-               : /* no inputs */
-               : "memory");
-}
-
-__asm__ (
-       ".macro\tlocal_save_flags flags\n\t"
-       ".set\tpush\n\t"
-       ".set\treorder\n\t"
-       "mfc0\t\\flags, $12\n\t"
-       ".set\tpop\n\t"
-       ".endm");
-
-#define local_save_flags(x)                                            \
-__asm__ __volatile__(                                                  \
-       "local_save_flags %0"                                           \
-       : "=r" (x))
-
-__asm__ (
-       ".macro\tlocal_irq_save result\n\t"
-       ".set\tpush\n\t"
-       ".set\treorder\n\t"
-       ".set\tnoat\n\t"
-       "mfc0\t\\result, $12\n\t"
-       "ori\t$1, \\result, 1\n\t"
-       "xori\t$1, 1\n\t"
-       ".set\tnoreorder\n\t"
-       "mtc0\t$1, $12\n\t"
-       "irq_disable_hazard\n\t"
-       ".set\tpop\n\t"
-       ".endm");
-
-#define local_irq_save(x)                                              \
-__asm__ __volatile__(                                                  \
-       "local_irq_save\t%0"                                            \
-       : "=r" (x)                                                      \
-       : /* no inputs */                                               \
-       : "memory")
-
-__asm__ (
-       ".macro\tlocal_irq_restore flags\n\t"
-       ".set\tnoreorder\n\t"
-       ".set\tnoat\n\t"
-       "mfc0\t$1, $12\n\t"
-       "andi\t\\flags, 1\n\t"
-       "ori\t$1, 1\n\t"
-       "xori\t$1, 1\n\t"
-       "or\t\\flags, $1\n\t"
-       "mtc0\t\\flags, $12\n\t"
-       "irq_disable_hazard\n\t"
-       ".set\tat\n\t"
-       ".set\treorder\n\t"
-       ".endm");
-
-#define local_irq_restore(flags)                                       \
-do {                                                                   \
-       unsigned long __tmp1;                                           \
-                                                                       \
-       __asm__ __volatile__(                                           \
-               "local_irq_restore\t%0"                                 \
-               : "=r" (__tmp1)                                         \
-               : "0" (flags)                                           \
-               : "memory");                                            \
-} while(0)
-
-#define irqs_disabled()                                                        \
-({                                                                     \
-       unsigned long flags;                                            \
-       local_save_flags(flags);                                        \
-       !(flags & 1);                                                   \
-})
+#include <asm/war.h>
+#include <asm/interrupt.h>
 
 /*
  * read_barrier_depends - Flush all pending reads that subsequents reads
@@ -277,37 +159,51 @@ do { \
        (last) = resume(prev, next, next->thread_info); \
 } while(0)
 
+#define ROT_IN_PIECES                                                  \
+       "       .set    noreorder       \n"                             \
+       "       .set    reorder         \n"
+
 static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
 {
        __u32 retval;
 
-#ifdef CONFIG_CPU_HAS_LLSC
-       unsigned long dummy;
-
-       __asm__ __volatile__(
-               ".set\tpush\t\t\t\t# xchg_u32\n\t"
-               ".set\tnoreorder\n\t"
-               ".set\tnomacro\n\t"
-               "ll\t%0, %3\n"
-               "1:\tmove\t%2, %z4\n\t"
-               "sc\t%2, %1\n\t"
-               "beqzl\t%2, 1b\n\t"
-               " ll\t%0, %3\n\t"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long dummy;
+
+               __asm__ __volatile__(
+               "1:     ll      %0, %3                  # xchg_u32      \n"
+               "       move    %2, %z4                                 \n"
+               "       sc      %2, %1                                  \n"
+               "       beqzl   %2, 1b                                  \n"
+               ROT_IN_PIECES
 #ifdef CONFIG_SMP
-               "sync\n\t"
+               "       sync                                            \n"
 #endif
-               ".set\tpop"
                : "=&r" (retval), "=m" (*m), "=&r" (dummy)
                : "R" (*m), "Jr" (val)
                : "memory");
-#else
-       unsigned long flags;
-
-       local_irq_save(flags);
-       retval = *m;
-       *m = val;
-       local_irq_restore(flags);       /* implies memory barrier  */
+       } else if (cpu_has_llsc) {
+               unsigned long dummy;
+
+               __asm__ __volatile__(
+               "1:     ll      %0, %3                  # xchg_u32      \n"
+               "       move    %2, %z4                                 \n"
+               "       sc      %2, %1                                  \n"
+               "       beqz    %2, 1b                                  \n"
+#ifdef CONFIG_SMP
+               "       sync                                            \n"
 #endif
+               : "=&r" (retval), "=m" (*m), "=&r" (dummy)
+               : "R" (*m), "Jr" (val)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               local_irq_save(flags);
+               retval = *m;
+               *m = val;
+               local_irq_restore(flags);       /* implies memory barrier  */
+       }
 
        return retval;
 }
@@ -317,33 +213,43 @@ static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
 {
        __u64 retval;
 
-#ifdef CONFIG_CPU_HAS_LLDSCD
-       unsigned long dummy;
-
-       __asm__ __volatile__(
-               ".set\tpush\t\t\t\t# xchg_u64\n\t"
-               ".set\tnoreorder\n\t"
-               ".set\tnomacro\n\t"
-               "lld\t%0, %3\n"
-               "1:\tmove\t%2, %z4\n\t"
-               "scd\t%2, %1\n\t"
-               "beqzl\t%2, 1b\n\t"
-               " lld\t%0, %3\n\t"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               unsigned long dummy;
+
+               __asm__ __volatile__(
+               "1:     lld     %0, %3                  # xchg_u64      \n"
+               "       move    %2, %z4                                 \n"
+               "       scd     %2, %1                                  \n"
+               "       beqzl   %2, 1b                                  \n"
+               ROT_IN_PIECES
 #ifdef CONFIG_SMP
-               "sync\n\t"
+               "       sync                                            \n"
 #endif
-               ".set\tpop"
                : "=&r" (retval), "=m" (*m), "=&r" (dummy)
                : "R" (*m), "Jr" (val)
                : "memory");
-#else
-       unsigned long flags;
-
-       local_irq_save(flags);
-       retval = *m;
-       *m = val;
-       local_irq_restore(flags);       /* implies memory barrier  */
+       } else if (cpu_has_llsc) {
+               unsigned long dummy;
+
+               __asm__ __volatile__(
+               "1:     lld     %0, %3                  # xchg_u64      \n"
+               "       move    %2, %z4                                 \n"
+               "       scd     %2, %1                                  \n"
+               "       beqz    %2, 1b                                  \n"
+#ifdef CONFIG_SMP
+               "       sync                                            \n"
 #endif
+               : "=&r" (retval), "=m" (*m), "=&r" (dummy)
+               : "R" (*m), "Jr" (val)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               local_irq_save(flags);
+               retval = *m;
+               *m = val;
+               local_irq_restore(flags);       /* implies memory barrier  */
+       }
 
        return retval;
 }
@@ -378,31 +284,48 @@ static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old,
 {
        __u32 retval;
 
-#ifdef CONFIG_CPU_HAS_LLSC
-       __asm__ __volatile__(
-       "       .set    noat                                    \n"
-       "1:     ll      %0, %2                  # __cmpxchg_u32 \n"
-       "       bne     %0, %z3, 2f                             \n"
-       "       move    $1, %z4                                 \n"
-       "       sc      $1, %1                                  \n"
-       "       beqz    $1, 1b                                  \n"
+       if (cpu_has_llsc && R10000_LLSC_WAR) {
+               __asm__ __volatile__(
+               "       .set    noat                                    \n"
+               "1:     ll      %0, %2                  # __cmpxchg_u32 \n"
+               "       bne     %0, %z3, 2f                             \n"
+               "       move    $1, %z4                                 \n"
+               "       sc      $1, %1                                  \n"
+               "       beqzl   $1, 1b                                  \n"
+               ROT_IN_PIECES
 #ifdef CONFIG_SMP
-       "       sync                                            \n"
+               "       sync                                            \n"
 #endif
-       "2:                                                     \n"
-       "       .set    at                                      \n"
-       : "=&r" (retval), "=m" (*m)
-       : "R" (*m), "Jr" (old), "Jr" (new)
-       : "memory");
-#else
-       unsigned long flags;
-
-       local_irq_save(flags);
-       retval = *m;
-       if (retval == old)
-               *m = new;
-       local_irq_restore(flags);       /* implies memory barrier  */
+               "2:                                                     \n"
+               "       .set    at                                      \n"
+               : "=&r" (retval), "=m" (*m)
+               : "R" (*m), "Jr" (old), "Jr" (new)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               __asm__ __volatile__(
+               "       .set    noat                                    \n"
+               "1:     ll      %0, %2                  # __cmpxchg_u32 \n"
+               "       bne     %0, %z3, 2f                             \n"
+               "       move    $1, %z4                                 \n"
+               "       sc      $1, %1                                  \n"
+               "       beqz    $1, 1b                                  \n"
+#ifdef CONFIG_SMP
+               "       sync                                            \n"
 #endif
+               "2:                                                     \n"
+               "       .set    at                                      \n"
+               : "=&r" (retval), "=m" (*m)
+               : "R" (*m), "Jr" (old), "Jr" (new)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               local_irq_save(flags);
+               retval = *m;
+               if (retval == old)
+                       *m = new;
+               local_irq_restore(flags);       /* implies memory barrier  */
+       }
 
        return retval;
 }
@@ -413,31 +336,48 @@ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old,
 {
        __u64 retval;
 
-#ifdef CONFIG_CPU_HAS_LLDSCD
-       __asm__ __volatile__(
-       "       .set    noat                                    \n"
-       "1:     lld     %0, %2                  # __cmpxchg_u64 \n"
-       "       bne     %0, %z3, 2f                             \n"
-       "       move    $1, %z4                                 \n"
-       "       scd     $1, %1                                  \n"
-       "       beqz    $1, 1b                                  \n"
+       if (cpu_has_llsc) {
+               __asm__ __volatile__(
+               "       .set    noat                                    \n"
+               "1:     lld     %0, %2                  # __cmpxchg_u64 \n"
+               "       bne     %0, %z3, 2f                             \n"
+               "       move    $1, %z4                                 \n"
+               "       scd     $1, %1                                  \n"
+               "       beqzl   $1, 1b                                  \n"
+               ROT_IN_PIECES
 #ifdef CONFIG_SMP
-       "       sync                                            \n"
+               "       sync                                            \n"
 #endif
-       "2:                                                     \n"
-       "       .set    at                                      \n"
-       : "=&r" (retval), "=m" (*m)
-       : "R" (*m), "Jr" (old), "Jr" (new)
-       : "memory");
-#else
-       unsigned long flags;
-
-       local_irq_save(flags);
-       retval = *m;
-       if (retval == old)
-               *m = new;
-       local_irq_restore(flags);       /* implies memory barrier  */
+               "2:                                                     \n"
+               "       .set    at                                      \n"
+               : "=&r" (retval), "=m" (*m)
+               : "R" (*m), "Jr" (old), "Jr" (new)
+               : "memory");
+       } else if (cpu_has_llsc) {
+               __asm__ __volatile__(
+               "       .set    noat                                    \n"
+               "1:     lld     %0, %2                  # __cmpxchg_u64 \n"
+               "       bne     %0, %z3, 2f                             \n"
+               "       move    $1, %z4                                 \n"
+               "       scd     $1, %1                                  \n"
+               "       beqz    $1, 1b                                  \n"
+#ifdef CONFIG_SMP
+               "       sync                                            \n"
 #endif
+               "2:                                                     \n"
+               "       .set    at                                      \n"
+               : "=&r" (retval), "=m" (*m)
+               : "R" (*m), "Jr" (old), "Jr" (new)
+               : "memory");
+       } else {
+               unsigned long flags;
+
+               local_irq_save(flags);
+               retval = *m;
+               if (retval == old)
+                       *m = new;
+               local_irq_restore(flags);       /* implies memory barrier  */
+       }
 
        return retval;
 }
@@ -479,14 +419,8 @@ extern void __die_if_kernel(const char *, struct pt_regs *, const char *file,
 #define die_if_kernel(msg, regs)                                       \
        __die_if_kernel(msg, regs, __FILE__ ":", __FUNCTION__, __LINE__)
 
-extern int serial_console;
 extern int stop_a_enabled;
 
-static __inline__ int con_is_present(void)
-{
-       return serial_console ? 0 : 1;
-}
-
 /*
  * Taken from include/asm-ia64/system.h; prevents deadlock on SMP
  * systems.
index 508b32ad330abe9019df583b9dec17a752d703c5..5f3b64875addf84b80758ac6947d584c46a17294 100644 (file)
@@ -101,7 +101,7 @@ register struct thread_info *__current_thread_info __asm__("$28");
 
 #endif /* !__ASSEMBLY__ */
 
-#define PREEMPT_ACTIVE         0x4000000
+#define PREEMPT_ACTIVE         0x10000000
 
 /*
  * thread information flags
index d820445e8ead4d3a4e6f35e2d103323c08f0ec45..fd9599e40a0ae4e80da1cb023db5b9a46e896503 100644 (file)
 #include <asm/addrspace.h>              /* for KSEG1ADDR() */
 #include <asm/byteorder.h>              /* for cpu_to_le32() */
 
-/* PCI */
-#define        TITAN_PCI_BASE                  0xbb000000
-
-#define TITAN_WRITE(ofs, data)  \
-        *(volatile u32 *)(TITAN_PCI_BASE+(ofs)) = cpu_to_le32(data)
-#define TITAN_READ(ofs, data)   \
-        *(data) = le32_to_cpu(*(volatile u32 *)(TITAN_PCI_BASE+(ofs)))
-#define TITAN_READ_DATA(ofs)    \
-        le32_to_cpu(*(volatile u32 *)(TITAN_PCI_BASE+(ofs)))
-
-#define TITAN_WRITE_16(ofs, data)  \
-        *(volatile u16 *)(TITAN_PCI_BASE+(ofs)) = cpu_to_le16(data)
-#define TITAN_READ_16(ofs, data)   \
-        *(data) = le16_to_cpu(*(volatile u16 *)(TITAN_PCI_BASE+(ofs)))
-
-#define TITAN_WRITE_8(ofs, data)  \
-        *(volatile u8 *)(TITAN_PCI_BASE+(ofs)) = data
-#define TITAN_READ_8(ofs, data)   \
-        *(data) = *(volatile u8 *)(TITAN_PCI_BASE+(ofs))
+#define TITAN_READ(ofs)                                                        \
+       (*(volatile u32 *)(ocd_base+(ofs)))
+#define TITAN_READ_16(ofs)                                             \
+       (*(volatile u16 *)(ocd_base+(ofs)))
+#define TITAN_READ_8(ofs)                                              \
+       (*(volatile u8 *)(ocd_base+(ofs)))
+
+#define TITAN_WRITE(ofs, data)                                         \
+       do { *(volatile u32 *)(ocd_base+(ofs)) = (data); } while (0)
+#define TITAN_WRITE_16(ofs, data)                                      \
+       do { *(volatile u16 *)(ocd_base+(ofs)) = (data); } while (0)
+#define TITAN_WRITE_8(ofs, data)                                       \
+       do { *(volatile u8 *)(ocd_base+(ofs)) = (data); } while (0)
 
 /*
  * PCI specific defines
 /*
  * HT specific defines
  */
-#define RM9000x2_HTLINK_REG     0xbb000644
-#define RM9000x2_BASE_ADDR      0xbb000000
+#define RM9000x2_HTLINK_REG            0xbb000644
+#define RM9000x2_BASE_ADDR             0xbb000000
 
-#define OCD_BASE                0xfb000000UL
-#define OCD_SIZE                0x3000UL
+#define OCD_BASE                       0xfb000000UL
+#define OCD_SIZE                       0x3000UL
 
 extern unsigned long ocd_base;
 
diff --git a/include/asm-mips/tx4927/smsc_fdc37m81x.h b/include/asm-mips/tx4927/smsc_fdc37m81x.h
new file mode 100644 (file)
index 0000000..5d93bab
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * linux/include/asm-mips/tx4927/smsc_fdc37m81x.h
+ *
+ * Interface for smsc fdc48m81x Super IO chip
+ *
+ * Author: MontaVista Software, Inc. source@mvista.com
+ *
+ * 2001-2003 (c) MontaVista Software, Inc. This file is licensed under
+ * the terms of the GNU General Public License version 2. This program
+ * is licensed "as is" without any warranty of any kind, whether express
+ * or implied.
+ *
+ * Copyright (C) 2004 MontaVista Software Inc.
+ * Manish Lachwani, mlachwani@mvista.com
+ */
+
+#ifndef _SMSC_FDC37M81X_H_
+#define _SMSC_FDC37M81X_H_
+
+/* Common Registers */
+#define SMSC_FDC37M81X_CONFIG_INDEX  0x00
+#define SMSC_FDC37M81X_CONFIG_DATA   0x01
+#define SMSC_FDC37M81X_CONF          0x02
+#define SMSC_FDC37M81X_INDEX         0x03
+#define SMSC_FDC37M81X_DNUM          0x07
+#define SMSC_FDC37M81X_DID           0x20
+#define SMSC_FDC37M81X_DREV          0x21
+#define SMSC_FDC37M81X_PCNT          0x22
+#define SMSC_FDC37M81X_PMGT          0x23
+#define SMSC_FDC37M81X_OSC           0x24
+#define SMSC_FDC37M81X_CONFPA0       0x26
+#define SMSC_FDC37M81X_CONFPA1       0x27
+#define SMSC_FDC37M81X_TEST4         0x2B
+#define SMSC_FDC37M81X_TEST5         0x2C
+#define SMSC_FDC37M81X_TEST1         0x2D
+#define SMSC_FDC37M81X_TEST2         0x2E
+#define SMSC_FDC37M81X_TEST3         0x2F
+
+/* Logical device numbers */
+#define SMSC_FDC37M81X_FDD           0x00
+#define SMSC_FDC37M81X_PARALLEL      0x03
+#define SMSC_FDC37M81X_SERIAL1       0x04
+#define SMSC_FDC37M81X_SERIAL2       0x05
+#define SMSC_FDC37M81X_KBD           0x07
+#define SMSC_FDC37M81X_AUXIO         0x08
+#define SMSC_FDC37M81X_NONE          0xff
+
+/* Logical device Config Registers */
+#define SMSC_FDC37M81X_ACTIVE        0x30
+#define SMSC_FDC37M81X_BASEADDR0     0x60
+#define SMSC_FDC37M81X_BASEADDR1     0x61
+#define SMSC_FDC37M81X_INT           0x70
+#define SMSC_FDC37M81X_INT2          0x72
+#define SMSC_FDC37M81X_LDCR_F0       0xF0
+
+/* Chip Config Values */
+#define SMSC_FDC37M81X_CONFIG_ENTER  0x55
+#define SMSC_FDC37M81X_CONFIG_EXIT   0xaa
+#define SMSC_FDC37M81X_CHIP_ID       0x4d
+
+unsigned long __init smsc_fdc37m81x_init(unsigned long port);
+
+void smsc_fdc37m81x_config_beg(void);
+
+void smsc_fdc37m81x_config_end(void);
+
+void smsc_fdc37m81x_config_set(u8 reg, u8 val);
+
+#endif
index 7116b0bc277c988b6c4e6fcf60f2c25764ad0206..5d939db6e220f2fc52ce6accb1d3556a4edfc360 100644 (file)
@@ -88,8 +88,8 @@
 
 
 /* TX4927 Configuration registers (64-bit registers) */
-#define TX4927_CONFIG_BASE                       0xe300
-#define TX4927_CONFIG_CCFG                       0xe300
+#define TX4927_CONFIG_BASE                       0xe000
+#define TX4927_CONFIG_CCFG                       0xe000
 #define TX4927_CONFIG_CCFG_RESERVED_42_63                BM_63_42
 #define TX4927_CONFIG_CCFG_WDRST                         BM_41_41
 #define TX4927_CONFIG_CCFG_WDREXEN                       BM_40_40
 #define TX4927_CONFIG_CCFG_ENDIAN                        BM_02_02
 #define TX4927_CONFIG_CCFG_ARMODE                        BM_01_01
 #define TX4927_CONFIG_CCFG_ACEHOLD                       BM_00_00
-#define TX4927_CONFIG_REVID                      0xe308 
+#define TX4927_CONFIG_REVID                      0xe008
 #define TX4927_CONFIG_REVID_RESERVED_32_63               BM_32_63
 #define TX4927_CONFIG_REVID_PCODE                        BM_16_31
 #define TX4927_CONFIG_REVID_MJERREV                      BM_12_15
 #define TX4927_CONFIG_REVID_MINEREV                      BM_08_11
 #define TX4927_CONFIG_REVID_MJREV                        BM_04_07
 #define TX4927_CONFIG_REVID_MINREV                       BM_00_03
-#define TX4927_CONFIG_PCFG                       0xe310 
+#define TX4927_CONFIG_PCFG                       0xe010
 #define TX4927_CONFIG_PCFG_RESERVED_57_63                BM_57_63
 #define TX4927_CONFIG_PCFG_DRVDATA                       BM_56_56
 #define TX4927_CONFIG_PCFG_DRVCB                         BM_55_55
 #define TX4927_CONFIG_PCFG_DMASEL0_SIO1                  BM_00_00
 #define TX4927_CONFIG_PCFG_DMASEL0_ACLC0                 BM_01_01
 #define TX4927_CONFIG_PCFG_DMASEL0_ACLC2                 BM_00_01
-#define TX4927_CONFIG_TOEA                       0xe318 
+#define TX4927_CONFIG_TOEA                       0xe018
 #define TX4927_CONFIG_TOEA_RESERVED_36_63                BM_36_63
 #define TX4927_CONFIG_TOEA_TOEA                          BM_00_35
-#define TX4927_CONFIG_CLKCTR                     0xe320 
+#define TX4927_CONFIG_CLKCTR                     0xe020
 #define TX4927_CONFIG_CLKCTR_RESERVED_26_63              BM_26_63
 #define TX4927_CONFIG_CLKCTR_ACLCKD                      BM_25_25
 #define TX4927_CONFIG_CLKCTR_PIOCKD                      BM_24_24
 #define TX4927_CONFIG_CLKCTR_TM2RST                      BM_02_02
 #define TX4927_CONFIG_CLKCTR_SIO0RST                     BM_01_01
 #define TX4927_CONFIG_CLKCTR_SIO1RST                     BM_00_00
-#define TX4927_CONFIG_GARBC                      0xe330 
+#define TX4927_CONFIG_GARBC                      0xe030
 #define TX4927_CONFIG_GARBC_RESERVED_10_63               BM_10_63
 #define TX4927_CONFIG_GARBC_SET_09                       BM_09_09
 #define TX4927_CONFIG_GARBC_ARBMD                        BM_08_08
 #define TX4927_CONFIG_GARBC_PRIORITY_H3_PDMAC            BM_00_00
 #define TX4927_CONFIG_GARBC_PRIORITY_H3_DMAC             BM_01_01
 #define TX4927_CONFIG_GARBC_PRIORITY_H3_BAD_VALUE        BM_00_01
-#define TX4927_CONFIG_RAMP                       0xe348 
+#define TX4927_CONFIG_RAMP                       0xe048
 #define TX4927_CONFIG_RAMP_RESERVED_20_63                BM_20_63
 #define TX4927_CONFIG_RAMP_RAMP                          BM_00_19
 #define TX4927_CONFIG_LIMIT                      0xefff
 #define TX4927_ACLC_ACINTSTS            0xf710
 #define TX4927_ACLC_ACINTMSTS           0xf714
 #define TX4927_ACLC_ACINTEN             0xf718
-#define TX4927_ACLC_ACINTDIS            0xfR71c
+#define TX4927_ACLC_ACINTDIS            0xf71c
 #define TX4927_ACLC_ACSEMAPH            0xf720
 #define TX4927_ACLC_ACGPIDAT            0xf740
 #define TX4927_ACLC_ACGPODAT            0xf744
index adbb24bd920f50deabe28c74a53c9c64dc1497c8..2f0328aab718a402547a845b90801371d749b4ca 100644 (file)
@@ -10,7 +10,7 @@
 #define _ASM_UACCESS_H
 
 #include <linux/config.h>
-#include <linux/compiler.h>
+#include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/thread_info.h>
 #include <asm-generic/uaccess.h>
@@ -225,89 +225,89 @@ struct __large_struct { unsigned long buf[100]; };
  * for 32 bit mode and old iron.
  */
 #ifdef __mips64
-#define __GET_USER_DW __get_user_asm("ld")
+#define __GET_USER_DW(__gu_err) __get_user_asm("ld", __gu_err)
 #else
-#define __GET_USER_DW __get_user_asm_ll32
+#define __GET_USER_DW(__gu_err) __get_user_asm_ll32(__gu_err)
 #endif
 
-#define __get_user_nocheck(x,ptr,size)                         \
-({                                                             \
-       long __gu_err;                                          \
-       __typeof(*(ptr)) __gu_val;                              \
-       long __gu_addr;                                         \
-       might_sleep();                                          \
-       __asm__("":"=r" (__gu_val));                            \
-       __gu_addr = (long) (ptr);                               \
-       __asm__("":"=r" (__gu_err));                            \
-       switch (size) {                                         \
-       case 1: __get_user_asm("lb"); break;                    \
-       case 2: __get_user_asm("lh"); break;                    \
-       case 4: __get_user_asm("lw"); break;                    \
-       case 8: __GET_USER_DW; break;                           \
-       default: __get_user_unknown(); break;                   \
-       } x = (__typeof__(*(ptr))) __gu_val; __gu_err;          \
+#define __get_user_nocheck(x,ptr,size)                                 \
+({                                                                     \
+       long __gu_err = 0;                                              \
+       __typeof(*(ptr)) __gu_val = 0;                                  \
+       long __gu_addr;                                                 \
+       might_sleep();                                                  \
+       __gu_addr = (long) (ptr);                                       \
+       switch (size) {                                                 \
+       case 1: __get_user_asm("lb", __gu_err); break;                  \
+       case 2: __get_user_asm("lh", __gu_err); break;                  \
+       case 4: __get_user_asm("lw", __gu_err); break;                  \
+       case 8: __GET_USER_DW(__gu_err); break;                         \
+       default: __get_user_unknown(); break;                           \
+       }                                                               \
+        x = (__typeof__(*(ptr))) __gu_val;                             \
+       __gu_err;                                                       \
 })
 
 #define __get_user_check(x,ptr,size)                                   \
 ({                                                                     \
+       __typeof__(*(ptr)) __gu_val = 0;                                \
+       long __gu_addr = (long) (ptr);                                  \
        long __gu_err;                                                  \
-       __typeof__(*(ptr)) __gu_val;                                    \
-       long __gu_addr;                                                 \
+                                                                       \
        might_sleep();                                                  \
-       __asm__("":"=r" (__gu_val));                                    \
-       __gu_addr = (long) (ptr);                                       \
-       __asm__("":"=r" (__gu_err));                                    \
-       if (access_ok(VERIFY_READ,__gu_addr,size)) {                    \
+       __gu_err = verify_area(VERIFY_READ, (void *) __gu_addr, size);  \
+                                                                       \
+       if (likely(!__gu_err)) {                                        \
                switch (size) {                                         \
-               case 1: __get_user_asm("lb"); break;                    \
-               case 2: __get_user_asm("lh"); break;                    \
-               case 4: __get_user_asm("lw"); break;                    \
-               case 8: __GET_USER_DW; break;                           \
+               case 1: __get_user_asm("lb", __gu_err); break;          \
+               case 2: __get_user_asm("lh", __gu_err); break;          \
+               case 4: __get_user_asm("lw", __gu_err); break;          \
+               case 8: __GET_USER_DW(__gu_err); break;                 \
                default: __get_user_unknown(); break;                   \
                }                                                       \
-       } x = (__typeof__(*(ptr))) __gu_val; __gu_err;                  \
+       }                                                               \
+       x = (__typeof__(*(ptr))) __gu_val;                              \
+        __gu_err;                                                      \
 })
 
-#define __get_user_asm(insn)                                           \
+#define __get_user_asm(insn,__gu_err)                                  \
 ({                                                                     \
        __asm__ __volatile__(                                           \
-       "1:\t" insn "\t%1,%2\n\t"                                       \
-       "move\t%0,$0\n"                                                 \
-       "2:\n\t"                                                        \
-       ".section\t.fixup,\"ax\"\n"                                     \
-       "3:\tli\t%0,%3\n\t"                                             \
-       "move\t%1,$0\n\t"                                               \
-       "j\t2b\n\t"                                                     \
-       ".previous\n\t"                                                 \
-       ".section\t__ex_table,\"a\"\n\t"                                \
-       __UA_ADDR "\t1b,3b\n\t"                                         \
-       ".previous"                                                     \
-       :"=r" (__gu_err), "=r" (__gu_val)                               \
-       :"o" (__m(__gu_addr)), "i" (-EFAULT));                          \
+       "1:     " insn "        %1, %3                          \n"     \
+       "2:                                                     \n"     \
+       "       .section .fixup,\"ax\"                          \n"     \
+       "3:     li      %0, %4                                  \n"     \
+       "       j       2b                                      \n"     \
+       "       .previous                                       \n"     \
+       "       .section __ex_table,\"a\"                       \n"     \
+       "       "__UA_ADDR "\t1b, 3b                            \n"     \
+       "       .previous                                       \n"     \
+       : "=r" (__gu_err), "=r" (__gu_val)                              \
+       : "0" (__gu_err), "o" (__m(__gu_addr)), "i" (-EFAULT));         \
 })
 
 /*
  * Get a long long 64 using 32 bit registers.
  */
-#define __get_user_asm_ll32                                            \
+#define __get_user_asm_ll32(__gu_err)                                  \
 ({                                                                     \
        __asm__ __volatile__(                                           \
-       "1:\tlw\t%1,%2\n"                                               \
-       "2:\tlw\t%D1,%3\n\t"                                            \
-       "move\t%0,$0\n"                                                 \
-       "3:\t.section\t.fixup,\"ax\"\n"                                 \
-       "4:\tli\t%0,%4\n\t"                                             \
-       "move\t%1,$0\n\t"                                               \
-       "move\t%D1,$0\n\t"                                              \
-       "j\t3b\n\t"                                                     \
-       ".previous\n\t"                                                 \
-       ".section\t__ex_table,\"a\"\n\t"                                \
-       __UA_ADDR "\t1b,4b\n\t"                                         \
-       __UA_ADDR "\t2b,4b\n\t"                                         \
-       ".previous"                                                     \
-       :"=r" (__gu_err), "=&r" (__gu_val)                              \
-       :"o" (__m(__gu_addr)), "o" (__m(__gu_addr + 4)),                \
-        "i" (-EFAULT));                                                \
+       "1:     lw      %1, %3                                  \n"     \
+       "2:     lw      %D1, %4                                 \n"     \
+       "       move    %0, $0                                  \n"     \
+       "3:     .section        .fixup,\"ax\"                   \n"     \
+       "4:     li      %0, %5                                  \n"     \
+       "       move    %1, $0                                  \n"     \
+       "       move    %D1, $0                                 \n"     \
+       "       j       3b                                      \n"     \
+       "       .previous                                       \n"     \
+       "       .section        __ex_table,\"a\"                \n"     \
+       "       " __UA_ADDR "   1b, 4b                          \n"     \
+       "       " __UA_ADDR "   2b, 4b                          \n"     \
+       "       .previous                                       \n"     \
+       : "=r" (__gu_err), "=&r" (__gu_val)                             \
+       : "0" (__gu_err), "o" (__m(__gu_addr)),                         \
+         "o" (__m(__gu_addr + 4)), "i" (-EFAULT));                     \
 })
 
 extern void __get_user_unknown(void);
@@ -317,25 +317,24 @@ extern void __get_user_unknown(void);
  * for 32 bit mode and old iron.
  */
 #ifdef __mips64
-#define __PUT_USER_DW __put_user_asm("sd")
+#define __PUT_USER_DW(__pu_val) __put_user_asm("sd", __pu_val)
 #else
-#define __PUT_USER_DW __put_user_asm_ll32
+#define __PUT_USER_DW(__pu_val) __put_user_asm_ll32(__pu_val)
 #endif
 
 #define __put_user_nocheck(x,ptr,size)                                 \
 ({                                                                     \
-       long __pu_err;                                                  \
+       long __pu_err = 0;                                              \
        __typeof__(*(ptr)) __pu_val;                                    \
        long __pu_addr;                                                 \
        might_sleep();                                                  \
        __pu_val = (x);                                                 \
        __pu_addr = (long) (ptr);                                       \
-       __asm__("":"=r" (__pu_err));                                    \
        switch (size) {                                                 \
-       case 1: __put_user_asm("sb"); break;                            \
-       case 2: __put_user_asm("sh"); break;                            \
-       case 4: __put_user_asm("sw"); break;                            \
-       case 8: __PUT_USER_DW; break;                                   \
+       case 1: __put_user_asm("sb", __pu_val); break;                  \
+       case 2: __put_user_asm("sh", __pu_val); break;                  \
+       case 4: __put_user_asm("sw", __pu_val); break;                  \
+       case 8: __PUT_USER_DW(__pu_val); break;                         \
        default: __put_user_unknown(); break;                           \
        }                                                               \
        __pu_err;                                                       \
@@ -343,60 +342,59 @@ extern void __get_user_unknown(void);
 
 #define __put_user_check(x,ptr,size)                                   \
 ({                                                                     \
+       __typeof__(*(ptr)) __pu_val = (x);                              \
+       long __pu_addr = (long) (ptr);                                  \
        long __pu_err;                                                  \
-       __typeof__(*(ptr)) __pu_val;                                    \
-       long __pu_addr;                                                 \
+                                                                       \
        might_sleep();                                                  \
-       __pu_val = (x);                                                 \
-       __pu_addr = (long) (ptr);                                       \
-       __asm__("":"=r" (__pu_err));                                    \
-       if (access_ok(VERIFY_WRITE, __pu_addr, size)) {                 \
+       __pu_err = verify_area(VERIFY_WRITE, (void *) __pu_addr, size); \
+                                                                       \
+       if (likely(!__pu_err)) {                                        \
                switch (size) {                                         \
-               case 1: __put_user_asm("sb"); break;                    \
-               case 2: __put_user_asm("sh"); break;                    \
-               case 4: __put_user_asm("sw"); break;                    \
-               case 8: __PUT_USER_DW; break;                           \
+               case 1: __put_user_asm("sb", __pu_val); break;          \
+               case 2: __put_user_asm("sh", __pu_val); break;          \
+               case 4: __put_user_asm("sw", __pu_val); break;          \
+               case 8: __PUT_USER_DW(__pu_val); break;                 \
                default: __put_user_unknown(); break;                   \
                }                                                       \
        }                                                               \
        __pu_err;                                                       \
 })
 
-#define __put_user_asm(insn)                                           \
+#define __put_user_asm(insn, __pu_val)                                 \
 ({                                                                     \
        __asm__ __volatile__(                                           \
-       "1:\t" insn "\t%z1, %2\t\t\t# __put_user_asm\n\t"               \
-       "move\t%0, $0\n"                                                \
-       "2:\n\t"                                                        \
-       ".section\t.fixup,\"ax\"\n"                                     \
-       "3:\tli\t%0,%3\n\t"                                             \
-       "j\t2b\n\t"                                                     \
-       ".previous\n\t"                                                 \
-       ".section\t__ex_table,\"a\"\n\t"                                \
-       __UA_ADDR "\t1b,3b\n\t"                                         \
-       ".previous"                                                     \
-       :"=r" (__pu_err)                                                \
-       :"Jr" (__pu_val), "o" (__m(__pu_addr)), "i" (-EFAULT));         \
+       "1:     " insn "        %z2, %3         # __put_user_asm\n"     \
+       "2:                                                     \n"     \
+       "       .section        .fixup,\"ax\"                   \n"     \
+       "3:     li      %0, %4                                  \n"     \
+       "       j       2b                                      \n"     \
+       "       .previous                                       \n"     \
+       "       .section        __ex_table,\"a\"                \n"     \
+       "       " __UA_ADDR "   1b, 3b                          \n"     \
+       "       .previous                                       \n"     \
+       : "=r" (__pu_err)                                               \
+       : "0" (__pu_err), "Jr" (__pu_val), "o" (__m(__pu_addr)),        \
+         "i" (-EFAULT));                                               \
 })
 
-#define __put_user_asm_ll32                                            \
+#define __put_user_asm_ll32(__pu_val)                                  \
 ({                                                                     \
        __asm__ __volatile__(                                           \
-       "1:\tsw\t%1, %2\t\t\t# __put_user_asm_ll32\n\t"                 \
-       "2:\tsw\t%D1, %3\n"                                             \
-       "move\t%0, $0\n"                                                \
-       "3:\n\t"                                                        \
-       ".section\t.fixup,\"ax\"\n"                                     \
-       "4:\tli\t%0,%4\n\t"                                             \
-       "j\t3b\n\t"                                                     \
-       ".previous\n\t"                                                 \
-       ".section\t__ex_table,\"a\"\n\t"                                \
-       __UA_ADDR "\t1b,4b\n\t"                                         \
-       __UA_ADDR "\t2b,4b\n\t"                                         \
-       ".previous"                                                     \
-       :"=r" (__pu_err)                                                \
-       :"r" (__pu_val), "o" (__m(__pu_addr)),                          \
-        "o" (__m(__pu_addr + 4)), "i" (-EFAULT));                      \
+       "1:     sw      %2, %3          # __put_user_asm_ll32   \n"     \
+       "2:     sw      %D2, %4                                 \n"     \
+       "3:                                                     \n"     \
+       "       .section        .fixup,\"ax\"                   \n"     \
+       "4:     li      %0, %5                                  \n"     \
+       "       j       3b                                      \n"     \
+       "       .previous                                       \n"     \
+       "       .section        __ex_table,\"a\"                \n"     \
+       "       " __UA_ADDR "   1b, 4b                          \n"     \
+       "       " __UA_ADDR "   2b, 4b                          \n"     \
+       "       .previous"                                              \
+       : "=r" (__pu_err)                                               \
+       : "0" (__pu_err), "r" (__pu_val), "o" (__m(__pu_addr)),         \
+         "o" (__m(__pu_addr + 4)), "i" (-EFAULT));                     \
 })
 
 extern void __put_user_unknown(void);
@@ -511,8 +509,7 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
        ".set\tnoat\n\t"                                                \
        __UA_ADDU "\t$1, %1, %2\n\t"                                    \
        ".set\tat\n\t"                                                  \
-       ".set\treorder\n\t"                                             \
-       "move\t%0, $6"          /* XXX */                               \
+       ".set\treorder"                                                 \
        : "+r" (__cu_to_r), "+r" (__cu_from_r), "+r" (__cu_len_r)       \
        :                                                               \
        : "$8", "$9", "$10", "$11", "$12", "$15", "$24", "$31",         \
index 7c5a3002877601ab9419550a4b4c17cd5f59cdc3..4b0c210478398631b0853b11fb8e18e400d2d912 100644 (file)
 #define __NR_mq_notify                 (__NR_Linux + 275)
 #define __NR_mq_getsetattr             (__NR_Linux + 276)
 #define __NR_vserver                   (__NR_Linux + 277)
+#define __NR_waitid                    (__NR_Linux + 278)
+/* #define __NR_sys_setaltroot         (__NR_Linux + 279) */
+#define __NR_add_key                   (__NR_Linux + 280)
+#define __NR_request_key               (__NR_Linux + 281)
+#define __NR_keyctl                    (__NR_Linux + 282)
 
 /*
  * Offset of the last Linux o32 flavoured syscall
  */
-#define __NR_Linux_syscalls            277
+#define __NR_Linux_syscalls            282
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
 
 #define __NR_O32_Linux                 4000
-#define __NR_O32_Linux_syscalls                277
+#define __NR_O32_Linux_syscalls                282
 
 #if _MIPS_SIM == _MIPS_SIM_ABI64
 
 #define __NR_mq_notify                 (__NR_Linux + 234)
 #define __NR_mq_getsetattr             (__NR_Linux + 235)
 #define __NR_vserver                   (__NR_Linux + 236)
+#define __NR_waitid                    (__NR_Linux + 237)
+/* #define __NR_sys_setaltroot         (__NR_Linux + 238) */
+#define __NR_add_key                   (__NR_Linux + 239)
+#define __NR_request_key               (__NR_Linux + 240)
+#define __NR_keyctl                    (__NR_Linux + 241)
 
 /*
- * Offset of the last Linux flavoured syscall
+ * Offset of the last Linux 64-bit flavoured syscall
  */
-#define __NR_Linux_syscalls            236
+#define __NR_Linux_syscalls            241
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
 
 #define __NR_64_Linux                  5000
-#define __NR_64_Linux_syscalls         236
+#define __NR_64_Linux_syscalls         241
 
 #if _MIPS_SIM == _MIPS_SIM_NABI32
 
 #define __NR_mq_notify                 (__NR_Linux + 238)
 #define __NR_mq_getsetattr             (__NR_Linux + 239)
 #define __NR_vserver                   (__NR_Linux + 240)
+#define __NR_waitid                    (__NR_Linux + 241)
+/* #define __NR_sys_setaltroot         (__NR_Linux + 242) */
+#define __NR_add_key                   (__NR_Linux + 243)
+#define __NR_request_key               (__NR_Linux + 244)
+#define __NR_keyctl                    (__NR_Linux + 245)
 
 /*
  * Offset of the last N32 flavoured syscall
  */
-#define __NR_Linux_syscalls            240
+#define __NR_Linux_syscalls            245
 
 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
 
 #define __NR_N32_Linux                 6000
-#define __NR_N32_Linux_syscalls                240
+#define __NR_N32_Linux_syscalls                245
 
 #ifndef __ASSEMBLY__
 
@@ -838,12 +853,13 @@ type name(void) \
        ".set\treorder" \
        : "=&r" (__v0), "=r" (__a3) \
        : "i" (__NR_##name) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 /*
@@ -865,12 +881,13 @@ type name(atype a) \
        ".set\treorder" \
        : "=&r" (__v0), "=r" (__a3) \
        : "r" (__a0), "i" (__NR_##name) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #define _syscall2(type,name,atype,a,btype,b) \
@@ -889,12 +906,13 @@ type name(atype a, btype b) \
        ".set\treorder" \
        : "=&r" (__v0), "=r" (__a3) \
        : "r" (__a0), "r" (__a1), "i" (__NR_##name) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #define _syscall3(type,name,atype,a,btype,b,ctype,c) \
@@ -914,12 +932,13 @@ type name(atype a, btype b, ctype c) \
        ".set\treorder" \
        : "=&r" (__v0), "=r" (__a3) \
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #define _syscall4(type,name,atype,a,btype,b,ctype,c,dtype,d) \
@@ -939,12 +958,13 @@ type name(atype a, btype b, ctype c, dtype d) \
        ".set\treorder" \
        : "=&r" (__v0), "+r" (__a3) \
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #if (_MIPS_SIM == _MIPS_SIM_ABI32)
@@ -975,12 +995,13 @@ type name(atype a, btype b, ctype c, dtype d, etype e) \
        : "=&r" (__v0), "+r" (__a3) \
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name), \
          "m" ((unsigned long)e) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \
@@ -1007,12 +1028,13 @@ type name(atype a, btype b, ctype c, dtype d, etype e, ftype f) \
        : "=&r" (__v0), "+r" (__a3) \
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name), \
          "m" ((unsigned long)e), "m" ((unsigned long)f) \
-       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
@@ -1035,14 +1057,15 @@ type name (atype a,btype b,ctype c,dtype d,etype e) \
        "syscall\n\t" \
        "move\t%0, $2\n\t" \
        ".set\treorder" \
-       : "=&r" (__v0), "+r" (__a3), "+r" (__a4) \
-       : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \
-       : "$2","$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "=&r" (__v0), "+r" (__a3) \
+       : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "i" (__NR_##name) \
+       : "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \
@@ -1065,12 +1088,13 @@ type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
        : "=&r" (__v0), "+r" (__a3) \
        : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "r" (__a5), \
          "i" (__NR_##name) \
-       : "$2","$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
+       : "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
+         "memory"); \
        \
        if (__a3 == 0) \
                return (type) __v0; \
        errno = __v0; \
-       return -1; \
+       return (type) -1; \
 }
 
 #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
@@ -1120,21 +1144,7 @@ type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
  * won't be any messing with the stack from main(), but we define
  * some others too.
  */
-static inline _syscall0(pid_t,setsid)
-static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
-static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
-static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
-static inline _syscall1(int,dup,int,fd)
 static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
-static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
-static inline _syscall1(int,close,int,fd)
-struct rusage;
-static inline _syscall4(pid_t,wait4,pid_t,pid,int *,stat_addr,int,options,struct rusage *,ru)
-
-static inline pid_t waitpid(int pid, int * wait_stat, int flags)
-{
-       return wait4(pid, wait_stat, flags, NULL);
-}
 
 asmlinkage unsigned long sys_mmap(
                                unsigned long addr, size_t len,
index a6f5c06c70e32df7f34b946695cda65066d07487..c4a70412134327a586b46acc7f00b385b14d8f0f 100644 (file)
 #define  RM9000_CDEX_SMP_WAR           1
 #endif
 
+/*
+ * ON the R10000 upto version 2.6 (not sure about 2.7) there is a bug that
+ * may cause ll / sc and lld / scd sequences to execute non-atomically.
+ */
+#ifdef CONFIG_SGI_IP27
+#define R10000_LLSC_WAR 1
+#endif
+
 /*
  * Workarounds default to off
  */
 #ifndef RM9000_CDEX_SMP_WAR
 #define RM9000_CDEX_SMP_WAR            0
 #endif
+#ifndef R10000_LLSC_WAR
+#define R10000_LLSC_WAR                        0
+#endif
 
 #endif /* _ASM_WAR_H */