[ARM] 3817/1: iop3xx: split the iop3xx mach into iop32x and iop33x
authorLennert Buytenhek <buytenh@wantstofly.org>
Mon, 18 Sep 2006 22:10:26 +0000 (23:10 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 25 Sep 2006 09:25:36 +0000 (10:25 +0100)
Split the iop3xx mach type into iop32x and iop33x -- split the config
symbols, and move the code in the mach-iop3xx directory to the mach-iop32x
and mach-iop33x directories.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
68 files changed:
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/configs/ep80219_defconfig
arch/arm/configs/iq31244_defconfig
arch/arm/configs/iq80321_defconfig
arch/arm/configs/iq80331_defconfig
arch/arm/configs/iq80332_defconfig
arch/arm/mach-iop32x/Kconfig [new file with mode: 0644]
arch/arm/mach-iop32x/Makefile [new file with mode: 0644]
arch/arm/mach-iop32x/Makefile.boot [new file with mode: 0644]
arch/arm/mach-iop32x/common.c [moved from arch/arm/mach-iop3xx/common.c with 97% similarity]
arch/arm/mach-iop32x/iq31244-mm.c [moved from arch/arm/mach-iop3xx/iq31244-mm.c with 95% similarity]
arch/arm/mach-iop32x/iq31244-pci.c [moved from arch/arm/mach-iop3xx/iq31244-pci.c with 97% similarity]
arch/arm/mach-iop32x/iq80321-mm.c [moved from arch/arm/mach-iop3xx/iq80321-mm.c with 95% similarity]
arch/arm/mach-iop32x/iq80321-pci.c [moved from arch/arm/mach-iop3xx/iq80321-pci.c with 98% similarity]
arch/arm/mach-iop32x/irq.c [moved from arch/arm/mach-iop3xx/iop321-irq.c with 93% similarity]
arch/arm/mach-iop32x/pci.c [moved from arch/arm/mach-iop3xx/iop321-pci.c with 99% similarity]
arch/arm/mach-iop32x/setup.c [moved from arch/arm/mach-iop3xx/iop321-setup.c with 98% similarity]
arch/arm/mach-iop32x/time.c [moved from arch/arm/mach-iop3xx/iop321-time.c with 98% similarity]
arch/arm/mach-iop33x/Kconfig [new file with mode: 0644]
arch/arm/mach-iop33x/Makefile [new file with mode: 0644]
arch/arm/mach-iop33x/Makefile.boot [new file with mode: 0644]
arch/arm/mach-iop33x/common.c [new file with mode: 0644]
arch/arm/mach-iop33x/iq80331-mm.c [moved from arch/arm/mach-iop3xx/iq80331-mm.c with 94% similarity]
arch/arm/mach-iop33x/iq80331-pci.c [moved from arch/arm/mach-iop3xx/iq80331-pci.c with 98% similarity]
arch/arm/mach-iop33x/iq80332-mm.c [moved from arch/arm/mach-iop3xx/iq80332-mm.c with 94% similarity]
arch/arm/mach-iop33x/iq80332-pci.c [moved from arch/arm/mach-iop3xx/iq80332-pci.c with 98% similarity]
arch/arm/mach-iop33x/irq.c [moved from arch/arm/mach-iop3xx/iop331-irq.c with 96% similarity]
arch/arm/mach-iop33x/pci.c [moved from arch/arm/mach-iop3xx/iop331-pci.c with 99% similarity]
arch/arm/mach-iop33x/setup.c [moved from arch/arm/mach-iop3xx/iop331-setup.c with 99% similarity]
arch/arm/mach-iop33x/time.c [moved from arch/arm/mach-iop3xx/iop331-time.c with 98% similarity]
arch/arm/mach-iop3xx/Kconfig [deleted file]
arch/arm/mach-iop3xx/Makefile [deleted file]
arch/arm/mach-iop3xx/Makefile.boot [deleted file]
arch/arm/mm/Kconfig
drivers/i2c/busses/Kconfig
include/asm-arm/arch-iop32x/debug-macro.S [new file with mode: 0644]
include/asm-arm/arch-iop32x/dma.h [moved from include/asm-arm/arch-iop3xx/dma.h with 84% similarity]
include/asm-arm/arch-iop32x/entry-macro.S [new file with mode: 0644]
include/asm-arm/arch-iop32x/hardware.h [moved from include/asm-arm/arch-iop3xx/hardware.h with 91% similarity]
include/asm-arm/arch-iop32x/io.h [moved from include/asm-arm/arch-iop3xx/io.h with 91% similarity]
include/asm-arm/arch-iop32x/iop321.h [moved from include/asm-arm/arch-iop3xx/iop321.h with 99% similarity]
include/asm-arm/arch-iop32x/iq31244.h [moved from include/asm-arm/arch-iop3xx/iq31244.h with 93% similarity]
include/asm-arm/arch-iop32x/iq80321.h [moved from include/asm-arm/arch-iop3xx/iq80321.h with 93% similarity]
include/asm-arm/arch-iop32x/irqs.h [moved from include/asm-arm/arch-iop3xx/iop321-irqs.h with 92% similarity]
include/asm-arm/arch-iop32x/memory.h [moved from include/asm-arm/arch-iop3xx/memory.h with 62% similarity]
include/asm-arm/arch-iop32x/system.h [moved from include/asm-arm/arch-iop3xx/system.h with 79% similarity]
include/asm-arm/arch-iop32x/timex.h [new file with mode: 0644]
include/asm-arm/arch-iop32x/uncompress.h [new file with mode: 0644]
include/asm-arm/arch-iop32x/vmalloc.h [moved from include/asm-arm/arch-iop3xx/vmalloc.h with 91% similarity]
include/asm-arm/arch-iop33x/debug-macro.S [new file with mode: 0644]
include/asm-arm/arch-iop33x/dma.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/entry-macro.S [moved from include/asm-arm/arch-iop3xx/entry-macro.S with 56% similarity]
include/asm-arm/arch-iop33x/hardware.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/io.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/iop331.h [moved from include/asm-arm/arch-iop3xx/iop331.h with 98% similarity]
include/asm-arm/arch-iop33x/iq80331.h [moved from include/asm-arm/arch-iop3xx/iq80331.h with 92% similarity]
include/asm-arm/arch-iop33x/iq80332.h [moved from include/asm-arm/arch-iop3xx/iq80332.h with 92% similarity]
include/asm-arm/arch-iop33x/irqs.h [moved from include/asm-arm/arch-iop3xx/iop331-irqs.h with 95% similarity]
include/asm-arm/arch-iop33x/memory.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/system.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/timex.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/uncompress.h [new file with mode: 0644]
include/asm-arm/arch-iop33x/vmalloc.h [new file with mode: 0644]
include/asm-arm/arch-iop3xx/debug-macro.S [deleted file]
include/asm-arm/arch-iop3xx/irqs.h [deleted file]
include/asm-arm/arch-iop3xx/timex.h [deleted file]
include/asm-arm/arch-iop3xx/uncompress.h [deleted file]

index d9376f048ed717a6c6bf71297fca8f4016780c92..0fb17bbb86bce0d046a7cce05eff7f24ce1c1376 100644 (file)
@@ -202,12 +202,20 @@ config ARCH_IMX
        help
          Support for Motorola's i.MX family of processors (MX1, MXL).
 
-config ARCH_IOP3XX
-       bool "IOP3xx-based"
+config ARCH_IOP32X
+       bool "IOP32x-based"
        depends on MMU
        select PCI
        help
-         Support for Intel's IOP3XX (XScale) family of processors.
+         Support for Intel's 80219 and IOP32X (XScale) family of
+         processors.
+
+config ARCH_IOP33X
+       bool "IOP33x-based"
+       depends on MMU
+       select PCI
+       help
+         Support for Intel's IOP33X (XScale) family of processors.
 
 config ARCH_IXP4XX
        bool "IXP4xx-based"
@@ -312,7 +320,9 @@ source "arch/arm/mach-footbridge/Kconfig"
 
 source "arch/arm/mach-integrator/Kconfig"
 
-source "arch/arm/mach-iop3xx/Kconfig"
+source "arch/arm/mach-iop32x/Kconfig"
+
+source "arch/arm/mach-iop33x/Kconfig"
 
 source "arch/arm/mach-ixp4xx/Kconfig"
 
@@ -848,7 +858,7 @@ source "drivers/block/Kconfig"
 
 source "drivers/acorn/block/Kconfig"
 
-if PCMCIA || ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX \
+if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
        || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
        || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
        || ARCH_IXP23XX
index 92873cdee31f50d259bda86d3c8a3241f9aa149c..ac786bf0f546522a67ed2c5b54c4892bd105392f 100644 (file)
@@ -101,7 +101,8 @@ endif
  machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
  textofs-$(CONFIG_ARCH_CLPS711X)   := 0x00028000
  machine-$(CONFIG_ARCH_CLPS711X)   := clps711x
- machine-$(CONFIG_ARCH_IOP3XX)    := iop3xx
+ machine-$(CONFIG_ARCH_IOP32X)    := iop32x
+ machine-$(CONFIG_ARCH_IOP33X)    := iop33x
  machine-$(CONFIG_ARCH_IXP4XX)    := ixp4xx
  machine-$(CONFIG_ARCH_IXP2000)    := ixp2000
  machine-$(CONFIG_ARCH_IXP23XX)    := ixp23xx
index 199f1567345d41e5b050ef763bbcee5df0b113c8..f91cf8ff359d0a8153c4638e73ce0a794a9029d5 100644 (file)
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_INTEGRATOR is not set
-CONFIG_ARCH_IOP3XX=y
+CONFIG_ARCH_IOP32X=y
+# CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP4XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_L7200 is not set
@@ -93,8 +94,6 @@ CONFIG_ARCH_IQ31244=y
 # CONFIG_ARCH_IQ80331 is not set
 # CONFIG_MACH_IQ80332 is not set
 CONFIG_ARCH_EP80219=y
-CONFIG_ARCH_IOP32X=y
-# CONFIG_ARCH_IOP33X is not set
 
 #
 # IOP3xx Chipset Features
index 27f884417b9080ef01cd452d275d9dd835560b20..ce1b1f20b763c9107c47ee570003341125dc0a06 100644 (file)
@@ -67,7 +67,8 @@ CONFIG_KMOD=y
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_INTEGRATOR is not set
-CONFIG_ARCH_IOP3XX=y
+CONFIG_ARCH_IOP32X=y
+# CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP4XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_L7200 is not set
@@ -94,8 +95,6 @@ CONFIG_ARCH_IQ31244=y
 # CONFIG_ARCH_IQ80331 is not set
 # CONFIG_MACH_IQ80332 is not set
 # CONFIG_ARCH_EP80219 is not set
-CONFIG_ARCH_IOP32X=y
-# CONFIG_ARCH_IOP33X is not set
 
 #
 # IOP3xx Chipset Features
index 33f21a24cf4e9ec5a5ff49d90b49485fd81ae8c4..f00b0d2159dd644a77fdeb26874ba21278adfeeb 100644 (file)
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_INTEGRATOR is not set
-CONFIG_ARCH_IOP3XX=y
+CONFIG_ARCH_IOP32X=y
+# CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP4XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_L7200 is not set
@@ -93,8 +94,6 @@ CONFIG_ARCH_IQ80321=y
 # CONFIG_ARCH_IQ80331 is not set
 # CONFIG_MACH_IQ80332 is not set
 # CONFIG_ARCH_EP80219 is not set
-CONFIG_ARCH_IOP32X=y
-# CONFIG_ARCH_IOP33X is not set
 
 #
 # IOP3xx Chipset Features
index 67a8bd7dba29fd7a3728030d38fd6aa832438ae7..af3a87e469d5903524f7818f59922eef722a1d0d 100644 (file)
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_INTEGRATOR is not set
-CONFIG_ARCH_IOP3XX=y
+# CONFIG_ARCH_IOP32X is not set
+CONFIG_ARCH_IOP33X=y
 # CONFIG_ARCH_IXP4XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_L7200 is not set
@@ -93,7 +94,6 @@ CONFIG_ARCH_IOP3XX=y
 CONFIG_ARCH_IQ80331=y
 # CONFIG_MACH_IQ80332 is not set
 # CONFIG_ARCH_EP80219 is not set
-CONFIG_ARCH_IOP33X=y
 
 #
 # IOP3xx Chipset Features
index c8dea45cb01704f5c59af35a77d5b552b1375d57..931c78755a30b9bc2f9a9ee25d324f7a8d57da24 100644 (file)
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_INTEGRATOR is not set
-CONFIG_ARCH_IOP3XX=y
+# CONFIG_ARCH_IOP32X is not set
+CONFIG_ARCH_IOP33X=y
 # CONFIG_ARCH_IXP4XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_L7200 is not set
@@ -93,7 +94,6 @@ CONFIG_ARCH_IOP3XX=y
 # CONFIG_ARCH_IQ80331 is not set
 CONFIG_MACH_IQ80332=y
 # CONFIG_ARCH_EP80219 is not set
-CONFIG_ARCH_IOP33X=y
 
 #
 # IOP3xx Chipset Features
diff --git a/arch/arm/mach-iop32x/Kconfig b/arch/arm/mach-iop32x/Kconfig
new file mode 100644 (file)
index 0000000..21e3e8c
--- /dev/null
@@ -0,0 +1,28 @@
+if ARCH_IOP32X
+
+menu "IOP32x Implementation Options"
+
+comment "IOP32x Platform Types"
+
+config ARCH_IQ80321
+       bool "Enable support for IQ80321"
+       help
+         Say Y here if you want to run your kernel on the Intel IQ80321
+         evaluation kit for the IOP321 chipset.
+
+config ARCH_IQ31244
+       bool "Enable support for IQ31244"
+       help
+         Say Y here if you want to run your kernel on the Intel IQ31244
+         evaluation kit for the IOP321 chipset.
+
+config ARCH_EP80219
+       bool "Enable support for EP80219"
+       select ARCH_IQ31244
+       help
+         Say Y here if you want to run your kernel on the Intel EP80219
+         evaluation kit for the Intel 80219 chipset (a IOP321 variant).
+
+endmenu
+
+endif
diff --git a/arch/arm/mach-iop32x/Makefile b/arch/arm/mach-iop32x/Makefile
new file mode 100644 (file)
index 0000000..94144f7
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# Makefile for the linux kernel.
+#
+
+obj-y                  := common.o setup.o irq.o pci.o time.o
+obj-m                  :=
+obj-n                  :=
+obj-                   :=
+
+obj-$(CONFIG_ARCH_IQ80321) += iq80321-mm.o iq80321-pci.o
+obj-$(CONFIG_ARCH_IQ31244) += iq31244-mm.o iq31244-pci.o
diff --git a/arch/arm/mach-iop32x/Makefile.boot b/arch/arm/mach-iop32x/Makefile.boot
new file mode 100644 (file)
index 0000000..47000dc
--- /dev/null
@@ -0,0 +1,3 @@
+   zreladdr-y  := 0xa0008000
+params_phys-y  := 0xa0000100
+initrd_phys-y  := 0xa0800000
similarity index 97%
rename from arch/arm/mach-iop3xx/common.c
rename to arch/arm/mach-iop32x/common.c
index d7f50e57e753e6ab10654f62ca57d87dafd0d0b5..8044af6a54e14b8cc46caefc0dfd065ffe4b375f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/common.c
+ * arch/arm/mach-iop32x/common.c
  *
  * Common routines shared across all IOP3xx implementations
  *
similarity index 95%
rename from arch/arm/mach-iop3xx/iq31244-mm.c
rename to arch/arm/mach-iop32x/iq31244-mm.c
index e874b54eefe3782c7d2e9c48ffcf550e246e1223..ffc6692c95adfdf874b3897962e2671e47156662 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/mm.c
+ * linux/arch/arm/mach-iop32x/iq31244-mm.c
  *
  * Low level memory initialization for iq80321 platform
  *
similarity index 97%
rename from arch/arm/mach-iop3xx/iq31244-pci.c
rename to arch/arm/mach-iop32x/iq31244-pci.c
index f3c6413fa5bda594d9fab88197be88a7c71c2198..e447c8103ecdcf10c00df04f635cde726680a595 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * arch/arm/mach-iop3xx/iq80321-pci.c
+ * arch/arm/mach-iop32x/iq31244-pci.c
  *
- * PCI support for the Intel IQ80321 reference board
+ * PCI support for the Intel IQ31244 reference board
  *
  * Author: Rory Bolt <rorybolt@pacbell.net>
  * Copyright (C) 2002 Rory Bolt
similarity index 95%
rename from arch/arm/mach-iop3xx/iq80321-mm.c
rename to arch/arm/mach-iop32x/iq80321-mm.c
index d9cac5e1fc3d9b7c197d3fb5e6af731ae16b53ef..5f702a7ff622c0c2028aa2b37f1bf3b982cfcd51 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/mm.c
+ * linux/arch/arm/mach-iop32x/iq80321-mm.c
  *
  * Low level memory initialization for iq80321 platform
  *
similarity index 98%
rename from arch/arm/mach-iop3xx/iq80321-pci.c
rename to arch/arm/mach-iop32x/iq80321-pci.c
index d9758d3f6e7f14dd2dc9bd0e33d53277fa7f5d0f..8767950e131f1d3e20fbf9bc51335054a121be50 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iq80321-pci.c
+ * arch/arm/mach-iop32x/iq80321-pci.c
  *
  * PCI support for the Intel IQ80321 reference board
  *
similarity index 93%
rename from arch/arm/mach-iop3xx/iop321-irq.c
rename to arch/arm/mach-iop32x/irq.c
index 88ac333472c872180bfae4ba3391f801dd4799e7..c5f633d2d63259796aabe07c25fa6d952958cd2d 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * linux/arch/arm/mach-iop3xx/iop321-irq.c
+ * linux/arch/arm/mach-iop32x/irq.c
  *
- * Generic IOP321 IRQ handling functionality
+ * Generic IOP32X IRQ handling functionality
  *
  * Author: Rory Bolt <rorybolt@pacbell.net>
  * Copyright (C) 2002 Rory Bolt
@@ -86,7 +86,7 @@ void __init iop321_init_irq(void)
           machine_is_iq31244())        // all interrupts are inputs to chip
                *IOP321_PCIIRSR = 0x0f;
 
-       for(i = IOP321_IRQ_OFS; i < NR_IOP321_IRQS; i++)
+       for(i = IOP321_IRQ_OFS; i < NR_IRQS; i++)
        {
                set_irq_chip(i, &ext_chip);
                set_irq_handler(i, do_level_IRQ);
similarity index 99%
rename from arch/arm/mach-iop3xx/iop321-pci.c
rename to arch/arm/mach-iop32x/pci.c
index 8ba6a0e231348918a0aa9cf787d3606e033705d0..1a7c683673f238ce43021b6d26fab51ce198e165 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iop321-pci.c
+ * arch/arm/mach-iop32x/pci.c
  *
  * PCI support for the Intel IOP321 chipset
  *
similarity index 98%
rename from arch/arm/mach-iop3xx/iop321-setup.c
rename to arch/arm/mach-iop32x/setup.c
index b6d096903c4ae65c92eb6826d6c9f8ac3639b28c..729678799271460cf6fb8a60b6eb362aca3358c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/iop321-setup.c
+ * linux/arch/arm/mach-iop32x/setup.c
  *
  * Author: Nicolas Pitre <nico@cam.org>
  * Copyright (C) 2001 MontaVista Software, Inc.
similarity index 98%
rename from arch/arm/mach-iop3xx/iop321-time.c
rename to arch/arm/mach-iop32x/time.c
index 04b1a6f7ebae9ae6868dea1b36b26c1ec1df3602..3cabbbca0a02c7268cc7adfc71227a8ff93d5362 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iop321-time.c
+ * arch/arm/mach-iop32x/time.c
  *
  * Timer code for IOP321 based systems
  *
diff --git a/arch/arm/mach-iop33x/Kconfig b/arch/arm/mach-iop33x/Kconfig
new file mode 100644 (file)
index 0000000..410df54
--- /dev/null
@@ -0,0 +1,27 @@
+if ARCH_IOP33X
+
+menu "IOP33x Implementation Options"
+
+comment "IOP33x Platform Types"
+
+config ARCH_IQ80331
+       bool "Enable support for IQ80331"
+       help
+         Say Y here if you want to run your kernel on the Intel IQ80331
+         evaluation kit for the IOP331 chipset.
+
+config MACH_IQ80332
+       bool "Enable support for IQ80332"
+       help
+         Say Y here if you want to run your kernel on the Intel IQ80332
+         evaluation kit for the IOP332 chipset.
+
+config IOP331_STEPD
+       bool "Chip stepping D of the IOP80331 processor or IOP80333"
+       help
+         Say Y here if you have StepD of the IOP80331 or IOP8033
+         based platforms.
+
+endmenu
+
+endif
diff --git a/arch/arm/mach-iop33x/Makefile b/arch/arm/mach-iop33x/Makefile
new file mode 100644 (file)
index 0000000..0f1a8ff
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# Makefile for the linux kernel.
+#
+
+obj-y                  := common.o setup.o irq.o pci.o time.o
+obj-m                  :=
+obj-n                  :=
+obj-                   :=
+
+obj-$(CONFIG_ARCH_IQ80331) += iq80331-mm.o iq80331-pci.o
+obj-$(CONFIG_MACH_IQ80332) += iq80332-mm.o iq80332-pci.o
diff --git a/arch/arm/mach-iop33x/Makefile.boot b/arch/arm/mach-iop33x/Makefile.boot
new file mode 100644 (file)
index 0000000..67039c3
--- /dev/null
@@ -0,0 +1,3 @@
+   zreladdr-y  := 0x00008000
+params_phys-y  := 0x00000100
+initrd_phys-y  := 0x00800000
diff --git a/arch/arm/mach-iop33x/common.c b/arch/arm/mach-iop33x/common.c
new file mode 100644 (file)
index 0000000..dd75f2b
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * arch/arm/mach-iop33x/common.c
+ *
+ * Common routines shared across all IOP3xx implementations
+ *
+ * Author: Deepak Saxena <dsaxena@mvista.com>
+ *
+ * Copyright 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.
+ */
+
+#include <linux/delay.h>
+#include <asm/hardware.h>
+
+/*
+ * Shared variables
+ */
+unsigned long iop3xx_pcibios_min_io = 0;
+unsigned long iop3xx_pcibios_min_mem = 0;
similarity index 94%
rename from arch/arm/mach-iop3xx/iq80331-mm.c
rename to arch/arm/mach-iop33x/iq80331-mm.c
index 129eb49b0670e161d971f4c4db0672c381523c4e..eb59445a0fca87046334c3fcf76eb0e9ecfe4cf5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/mm.c
+ * linux/arch/arm/mach-iop33x/iq80331-mm.c
  *
  * Low level memory initialization for iq80331 platform
  *
similarity index 98%
rename from arch/arm/mach-iop3xx/iq80331-pci.c
rename to arch/arm/mach-iop33x/iq80331-pci.c
index 40d861002492e070b30c04ac5d7b8ef17c451bac..71adb12a942199ab094427b31773682ce550592b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iq80331-pci.c
+ * arch/arm/mach-iop33x/iq80331-pci.c
  *
  * PCI support for the Intel IQ80331 reference board
  *
similarity index 94%
rename from arch/arm/mach-iop3xx/iq80332-mm.c
rename to arch/arm/mach-iop33x/iq80332-mm.c
index 2feaf7591f5315ca8fa0f5312ab1bde7b4ad2aa4..f7bc73113ea81dd5e2d44c545aa88f3d95920a4c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/mm.c
+ * linux/arch/arm/mach-iop33x/iq80332-mm.c
  *
  * Low level memory initialization for iq80332 platform
  *
similarity index 98%
rename from arch/arm/mach-iop3xx/iq80332-pci.c
rename to arch/arm/mach-iop33x/iq80332-pci.c
index afc0676318e4a1a3d67321b261738e7b9215b094..f3010f85b1a24acf830584df0f27850fc48f1934 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iq80332-pci.c
+ * arch/arm/mach-iop33x/iq80332-pci.c
  *
  * PCI support for the Intel IQ80332 reference board
  *
similarity index 96%
rename from arch/arm/mach-iop3xx/iop331-irq.c
rename to arch/arm/mach-iop33x/irq.c
index cab11722ced21f10112ce57db2f8a83e82f5b6ed..029fa78876a5da6f81332a3362fb5187cf315e5d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/iop331-irq.c
+ * linux/arch/arm/mach-iop33x/irq.c
  *
  * Generic IOP331 IRQ handling functionality
  *
@@ -119,7 +119,7 @@ void __init iop331_init_irq(void)
        if(machine_is_iq80331())        // all interrupts are inputs to chip
                *IOP331_PCIIRSR = 0x0f;
 
-       for(i = IOP331_IRQ_OFS; i < NR_IOP331_IRQS; i++)
+       for(i = IOP331_IRQ_OFS; i < NR_IRQS; i++)
        {
                set_irq_chip(i, (i < 32) ? &iop331_irqchip1 : &iop331_irqchip2);
                set_irq_handler(i, do_level_IRQ);
similarity index 99%
rename from arch/arm/mach-iop3xx/iop331-pci.c
rename to arch/arm/mach-iop33x/pci.c
index 44dd213b48a350fe90c47288ea8f27fda43ece76..bf6aba91b47d745e81f5209f23b20bf1c16b64db 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iop331-pci.c
+ * arch/arm/mach-iop33x/pci.c
  *
  * PCI support for the Intel IOP331 chipset
  *
similarity index 99%
rename from arch/arm/mach-iop3xx/iop331-setup.c
rename to arch/arm/mach-iop33x/setup.c
index b2f24931d143424ad6ff786749dc7778492af0e5..c14c7da5ec4c3fdd46a6547b7606a8d0b0d31640 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/arch/arm/mach-iop3xx/iop331-setup.c
+ * linux/arch/arm/mach-iop33x/setup.c
  *
  * Author: Dave Jiang (dave.jiang@intel.com)
  * Copyright (C) 2004 Intel Corporation.
similarity index 98%
rename from arch/arm/mach-iop3xx/iop331-time.c
rename to arch/arm/mach-iop33x/time.c
index 0c09e74c574042240a5d1af81fc57502eaf0ec5d..d839cd0d926ec2a20a0ab7afbed4e56ef97ca6d4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * arch/arm/mach-iop3xx/iop331-time.c
+ * arch/arm/mach-iop33x/time.c
  *
  * Timer code for IOP331 based systems
  *
diff --git a/arch/arm/mach-iop3xx/Kconfig b/arch/arm/mach-iop3xx/Kconfig
deleted file mode 100644 (file)
index 887c375..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-if ARCH_IOP3XX
-
-menu "IOP3xx Implementation Options"
-
-comment "IOP3xx Platform Types"
-
-config ARCH_IQ80321
-       bool "Enable support for IQ80321"
-       select ARCH_IOP32X
-       help
-         Say Y here if you want to run your kernel on the Intel IQ80321
-         evaluation kit for the IOP321 chipset.
-
-config ARCH_IQ31244
-       bool "Enable support for IQ31244"
-       select ARCH_IOP32X
-       help
-         Say Y here if you want to run your kernel on the Intel IQ31244
-         evaluation kit for the IOP321 chipset.
-
-config ARCH_IQ80331
-       bool "Enable support for IQ80331"
-       select ARCH_IOP33X
-       help
-         Say Y here if you want to run your kernel on the Intel IQ80331
-         evaluation kit for the IOP331 chipset.
-
-config MACH_IQ80332
-       bool "Enable support for IQ80332"
-       select ARCH_IOP33X
-       help
-         Say Y here if you want to run your kernel on the Intel IQ80332
-         evaluation kit for the IOP332 chipset.
-
-config ARCH_EP80219
-       bool "Enable support for EP80219"
-       select ARCH_IOP32X
-       select ARCH_IQ31244
-       help
-         Say Y here if you want to run your kernel on the Intel EP80219
-         evaluation kit for the Intel 80219 chipset (a IOP321 variant).
-
-# Which IOP variant are we running?
-config ARCH_IOP32X
-       bool
-       help
-         The IQ80321 uses the IOP321 variant.
-         The IQ31244 and EP80219 uses the IOP321 variant.
-
-config ARCH_IOP33X
-       bool
-       default ARCH_IQ80331
-       help
-         The IQ80331, IQ80332, and IQ80333 uses the IOP331 variant.
-
-comment "IOP3xx Chipset Features"
-
-config IOP331_STEPD
-       bool "Chip stepping D of the IOP80331 processor or IOP80333"
-       depends on ARCH_IOP33X
-       help
-         Say Y here if you have StepD of the IOP80331 or IOP8033
-         based platforms.
-
-endmenu
-endif
diff --git a/arch/arm/mach-iop3xx/Makefile b/arch/arm/mach-iop3xx/Makefile
deleted file mode 100644 (file)
index ad30515..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y                  := common.o
-
-obj-m                  :=
-obj-n                  :=
-obj-                   :=
-
-obj-$(CONFIG_ARCH_IOP32X)  += iop321-setup.o iop321-irq.o iop321-pci.o iop321-time.o
-
-obj-$(CONFIG_ARCH_IOP33X)  += iop331-setup.o iop331-irq.o iop331-pci.o iop331-time.o
-
-obj-$(CONFIG_ARCH_IQ80321) += iq80321-mm.o iq80321-pci.o
-
-obj-$(CONFIG_ARCH_IQ31244) += iq31244-mm.o iq31244-pci.o
-
-obj-$(CONFIG_ARCH_IQ80331) += iq80331-mm.o iq80331-pci.o
-
-obj-$(CONFIG_MACH_IQ80332) += iq80332-mm.o iq80332-pci.o
diff --git a/arch/arm/mach-iop3xx/Makefile.boot b/arch/arm/mach-iop3xx/Makefile.boot
deleted file mode 100644 (file)
index e120c23..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-   zreladdr-y  := 0xa0008000
-params_phys-y  := 0xa0000100
-initrd_phys-y  := 0xa0800000
-ifeq ($(CONFIG_ARCH_IOP33X),y)
-   zreladdr-y  := 0x00008000
-params_phys-y  := 0x00000100
-initrd_phys-y  := 0x00800000
-endif
-
index b4f220dd5eb8bf60e6290e0419a6447c6827479b..b59c74100a84f5f16345da689a7d719740091100 100644 (file)
@@ -232,7 +232,7 @@ config CPU_SA1100
 # XScale
 config CPU_XSCALE
        bool
-       depends on ARCH_IOP3XX || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
+       depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
        default y
        select CPU_32v5
        select CPU_ABRT_EV5T
index 884320e70403f0776b891e99332e6808f190a128..a843d6b10a0ccd1e0c33f549b9a4da517964a726 100644 (file)
@@ -196,7 +196,7 @@ config I2C_IBM_IIC
 
 config I2C_IOP3XX
        tristate "Intel IOP3xx and IXP4xx on-chip I2C interface"
-       depends on (ARCH_IOP3XX || ARCH_IXP4XX) && I2C
+       depends on (ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX) && I2C
        help
          Say Y here if you want to use the IIC bus controller on
          the Intel IOP3xx I/O Processors or IXP4xx Network Processors.
diff --git a/include/asm-arm/arch-iop32x/debug-macro.S b/include/asm-arm/arch-iop32x/debug-macro.S
new file mode 100644 (file)
index 0000000..75ab2e0
--- /dev/null
@@ -0,0 +1,20 @@
+/* linux/include/asm-arm/arch-iop32x/debug-macro.S
+ *
+ * Debugging macro include header
+ *
+ *  Copyright (C) 1994-1999 Russell King
+ *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+*/
+
+               .macro  addruart,rx
+               mov     \rx, #0xfe000000        @ physical
+               orr     \rx, \rx, #0x00800000   @ location of the UART
+               .endm
+
+#define UART_SHIFT     0
+#include <asm/hardware/debug-8250.S>
similarity index 84%
rename from include/asm-arm/arch-iop3xx/dma.h
rename to include/asm-arm/arch-iop32x/dma.h
index 1e808db8af2a5a2f19493c9169d9621dca3922a5..5be36676e58f3788bb1740908956b2fddf8aee9f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/dma.h
+ * linux/include/asm-arm/arch-iop32x/dma.h
  *
  *  Copyright (C) 2004 Intel Corp.
  *
diff --git a/include/asm-arm/arch-iop32x/entry-macro.S b/include/asm-arm/arch-iop32x/entry-macro.S
new file mode 100644 (file)
index 0000000..52d9435
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * include/asm-arm/arch-iop32x/entry-macro.S
+ *
+ * Low-level IRQ helper macros for IOP32x-based platforms
+ *
+ * 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 <asm/arch/irqs.h>
+
+               .macro  disable_fiq
+               .endm
+
+               /*
+                * Note: only deal with normal interrupts, not FIQ
+                */
+               .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
+               mov     \irqnr, #0
+               mrc     p6, 0, \irqstat, c8, c0, 0      @ Read IINTSRC
+               cmp     \irqstat, #0
+               beq     1001f
+               clz     \irqnr, \irqstat
+               mov     \base, #31
+               subs    \irqnr,\base,\irqnr
+               add     \irqnr,\irqnr,#IRQ_IOP321_DMA0_EOT
+1001:
+               .endm
similarity index 91%
rename from include/asm-arm/arch-iop3xx/hardware.h
rename to include/asm-arm/arch-iop32x/hardware.h
index 3b138171d086adaf30ab1e17ef0a2a4930ee53b5..8fb10134a107d38405a4503e407d95fe868ecd80 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/hardware.h
+ * linux/include/asm-arm/arch-iop32x/hardware.h
  */
 #ifndef __ASM_ARCH_HARDWARE_H
 #define __ASM_ARCH_HARDWARE_H
@@ -44,14 +44,11 @@ extern unsigned int processor_id;
  *
  */
 #include "iop321.h"
-#include "iop331.h"
 
 /*
  * Board specific bits
  */
 #include "iq80321.h"
 #include "iq31244.h"
-#include "iq80331.h"
-#include "iq80332.h"
 
 #endif  /* _ASM_ARCH_HARDWARE_H */
similarity index 91%
rename from include/asm-arm/arch-iop3xx/io.h
rename to include/asm-arm/arch-iop32x/io.h
index 36adbdf5055a571898184cdc540f64f3ac061dd0..36d05ada12c46e53bea1633afdaf4fa5ce3a858c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/io.h
+ * linux/include/asm-arm/arch-iop32x/io.h
  *
  *  Copyright (C) 2001  MontaVista Software, Inc.
  *
similarity index 99%
rename from include/asm-arm/arch-iop3xx/iop321.h
rename to include/asm-arm/arch-iop32x/iop321.h
index d198d72a50a4637e334dc370dc5fe943186b5f65..7ba93faf8da4b20d82c4c8e7d9813519ef1a15ce 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm/arch-iop3xx/iop321.h
+ * linux/include/asm/arch-iop32x/iop321.h
  *
  * Intel IOP321 Chip definitions
  *
  * IOP3xx variants but behave slightly differently on each.
  */
 #ifndef __ASSEMBLY__
-#ifdef CONFIG_ARCH_IOP32X
-#define iop_is_321() (((processor_id & 0xfffff5e0) == 0x69052420))
-#else
-#define        iop_is_321()    0
-#endif
+#define iop_is_321()           1
 #endif
 
 /*
similarity index 93%
rename from include/asm-arm/arch-iop3xx/iq31244.h
rename to include/asm-arm/arch-iop32x/iq31244.h
index 4177cfa8100f6250554c03ae4a2d4af6ebf70dd0..f490063d2156960b82658be82c629a670dfb50d1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm/arch-iop3xx/iq31244.h
+ * linux/include/asm/arch-iop32x/iq31244.h
  *
  * Intel IQ31244 evaluation board registers
  */
similarity index 93%
rename from include/asm-arm/arch-iop3xx/iq80321.h
rename to include/asm-arm/arch-iop32x/iq80321.h
index cb8725979ffad5964766d905d2d9d46b469f9154..7015a605ab64d8b2bfd880bcf0ccaa3501d78fee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm/arch-iop3xx/iq80321.h
+ * linux/include/asm/arch-iop32x/iq80321.h
  *
  * Intel IQ80321 evaluation board registers
  */
similarity index 92%
rename from include/asm-arm/arch-iop3xx/iop321-irqs.h
rename to include/asm-arm/arch-iop32x/irqs.h
index 2fcc1654cb9dc2a192d88547e42d09f0c08a9e53..4b0c82711f96ba69a143ec8707b80eaca58d8398 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/irqs.h
+ * linux/include/asm-arm/arch-iop32x/irqs.h
  *
  * Author:     Rory Bolt <rorybolt@pacbell.net>
  * Copyright:  (C) 2002 Rory Bolt
@@ -9,8 +9,8 @@
  * published by the Free Software Foundation.
  *
  */
-#ifndef _IOP321_IRQS_H_
-#define _IOP321_IRQS_H_
+#ifndef _IRQS_H_
+#define _IRQS_H_
 
 /*
  * IOP80321 chipset interrupts
@@ -54,9 +54,7 @@
 #define IRQ_IOP321_XINT3       IOP321_IRQ(30)
 #define IRQ_IOP321_HPI         IOP321_IRQ(31)
 
-#define NR_IOP321_IRQS         (IOP321_IRQ(31) + 1)
-
-#define NR_IRQS                        NR_IOP321_IRQS
+#define NR_IRQS                        (IOP321_IRQ(31) + 1)
 
 
 /*
@@ -97,4 +95,4 @@
 #define        IRQ_IQ31244_INTC        IRQ_IOP321_XINT2
 #define        IRQ_IQ31244_INTD        IRQ_IOP321_XINT3
 
-#endif // _IOP321_IRQ_H_
+#endif // _IRQ_H_
similarity index 62%
rename from include/asm-arm/arch-iop3xx/memory.h
rename to include/asm-arm/arch-iop32x/memory.h
index 25666184e8fcb6de1b8379260da3a652632117b2..b4073f15b405f18255cbc6e2380eadff5d07b959 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/memory.h
+ * linux/include/asm-arm/arch-iop32x/memory.h
  */
 
 #ifndef __ASM_ARCH_MEMORY_H
 /*
  * Physical DRAM offset.
  */
-#ifndef CONFIG_ARCH_IOP33X
 #define PHYS_OFFSET    UL(0xa0000000)
-#else
-#define PHYS_OFFSET    UL(0x00000000)
-#endif
 
 /*
  * Virtual view <-> PCI DMA view memory address translations
  * bus_to_virt: Used to convert an address for DMA operations
  *             to an address that the kernel can use.
  */
-#if defined(CONFIG_ARCH_IOP32X)
 
 #define __virt_to_bus(x)       (((__virt_to_phys(x)) & ~(*IOP321_IATVR2)) | ((*IOP321_IABAR2) & 0xfffffff0))
 #define __bus_to_virt(x)    (__phys_to_virt(((x) & ~(*IOP321_IALR2)) | ( *IOP321_IATVR2)))
 
-#elif defined(CONFIG_ARCH_IOP33X)
-
-#define __virt_to_bus(x)       (((__virt_to_phys(x)) & ~(*IOP331_IATVR2)) | ((*IOP331_IABAR2) & 0xfffffff0))
-#define __bus_to_virt(x)    (__phys_to_virt(((x) & ~(*IOP331_IALR2)) | ( *IOP331_IATVR2)))
-
-#endif
 
 #endif
similarity index 79%
rename from include/asm-arm/arch-iop3xx/system.h
rename to include/asm-arm/arch-iop32x/system.h
index a16cbb77a7f670841c6a5a657c3473672d099ed3..d4c8d691e1b077cf99095265124f04af74ce8077 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/system.h
+ * linux/include/asm-arm/arch-iop32x/system.h
  *
  *  Copyright (C) 2001 MontaVista Software, Inc.
  *
@@ -16,13 +16,7 @@ static inline void arch_idle(void)
 
 static inline void arch_reset(char mode)
 {
-#ifdef CONFIG_ARCH_IOP32X
     *IOP321_PCSR = 0x30;
-#endif
-
-#ifdef CONFIG_ARCH_IOP33X
-    *IOP331_PCSR = 0x30;
-#endif
 
        if ( 1 && mode == 's') {
                /* Jump into ROM at address 0 */
diff --git a/include/asm-arm/arch-iop32x/timex.h b/include/asm-arm/arch-iop32x/timex.h
new file mode 100644 (file)
index 0000000..08badde
--- /dev/null
@@ -0,0 +1,8 @@
+/*
+ * linux/include/asm-arm/arch-iop32x/timex.h
+ *
+ * IOP3xx architecture timex specifications
+ */
+#include <asm/hardware.h>
+
+#define CLOCK_TICK_RATE IOP321_TICK_RATE
diff --git a/include/asm-arm/arch-iop32x/uncompress.h b/include/asm-arm/arch-iop32x/uncompress.h
new file mode 100644 (file)
index 0000000..4a85f20
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ *  linux/include/asm-arm/arch-iop32x/uncompress.h
+ */
+#include <asm/types.h>
+#include <asm/mach-types.h>
+#include <linux/serial_reg.h>
+#include <asm/hardware.h>
+
+static volatile u8 *uart_base;
+
+#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
+
+static inline void putc(char c)
+{
+       while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
+               barrier();
+       *uart_base = c;
+}
+
+static inline void flush(void)
+{
+}
+
+static __inline__ void __arch_decomp_setup(unsigned long arch_id)
+{
+       if (machine_is_iq80321())
+               uart_base = (volatile u8 *)IQ80321_UART;
+       else if (machine_is_iq31244())
+               uart_base = (volatile u8 *)IQ31244_UART;
+       else
+               uart_base = (volatile u8 *)0xfe800000;
+}
+
+/*
+ * nothing to do
+ */
+#define arch_decomp_setup()    __arch_decomp_setup(arch_id)
+#define arch_decomp_wdog()
similarity index 91%
rename from include/asm-arm/arch-iop3xx/vmalloc.h
rename to include/asm-arm/arch-iop32x/vmalloc.h
index 0f2f6847f93c226cc63a854eee33191ae30a2a49..8492e1708a6322049a952b99206f579c15f39056 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/vmalloc.h
+ * linux/include/asm-arm/arch-iop32x/vmalloc.h
  */
 
 /*
diff --git a/include/asm-arm/arch-iop33x/debug-macro.S b/include/asm-arm/arch-iop33x/debug-macro.S
new file mode 100644 (file)
index 0000000..b647edf
--- /dev/null
@@ -0,0 +1,24 @@
+/* linux/include/asm-arm/arch-iop33x/debug-macro.S
+ *
+ * Debugging macro include header
+ *
+ *  Copyright (C) 1994-1999 Russell King
+ *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+*/
+
+               .macro  addruart,rx
+               mrc     p15, 0, \rx, c1, c0
+               tst     \rx, #1                 @ mmu enabled?
+               moveq   \rx, #0xff000000        @ physical
+               movne   \rx, #0xfe000000        @ virtual
+               orr     \rx, \rx, #0x00ff0000
+               orr     \rx, \rx, #0x0000f700
+               .endm
+
+#define UART_SHIFT     2
+#include <asm/hardware/debug-8250.S>
diff --git a/include/asm-arm/arch-iop33x/dma.h b/include/asm-arm/arch-iop33x/dma.h
new file mode 100644 (file)
index 0000000..d577ca5
--- /dev/null
@@ -0,0 +1,9 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/dma.h
+ *
+ *  Copyright (C) 2004 Intel Corp.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
similarity index 56%
rename from include/asm-arm/arch-iop3xx/entry-macro.S
rename to include/asm-arm/arch-iop33x/entry-macro.S
index f3db54637ad37e5f72a6577dc97e92f6a3afb493..980ec9b1ac8379703fd981fbd1abd0ee4dac64e6 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * include/asm-arm/arch-iop3xx/entry-macro.S
+ * include/asm-arm/arch-iop33x/entry-macro.S
  *
- * Low-level IRQ helper macros for IOP3xx-based platforms
+ * Low-level IRQ helper macros for IOP33x-based platforms
  *
  * This file is licensed under  the terms of the GNU General Public
  * License version 2. This program is licensed "as is" without any
@@ -9,26 +9,6 @@
  */
 #include <asm/arch/irqs.h>
 
-#if defined(CONFIG_ARCH_IOP32X)
-               .macro  disable_fiq
-               .endm
-
-               /*
-                * Note: only deal with normal interrupts, not FIQ
-                */
-               .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-               mov     \irqnr, #0
-               mrc     p6, 0, \irqstat, c8, c0, 0      @ Read IINTSRC
-               cmp     \irqstat, #0
-               beq     1001f
-               clz     \irqnr, \irqstat
-               mov     \base, #31
-               subs    \irqnr,\base,\irqnr
-               add     \irqnr,\irqnr,#IRQ_IOP321_DMA0_EOT
-1001:
-               .endm
-
-#elif defined(CONFIG_ARCH_IOP33X)
                .macro  disable_fiq
                .endm
 
                rsbs    \irqnr,\irqnr,#31   @ recommend by RMK
                add     \irqnr,\irqnr,#IRQ_IOP331_XINT8
                b       1001f
-1002:  clz     \irqnr, \irqstat
+1002:          clz     \irqnr, \irqstat
                rsbs    \irqnr,\irqnr,#31   @ recommend by RMK
                add     \irqnr,\irqnr,#IRQ_IOP331_DMA0_EOT
 1001:
                .endm
-
-#endif
-
diff --git a/include/asm-arm/arch-iop33x/hardware.h b/include/asm-arm/arch-iop33x/hardware.h
new file mode 100644 (file)
index 0000000..4a45708
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/hardware.h
+ */
+#ifndef __ASM_ARCH_HARDWARE_H
+#define __ASM_ARCH_HARDWARE_H
+
+#include <asm/types.h>
+
+/*
+ * Note about PCI IO space mappings
+ *
+ * To make IO space accesses efficient, we store virtual addresses in
+ * the IO resources.
+ *
+ * The PCI IO space is located at virtual 0xfe000000 from physical
+ * 0x90000000.  The PCI BARs must be programmed with physical addresses,
+ * but when we read them, we convert them to virtual addresses.  See
+ * arch/arm/mach-iop33x/pci.c
+ */
+
+#define pcibios_assign_all_busses() 1
+
+
+/*
+ * The min PCI I/O and MEM space are dependent on what specific
+ * chipset/platform we are running on, so instead of hardcoding with
+ * #ifdefs, we just fill these in the platform level PCI init code.
+ */
+#ifndef __ASSEMBLY__
+extern unsigned long iop3xx_pcibios_min_io;
+extern unsigned long iop3xx_pcibios_min_mem;
+
+extern unsigned int processor_id;
+#endif
+
+/*
+ * We just set these to zero since they are really bogus anyways
+ */
+#define PCIBIOS_MIN_IO      (iop3xx_pcibios_min_io)
+#define PCIBIOS_MIN_MEM     (iop3xx_pcibios_min_mem)
+
+/*
+ * Generic chipset bits
+ *
+ */
+#include "iop331.h"
+
+/*
+ * Board specific bits
+ */
+#include "iq80331.h"
+#include "iq80332.h"
+
+#endif  /* _ASM_ARCH_HARDWARE_H */
diff --git a/include/asm-arm/arch-iop33x/io.h b/include/asm-arm/arch-iop33x/io.h
new file mode 100644 (file)
index 0000000..a9949d5
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/io.h
+ *
+ *  Copyright (C) 2001  MontaVista Software, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#include <asm/hardware.h>
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+#define __io(p)                        ((void __iomem *)(p))
+#define __mem_pci(a)           (a)
+
+#endif
similarity index 98%
rename from include/asm-arm/arch-iop3xx/iop331.h
rename to include/asm-arm/arch-iop33x/iop331.h
index 4d7bcc62cb3e65988b48b847a5874751d618728c..780b707edb1e076df14c3e94a922cfafca43658a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm/arch-iop3xx/iop331.h
+ * linux/include/asm/arch-iop33x/iop331.h
  *
  * Intel IOP331 Chip definitions
  *
  * IOP3xx variants but behave slightly differently on each.
  */
 #ifndef __ASSEMBLY__
-#ifdef CONFIG_ARCH_IOP33X
-/*#define      iop_is_331()    ((processor_id & 0xffffffb0) == 0x69054090) */
-#define        iop_is_331()    ((processor_id & 0xffffff30) == 0x69054010)
-#else
-#define        iop_is_331()    0
-#endif
+#define        iop_is_331()            1
 #endif
 
 /*
similarity index 92%
rename from include/asm-arm/arch-iop3xx/iq80331.h
rename to include/asm-arm/arch-iop33x/iq80331.h
index 0668e78d483e377ab91c16f8419968f18e5654a0..bda7ab6d55cfc06e76e4df1c4f7313f2ce41c329 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm/arch-iop3xx/iq80331.h
+ * linux/include/asm/arch-iop33x/iq80331.h
  *
  * Intel IQ80331 evaluation board registers
  */
similarity index 92%
rename from include/asm-arm/arch-iop3xx/iq80332.h
rename to include/asm-arm/arch-iop33x/iq80332.h
index e5fff1775d1a325b107cd5e580c3c7701de682dc..f728e04378ab5c2e9091cb3ca28af51b5ba04205 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm/arch-iop3xx/iq80332.h
+ * linux/include/asm/arch-iop33x/iq80332.h
  *
  * Intel IQ80332 evaluation board registers
  */
similarity index 95%
rename from include/asm-arm/arch-iop3xx/iop331-irqs.h
rename to include/asm-arm/arch-iop33x/irqs.h
index 7135ad7e335e56044c46fbca91c4069f11318de7..45856a12815a88186cc2f546e87cf62e0be636b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/include/asm-arm/arch-iop3xx/irqs.h
+ * linux/include/asm-arm/arch-iop33x/irqs.h
  *
  * Author:     Dave Jiang (dave.jiang@intel.com)
  * Copyright:  (C) 2003 Intel Corp.
@@ -9,8 +9,8 @@
  * published by the Free Software Foundation.
  *
  */
-#ifndef _IOP331_IRQS_H_
-#define _IOP331_IRQS_H_
+#ifndef _IRQS_H_
+#define _IRQS_H_
 
 /*
  * IOP80331 chipset interrupts
@@ -86,9 +86,7 @@
 #define IRQ_IOP331_MSG_ERR     IOP331_IRQ(62)  // 30
 #define IRQ_IOP331_HPI         IOP331_IRQ(63)  // 31
 
-#define NR_IOP331_IRQS         (IOP331_IRQ(63) + 1)
-
-#define NR_IRQS                        NR_IOP331_IRQS
+#define NR_IRQS                        (IOP331_IRQ(63) + 1)
 
 
 /*
 #define        IRQ_IQ80332_INTC        IRQ_IOP331_XINT2
 #define        IRQ_IQ80332_INTD        IRQ_IOP331_XINT3
 
-#endif // _IOP331_IRQ_H_
+#endif // _IRQ_H_
diff --git a/include/asm-arm/arch-iop33x/memory.h b/include/asm-arm/arch-iop33x/memory.h
new file mode 100644 (file)
index 0000000..5e47164
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/memory.h
+ */
+
+#ifndef __ASM_ARCH_MEMORY_H
+#define __ASM_ARCH_MEMORY_H
+
+#include <asm/hardware.h>
+
+/*
+ * Physical DRAM offset.
+ */
+#define PHYS_OFFSET    UL(0x00000000)
+
+/*
+ * Virtual view <-> PCI DMA view memory address translations
+ * virt_to_bus: Used to translate the virtual address to an
+ *             address suitable to be passed to set_dma_addr
+ * bus_to_virt: Used to convert an address for DMA operations
+ *             to an address that the kernel can use.
+ */
+#define __virt_to_bus(x)       (((__virt_to_phys(x)) & ~(*IOP331_IATVR2)) | ((*IOP331_IABAR2) & 0xfffffff0))
+#define __bus_to_virt(x)    (__phys_to_virt(((x) & ~(*IOP331_IALR2)) | ( *IOP331_IATVR2)))
+
+
+#endif
diff --git a/include/asm-arm/arch-iop33x/system.h b/include/asm-arm/arch-iop33x/system.h
new file mode 100644 (file)
index 0000000..43cc787
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/system.h
+ *
+ *  Copyright (C) 2001 MontaVista Software, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+static inline void arch_idle(void)
+{
+       cpu_do_idle();
+}
+
+
+static inline void arch_reset(char mode)
+{
+    *IOP331_PCSR = 0x30;
+
+       if ( 1 && mode == 's') {
+               /* Jump into ROM at address 0 */
+               cpu_reset(0);
+       } else {
+               /* No on-chip reset capability */
+               cpu_reset(0);
+       }
+}
+
diff --git a/include/asm-arm/arch-iop33x/timex.h b/include/asm-arm/arch-iop33x/timex.h
new file mode 100644 (file)
index 0000000..cc8085f
--- /dev/null
@@ -0,0 +1,8 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/timex.h
+ *
+ * IOP3xx architecture timex specifications
+ */
+#include <asm/hardware.h>
+
+#define CLOCK_TICK_RATE IOP331_TICK_RATE
diff --git a/include/asm-arm/arch-iop33x/uncompress.h b/include/asm-arm/arch-iop33x/uncompress.h
new file mode 100644 (file)
index 0000000..62904ae
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ *  linux/include/asm-arm/arch-iop33x/uncompress.h
+ */
+#include <asm/types.h>
+#include <asm/mach-types.h>
+#include <linux/serial_reg.h>
+#include <asm/hardware.h>
+
+static volatile u32 *uart_base;
+
+#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
+
+static inline void putc(char c)
+{
+       while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
+               barrier();
+       *uart_base = c;
+}
+
+static inline void flush(void)
+{
+}
+
+static __inline__ void __arch_decomp_setup(unsigned long arch_id)
+{
+       if (machine_is_iq80331() || machine_is_iq80332())
+               uart_base = (volatile u32 *)IOP331_UART0_PHYS;
+       else
+               uart_base = (volatile u32 *)0xfe800000;
+}
+
+/*
+ * nothing to do
+ */
+#define arch_decomp_setup()    __arch_decomp_setup(arch_id)
+#define arch_decomp_wdog()
diff --git a/include/asm-arm/arch-iop33x/vmalloc.h b/include/asm-arm/arch-iop33x/vmalloc.h
new file mode 100644 (file)
index 0000000..b509202
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ * linux/include/asm-arm/arch-iop33x/vmalloc.h
+ */
+
+/*
+ * Just any arbitrary offset to the start of the vmalloc VM area: the
+ * current 8MB value just means that there will be a 8MB "hole" after the
+ * physical memory until the kernel virtual memory starts.  That means that
+ * any out-of-bounds memory accesses will hopefully be caught.
+ * The vmalloc() routines leaves a hole of 4kB between each vmalloced
+ * area for the same reason. ;)
+ */
+//#define VMALLOC_END       (0xe8000000)
+/* increase usable physical RAM to ~992M per RMK */
+#define VMALLOC_END       (0xfe000000)
+
diff --git a/include/asm-arm/arch-iop3xx/debug-macro.S b/include/asm-arm/arch-iop3xx/debug-macro.S
deleted file mode 100644 (file)
index dcc6856..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* linux/include/asm-arm/arch-iop3xx/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-               .macro  addruart,rx
-               mov     \rx, #0xfe000000        @ physical
-#if defined(CONFIG_ARCH_IQ80321) || defined(CONFIG_ARCH_IQ31244)
-               orr     \rx, \rx, #0x00800000   @ location of the UART
-#elif defined(CONFIG_ARCH_IOP33X)
-               mrc     p15, 0, \rx, c1, c0
-               tst     \rx, #1                 @ MMU enabled?
-               moveq   \rx, #0x000fe000        @ Physical Base
-               movne   \rx, #0
-               orr     \rx, \rx, #0xfe000000
-               orr     \rx, \rx, #0x00f00000   @ Virtual Base
-               orr     \rx, \rx, #0x00001700   @ location of the UART
-#else
-#error Unknown IOP3XX implementation
-#endif
-               .endm
-
-#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331)
-#define FLOW_CONTROL
-#endif
-#define UART_SHIFT     0
-#include <asm/hardware/debug-8250.S>
diff --git a/include/asm-arm/arch-iop3xx/irqs.h b/include/asm-arm/arch-iop3xx/irqs.h
deleted file mode 100644 (file)
index 4f7c7aa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * linux/include/asm-arm/arch-iop3xx/irqs.h
- *
- * Copyright:  (C) 2001-2003 MontaVista Software Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
-
-/*
- * Chipset-specific bits
- */
-#ifdef CONFIG_ARCH_IOP32X
-#include "iop321-irqs.h"
-#endif
-
-#ifdef CONFIG_ARCH_IOP33X
-#include "iop331-irqs.h"
-#endif
diff --git a/include/asm-arm/arch-iop3xx/timex.h b/include/asm-arm/arch-iop3xx/timex.h
deleted file mode 100644 (file)
index 14ca8d0..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * linux/include/asm-arm/arch-iop3xx/timex.h
- *
- * IOP3xx architecture timex specifications
- */
-#include <asm/hardware.h>
-
-#if defined(CONFIG_ARCH_IQ80321) || defined(CONFIG_ARCH_IQ31244)
-
-#define CLOCK_TICK_RATE IOP321_TICK_RATE
-
-#elif defined(CONFIG_ARCH_IQ80331) || defined(CONFIG_MACH_IQ80332)
-
-#define CLOCK_TICK_RATE IOP331_TICK_RATE
-
-#else
-
-#error "No IOP3xx timex information for this architecture"
-
-#endif
diff --git a/include/asm-arm/arch-iop3xx/uncompress.h b/include/asm-arm/arch-iop3xx/uncompress.h
deleted file mode 100644 (file)
index 066c16b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *  linux/include/asm-arm/arch-iop3xx/uncompress.h
- */
-#include <asm/types.h>
-#include <asm/mach-types.h>
-#include <linux/serial_reg.h>
-#include <asm/hardware.h>
-
-#ifdef CONFIG_ARCH_IOP32X
-#define UTYPE unsigned char *
-#elif defined(CONFIG_ARCH_IOP33X)
-#define UTYPE u32 *
-#else
-#error "Missing IOP3xx arch type def"
-#endif
-
-static volatile UTYPE uart_base;
-
-#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
-
-static inline void putc(char c)
-{
-       while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
-               barrier();
-       *uart_base = c;
-}
-
-static inline void flush(void)
-{
-}
-
-static __inline__ void __arch_decomp_setup(unsigned long arch_id)
-{
-        if(machine_is_iq80321())
-                       uart_base = (volatile UTYPE)IQ80321_UART;
-               else if(machine_is_iq31244())
-                       uart_base = (volatile UTYPE)IQ31244_UART;
-               else if(machine_is_iq80331() || machine_is_iq80332())
-                       uart_base = (volatile UTYPE)IOP331_UART0_PHYS;
-               else
-                       uart_base = (volatile UTYPE)0xfe800000;
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()    __arch_decomp_setup(arch_id)
-#define arch_decomp_wdog()