Skip to contentSkip to conversation

future of gemini platform

RFC New Arnd Bergmann 3 participants 14 messages Jan 4, 2013 – Apr 9, 2014

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover future of gemini platform

The gemini platform is quite broken at the moment due to bitrot, here are the two suggested solutions. We should either apply the first patch or the other two, depending on whether anyone still uses this.

Ulli was last actively working on this about two years ago, so I assume that he has moved on, but if he or anyone else is still interested in keeping Gemini alive, any patches and testing are very welcome. Without a maintainer however, I see no point in keeping it.

The fa526 CPU support is currently only used on Gemini, but Florian had some patches last year for it, so he might still need it. If there are still plans to get MCS814x or another fa526 based platform merged into mainline, we can keep this around, but unless I see a timeline for this, I would prefer to remove it for now. It should be trivial to revert that patch and bring it back if it's needed for a new platform.

Arnd Bergmann (3):
ARM: gemini: get platform to build again
ARM: gemini: remove platform support
ARM: remove fa526 CPU support

 MAINTAINERS                                     |   14 --
 arch/arm/Kconfig                                |   10 +-
 arch/arm/Makefile                               |    2 -
 arch/arm/boot/compressed/head.S                 |   28 ---
 arch/arm/include/asm/barrier.h                  |    6 -
 arch/arm/include/asm/glue-cache.h               |    8 -
 arch/arm/include/asm/glue-proc.h                |    9 -
 arch/arm/include/asm/page.h                     |    8 -
 arch/arm/include/asm/tlbflush.h                 |   19 --
 arch/arm/mach-gemini/Kconfig                    |   40 ----
 arch/arm/mach-gemini/Makefile                   |   13 --
 arch/arm/mach-gemini/Makefile.boot              |    9 -
 arch/arm/mach-gemini/board-nas4220b.c           |  110 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |   94 --------
 arch/arm/mach-gemini/board-wbd111.c             |  137 -----------
 arch/arm/mach-gemini/board-wbd222.c             |  137 -----------
 arch/arm/mach-gemini/common.h                   |   29 ---
 arch/arm/mach-gemini/devices.c                  |  118 ----------
 arch/arm/mach-gemini/gpio.c                     |  230 -------------------
 arch/arm/mach-gemini/idle.c                     |   29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |   21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |   33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  |  278 -----------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |   20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |   74 ------
 arch/arm/mach-gemini/include/mach/irqs.h        |   53 -----
 arch/arm/mach-gemini/include/mach/system.h      |   23 --
 arch/arm/mach-gemini/include/mach/timex.h       |   13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |   44 ----
 arch/arm/mach-gemini/irq.c                      |  103 ---------
 arch/arm/mach-gemini/mm.c                       |   82 -------
 arch/arm/mach-gemini/time.c                     |   89 --------
 arch/arm/mm/Kconfig                             |   32 +--
 arch/arm/mm/Makefile                            |    4 -
 arch/arm/mm/cache-fa.S                          |  249 --------------------
 arch/arm/mm/copypage-fa.c                       |   86 -------
 arch/arm/mm/proc-fa526.S                        |  221 ------------------
 arch/arm/mm/tlb-fa.S                            |   69 ------
 38 files changed, 3 insertions(+), 2541 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/time.c
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
Signature · 1 line
1.7.10.4
#1 lore raw

RFC 1/3 ARM: gemini: get platform to build again

There is no defconfig file for gemini, which has lead to a lot of bitrot. This makes the broken board files, the gpio implementation and the reset logic work again, and fixes the build warnings that got introduced with the changes to the readl/writel prototypes.

---
 arch/arm/Kconfig                             |    1 +
 arch/arm/mach-gemini/Makefile                |    2 +-
 arch/arm/mach-gemini/board-nas4220b.c        |    1 +
 arch/arm/mach-gemini/board-rut1xx.c          |    2 ++
 arch/arm/mach-gemini/board-wbd111.c          |    1 +
 arch/arm/mach-gemini/board-wbd222.c          |    1 +
 arch/arm/mach-gemini/common.h                |    2 ++
 arch/arm/mach-gemini/gpio.c                  |   19 ++++++++++---------
 arch/arm/mach-gemini/include/mach/hardware.h |    2 +-
 arch/arm/mach-gemini/include/mach/system.h   |   23 -----------------------
 arch/arm/mach-gemini/irq.c                   |    4 ++--
 arch/arm/mach-gemini/mm.c                    |   22 +++++++++++-----------
 arch/arm/mach-gemini/reset.c                 |   23 +++++++++++++++++++++++
 13 files changed, 56 insertions(+), 47 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 create mode 100644 arch/arm/mach-gemini/reset.c
arch/arm/Kconfig +1 -0
index f95ba14..639a885 100644
@@ -387,6 +387,7 @@ config ARCH_GEMINI
 	bool "Cortina Systems Gemini"
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_USES_GETTIMEOFFSET
+	select NEED_MACH_GPIO_H
 	select CPU_FA526
 	help
 	  Support for the Cortina Systems Gemini family SoCs
arch/arm/mach-gemini/Makefile +1 -1
index 7355c0b..7963a77 100644
@@ -4,7 +4,7 @@
 
 # Object file lists.
 
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o
+obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
 
 # Board-specific support
 obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
arch/arm/mach-gemini/board-nas4220b.c +1 -0
index 5927d3c..6f24c9d 100644
@@ -107,4 +107,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
 	.init_irq	= gemini_init_irq,
 	.timer		= &ib4220b_timer,
 	.init_machine	= ib4220b_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-rut1xx.c +2 -0
index cd7437a..6ee1974 100644
@@ -14,6 +14,7 @@
 #include <linux/leds.h>
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
+#include <linux/sizes.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -91,4 +92,5 @@ MACHINE_START(RUT100, "Teltonika RUT100")
 	.init_irq	= gemini_init_irq,
 	.timer		= &rut1xx_timer,
 	.init_machine	= rut1xx_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-wbd111.c +1 -0
index a367880..d885f8b 100644
@@ -134,4 +134,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111")
 	.init_irq	= gemini_init_irq,
 	.timer		= &wbd111_timer,
 	.init_machine	= wbd111_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-wbd222.c +1 -0
index f382811..96ca188 100644
@@ -134,4 +134,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222")
 	.init_irq	= gemini_init_irq,
 	.timer		= &wbd222_timer,
 	.init_machine	= wbd222_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/common.h +2 -0
index 7670c39..38a4526 100644
@@ -26,4 +26,6 @@ extern int platform_register_pflash(unsigned int size,
 				    struct mtd_partition *parts,
 				    unsigned int nr_parts);
 
+extern void gemini_restart(char mode, const char *cmd);
+
 #endif /* __GEMINI_COMMON_H__ */
arch/arm/mach-gemini/gpio.c +10 -9
index fdc7ef1..70bfa57 100644
@@ -21,6 +21,7 @@
 
 #include <mach/hardware.h>
 #include <mach/irqs.h>
+#include <mach/gpio.h>
 
 #define GPIO_BASE(x)		IO_ADDRESS(GEMINI_GPIO_BASE(x))
 
@@ -44,7 +45,7 @@
 
 #define GPIO_PORT_NUM		3
 
-static void _set_gpio_irqenable(unsigned int base, unsigned int index,
+static void _set_gpio_irqenable(void __iomem *base, unsigned int index,
 				int enable)
 {
 	unsigned int reg;
@@ -57,7 +58,7 @@ static void _set_gpio_irqenable(unsigned int base, unsigned int index,
 static void gpio_ack_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	__raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR);
 }
@@ -65,7 +66,7 @@ static void gpio_ack_irq(struct irq_data *d)
 static void gpio_mask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 0);
 }
@@ -73,7 +74,7 @@ static void gpio_mask_irq(struct irq_data *d)
 static void gpio_unmask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 1);
 }
@@ -82,7 +83,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
 	unsigned int gpio_mask = 1 << (gpio % 32);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 	unsigned int reg_both, reg_level, reg_type;
 
 	reg_type = __raw_readl(base + GPIO_INT_TYPE);
@@ -120,7 +121,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 	__raw_writel(reg_level, base + GPIO_INT_LEVEL);
 	__raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
 
-	gpio_ack_irq(d->irq);
+	gpio_ack_irq(d);
 
 	return 0;
 }
@@ -153,7 +154,7 @@ static struct irq_chip gpio_irq_chip = {
 static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 				int dir)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 	unsigned int reg;
 
 	reg = __raw_readl(base + GPIO_DIR);
@@ -166,7 +167,7 @@ static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 
 static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	if (value)
 		__raw_writel(1 << (offset % 32), base + GPIO_DATA_SET);
@@ -176,7 +177,7 @@ static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 
 static int gemini_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	return (__raw_readl(base + GPIO_DATA_IN) >> (offset % 32)) & 1;
 }
arch/arm/mach-gemini/include/mach/hardware.h +1 -1
index 8c950e1..98e7b0f 100644
@@ -69,6 +69,6 @@
 /*
  * macro to get at IO space when running virtually
  */
-#define IO_ADDRESS(x)	((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
+#define IO_ADDRESS(x)	IOMEM((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
 
 #endif
arch/arm/mach-gemini/include/mach/system.h deleted +0 -23
deleted file mode 100644
index a33b5a1..0000000
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-static inline void arch_reset(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
arch/arm/mach-gemini/irq.c +2 -2
index 020852d..30bef11 100644
@@ -65,8 +65,8 @@ static struct irq_chip gemini_irq_chip = {
 
 static struct resource irq_resource = {
 	.name	= "irq_handler",
-	.start	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-	.end	= IO_ADDRESS(FIQ_STATUS(GEMINI_INTERRUPT_BASE)) + 4,
+	.start	= GEMINI_INTERRUPT_BASE,
+	.end	= FIQ_STATUS(GEMINI_INTERRUPT_BASE) + 4,
 };
 
 void __init gemini_init_irq(void)
arch/arm/mach-gemini/mm.c +11 -11
index 5194824..2c2cd28 100644
@@ -19,57 +19,57 @@
 /* Page table mapping for I/O region */
 static struct map_desc gemini_io_desc[] __initdata = {
 	{
-		.virtual	= IO_ADDRESS(GEMINI_GLOBAL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GLOBAL_BASE),
 		.pfn		=__phys_to_pfn(GEMINI_GLOBAL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_UART_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_UART_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_UART_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_TIMER_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_TIMER_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_TIMER_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_INTERRUPT_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_INTERRUPT_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(0)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(0)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(0)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(1)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(1)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(1)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(2)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(2)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(2)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
arch/arm/mach-gemini/reset.c new file +23 -0
new file mode 100644
index 0000000..b266597
@@ -0,0 +1,23 @@
+/*
+ *  Copyright (C) 2001-2006 Storlink, Corp.
+ *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
+ *
+ * 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 __MACH_SYSTEM_H
+#define __MACH_SYSTEM_H
+
+#include <linux/io.h>
+#include <mach/hardware.h>
+#include <mach/global_reg.h>
+
+void gemini_restart(char mode, const char *cmd)
+{
+	__raw_writel(RESET_GLOBAL | RESET_CPU1,
+		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
+}
+
+#endif /* __MACH_SYSTEM_H */
Signature · 1 line
1.7.10.4
#2 lore raw

RFC 1/3 ARM: gemini: get platform to build again

In reply to Arnd Bergmann

There is no defconfig file for gemini, which has lead to a lot of bitrot. This makes the broken board files, the gpio implementation and the reset logic work again, and fixes the build warnings that got introduced with the changes to the readl/writel prototypes.

---
 arch/arm/Kconfig                             |    1 +
 arch/arm/mach-gemini/Makefile                |    2 +-
 arch/arm/mach-gemini/board-nas4220b.c        |    1 +
 arch/arm/mach-gemini/board-rut1xx.c          |    2 ++
 arch/arm/mach-gemini/board-wbd111.c          |    1 +
 arch/arm/mach-gemini/board-wbd222.c          |    1 +
 arch/arm/mach-gemini/common.h                |    2 ++
 arch/arm/mach-gemini/gpio.c                  |   19 ++++++++++---------
 arch/arm/mach-gemini/include/mach/hardware.h |    2 +-
 arch/arm/mach-gemini/include/mach/system.h   |   23 -----------------------
 arch/arm/mach-gemini/irq.c                   |    4 ++--
 arch/arm/mach-gemini/mm.c                    |   22 +++++++++++-----------
 arch/arm/mach-gemini/reset.c                 |   23 +++++++++++++++++++++++
 13 files changed, 56 insertions(+), 47 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 create mode 100644 arch/arm/mach-gemini/reset.c
arch/arm/Kconfig +1 -0
index f95ba14..639a885 100644
@@ -387,6 +387,7 @@ config ARCH_GEMINI
 	bool "Cortina Systems Gemini"
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_USES_GETTIMEOFFSET
+	select NEED_MACH_GPIO_H
 	select CPU_FA526
 	help
 	  Support for the Cortina Systems Gemini family SoCs
arch/arm/mach-gemini/Makefile +1 -1
index 7355c0b..7963a77 100644
@@ -4,7 +4,7 @@
 
 # Object file lists.
 
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o
+obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
 
 # Board-specific support
 obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
arch/arm/mach-gemini/board-nas4220b.c +1 -0
index 5927d3c..6f24c9d 100644
@@ -107,4 +107,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
 	.init_irq	= gemini_init_irq,
 	.timer		= &ib4220b_timer,
 	.init_machine	= ib4220b_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-rut1xx.c +2 -0
index cd7437a..6ee1974 100644
@@ -14,6 +14,7 @@
 #include <linux/leds.h>
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
+#include <linux/sizes.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -91,4 +92,5 @@ MACHINE_START(RUT100, "Teltonika RUT100")
 	.init_irq	= gemini_init_irq,
 	.timer		= &rut1xx_timer,
 	.init_machine	= rut1xx_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-wbd111.c +1 -0
index a367880..d885f8b 100644
@@ -134,4 +134,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111")
 	.init_irq	= gemini_init_irq,
 	.timer		= &wbd111_timer,
 	.init_machine	= wbd111_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-wbd222.c +1 -0
index f382811..96ca188 100644
@@ -134,4 +134,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222")
 	.init_irq	= gemini_init_irq,
 	.timer		= &wbd222_timer,
 	.init_machine	= wbd222_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/common.h +2 -0
index 7670c39..38a4526 100644
@@ -26,4 +26,6 @@ extern int platform_register_pflash(unsigned int size,
 				    struct mtd_partition *parts,
 				    unsigned int nr_parts);
 
+extern void gemini_restart(char mode, const char *cmd);
+
 #endif /* __GEMINI_COMMON_H__ */
arch/arm/mach-gemini/gpio.c +10 -9
index fdc7ef1..70bfa57 100644
@@ -21,6 +21,7 @@
 
 #include <mach/hardware.h>
 #include <mach/irqs.h>
+#include <mach/gpio.h>
 
 #define GPIO_BASE(x)		IO_ADDRESS(GEMINI_GPIO_BASE(x))
 
@@ -44,7 +45,7 @@
 
 #define GPIO_PORT_NUM		3
 
-static void _set_gpio_irqenable(unsigned int base, unsigned int index,
+static void _set_gpio_irqenable(void __iomem *base, unsigned int index,
 				int enable)
 {
 	unsigned int reg;
@@ -57,7 +58,7 @@ static void _set_gpio_irqenable(unsigned int base, unsigned int index,
 static void gpio_ack_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	__raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR);
 }
@@ -65,7 +66,7 @@ static void gpio_ack_irq(struct irq_data *d)
 static void gpio_mask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 0);
 }
@@ -73,7 +74,7 @@ static void gpio_mask_irq(struct irq_data *d)
 static void gpio_unmask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 1);
 }
@@ -82,7 +83,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
 	unsigned int gpio_mask = 1 << (gpio % 32);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 	unsigned int reg_both, reg_level, reg_type;
 
 	reg_type = __raw_readl(base + GPIO_INT_TYPE);
@@ -120,7 +121,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 	__raw_writel(reg_level, base + GPIO_INT_LEVEL);
 	__raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
 
-	gpio_ack_irq(d->irq);
+	gpio_ack_irq(d);
 
 	return 0;
 }
@@ -153,7 +154,7 @@ static struct irq_chip gpio_irq_chip = {
 static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 				int dir)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 	unsigned int reg;
 
 	reg = __raw_readl(base + GPIO_DIR);
@@ -166,7 +167,7 @@ static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 
 static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	if (value)
 		__raw_writel(1 << (offset % 32), base + GPIO_DATA_SET);
@@ -176,7 +177,7 @@ static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 
 static int gemini_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	return (__raw_readl(base + GPIO_DATA_IN) >> (offset % 32)) & 1;
 }
arch/arm/mach-gemini/include/mach/hardware.h +1 -1
index 8c950e1..98e7b0f 100644
@@ -69,6 +69,6 @@
 /*
  * macro to get at IO space when running virtually
  */
-#define IO_ADDRESS(x)	((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
+#define IO_ADDRESS(x)	IOMEM((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
 
 #endif
arch/arm/mach-gemini/include/mach/system.h deleted +0 -23
deleted file mode 100644
index a33b5a1..0000000
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-static inline void arch_reset(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
arch/arm/mach-gemini/irq.c +2 -2
index 020852d..30bef11 100644
@@ -65,8 +65,8 @@ static struct irq_chip gemini_irq_chip = {
 
 static struct resource irq_resource = {
 	.name	= "irq_handler",
-	.start	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-	.end	= IO_ADDRESS(FIQ_STATUS(GEMINI_INTERRUPT_BASE)) + 4,
+	.start	= GEMINI_INTERRUPT_BASE,
+	.end	= FIQ_STATUS(GEMINI_INTERRUPT_BASE) + 4,
 };
 
 void __init gemini_init_irq(void)
arch/arm/mach-gemini/mm.c +11 -11
index 5194824..2c2cd28 100644
@@ -19,57 +19,57 @@
 /* Page table mapping for I/O region */
 static struct map_desc gemini_io_desc[] __initdata = {
 	{
-		.virtual	= IO_ADDRESS(GEMINI_GLOBAL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GLOBAL_BASE),
 		.pfn		=__phys_to_pfn(GEMINI_GLOBAL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_UART_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_UART_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_UART_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_TIMER_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_TIMER_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_TIMER_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_INTERRUPT_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_INTERRUPT_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(0)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(0)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(0)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(1)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(1)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(1)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(2)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(2)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(2)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
arch/arm/mach-gemini/reset.c new file +23 -0
new file mode 100644
index 0000000..b266597
@@ -0,0 +1,23 @@
+/*
+ *  Copyright (C) 2001-2006 Storlink, Corp.
+ *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
+ *
+ * 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 __MACH_SYSTEM_H
+#define __MACH_SYSTEM_H
+
+#include <linux/io.h>
+#include <mach/hardware.h>
+#include <mach/global_reg.h>
+
+void gemini_restart(char mode, const char *cmd)
+{
+	__raw_writel(RESET_GLOBAL | RESET_CPU1,
+		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
+}
+
+#endif /* __MACH_SYSTEM_H */
Signature · 1 line
1.7.10.4
#3 lore raw

RFC PATCH 1/3 ARM: gemini: get platform to build again

In reply to Arnd Bergmann

There is no defconfig file for gemini, which has lead to a lot of bitrot. This makes the broken board files, the gpio implementation and the reset logic work again, and fixes the build warnings that got introduced with the changes to the readl/writel prototypes.

---
(retransmitted because the original was rejected by linux-arm-kernel)

 arch/arm/Kconfig                             |    1 +
 arch/arm/mach-gemini/Makefile                |    2 +-
 arch/arm/mach-gemini/board-nas4220b.c        |    1 +
 arch/arm/mach-gemini/board-rut1xx.c          |    2 ++
 arch/arm/mach-gemini/board-wbd111.c          |    1 +
 arch/arm/mach-gemini/board-wbd222.c          |    1 +
 arch/arm/mach-gemini/common.h                |    2 ++
 arch/arm/mach-gemini/gpio.c                  |   19 ++++++++++---------
 arch/arm/mach-gemini/include/mach/hardware.h |    2 +-
 arch/arm/mach-gemini/include/mach/system.h   |   23 -----------------------
 arch/arm/mach-gemini/irq.c                   |    4 ++--
 arch/arm/mach-gemini/mm.c                    |   22 +++++++++++-----------
 arch/arm/mach-gemini/reset.c                 |   23 +++++++++++++++++++++++
 13 files changed, 56 insertions(+), 47 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 create mode 100644 arch/arm/mach-gemini/reset.c
arch/arm/Kconfig +1 -0
index f95ba14..639a885 100644
@@ -387,6 +387,7 @@ config ARCH_GEMINI
 	bool "Cortina Systems Gemini"
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_USES_GETTIMEOFFSET
+	select NEED_MACH_GPIO_H
 	select CPU_FA526
 	help
 	  Support for the Cortina Systems Gemini family SoCs
arch/arm/mach-gemini/Makefile +1 -1
index 7355c0b..7963a77 100644
@@ -4,7 +4,7 @@
 
 # Object file lists.
 
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o
+obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
 
 # Board-specific support
 obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
arch/arm/mach-gemini/board-nas4220b.c +1 -0
index 5927d3c..6f24c9d 100644
@@ -107,4 +107,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
 	.init_irq	= gemini_init_irq,
 	.timer		= &ib4220b_timer,
 	.init_machine	= ib4220b_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-rut1xx.c +2 -0
index cd7437a..6ee1974 100644
@@ -14,6 +14,7 @@
 #include <linux/leds.h>
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
+#include <linux/sizes.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -91,4 +92,5 @@ MACHINE_START(RUT100, "Teltonika RUT100")
 	.init_irq	= gemini_init_irq,
 	.timer		= &rut1xx_timer,
 	.init_machine	= rut1xx_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-wbd111.c +1 -0
index a367880..d885f8b 100644
@@ -134,4 +134,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111")
 	.init_irq	= gemini_init_irq,
 	.timer		= &wbd111_timer,
 	.init_machine	= wbd111_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/board-wbd222.c +1 -0
index f382811..96ca188 100644
@@ -134,4 +134,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222")
 	.init_irq	= gemini_init_irq,
 	.timer		= &wbd222_timer,
 	.init_machine	= wbd222_init,
+	.restart	= gemini_restart,
 MACHINE_END
arch/arm/mach-gemini/common.h +2 -0
index 7670c39..38a4526 100644
@@ -26,4 +26,6 @@ extern int platform_register_pflash(unsigned int size,
 				    struct mtd_partition *parts,
 				    unsigned int nr_parts);
 
+extern void gemini_restart(char mode, const char *cmd);
+
 #endif /* __GEMINI_COMMON_H__ */
arch/arm/mach-gemini/gpio.c +10 -9
index fdc7ef1..70bfa57 100644
@@ -21,6 +21,7 @@
 
 #include <mach/hardware.h>
 #include <mach/irqs.h>
+#include <mach/gpio.h>
 
 #define GPIO_BASE(x)		IO_ADDRESS(GEMINI_GPIO_BASE(x))
 
@@ -44,7 +45,7 @@
 
 #define GPIO_PORT_NUM		3
 
-static void _set_gpio_irqenable(unsigned int base, unsigned int index,
+static void _set_gpio_irqenable(void __iomem *base, unsigned int index,
 				int enable)
 {
 	unsigned int reg;
@@ -57,7 +58,7 @@ static void _set_gpio_irqenable(unsigned int base, unsigned int index,
 static void gpio_ack_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	__raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR);
 }
@@ -65,7 +66,7 @@ static void gpio_ack_irq(struct irq_data *d)
 static void gpio_mask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 0);
 }
@@ -73,7 +74,7 @@ static void gpio_mask_irq(struct irq_data *d)
 static void gpio_unmask_irq(struct irq_data *d)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 
 	_set_gpio_irqenable(base, gpio % 32, 1);
 }
@@ -82,7 +83,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 {
 	unsigned int gpio = irq_to_gpio(d->irq);
 	unsigned int gpio_mask = 1 << (gpio % 32);
-	unsigned int base = GPIO_BASE(gpio / 32);
+	void __iomem *base = GPIO_BASE(gpio / 32);
 	unsigned int reg_both, reg_level, reg_type;
 
 	reg_type = __raw_readl(base + GPIO_INT_TYPE);
@@ -120,7 +121,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
 	__raw_writel(reg_level, base + GPIO_INT_LEVEL);
 	__raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
 
-	gpio_ack_irq(d->irq);
+	gpio_ack_irq(d);
 
 	return 0;
 }
@@ -153,7 +154,7 @@ static struct irq_chip gpio_irq_chip = {
 static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 				int dir)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 	unsigned int reg;
 
 	reg = __raw_readl(base + GPIO_DIR);
@@ -166,7 +167,7 @@ static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
 
 static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	if (value)
 		__raw_writel(1 << (offset % 32), base + GPIO_DATA_SET);
@@ -176,7 +177,7 @@ static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 
 static int gemini_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-	unsigned int base = GPIO_BASE(offset / 32);
+	void __iomem *base = GPIO_BASE(offset / 32);
 
 	return (__raw_readl(base + GPIO_DATA_IN) >> (offset % 32)) & 1;
 }
arch/arm/mach-gemini/include/mach/hardware.h +1 -1
index 8c950e1..98e7b0f 100644
@@ -69,6 +69,6 @@
 /*
  * macro to get at IO space when running virtually
  */
-#define IO_ADDRESS(x)	((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
+#define IO_ADDRESS(x)	IOMEM((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
 
 #endif
arch/arm/mach-gemini/include/mach/system.h deleted +0 -23
deleted file mode 100644
index a33b5a1..0000000
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-static inline void arch_reset(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
arch/arm/mach-gemini/irq.c +2 -2
index 020852d..30bef11 100644
@@ -65,8 +65,8 @@ static struct irq_chip gemini_irq_chip = {
 
 static struct resource irq_resource = {
 	.name	= "irq_handler",
-	.start	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-	.end	= IO_ADDRESS(FIQ_STATUS(GEMINI_INTERRUPT_BASE)) + 4,
+	.start	= GEMINI_INTERRUPT_BASE,
+	.end	= FIQ_STATUS(GEMINI_INTERRUPT_BASE) + 4,
 };
 
 void __init gemini_init_irq(void)
arch/arm/mach-gemini/mm.c +11 -11
index 5194824..2c2cd28 100644
@@ -19,57 +19,57 @@
 /* Page table mapping for I/O region */
 static struct map_desc gemini_io_desc[] __initdata = {
 	{
-		.virtual	= IO_ADDRESS(GEMINI_GLOBAL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GLOBAL_BASE),
 		.pfn		=__phys_to_pfn(GEMINI_GLOBAL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_UART_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_UART_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_UART_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_TIMER_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_TIMER_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_TIMER_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_INTERRUPT_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_INTERRUPT_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_INTERRUPT_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(0)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(0)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(0)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(1)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(1)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(1)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GPIO_BASE(2)),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(2)),
 		.pfn		= __phys_to_pfn(GEMINI_GPIO_BASE(2)),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
 	}, {
-		.virtual	= IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
+		.virtual	= (unsigned long)IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
 		.pfn		= __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
 		.length		= SZ_512K,
 		.type 		= MT_DEVICE,
arch/arm/mach-gemini/reset.c new file +23 -0
new file mode 100644
index 0000000..b266597
@@ -0,0 +1,23 @@
+/*
+ *  Copyright (C) 2001-2006 Storlink, Corp.
+ *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
+ *
+ * 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 __MACH_SYSTEM_H
+#define __MACH_SYSTEM_H
+
+#include <linux/io.h>
+#include <mach/hardware.h>
+#include <mach/global_reg.h>
+
+void gemini_restart(char mode, const char *cmd)
+{
+	__raw_writel(RESET_GLOBAL | RESET_CPU1,
+		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
+}
+
+#endif /* __MACH_SYSTEM_H */
Signature · 1 line
1.7.10.4
#4 lore raw

RFC PATCH 2/3 ARM: gemini: remove platform support

The gemini platform has not seen any updates from its maintainer since 2010, and has no defconfig file, which has lead to bitrot in a number of places:

* System restart has been broken for a long time despite repeated attempts from Russell to get the obvious fix at least acknowledged by someone who can test it.
* The platform still uses mach/gpio.h, which has been deprecated for some time, and since Kconfig does not select NEED_MACH_GPIO_H, it actually failed to build because of this.
* A change to asm/io.h introduced a number of compiler warnings for gemini specific code that confuses physical and virtual addresses.

This removes gemini support entirely under the assumption that nobody uses it on mainline kernels. Of course, if there are still active users out there, they should let us know so we can put support back in and get it better tested.

---
 MAINTAINERS                                     |    7 -
 arch/arm/Kconfig                                |    9 -
 arch/arm/Makefile                               |    1 -
 arch/arm/mach-gemini/Kconfig                    |   40 ----
 arch/arm/mach-gemini/Makefile                   |   13 --
 arch/arm/mach-gemini/Makefile.boot              |    9 -
 arch/arm/mach-gemini/board-nas4220b.c           |  111 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |   96 --------
 arch/arm/mach-gemini/board-wbd111.c             |  138 -----------
 arch/arm/mach-gemini/board-wbd222.c             |  138 -----------
 arch/arm/mach-gemini/common.h                   |   31 ---
 arch/arm/mach-gemini/devices.c                  |  118 ----------
 arch/arm/mach-gemini/gpio.c                     |  231 -------------------
 arch/arm/mach-gemini/idle.c                     |   29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |   21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |   33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  |  278 -----------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |   20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |   74 ------
 arch/arm/mach-gemini/include/mach/irqs.h        |   53 -----
 arch/arm/mach-gemini/include/mach/timex.h       |   13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |   44 ----
 arch/arm/mach-gemini/irq.c                      |  103 ---------
 arch/arm/mach-gemini/mm.c                       |   82 -------
 arch/arm/mach-gemini/reset.c                    |   23 --
 arch/arm/mach-gemini/time.c                     |   89 --------
 26 files changed, 1804 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/reset.c
 delete mode 100644 arch/arm/mach-gemini/time.c
MAINTAINERS +0 -7
index fa309ab..9f0da02 100644
@@ -760,13 +760,6 @@ ARM/CORGI MACHINE SUPPORT
 M:	Richard Purdie <[email protected]>
 S:	Maintained
 
-ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
-M:	Hans Ulli Kroll <[email protected]>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-T:	git git://git.berlios.de/gemini-board
-S:	Maintained
-F:	arch/arm/mach-gemini/
-
 ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
 M:	Barry Song <[email protected]>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
arch/arm/Kconfig +0 -9
index 639a885..4620431 100644
@@ -383,15 +383,6 @@ config ARCH_CLPS711X
 	help
 	  Support for Cirrus Logic 711x/721x/731x based boards.
 
-config ARCH_GEMINI
-	bool "Cortina Systems Gemini"
-	select ARCH_REQUIRE_GPIOLIB
-	select ARCH_USES_GETTIMEOFFSET
-	select NEED_MACH_GPIO_H
-	select CPU_FA526
-	help
-	  Support for the Cortina Systems Gemini family SoCs
-
 config ARCH_SIRF
 	bool "CSR SiRF"
 	select ARCH_REQUIRE_GPIOLIB
arch/arm/Makefile +0 -1
index 30c443c..c694a03 100644
@@ -146,7 +146,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
-machine-$(CONFIG_ARCH_GEMINI)		+= gemini
 machine-$(CONFIG_ARCH_H720X)		+= h720x
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
arch/arm/mach-gemini/Kconfig deleted +0 -40
deleted file mode 100644
index 6f066ee..0000000
@@ -1,40 +0,0 @@
-if ARCH_GEMINI
-
-menu "Cortina Systems Gemini Implementations"
-
-config MACH_NAS4220B
-	bool "Raidsonic NAS-4220-B"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Raidsonic NAS-4220-B.
-
-config MACH_RUT100
-	bool "Teltonika RUT100"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Teltonika 3G Router RUT100.
-
-config MACH_WBD111
-	bool "Wiliboard WBD-111"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Wiliboard WBD-111.
-
-config MACH_WBD222
-        bool "Wiliboard WBD-222"
-        select GEMINI_MEM_SWAP
-        help
-          Say Y here if you intend to run this kernel on a
-          Wiliboard WBD-222.
-
-endmenu
-
-config GEMINI_MEM_SWAP
-	bool "Gemini memory is swapped"
-	help
-	  Say Y here if Gemini memory is swapped by bootloader.
-
-endif
arch/arm/mach-gemini/Makefile deleted +0 -13
deleted file mode 100644
index 7963a77..0000000
@@ -1,13 +0,0 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
-
-# Board-specific support
-obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
-obj-$(CONFIG_MACH_RUT100)	+= board-rut1xx.o
-obj-$(CONFIG_MACH_WBD111)	+= board-wbd111.o
-obj-$(CONFIG_MACH_WBD222)	+= board-wbd222.o
arch/arm/mach-gemini/Makefile.boot deleted +0 -9
deleted file mode 100644
index 683f52b..0000000
@@ -1,9 +0,0 @@
-ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
-   zreladdr-y	+= 0x00008000
-params_phys-y	:= 0x00000100
-initrd_phys-y	:= 0x00800000
-else
-   zreladdr-y	+= 0x10008000
-params_phys-y	:= 0x10000100
-initrd_phys-y	:= 0x10800000
-endif
arch/arm/mach-gemini/board-nas4220b.c deleted +0 -111

111 lines not on this page · raw message

arch/arm/mach-gemini/board-rut1xx.c deleted +0 -96

96 lines not on this page · raw message

arch/arm/mach-gemini/board-wbd111.c deleted +0 -138

138 lines not on this page · raw message

arch/arm/mach-gemini/board-wbd222.c deleted +0 -138

138 lines not on this page · raw message

arch/arm/mach-gemini/common.h deleted +0 -31
deleted file mode 100644
index 38a4526..0000000
@@ -1,31 +0,0 @@
-/*
- * Common Gemini architecture functions
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __GEMINI_COMMON_H__
-#define __GEMINI_COMMON_H__
-
-struct mtd_partition;
-
-extern void gemini_map_io(void);
-extern void gemini_init_irq(void);
-extern void gemini_timer_init(void);
-extern void gemini_gpio_init(void);
-extern void platform_register_rtc(void);
-
-/* Common platform devices registration functions */
-extern int platform_register_uart(void);
-extern int platform_register_pflash(unsigned int size,
-				    struct mtd_partition *parts,
-				    unsigned int nr_parts);
-
-extern void gemini_restart(char mode, const char *cmd);
-
-#endif /* __GEMINI_COMMON_H__ */
arch/arm/mach-gemini/devices.c deleted +0 -118

118 lines not on this page · raw message

arch/arm/mach-gemini/gpio.c deleted +0 -231

231 lines not on this page · raw message

arch/arm/mach-gemini/idle.c deleted +0 -29
deleted file mode 100644
index 92bbd6b..0000000
@@ -1,29 +0,0 @@
-/*
- * arch/arm/mach-gemini/idle.c
- */
-
-#include <linux/init.h>
-#include <asm/system.h>
-#include <asm/proc-fns.h>
-
-static void gemini_idle(void)
-{
-	/*
-	 * Because of broken hardware we have to enable interrupts or the CPU
-	 * will never wakeup... Acctualy it is not very good to enable
-	 * interrupts first since scheduler can miss a tick, but there is
-	 * no other way around this. Platforms that needs it for power saving
-	 * should call enable_hlt() in init code, since by default it is
-	 * disabled.
-	 */
-	local_irq_enable();
-	cpu_do_idle();
-}
-
-static int __init gemini_idle_init(void)
-{
-	arm_pm_idle = gemini_idle;
-	return 0;
-}
-
-arch_initcall(gemini_idle_init);
arch/arm/mach-gemini/include/mach/debug-macro.S deleted +0 -21
deleted file mode 100644
index 8376707..0000000
@@ -1,21 +0,0 @@
-/*
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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.
- */
-#include <mach/hardware.h>
-
-	.macro	addruart, rp, rv, tmp
-	ldr	\rp, =GEMINI_UART_BASE			@ physical
-	ldr	\rv, =IO_ADDRESS(GEMINI_UART_BASE)	@ virtual
-	.endm
-
-#define UART_SHIFT	2
-#define FLOW_CONTROL
-#include <asm/hardware/debug-8250.S>
arch/arm/mach-gemini/include/mach/entry-macro.S deleted +0 -33
deleted file mode 100644
index f044e43..0000000
@@ -1,33 +0,0 @@
-/*
- * Low-level IRQ helper macros for Gemini platform.
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 <mach/hardware.h>
-
-#define IRQ_STATUS	0x14
-
-	.macro  get_irqnr_preamble, base, tmp
-	.endm
-
-	.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-	ldr     \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS)
-	ldr     \irqnr, [\irqstat]
-	cmp     \irqnr, #0
-	beq     2313f
-	mov     \tmp, \irqnr
-	mov     \irqnr, #0
-2312:
-	tst     \tmp, #1
-	bne     2313f
-	add     \irqnr, \irqnr, #1
-	mov     \tmp, \tmp, lsr #1
-	cmp     \irqnr, #31
-	bcc     2312b
-2313:
-	.endm
arch/arm/mach-gemini/include/mach/global_reg.h deleted +0 -278

278 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/gpio.h deleted +0 -20
deleted file mode 100644
index 40a0527..0000000
@@ -1,20 +0,0 @@
-/*
- * Gemini gpiolib specific defines
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_GPIO_H__
-#define __MACH_GPIO_H__
-
-#include <mach/irqs.h>
-
-#define gpio_to_irq(x)	((x) + GPIO_IRQ_BASE)
-#define irq_to_gpio(x)	((x) - GPIO_IRQ_BASE)
-
-#endif /* __MACH_GPIO_H__ */
arch/arm/mach-gemini/include/mach/hardware.h deleted +0 -74

74 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/irqs.h deleted +0 -53

53 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/timex.h deleted +0 -13
deleted file mode 100644
index dc5690b..0000000
@@ -1,13 +0,0 @@
-/*
- * Gemini timex specifications
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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.
- */
-
-/* When AHB bus frequency is 150MHz */
-#define CLOCK_TICK_RATE	38000000
arch/arm/mach-gemini/include/mach/uncompress.h deleted +0 -44

44 lines not on this page · raw message

arch/arm/mach-gemini/irq.c deleted +0 -103

103 lines not on this page · raw message

arch/arm/mach-gemini/mm.c deleted +0 -82

82 lines not on this page · raw message

arch/arm/mach-gemini/reset.c deleted +0 -23
deleted file mode 100644
index b266597..0000000
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-void gemini_restart(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
arch/arm/mach-gemini/time.c deleted +0 -89

89 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#5 lore raw

RFC PATCH 3/3 ARM: remove fa526 CPU support

In reply to Arnd Bergmann

With the Cortina Gemini platform gone, nothing in ARM uses the Faraday 526 CPU core support any more. There is at least one other platform using this (Moschip MCS814x), but the efforts to get that merged into mainline appear to have stalled.

If someone still needs this code, please speak up now, otherwise we will remove it now. Of course there is always the option to revert this patch if we need it again later.

---
 MAINTAINERS                       |    7 --
 arch/arm/Kconfig                  |    2 +-
 arch/arm/Makefile                 |    1 -
 arch/arm/boot/compressed/head.S   |   28 -----
 arch/arm/include/asm/barrier.h    |    6 -
 arch/arm/include/asm/glue-cache.h |    8 --
 arch/arm/include/asm/glue-proc.h  |    9 --
 arch/arm/include/asm/page.h       |    8 --
 arch/arm/include/asm/tlbflush.h   |   19 ---
 arch/arm/mm/Kconfig               |   32 +----
 arch/arm/mm/Makefile              |    4 -
 arch/arm/mm/cache-fa.S            |  249 -------------------------------------
 arch/arm/mm/copypage-fa.c         |   86 -------------
 arch/arm/mm/proc-fa526.S          |  221 --------------------------------
 arch/arm/mm/tlb-fa.S              |   69 ----------
 15 files changed, 3 insertions(+), 746 deletions(-)
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
MAINTAINERS +0 -7
index 9f0da02..15c1ce0 100644
@@ -788,13 +788,6 @@ S:	Maintained
 T:	topgit git://git.openezx.org/openezx.git
 F:	arch/arm/mach-pxa/ezx.c
 
-ARM/FARADAY FA526 PORT
-M:	Hans Ulli Kroll <[email protected]>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-T:	git git://git.berlios.de/gemini-board
-F:	arch/arm/mm/*-fa*
-
 ARM/FOOTBRIDGE ARCHITECTURE
 M:	Russell King <[email protected]>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
arch/arm/Kconfig +1 -1
index 4620431..17bf3d0 100644
@@ -966,7 +966,7 @@ menu "Multiple platform selection"
 comment "CPU Core family selection"
 
 config ARCH_MULTI_V4
-	bool "ARMv4 based platforms (FA526, StrongARM)"
+	bool "ARMv4 based platforms (StrongARM)"
 	depends on !ARCH_MULTI_V6_V7
 	select ARCH_MULTI_V4_V5
 
arch/arm/Makefile +0 -1
index c694a03..519a9c5 100644
@@ -82,7 +82,6 @@ tune-$(CONFIG_CPU_ARM920T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM922T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM925T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM926T)	:=-mtune=arm9tdmi
-tune-$(CONFIG_CPU_FA526)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_SA110)	:=-mtune=strongarm110
 tune-$(CONFIG_CPU_SA1100)	:=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)	:=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
arch/arm/boot/compressed/head.S +0 -28
index fe4d9c3..4e985f0 100644
@@ -726,21 +726,6 @@ __armv7_mmu_cache_on:
 		mcr	p15, 0, r0, c7, c5, 4	@ ISB
 		mov	pc, r12
 
-__fa526_cache_on:
-		mov	r12, lr
-		mov	r6, #CB_BITS | 0x12	@ U
-		bl	__setup_mmu
-		mov	r0, #0
-		mcr	p15, 0, r0, c7, c7, 0	@ Invalidate whole cache
-		mcr	p15, 0, r0, c7, c10, 4	@ drain write buffer
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
-		orr	r0, r0, #0x1000		@ I-cache enable
-		bl	__common_mmu_cache_on
-		mov	r0, #0
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mov	pc, r12
-
 __common_mmu_cache_on:
 #ifndef CONFIG_THUMB2_KERNEL
 #ifndef DEBUG
@@ -898,12 +883,6 @@ proc_types:
 		b	__armv5tej_mmu_cache_flush
 #endif
 
-		.word	0x66015261		@ FA526
-		.word	0xff01fff1
-		W(b)	__fa526_cache_on
-		W(b)	__armv4_mmu_cache_off
-		W(b)	__fa526_cache_flush
-
 		@ These match on the architecture ID
 
 		.word	0x00020000		@ ARMv4T
@@ -1048,13 +1027,6 @@ __armv4_mpu_cache_flush:
 		mcr	p15, 0, ip, c7, c10, 4	@ drain WB
 		mov	pc, lr
 		
-__fa526_cache_flush:
-		mov	r1, #0
-		mcr	p15, 0, r1, c7, c14, 0	@ clean and invalidate D cache
-		mcr	p15, 0, r1, c7, c5, 0	@ flush I cache
-		mcr	p15, 0, r1, c7, c10, 4	@ drain WB
-		mov	pc, lr
-
 __armv6_mmu_cache_flush:
 		mov	r1, #0
 		mcr	p15, 0, r1, c7, c14, 0	@ clean+invalidate D
arch/arm/include/asm/barrier.h +0 -6
index 8dcd9c7..7158a84 100644
@@ -24,12 +24,6 @@
 				    : : "r" (0) : "memory")
 #define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
 				    : : "r" (0) : "memory")
-#elif defined(CONFIG_CPU_FA526)
-#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
-				    : : "r" (0) : "memory")
-#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
-				    : : "r" (0) : "memory")
-#define dmb() __asm__ __volatile__ ("" : : : "memory")
 #else
 #define isb() __asm__ __volatile__ ("" : : : "memory")
 #define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
arch/arm/include/asm/glue-cache.h +0 -8
index cca9f15..adc0955 100644
@@ -41,14 +41,6 @@
 # define MULTI_CACHE 1
 #endif
 
-#if defined(CONFIG_CPU_FA526)
-# ifdef _CACHE
-#  define MULTI_CACHE 1
-# else
-#  define _CACHE fa
-# endif
-#endif
-
 #if defined(CONFIG_CPU_ARM926T)
 # ifdef _CACHE
 #  define MULTI_CACHE 1
arch/arm/include/asm/glue-proc.h +0 -9
index ac1dd54..8e42e0d 100644
@@ -77,15 +77,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_FA526
-# ifdef CPU_NAME
-#  undef  MULTI_CPU
-#  define MULTI_CPU
-# else
-#  define CPU_NAME cpu_fa526
-# endif
-#endif
-
 #ifdef CONFIG_CPU_ARM925T
 # ifdef CPU_NAME
 #  undef  MULTI_CPU
arch/arm/include/asm/page.h +0 -8
index 812a494..15595fa 100644
@@ -67,14 +67,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_COPY_FA
-# ifdef _USER
-#  define MULTI_USER 1
-# else
-#  define _USER fa
-# endif
-#endif
-
 #ifdef CONFIG_CPU_SA1100
 # ifdef _USER
 #  define MULTI_USER 1
arch/arm/include/asm/tlbflush.h +0 -19
index 6e924d3..a718245 100644
@@ -54,7 +54,6 @@
  *	  v4wb  - ARMv4 with write buffer without I TLB flush entry instruction
  *	  v4wbi - ARMv4 with write buffer with I TLB flush entry instruction
  *	  fr    - Feroceon (v4wbi with non-outer-cacheable page table walks)
- *	  fa    - Faraday (v4 with write buffer with UTLB)
  *	  v6wbi - ARMv6 with write buffer with I TLB flush entry instruction
  *	  v7wbi - identical to v6wbi
  */
@@ -80,22 +79,6 @@
 # define v4_always_flags	(-1UL)
 #endif
 
-#define fa_tlb_flags	(TLB_WB | TLB_DCLEAN | TLB_BARRIER | \
-			 TLB_V4_U_FULL | TLB_V4_U_PAGE)
-
-#ifdef CONFIG_CPU_TLB_FA
-# define fa_possible_flags	fa_tlb_flags
-# define fa_always_flags	fa_tlb_flags
-# ifdef _TLB
-#  define MULTI_TLB 1
-# else
-#  define _TLB fa
-# endif
-#else
-# define fa_possible_flags	0
-# define fa_always_flags	(-1UL)
-#endif
-
 #define v4wbi_tlb_flags	(TLB_WB | TLB_DCLEAN | \
 			 TLB_V4_I_FULL | TLB_V4_D_FULL | \
 			 TLB_V4_I_PAGE | TLB_V4_D_PAGE)
@@ -287,7 +270,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_possible_flags | \
 				 fr_possible_flags | \
 				 v4wb_possible_flags | \
-				 fa_possible_flags | \
 				 v6wbi_possible_flags | \
 				 v7wbi_possible_flags)
 
@@ -295,7 +277,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_always_flags & \
 				 fr_always_flags & \
 				 v4wb_always_flags & \
-				 fa_always_flags & \
 				 v6wbi_always_flags & \
 				 v7wbi_always_flags)
 
arch/arm/mm/Kconfig +2 -30
index 3fd629d..d0510bf 100644
@@ -143,24 +143,6 @@ config CPU_ARM926T
 	  Say Y if you want support for the ARM926T processor.
 	  Otherwise, say N.
 
-# FA526
-config CPU_FA526
-	bool
-	select CPU_32v4
-	select CPU_ABRT_EV4
-	select CPU_CACHE_FA
-	select CPU_CACHE_VIVT
-	select CPU_COPY_FA if MMU
-	select CPU_CP15_MMU
-	select CPU_PABRT_LEGACY
-	select CPU_TLB_FA if MMU
-	help
-	  The FA526 is a version of the ARMv4 compatible processor with
-	  Branch Target Buffer, Unified TLB and cache line size 16.
-
-	  Say Y if you want support for the FA526 processor.
-	  Otherwise, say N.
-
 # ARM940T
 config CPU_ARM940T
 	bool "Support ARM940T processor" if ARCH_INTEGRATOR
@@ -507,9 +489,6 @@ config CPU_COPY_V4WB
 config CPU_COPY_FEROCEON
 	bool
 
-config CPU_COPY_FA
-	bool
-
 config CPU_COPY_V6
 	bool
 
@@ -535,13 +514,6 @@ config CPU_TLB_FEROCEON
 	help
 	  Feroceon TLB (v4wbi with non-outer-cachable page table walks).
 
-config CPU_TLB_FA
-	bool
-	help
-	  Faraday ARM FA526 architecture, unified TLB with writeback cache
-	  and invalidate instruction cache entry. Branch target buffer is
-	  also supported.
-
 config CPU_TLB_V6
 	bool
 
@@ -735,7 +707,7 @@ config CPU_DCACHE_SIZE
 
 config CPU_DCACHE_WRITETHROUGH
 	bool "Force write through D-cache"
-	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE
+	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE
 	default y if CPU_ARM925T
 	help
 	  Say Y here to use the data cache in writethrough mode. Unless you
@@ -750,7 +722,7 @@ config CPU_CACHE_ROUND_ROBIN
 
 config CPU_BPREDICT_DISABLE
 	bool "Disable branch prediction"
-	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526
+	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7
 	help
 	  Say Y here to disable branch prediction.  If unsure, say N.
 
arch/arm/mm/Makefile +0 -4
index 8a9c4cb..a332287 100644
@@ -39,7 +39,6 @@ obj-$(CONFIG_CPU_CACHE_V4WT)	+= cache-v4wt.o
 obj-$(CONFIG_CPU_CACHE_V4WB)	+= cache-v4wb.o
 obj-$(CONFIG_CPU_CACHE_V6)	+= cache-v6.o
 obj-$(CONFIG_CPU_CACHE_V7)	+= cache-v7.o
-obj-$(CONFIG_CPU_CACHE_FA)	+= cache-fa.o
 
 AFLAGS_cache-v6.o	:=-Wa,-march=armv6
 AFLAGS_cache-v7.o	:=-Wa,-march=armv7-a
@@ -51,7 +50,6 @@ obj-$(CONFIG_CPU_COPY_V6)	+= copypage-v6.o context.o
 obj-$(CONFIG_CPU_SA1100)	+= copypage-v4mc.o
 obj-$(CONFIG_CPU_XSCALE)	+= copypage-xscale.o
 obj-$(CONFIG_CPU_XSC3)		+= copypage-xsc3.o
-obj-$(CONFIG_CPU_COPY_FA)	+= copypage-fa.o
 
 obj-$(CONFIG_CPU_TLB_V4WT)	+= tlb-v4.o
 obj-$(CONFIG_CPU_TLB_V4WB)	+= tlb-v4wb.o
@@ -59,7 +57,6 @@ obj-$(CONFIG_CPU_TLB_V4WBI)	+= tlb-v4wbi.o
 obj-$(CONFIG_CPU_TLB_FEROCEON)	+= tlb-v4wbi.o	# reuse v4wbi TLB functions
 obj-$(CONFIG_CPU_TLB_V6)	+= tlb-v6.o
 obj-$(CONFIG_CPU_TLB_V7)	+= tlb-v7.o
-obj-$(CONFIG_CPU_TLB_FA)	+= tlb-fa.o
 
 AFLAGS_tlb-v6.o		:=-Wa,-march=armv6
 AFLAGS_tlb-v7.o		:=-Wa,-march=armv7-a
@@ -74,7 +71,6 @@ obj-$(CONFIG_CPU_ARM925T)	+= proc-arm925.o
 obj-$(CONFIG_CPU_ARM926T)	+= proc-arm926.o
 obj-$(CONFIG_CPU_ARM940T)	+= proc-arm940.o
 obj-$(CONFIG_CPU_ARM946E)	+= proc-arm946.o
-obj-$(CONFIG_CPU_FA526)		+= proc-fa526.o
 obj-$(CONFIG_CPU_ARM1020)	+= proc-arm1020.o
 obj-$(CONFIG_CPU_ARM1020E)	+= proc-arm1020e.o
 obj-$(CONFIG_CPU_ARM1022)	+= proc-arm1022.o
arch/arm/mm/cache-fa.S deleted +0 -249

249 lines not on this page · raw message

arch/arm/mm/copypage-fa.c deleted +0 -86

86 lines not on this page · raw message

arch/arm/mm/proc-fa526.S deleted +0 -221

221 lines not on this page · raw message

arch/arm/mm/tlb-fa.S deleted +0 -69

69 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#6 lore raw

cover future of gemini platform

In reply to Arnd Bergmann

The gemini platform is quite broken at the moment due to bitrot, here are the two suggested solutions. We should either apply the first patch or the other two, depending on whether anyone still uses this.

Ulli was last actively working on this about two years ago, so I assume that he has moved on, but if he or anyone else is still interested in keeping Gemini alive, any patches and testing are very welcome. Without a maintainer however, I see no point in keeping it.

The fa526 CPU support is currently only used on Gemini, but Florian had some patches last year for it, so he might still need it. If there are still plans to get MCS814x or another fa526 based platform merged into mainline, we can keep this around, but unless I see a timeline for this, I would prefer to remove it for now. It should be trivial to revert that patch and bring it back if it's needed for a new platform.

Arnd Bergmann (3):
ARM: gemini: get platform to build again
ARM: gemini: remove platform support
ARM: remove fa526 CPU support

 MAINTAINERS                                     |   14 --
 arch/arm/Kconfig                                |   10 +-
 arch/arm/Makefile                               |    2 -
 arch/arm/boot/compressed/head.S                 |   28 ---
 arch/arm/include/asm/barrier.h                  |    6 -
 arch/arm/include/asm/glue-cache.h               |    8 -
 arch/arm/include/asm/glue-proc.h                |    9 -
 arch/arm/include/asm/page.h                     |    8 -
 arch/arm/include/asm/tlbflush.h                 |   19 --
 arch/arm/mach-gemini/Kconfig                    |   40 ----
 arch/arm/mach-gemini/Makefile                   |   13 --
 arch/arm/mach-gemini/Makefile.boot              |    9 -
 arch/arm/mach-gemini/board-nas4220b.c           |  110 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |   94 --------
 arch/arm/mach-gemini/board-wbd111.c             |  137 -----------
 arch/arm/mach-gemini/board-wbd222.c             |  137 -----------
 arch/arm/mach-gemini/common.h                   |   29 ---
 arch/arm/mach-gemini/devices.c                  |  118 ----------
 arch/arm/mach-gemini/gpio.c                     |  230 -------------------
 arch/arm/mach-gemini/idle.c                     |   29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |   21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |   33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  |  278 -----------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |   20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |   74 ------
 arch/arm/mach-gemini/include/mach/irqs.h        |   53 -----
 arch/arm/mach-gemini/include/mach/system.h      |   23 --
 arch/arm/mach-gemini/include/mach/timex.h       |   13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |   44 ----
 arch/arm/mach-gemini/irq.c                      |  103 ---------
 arch/arm/mach-gemini/mm.c                       |   82 -------
 arch/arm/mach-gemini/time.c                     |   89 --------
 arch/arm/mm/Kconfig                             |   32 +--
 arch/arm/mm/Makefile                            |    4 -
 arch/arm/mm/cache-fa.S                          |  249 --------------------
 arch/arm/mm/copypage-fa.c                       |   86 -------
 arch/arm/mm/proc-fa526.S                        |  221 ------------------
 arch/arm/mm/tlb-fa.S                            |   69 ------
 38 files changed, 3 insertions(+), 2541 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/time.c
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
Signature · 1 line
1.7.10.4
#7 lore raw

cover future of gemini platform

Quoted 20 lines · Arnd Bergmann

The gemini platform is quite broken at the moment due to bitrot, here are the two suggested solutions. We should either apply the first patch or the other two, depending on whether anyone still uses this.

Ulli was last actively working on this about two years ago, so I assume that he has moved on, but if he or anyone else is still interested in keeping Gemini alive, any patches and testing are very welcome. Without a maintainer however, I see no point in keeping it.

The fa526 CPU support is currently only used on Gemini, but Florian had some patches last year for it, so he might still need it. If there are still plans to get MCS814x or another fa526 based platform merged into mainline, we can keep this around, but unless I see a timeline for this, I would prefer to remove it for now. It should be trivial to revert that patch and bring it back if it's needed for a new platform.

Quoted 4 lines

Arnd Bergmann (3):
ARM: gemini: get platform to build again
ARM: gemini: remove platform support
ARM: remove fa526 CPU support

Arnd: I suggest you rebase and apply this series, sans the FA526 removal as I hear it may now be used on the Moxart.

I patched the generic time code for gemini in october last year and noone has yet bothered to even test it!

Yours,
Linus Walleij

#8 lore raw

cover future of gemini platform

Quoted 7 lines · On Wednesday 09 April 2014 10:40:48 Linus Walleij wrote:
Quoted 5 lines · Arnd Bergmann

Arnd Bergmann (3):
ARM: gemini: get platform to build again
ARM: gemini: remove platform support
ARM: remove fa526 CPU support

Quoted 5 lines

Arnd: I suggest you rebase and apply this series, sans the FA526 removal as I hear it may now be used on the Moxart.

I patched the generic time code for gemini in october last year and noone has yet bothered to even test it!

I guess you mean just the middle patch then? The first one was actually applied.

On the other hand, I did make a patch now to enable multiplatform support for gemini that I was planning to send for review.

Florian, what is the status of gemini in openwrt? From what I can tell, it's stuck at linux-3.9 [1], which is probably why nobody has tested Linus' timer code. It's not clear if anyone is still interested in it, but I also don't see a reason why any of the patches in the openwrt repository couldn't just get merged (with some trivial changes in a few cases).

Arnd

http://git.openwrt.org/?p=openwrt.git;a=history;f=target/linux/gemini/patches;h=b58795e82765935eba3f001c39c8e4ca8c3c549e;hb=HEAD

#9 lore raw

RFC 2/3 ARM: gemini: remove platform support

In reply to Arnd Bergmann

The gemini platform has not seen any updates from its maintainer since 2010, and has no defconfig file, which has lead to bitrot in a number of places:

* System restart has been broken for a long time despite repeated attempts from Russell to get the obvious fix at least acknowledged by someone who can test it.
* The platform still uses mach/gpio.h, which has been deprecated for some time, and since Kconfig does not select NEED_MACH_GPIO_H, it actually failed to build because of this.
* A change to asm/io.h introduced a number of compiler warnings for gemini specific code that confuses physical and virtual addresses.

This removes gemini support entirely under the assumption that nobody uses it on mainline kernels. Of course, if there are still active users out there, they should let us know so we can put support back in and get it better tested.

---
 MAINTAINERS                                     |    7 -
 arch/arm/Kconfig                                |    9 -
 arch/arm/Makefile                               |    1 -
 arch/arm/mach-gemini/Kconfig                    |   40 ----
 arch/arm/mach-gemini/Makefile                   |   13 --
 arch/arm/mach-gemini/Makefile.boot              |    9 -
 arch/arm/mach-gemini/board-nas4220b.c           |  111 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |   96 --------
 arch/arm/mach-gemini/board-wbd111.c             |  138 -----------
 arch/arm/mach-gemini/board-wbd222.c             |  138 -----------
 arch/arm/mach-gemini/common.h                   |   31 ---
 arch/arm/mach-gemini/devices.c                  |  118 ----------
 arch/arm/mach-gemini/gpio.c                     |  231 -------------------
 arch/arm/mach-gemini/idle.c                     |   29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |   21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |   33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  |  278 -----------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |   20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |   74 ------
 arch/arm/mach-gemini/include/mach/irqs.h        |   53 -----
 arch/arm/mach-gemini/include/mach/timex.h       |   13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |   44 ----
 arch/arm/mach-gemini/irq.c                      |  103 ---------
 arch/arm/mach-gemini/mm.c                       |   82 -------
 arch/arm/mach-gemini/reset.c                    |   23 --
 arch/arm/mach-gemini/time.c                     |   89 --------
 26 files changed, 1804 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/reset.c
 delete mode 100644 arch/arm/mach-gemini/time.c
MAINTAINERS +0 -7
index fa309ab..9f0da02 100644
@@ -760,13 +760,6 @@ ARM/CORGI MACHINE SUPPORT
 M:	Richard Purdie <[email protected]>
 S:	Maintained
 
-ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
-M:	Hans Ulli Kroll <[email protected]>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-T:	git git://git.berlios.de/gemini-board
-S:	Maintained
-F:	arch/arm/mach-gemini/
-
 ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
 M:	Barry Song <[email protected]>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
arch/arm/Kconfig +0 -9
index 639a885..4620431 100644
@@ -383,15 +383,6 @@ config ARCH_CLPS711X
 	help
 	  Support for Cirrus Logic 711x/721x/731x based boards.
 
-config ARCH_GEMINI
-	bool "Cortina Systems Gemini"
-	select ARCH_REQUIRE_GPIOLIB
-	select ARCH_USES_GETTIMEOFFSET
-	select NEED_MACH_GPIO_H
-	select CPU_FA526
-	help
-	  Support for the Cortina Systems Gemini family SoCs
-
 config ARCH_SIRF
 	bool "CSR SiRF"
 	select ARCH_REQUIRE_GPIOLIB
arch/arm/Makefile +0 -1
index 30c443c..c694a03 100644
@@ -146,7 +146,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
-machine-$(CONFIG_ARCH_GEMINI)		+= gemini
 machine-$(CONFIG_ARCH_H720X)		+= h720x
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
arch/arm/mach-gemini/Kconfig deleted +0 -40
deleted file mode 100644
index 6f066ee..0000000
@@ -1,40 +0,0 @@
-if ARCH_GEMINI
-
-menu "Cortina Systems Gemini Implementations"
-
-config MACH_NAS4220B
-	bool "Raidsonic NAS-4220-B"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Raidsonic NAS-4220-B.
-
-config MACH_RUT100
-	bool "Teltonika RUT100"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Teltonika 3G Router RUT100.
-
-config MACH_WBD111
-	bool "Wiliboard WBD-111"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Wiliboard WBD-111.
-
-config MACH_WBD222
-        bool "Wiliboard WBD-222"
-        select GEMINI_MEM_SWAP
-        help
-          Say Y here if you intend to run this kernel on a
-          Wiliboard WBD-222.
-
-endmenu
-
-config GEMINI_MEM_SWAP
-	bool "Gemini memory is swapped"
-	help
-	  Say Y here if Gemini memory is swapped by bootloader.
-
-endif
arch/arm/mach-gemini/Makefile deleted +0 -13
deleted file mode 100644
index 7963a77..0000000
@@ -1,13 +0,0 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
-
-# Board-specific support
-obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
-obj-$(CONFIG_MACH_RUT100)	+= board-rut1xx.o
-obj-$(CONFIG_MACH_WBD111)	+= board-wbd111.o
-obj-$(CONFIG_MACH_WBD222)	+= board-wbd222.o
arch/arm/mach-gemini/Makefile.boot deleted +0 -9
deleted file mode 100644
index 683f52b..0000000
@@ -1,9 +0,0 @@
-ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
-   zreladdr-y	+= 0x00008000
-params_phys-y	:= 0x00000100
-initrd_phys-y	:= 0x00800000
-else
-   zreladdr-y	+= 0x10008000
-params_phys-y	:= 0x10000100
-initrd_phys-y	:= 0x10800000
-endif
arch/arm/mach-gemini/board-nas4220b.c deleted +0 -111

111 lines not on this page · raw message

arch/arm/mach-gemini/board-rut1xx.c deleted +0 -96

96 lines not on this page · raw message

arch/arm/mach-gemini/board-wbd111.c deleted +0 -138

138 lines not on this page · raw message

arch/arm/mach-gemini/board-wbd222.c deleted +0 -138

138 lines not on this page · raw message

arch/arm/mach-gemini/common.h deleted +0 -31
deleted file mode 100644
index 38a4526..0000000
@@ -1,31 +0,0 @@
-/*
- * Common Gemini architecture functions
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __GEMINI_COMMON_H__
-#define __GEMINI_COMMON_H__
-
-struct mtd_partition;
-
-extern void gemini_map_io(void);
-extern void gemini_init_irq(void);
-extern void gemini_timer_init(void);
-extern void gemini_gpio_init(void);
-extern void platform_register_rtc(void);
-
-/* Common platform devices registration functions */
-extern int platform_register_uart(void);
-extern int platform_register_pflash(unsigned int size,
-				    struct mtd_partition *parts,
-				    unsigned int nr_parts);
-
-extern void gemini_restart(char mode, const char *cmd);
-
-#endif /* __GEMINI_COMMON_H__ */
arch/arm/mach-gemini/devices.c deleted +0 -118

118 lines not on this page · raw message

arch/arm/mach-gemini/gpio.c deleted +0 -231

231 lines not on this page · raw message

arch/arm/mach-gemini/idle.c deleted +0 -29
deleted file mode 100644
index 92bbd6b..0000000
@@ -1,29 +0,0 @@
-/*
- * arch/arm/mach-gemini/idle.c
- */
-
-#include <linux/init.h>
-#include <asm/system.h>
-#include <asm/proc-fns.h>
-
-static void gemini_idle(void)
-{
-	/*
-	 * Because of broken hardware we have to enable interrupts or the CPU
-	 * will never wakeup... Acctualy it is not very good to enable
-	 * interrupts first since scheduler can miss a tick, but there is
-	 * no other way around this. Platforms that needs it for power saving
-	 * should call enable_hlt() in init code, since by default it is
-	 * disabled.
-	 */
-	local_irq_enable();
-	cpu_do_idle();
-}
-
-static int __init gemini_idle_init(void)
-{
-	arm_pm_idle = gemini_idle;
-	return 0;
-}
-
-arch_initcall(gemini_idle_init);
arch/arm/mach-gemini/include/mach/debug-macro.S deleted +0 -21
deleted file mode 100644
index 8376707..0000000
@@ -1,21 +0,0 @@
-/*
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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.
- */
-#include <mach/hardware.h>
-
-	.macro	addruart, rp, rv, tmp
-	ldr	\rp, =GEMINI_UART_BASE			@ physical
-	ldr	\rv, =IO_ADDRESS(GEMINI_UART_BASE)	@ virtual
-	.endm
-
-#define UART_SHIFT	2
-#define FLOW_CONTROL
-#include <asm/hardware/debug-8250.S>
arch/arm/mach-gemini/include/mach/entry-macro.S deleted +0 -33
deleted file mode 100644
index f044e43..0000000
@@ -1,33 +0,0 @@
-/*
- * Low-level IRQ helper macros for Gemini platform.
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 <mach/hardware.h>
-
-#define IRQ_STATUS	0x14
-
-	.macro  get_irqnr_preamble, base, tmp
-	.endm
-
-	.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-	ldr     \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS)
-	ldr     \irqnr, [\irqstat]
-	cmp     \irqnr, #0
-	beq     2313f
-	mov     \tmp, \irqnr
-	mov     \irqnr, #0
-2312:
-	tst     \tmp, #1
-	bne     2313f
-	add     \irqnr, \irqnr, #1
-	mov     \tmp, \tmp, lsr #1
-	cmp     \irqnr, #31
-	bcc     2312b
-2313:
-	.endm
arch/arm/mach-gemini/include/mach/global_reg.h deleted +0 -278

278 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/gpio.h deleted +0 -20
deleted file mode 100644
index 40a0527..0000000
@@ -1,20 +0,0 @@
-/*
- * Gemini gpiolib specific defines
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_GPIO_H__
-#define __MACH_GPIO_H__
-
-#include <mach/irqs.h>
-
-#define gpio_to_irq(x)	((x) + GPIO_IRQ_BASE)
-#define irq_to_gpio(x)	((x) - GPIO_IRQ_BASE)
-
-#endif /* __MACH_GPIO_H__ */
arch/arm/mach-gemini/include/mach/hardware.h deleted +0 -74

74 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/irqs.h deleted +0 -53

53 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/timex.h deleted +0 -13
deleted file mode 100644
index dc5690b..0000000
@@ -1,13 +0,0 @@
-/*
- * Gemini timex specifications
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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.
- */
-
-/* When AHB bus frequency is 150MHz */
-#define CLOCK_TICK_RATE	38000000
arch/arm/mach-gemini/include/mach/uncompress.h deleted +0 -44

44 lines not on this page · raw message

arch/arm/mach-gemini/irq.c deleted +0 -103

103 lines not on this page · raw message

arch/arm/mach-gemini/mm.c deleted +0 -82

82 lines not on this page · raw message

arch/arm/mach-gemini/reset.c deleted +0 -23
deleted file mode 100644
index b266597..0000000
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-void gemini_restart(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
arch/arm/mach-gemini/time.c deleted +0 -89

89 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#10 lore raw

RFC 2/3 ARM: gemini: remove platform support

In reply to Arnd Bergmann

The gemini platform has not seen any updates from its maintainer since 2010, and has no defconfig file, which has lead to bitrot in a number of places:

* System restart has been broken for a long time despite repeated attempts from Russell to get the obvious fix at least acknowledged by someone who can test it.
* The platform still uses mach/gpio.h, which has been deprecated for some time, and since Kconfig does not select NEED_MACH_GPIO_H, it actually failed to build because of this.
* A change to asm/io.h introduced a number of compiler warnings for gemini specific code that confuses physical and virtual addresses.

This removes gemini support entirely under the assumption that nobody uses it on mainline kernels. Of course, if there are still active users out there, they should let us know so we can put support back in and get it better tested.

---
 MAINTAINERS                                     |    7 -
 arch/arm/Kconfig                                |    9 -
 arch/arm/Makefile                               |    1 -
 arch/arm/mach-gemini/Kconfig                    |   40 ----
 arch/arm/mach-gemini/Makefile                   |   13 --
 arch/arm/mach-gemini/Makefile.boot              |    9 -
 arch/arm/mach-gemini/board-nas4220b.c           |  111 ---------
 arch/arm/mach-gemini/board-rut1xx.c             |   96 --------
 arch/arm/mach-gemini/board-wbd111.c             |  138 -----------
 arch/arm/mach-gemini/board-wbd222.c             |  138 -----------
 arch/arm/mach-gemini/common.h                   |   31 ---
 arch/arm/mach-gemini/devices.c                  |  118 ----------
 arch/arm/mach-gemini/gpio.c                     |  231 -------------------
 arch/arm/mach-gemini/idle.c                     |   29 ---
 arch/arm/mach-gemini/include/mach/debug-macro.S |   21 --
 arch/arm/mach-gemini/include/mach/entry-macro.S |   33 ---
 arch/arm/mach-gemini/include/mach/global_reg.h  |  278 -----------------------
 arch/arm/mach-gemini/include/mach/gpio.h        |   20 --
 arch/arm/mach-gemini/include/mach/hardware.h    |   74 ------
 arch/arm/mach-gemini/include/mach/irqs.h        |   53 -----
 arch/arm/mach-gemini/include/mach/timex.h       |   13 --
 arch/arm/mach-gemini/include/mach/uncompress.h  |   44 ----
 arch/arm/mach-gemini/irq.c                      |  103 ---------
 arch/arm/mach-gemini/mm.c                       |   82 -------
 arch/arm/mach-gemini/reset.c                    |   23 --
 arch/arm/mach-gemini/time.c                     |   89 --------
 26 files changed, 1804 deletions(-)
 delete mode 100644 arch/arm/mach-gemini/Kconfig
 delete mode 100644 arch/arm/mach-gemini/Makefile
 delete mode 100644 arch/arm/mach-gemini/Makefile.boot
 delete mode 100644 arch/arm/mach-gemini/board-nas4220b.c
 delete mode 100644 arch/arm/mach-gemini/board-rut1xx.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd111.c
 delete mode 100644 arch/arm/mach-gemini/board-wbd222.c
 delete mode 100644 arch/arm/mach-gemini/common.h
 delete mode 100644 arch/arm/mach-gemini/devices.c
 delete mode 100644 arch/arm/mach-gemini/gpio.c
 delete mode 100644 arch/arm/mach-gemini/idle.c
 delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-gemini/include/mach/global_reg.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/timex.h
 delete mode 100644 arch/arm/mach-gemini/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-gemini/irq.c
 delete mode 100644 arch/arm/mach-gemini/mm.c
 delete mode 100644 arch/arm/mach-gemini/reset.c
 delete mode 100644 arch/arm/mach-gemini/time.c
MAINTAINERS +0 -7
index fa309ab..9f0da02 100644
@@ -760,13 +760,6 @@ ARM/CORGI MACHINE SUPPORT
 M:	Richard Purdie <[email protected]>
 S:	Maintained
 
-ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
-M:	Hans Ulli Kroll <[email protected]>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-T:	git git://git.berlios.de/gemini-board
-S:	Maintained
-F:	arch/arm/mach-gemini/
-
 ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
 M:	Barry Song <[email protected]>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
arch/arm/Kconfig +0 -9
index 639a885..4620431 100644
@@ -383,15 +383,6 @@ config ARCH_CLPS711X
 	help
 	  Support for Cirrus Logic 711x/721x/731x based boards.
 
-config ARCH_GEMINI
-	bool "Cortina Systems Gemini"
-	select ARCH_REQUIRE_GPIOLIB
-	select ARCH_USES_GETTIMEOFFSET
-	select NEED_MACH_GPIO_H
-	select CPU_FA526
-	help
-	  Support for the Cortina Systems Gemini family SoCs
-
 config ARCH_SIRF
 	bool "CSR SiRF"
 	select ARCH_REQUIRE_GPIOLIB
arch/arm/Makefile +0 -1
index 30c443c..c694a03 100644
@@ -146,7 +146,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
-machine-$(CONFIG_ARCH_GEMINI)		+= gemini
 machine-$(CONFIG_ARCH_H720X)		+= h720x
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
arch/arm/mach-gemini/Kconfig deleted +0 -40
deleted file mode 100644
index 6f066ee..0000000
@@ -1,40 +0,0 @@
-if ARCH_GEMINI
-
-menu "Cortina Systems Gemini Implementations"
-
-config MACH_NAS4220B
-	bool "Raidsonic NAS-4220-B"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Raidsonic NAS-4220-B.
-
-config MACH_RUT100
-	bool "Teltonika RUT100"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Teltonika 3G Router RUT100.
-
-config MACH_WBD111
-	bool "Wiliboard WBD-111"
-	select GEMINI_MEM_SWAP
-	help
-	  Say Y here if you intend to run this kernel on a
-	  Wiliboard WBD-111.
-
-config MACH_WBD222
-        bool "Wiliboard WBD-222"
-        select GEMINI_MEM_SWAP
-        help
-          Say Y here if you intend to run this kernel on a
-          Wiliboard WBD-222.
-
-endmenu
-
-config GEMINI_MEM_SWAP
-	bool "Gemini memory is swapped"
-	help
-	  Say Y here if Gemini memory is swapped by bootloader.
-
-endif
arch/arm/mach-gemini/Makefile deleted +0 -13
deleted file mode 100644
index 7963a77..0000000
@@ -1,13 +0,0 @@
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y			:= irq.o mm.o time.o devices.o gpio.o idle.o reset.o
-
-# Board-specific support
-obj-$(CONFIG_MACH_NAS4220B)	+= board-nas4220b.o
-obj-$(CONFIG_MACH_RUT100)	+= board-rut1xx.o
-obj-$(CONFIG_MACH_WBD111)	+= board-wbd111.o
-obj-$(CONFIG_MACH_WBD222)	+= board-wbd222.o
arch/arm/mach-gemini/Makefile.boot deleted +0 -9
deleted file mode 100644
index 683f52b..0000000
@@ -1,9 +0,0 @@
-ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
-   zreladdr-y	+= 0x00008000
-params_phys-y	:= 0x00000100
-initrd_phys-y	:= 0x00800000
-else
-   zreladdr-y	+= 0x10008000
-params_phys-y	:= 0x10000100
-initrd_phys-y	:= 0x10800000
-endif
arch/arm/mach-gemini/board-nas4220b.c deleted +0 -111

111 lines not on this page · raw message

arch/arm/mach-gemini/board-rut1xx.c deleted +0 -96

96 lines not on this page · raw message

arch/arm/mach-gemini/board-wbd111.c deleted +0 -138

138 lines not on this page · raw message

arch/arm/mach-gemini/board-wbd222.c deleted +0 -138

138 lines not on this page · raw message

arch/arm/mach-gemini/common.h deleted +0 -31
deleted file mode 100644
index 38a4526..0000000
@@ -1,31 +0,0 @@
-/*
- * Common Gemini architecture functions
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __GEMINI_COMMON_H__
-#define __GEMINI_COMMON_H__
-
-struct mtd_partition;
-
-extern void gemini_map_io(void);
-extern void gemini_init_irq(void);
-extern void gemini_timer_init(void);
-extern void gemini_gpio_init(void);
-extern void platform_register_rtc(void);
-
-/* Common platform devices registration functions */
-extern int platform_register_uart(void);
-extern int platform_register_pflash(unsigned int size,
-				    struct mtd_partition *parts,
-				    unsigned int nr_parts);
-
-extern void gemini_restart(char mode, const char *cmd);
-
-#endif /* __GEMINI_COMMON_H__ */
arch/arm/mach-gemini/devices.c deleted +0 -118

118 lines not on this page · raw message

arch/arm/mach-gemini/gpio.c deleted +0 -231

231 lines not on this page · raw message

arch/arm/mach-gemini/idle.c deleted +0 -29
deleted file mode 100644
index 92bbd6b..0000000
@@ -1,29 +0,0 @@
-/*
- * arch/arm/mach-gemini/idle.c
- */
-
-#include <linux/init.h>
-#include <asm/system.h>
-#include <asm/proc-fns.h>
-
-static void gemini_idle(void)
-{
-	/*
-	 * Because of broken hardware we have to enable interrupts or the CPU
-	 * will never wakeup... Acctualy it is not very good to enable
-	 * interrupts first since scheduler can miss a tick, but there is
-	 * no other way around this. Platforms that needs it for power saving
-	 * should call enable_hlt() in init code, since by default it is
-	 * disabled.
-	 */
-	local_irq_enable();
-	cpu_do_idle();
-}
-
-static int __init gemini_idle_init(void)
-{
-	arm_pm_idle = gemini_idle;
-	return 0;
-}
-
-arch_initcall(gemini_idle_init);
arch/arm/mach-gemini/include/mach/debug-macro.S deleted +0 -21
deleted file mode 100644
index 8376707..0000000
@@ -1,21 +0,0 @@
-/*
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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.
- */
-#include <mach/hardware.h>
-
-	.macro	addruart, rp, rv, tmp
-	ldr	\rp, =GEMINI_UART_BASE			@ physical
-	ldr	\rv, =IO_ADDRESS(GEMINI_UART_BASE)	@ virtual
-	.endm
-
-#define UART_SHIFT	2
-#define FLOW_CONTROL
-#include <asm/hardware/debug-8250.S>
arch/arm/mach-gemini/include/mach/entry-macro.S deleted +0 -33
deleted file mode 100644
index f044e43..0000000
@@ -1,33 +0,0 @@
-/*
- * Low-level IRQ helper macros for Gemini platform.
- *
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 <mach/hardware.h>
-
-#define IRQ_STATUS	0x14
-
-	.macro  get_irqnr_preamble, base, tmp
-	.endm
-
-	.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-	ldr     \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS)
-	ldr     \irqnr, [\irqstat]
-	cmp     \irqnr, #0
-	beq     2313f
-	mov     \tmp, \irqnr
-	mov     \irqnr, #0
-2312:
-	tst     \tmp, #1
-	bne     2313f
-	add     \irqnr, \irqnr, #1
-	mov     \tmp, \tmp, lsr #1
-	cmp     \irqnr, #31
-	bcc     2312b
-2313:
-	.endm
arch/arm/mach-gemini/include/mach/global_reg.h deleted +0 -278

278 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/gpio.h deleted +0 -20
deleted file mode 100644
index 40a0527..0000000
@@ -1,20 +0,0 @@
-/*
- * Gemini gpiolib specific defines
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_GPIO_H__
-#define __MACH_GPIO_H__
-
-#include <mach/irqs.h>
-
-#define gpio_to_irq(x)	((x) + GPIO_IRQ_BASE)
-#define irq_to_gpio(x)	((x) - GPIO_IRQ_BASE)
-
-#endif /* __MACH_GPIO_H__ */
arch/arm/mach-gemini/include/mach/hardware.h deleted +0 -74

74 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/irqs.h deleted +0 -53

53 lines not on this page · raw message

arch/arm/mach-gemini/include/mach/timex.h deleted +0 -13
deleted file mode 100644
index dc5690b..0000000
@@ -1,13 +0,0 @@
-/*
- * Gemini timex specifications
- *
- * Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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.
- */
-
-/* When AHB bus frequency is 150MHz */
-#define CLOCK_TICK_RATE	38000000
arch/arm/mach-gemini/include/mach/uncompress.h deleted +0 -44

44 lines not on this page · raw message

arch/arm/mach-gemini/irq.c deleted +0 -103

103 lines not on this page · raw message

arch/arm/mach-gemini/mm.c deleted +0 -82

82 lines not on this page · raw message

arch/arm/mach-gemini/reset.c deleted +0 -23
deleted file mode 100644
index b266597..0000000
@@ -1,23 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
- *
- * 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 __MACH_SYSTEM_H
-#define __MACH_SYSTEM_H
-
-#include <linux/io.h>
-#include <mach/hardware.h>
-#include <mach/global_reg.h>
-
-void gemini_restart(char mode, const char *cmd)
-{
-	__raw_writel(RESET_GLOBAL | RESET_CPU1,
-		     IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-}
-
-#endif /* __MACH_SYSTEM_H */
arch/arm/mach-gemini/time.c deleted +0 -89

89 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#11 lore raw

RFC 3/3 ARM: remove fa526 CPU support

In reply to Arnd Bergmann

With the Cortina Gemini platform gone, nothing in ARM uses the Faraday 526 CPU core support any more. There is at least one other platform using this (Moschip MCS814x), but the efforts to get that merged into mainline appear to have stalled.

If someone still needs this code, please speak up now, otherwise we will remove it now. Of course there is always the option to revert this patch if we need it again later.

---
 MAINTAINERS                       |    7 --
 arch/arm/Kconfig                  |    2 +-
 arch/arm/Makefile                 |    1 -
 arch/arm/boot/compressed/head.S   |   28 -----
 arch/arm/include/asm/barrier.h    |    6 -
 arch/arm/include/asm/glue-cache.h |    8 --
 arch/arm/include/asm/glue-proc.h  |    9 --
 arch/arm/include/asm/page.h       |    8 --
 arch/arm/include/asm/tlbflush.h   |   19 ---
 arch/arm/mm/Kconfig               |   32 +----
 arch/arm/mm/Makefile              |    4 -
 arch/arm/mm/cache-fa.S            |  249 -------------------------------------
 arch/arm/mm/copypage-fa.c         |   86 -------------
 arch/arm/mm/proc-fa526.S          |  221 --------------------------------
 arch/arm/mm/tlb-fa.S              |   69 ----------
 15 files changed, 3 insertions(+), 746 deletions(-)
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
MAINTAINERS +0 -7
index 9f0da02..15c1ce0 100644
@@ -788,13 +788,6 @@ S:	Maintained
 T:	topgit git://git.openezx.org/openezx.git
 F:	arch/arm/mach-pxa/ezx.c
 
-ARM/FARADAY FA526 PORT
-M:	Hans Ulli Kroll <[email protected]>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-T:	git git://git.berlios.de/gemini-board
-F:	arch/arm/mm/*-fa*
-
 ARM/FOOTBRIDGE ARCHITECTURE
 M:	Russell King <[email protected]>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
arch/arm/Kconfig +1 -1
index 4620431..17bf3d0 100644
@@ -966,7 +966,7 @@ menu "Multiple platform selection"
 comment "CPU Core family selection"
 
 config ARCH_MULTI_V4
-	bool "ARMv4 based platforms (FA526, StrongARM)"
+	bool "ARMv4 based platforms (StrongARM)"
 	depends on !ARCH_MULTI_V6_V7
 	select ARCH_MULTI_V4_V5
 
arch/arm/Makefile +0 -1
index c694a03..519a9c5 100644
@@ -82,7 +82,6 @@ tune-$(CONFIG_CPU_ARM920T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM922T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM925T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM926T)	:=-mtune=arm9tdmi
-tune-$(CONFIG_CPU_FA526)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_SA110)	:=-mtune=strongarm110
 tune-$(CONFIG_CPU_SA1100)	:=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)	:=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
arch/arm/boot/compressed/head.S +0 -28
index fe4d9c3..4e985f0 100644
@@ -726,21 +726,6 @@ __armv7_mmu_cache_on:
 		mcr	p15, 0, r0, c7, c5, 4	@ ISB
 		mov	pc, r12
 
-__fa526_cache_on:
-		mov	r12, lr
-		mov	r6, #CB_BITS | 0x12	@ U
-		bl	__setup_mmu
-		mov	r0, #0
-		mcr	p15, 0, r0, c7, c7, 0	@ Invalidate whole cache
-		mcr	p15, 0, r0, c7, c10, 4	@ drain write buffer
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
-		orr	r0, r0, #0x1000		@ I-cache enable
-		bl	__common_mmu_cache_on
-		mov	r0, #0
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mov	pc, r12
-
 __common_mmu_cache_on:
 #ifndef CONFIG_THUMB2_KERNEL
 #ifndef DEBUG
@@ -898,12 +883,6 @@ proc_types:
 		b	__armv5tej_mmu_cache_flush
 #endif
 
-		.word	0x66015261		@ FA526
-		.word	0xff01fff1
-		W(b)	__fa526_cache_on
-		W(b)	__armv4_mmu_cache_off
-		W(b)	__fa526_cache_flush
-
 		@ These match on the architecture ID
 
 		.word	0x00020000		@ ARMv4T
@@ -1048,13 +1027,6 @@ __armv4_mpu_cache_flush:
 		mcr	p15, 0, ip, c7, c10, 4	@ drain WB
 		mov	pc, lr
 		
-__fa526_cache_flush:
-		mov	r1, #0
-		mcr	p15, 0, r1, c7, c14, 0	@ clean and invalidate D cache
-		mcr	p15, 0, r1, c7, c5, 0	@ flush I cache
-		mcr	p15, 0, r1, c7, c10, 4	@ drain WB
-		mov	pc, lr
-
 __armv6_mmu_cache_flush:
 		mov	r1, #0
 		mcr	p15, 0, r1, c7, c14, 0	@ clean+invalidate D
arch/arm/include/asm/barrier.h +0 -6
index 8dcd9c7..7158a84 100644
@@ -24,12 +24,6 @@
 				    : : "r" (0) : "memory")
 #define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
 				    : : "r" (0) : "memory")
-#elif defined(CONFIG_CPU_FA526)
-#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
-				    : : "r" (0) : "memory")
-#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
-				    : : "r" (0) : "memory")
-#define dmb() __asm__ __volatile__ ("" : : : "memory")
 #else
 #define isb() __asm__ __volatile__ ("" : : : "memory")
 #define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
arch/arm/include/asm/glue-cache.h +0 -8
index cca9f15..adc0955 100644
@@ -41,14 +41,6 @@
 # define MULTI_CACHE 1
 #endif
 
-#if defined(CONFIG_CPU_FA526)
-# ifdef _CACHE
-#  define MULTI_CACHE 1
-# else
-#  define _CACHE fa
-# endif
-#endif
-
 #if defined(CONFIG_CPU_ARM926T)
 # ifdef _CACHE
 #  define MULTI_CACHE 1
arch/arm/include/asm/glue-proc.h +0 -9
index ac1dd54..8e42e0d 100644
@@ -77,15 +77,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_FA526
-# ifdef CPU_NAME
-#  undef  MULTI_CPU
-#  define MULTI_CPU
-# else
-#  define CPU_NAME cpu_fa526
-# endif
-#endif
-
 #ifdef CONFIG_CPU_ARM925T
 # ifdef CPU_NAME
 #  undef  MULTI_CPU
arch/arm/include/asm/page.h +0 -8
index 812a494..15595fa 100644
@@ -67,14 +67,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_COPY_FA
-# ifdef _USER
-#  define MULTI_USER 1
-# else
-#  define _USER fa
-# endif
-#endif
-
 #ifdef CONFIG_CPU_SA1100
 # ifdef _USER
 #  define MULTI_USER 1
arch/arm/include/asm/tlbflush.h +0 -19
index 6e924d3..a718245 100644
@@ -54,7 +54,6 @@
  *	  v4wb  - ARMv4 with write buffer without I TLB flush entry instruction
  *	  v4wbi - ARMv4 with write buffer with I TLB flush entry instruction
  *	  fr    - Feroceon (v4wbi with non-outer-cacheable page table walks)
- *	  fa    - Faraday (v4 with write buffer with UTLB)
  *	  v6wbi - ARMv6 with write buffer with I TLB flush entry instruction
  *	  v7wbi - identical to v6wbi
  */
@@ -80,22 +79,6 @@
 # define v4_always_flags	(-1UL)
 #endif
 
-#define fa_tlb_flags	(TLB_WB | TLB_DCLEAN | TLB_BARRIER | \
-			 TLB_V4_U_FULL | TLB_V4_U_PAGE)
-
-#ifdef CONFIG_CPU_TLB_FA
-# define fa_possible_flags	fa_tlb_flags
-# define fa_always_flags	fa_tlb_flags
-# ifdef _TLB
-#  define MULTI_TLB 1
-# else
-#  define _TLB fa
-# endif
-#else
-# define fa_possible_flags	0
-# define fa_always_flags	(-1UL)
-#endif
-
 #define v4wbi_tlb_flags	(TLB_WB | TLB_DCLEAN | \
 			 TLB_V4_I_FULL | TLB_V4_D_FULL | \
 			 TLB_V4_I_PAGE | TLB_V4_D_PAGE)
@@ -287,7 +270,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_possible_flags | \
 				 fr_possible_flags | \
 				 v4wb_possible_flags | \
-				 fa_possible_flags | \
 				 v6wbi_possible_flags | \
 				 v7wbi_possible_flags)
 
@@ -295,7 +277,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_always_flags & \
 				 fr_always_flags & \
 				 v4wb_always_flags & \
-				 fa_always_flags & \
 				 v6wbi_always_flags & \
 				 v7wbi_always_flags)
 
arch/arm/mm/Kconfig +2 -30
index 3fd629d..d0510bf 100644
@@ -143,24 +143,6 @@ config CPU_ARM926T
 	  Say Y if you want support for the ARM926T processor.
 	  Otherwise, say N.
 
-# FA526
-config CPU_FA526
-	bool
-	select CPU_32v4
-	select CPU_ABRT_EV4
-	select CPU_CACHE_FA
-	select CPU_CACHE_VIVT
-	select CPU_COPY_FA if MMU
-	select CPU_CP15_MMU
-	select CPU_PABRT_LEGACY
-	select CPU_TLB_FA if MMU
-	help
-	  The FA526 is a version of the ARMv4 compatible processor with
-	  Branch Target Buffer, Unified TLB and cache line size 16.
-
-	  Say Y if you want support for the FA526 processor.
-	  Otherwise, say N.
-
 # ARM940T
 config CPU_ARM940T
 	bool "Support ARM940T processor" if ARCH_INTEGRATOR
@@ -507,9 +489,6 @@ config CPU_COPY_V4WB
 config CPU_COPY_FEROCEON
 	bool
 
-config CPU_COPY_FA
-	bool
-
 config CPU_COPY_V6
 	bool
 
@@ -535,13 +514,6 @@ config CPU_TLB_FEROCEON
 	help
 	  Feroceon TLB (v4wbi with non-outer-cachable page table walks).
 
-config CPU_TLB_FA
-	bool
-	help
-	  Faraday ARM FA526 architecture, unified TLB with writeback cache
-	  and invalidate instruction cache entry. Branch target buffer is
-	  also supported.
-
 config CPU_TLB_V6
 	bool
 
@@ -735,7 +707,7 @@ config CPU_DCACHE_SIZE
 
 config CPU_DCACHE_WRITETHROUGH
 	bool "Force write through D-cache"
-	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE
+	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE
 	default y if CPU_ARM925T
 	help
 	  Say Y here to use the data cache in writethrough mode. Unless you
@@ -750,7 +722,7 @@ config CPU_CACHE_ROUND_ROBIN
 
 config CPU_BPREDICT_DISABLE
 	bool "Disable branch prediction"
-	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526
+	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7
 	help
 	  Say Y here to disable branch prediction.  If unsure, say N.
 
arch/arm/mm/Makefile +0 -4
index 8a9c4cb..a332287 100644
@@ -39,7 +39,6 @@ obj-$(CONFIG_CPU_CACHE_V4WT)	+= cache-v4wt.o
 obj-$(CONFIG_CPU_CACHE_V4WB)	+= cache-v4wb.o
 obj-$(CONFIG_CPU_CACHE_V6)	+= cache-v6.o
 obj-$(CONFIG_CPU_CACHE_V7)	+= cache-v7.o
-obj-$(CONFIG_CPU_CACHE_FA)	+= cache-fa.o
 
 AFLAGS_cache-v6.o	:=-Wa,-march=armv6
 AFLAGS_cache-v7.o	:=-Wa,-march=armv7-a
@@ -51,7 +50,6 @@ obj-$(CONFIG_CPU_COPY_V6)	+= copypage-v6.o context.o
 obj-$(CONFIG_CPU_SA1100)	+= copypage-v4mc.o
 obj-$(CONFIG_CPU_XSCALE)	+= copypage-xscale.o
 obj-$(CONFIG_CPU_XSC3)		+= copypage-xsc3.o
-obj-$(CONFIG_CPU_COPY_FA)	+= copypage-fa.o
 
 obj-$(CONFIG_CPU_TLB_V4WT)	+= tlb-v4.o
 obj-$(CONFIG_CPU_TLB_V4WB)	+= tlb-v4wb.o
@@ -59,7 +57,6 @@ obj-$(CONFIG_CPU_TLB_V4WBI)	+= tlb-v4wbi.o
 obj-$(CONFIG_CPU_TLB_FEROCEON)	+= tlb-v4wbi.o	# reuse v4wbi TLB functions
 obj-$(CONFIG_CPU_TLB_V6)	+= tlb-v6.o
 obj-$(CONFIG_CPU_TLB_V7)	+= tlb-v7.o
-obj-$(CONFIG_CPU_TLB_FA)	+= tlb-fa.o
 
 AFLAGS_tlb-v6.o		:=-Wa,-march=armv6
 AFLAGS_tlb-v7.o		:=-Wa,-march=armv7-a
@@ -74,7 +71,6 @@ obj-$(CONFIG_CPU_ARM925T)	+= proc-arm925.o
 obj-$(CONFIG_CPU_ARM926T)	+= proc-arm926.o
 obj-$(CONFIG_CPU_ARM940T)	+= proc-arm940.o
 obj-$(CONFIG_CPU_ARM946E)	+= proc-arm946.o
-obj-$(CONFIG_CPU_FA526)		+= proc-fa526.o
 obj-$(CONFIG_CPU_ARM1020)	+= proc-arm1020.o
 obj-$(CONFIG_CPU_ARM1020E)	+= proc-arm1020e.o
 obj-$(CONFIG_CPU_ARM1022)	+= proc-arm1022.o
arch/arm/mm/cache-fa.S deleted +0 -249

249 lines not on this page · raw message

arch/arm/mm/copypage-fa.c deleted +0 -86

86 lines not on this page · raw message

arch/arm/mm/proc-fa526.S deleted +0 -221

221 lines not on this page · raw message

arch/arm/mm/tlb-fa.S deleted +0 -69

69 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#12 lore raw

RFC 3/3 ARM: remove fa526 CPU support

In reply to Arnd Bergmann

With the Cortina Gemini platform gone, nothing in ARM uses the Faraday 526 CPU core support any more. There is at least one other platform using this (Moschip MCS814x), but the efforts to get that merged into mainline appear to have stalled.

If someone still needs this code, please speak up now, otherwise we will remove it now. Of course there is always the option to revert this patch if we need it again later.

---
 MAINTAINERS                       |    7 --
 arch/arm/Kconfig                  |    2 +-
 arch/arm/Makefile                 |    1 -
 arch/arm/boot/compressed/head.S   |   28 -----
 arch/arm/include/asm/barrier.h    |    6 -
 arch/arm/include/asm/glue-cache.h |    8 --
 arch/arm/include/asm/glue-proc.h  |    9 --
 arch/arm/include/asm/page.h       |    8 --
 arch/arm/include/asm/tlbflush.h   |   19 ---
 arch/arm/mm/Kconfig               |   32 +----
 arch/arm/mm/Makefile              |    4 -
 arch/arm/mm/cache-fa.S            |  249 -------------------------------------
 arch/arm/mm/copypage-fa.c         |   86 -------------
 arch/arm/mm/proc-fa526.S          |  221 --------------------------------
 arch/arm/mm/tlb-fa.S              |   69 ----------
 15 files changed, 3 insertions(+), 746 deletions(-)
 delete mode 100644 arch/arm/mm/cache-fa.S
 delete mode 100644 arch/arm/mm/copypage-fa.c
 delete mode 100644 arch/arm/mm/proc-fa526.S
 delete mode 100644 arch/arm/mm/tlb-fa.S
MAINTAINERS +0 -7
index 9f0da02..15c1ce0 100644
@@ -788,13 +788,6 @@ S:	Maintained
 T:	topgit git://git.openezx.org/openezx.git
 F:	arch/arm/mach-pxa/ezx.c
 
-ARM/FARADAY FA526 PORT
-M:	Hans Ulli Kroll <[email protected]>
-L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-T:	git git://git.berlios.de/gemini-board
-F:	arch/arm/mm/*-fa*
-
 ARM/FOOTBRIDGE ARCHITECTURE
 M:	Russell King <[email protected]>
 L:	linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
arch/arm/Kconfig +1 -1
index 4620431..17bf3d0 100644
@@ -966,7 +966,7 @@ menu "Multiple platform selection"
 comment "CPU Core family selection"
 
 config ARCH_MULTI_V4
-	bool "ARMv4 based platforms (FA526, StrongARM)"
+	bool "ARMv4 based platforms (StrongARM)"
 	depends on !ARCH_MULTI_V6_V7
 	select ARCH_MULTI_V4_V5
 
arch/arm/Makefile +0 -1
index c694a03..519a9c5 100644
@@ -82,7 +82,6 @@ tune-$(CONFIG_CPU_ARM920T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM922T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM925T)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM926T)	:=-mtune=arm9tdmi
-tune-$(CONFIG_CPU_FA526)	:=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_SA110)	:=-mtune=strongarm110
 tune-$(CONFIG_CPU_SA1100)	:=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)	:=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
arch/arm/boot/compressed/head.S +0 -28
index fe4d9c3..4e985f0 100644
@@ -726,21 +726,6 @@ __armv7_mmu_cache_on:
 		mcr	p15, 0, r0, c7, c5, 4	@ ISB
 		mov	pc, r12
 
-__fa526_cache_on:
-		mov	r12, lr
-		mov	r6, #CB_BITS | 0x12	@ U
-		bl	__setup_mmu
-		mov	r0, #0
-		mcr	p15, 0, r0, c7, c7, 0	@ Invalidate whole cache
-		mcr	p15, 0, r0, c7, c10, 4	@ drain write buffer
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
-		orr	r0, r0, #0x1000		@ I-cache enable
-		bl	__common_mmu_cache_on
-		mov	r0, #0
-		mcr	p15, 0, r0, c8, c7, 0	@ flush UTLB
-		mov	pc, r12
-
 __common_mmu_cache_on:
 #ifndef CONFIG_THUMB2_KERNEL
 #ifndef DEBUG
@@ -898,12 +883,6 @@ proc_types:
 		b	__armv5tej_mmu_cache_flush
 #endif
 
-		.word	0x66015261		@ FA526
-		.word	0xff01fff1
-		W(b)	__fa526_cache_on
-		W(b)	__armv4_mmu_cache_off
-		W(b)	__fa526_cache_flush
-
 		@ These match on the architecture ID
 
 		.word	0x00020000		@ ARMv4T
@@ -1048,13 +1027,6 @@ __armv4_mpu_cache_flush:
 		mcr	p15, 0, ip, c7, c10, 4	@ drain WB
 		mov	pc, lr
 		
-__fa526_cache_flush:
-		mov	r1, #0
-		mcr	p15, 0, r1, c7, c14, 0	@ clean and invalidate D cache
-		mcr	p15, 0, r1, c7, c5, 0	@ flush I cache
-		mcr	p15, 0, r1, c7, c10, 4	@ drain WB
-		mov	pc, lr
-
 __armv6_mmu_cache_flush:
 		mov	r1, #0
 		mcr	p15, 0, r1, c7, c14, 0	@ clean+invalidate D
arch/arm/include/asm/barrier.h +0 -6
index 8dcd9c7..7158a84 100644
@@ -24,12 +24,6 @@
 				    : : "r" (0) : "memory")
 #define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
 				    : : "r" (0) : "memory")
-#elif defined(CONFIG_CPU_FA526)
-#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
-				    : : "r" (0) : "memory")
-#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
-				    : : "r" (0) : "memory")
-#define dmb() __asm__ __volatile__ ("" : : : "memory")
 #else
 #define isb() __asm__ __volatile__ ("" : : : "memory")
 #define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
arch/arm/include/asm/glue-cache.h +0 -8
index cca9f15..adc0955 100644
@@ -41,14 +41,6 @@
 # define MULTI_CACHE 1
 #endif
 
-#if defined(CONFIG_CPU_FA526)
-# ifdef _CACHE
-#  define MULTI_CACHE 1
-# else
-#  define _CACHE fa
-# endif
-#endif
-
 #if defined(CONFIG_CPU_ARM926T)
 # ifdef _CACHE
 #  define MULTI_CACHE 1
arch/arm/include/asm/glue-proc.h +0 -9
index ac1dd54..8e42e0d 100644
@@ -77,15 +77,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_FA526
-# ifdef CPU_NAME
-#  undef  MULTI_CPU
-#  define MULTI_CPU
-# else
-#  define CPU_NAME cpu_fa526
-# endif
-#endif
-
 #ifdef CONFIG_CPU_ARM925T
 # ifdef CPU_NAME
 #  undef  MULTI_CPU
arch/arm/include/asm/page.h +0 -8
index 812a494..15595fa 100644
@@ -67,14 +67,6 @@
 # endif
 #endif
 
-#ifdef CONFIG_CPU_COPY_FA
-# ifdef _USER
-#  define MULTI_USER 1
-# else
-#  define _USER fa
-# endif
-#endif
-
 #ifdef CONFIG_CPU_SA1100
 # ifdef _USER
 #  define MULTI_USER 1
arch/arm/include/asm/tlbflush.h +0 -19
index 6e924d3..a718245 100644
@@ -54,7 +54,6 @@
  *	  v4wb  - ARMv4 with write buffer without I TLB flush entry instruction
  *	  v4wbi - ARMv4 with write buffer with I TLB flush entry instruction
  *	  fr    - Feroceon (v4wbi with non-outer-cacheable page table walks)
- *	  fa    - Faraday (v4 with write buffer with UTLB)
  *	  v6wbi - ARMv6 with write buffer with I TLB flush entry instruction
  *	  v7wbi - identical to v6wbi
  */
@@ -80,22 +79,6 @@
 # define v4_always_flags	(-1UL)
 #endif
 
-#define fa_tlb_flags	(TLB_WB | TLB_DCLEAN | TLB_BARRIER | \
-			 TLB_V4_U_FULL | TLB_V4_U_PAGE)
-
-#ifdef CONFIG_CPU_TLB_FA
-# define fa_possible_flags	fa_tlb_flags
-# define fa_always_flags	fa_tlb_flags
-# ifdef _TLB
-#  define MULTI_TLB 1
-# else
-#  define _TLB fa
-# endif
-#else
-# define fa_possible_flags	0
-# define fa_always_flags	(-1UL)
-#endif
-
 #define v4wbi_tlb_flags	(TLB_WB | TLB_DCLEAN | \
 			 TLB_V4_I_FULL | TLB_V4_D_FULL | \
 			 TLB_V4_I_PAGE | TLB_V4_D_PAGE)
@@ -287,7 +270,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_possible_flags | \
 				 fr_possible_flags | \
 				 v4wb_possible_flags | \
-				 fa_possible_flags | \
 				 v6wbi_possible_flags | \
 				 v7wbi_possible_flags)
 
@@ -295,7 +277,6 @@ extern struct cpu_tlb_fns cpu_tlb;
 				 v4wbi_always_flags & \
 				 fr_always_flags & \
 				 v4wb_always_flags & \
-				 fa_always_flags & \
 				 v6wbi_always_flags & \
 				 v7wbi_always_flags)
 
arch/arm/mm/Kconfig +2 -30
index 3fd629d..d0510bf 100644
@@ -143,24 +143,6 @@ config CPU_ARM926T
 	  Say Y if you want support for the ARM926T processor.
 	  Otherwise, say N.
 
-# FA526
-config CPU_FA526
-	bool
-	select CPU_32v4
-	select CPU_ABRT_EV4
-	select CPU_CACHE_FA
-	select CPU_CACHE_VIVT
-	select CPU_COPY_FA if MMU
-	select CPU_CP15_MMU
-	select CPU_PABRT_LEGACY
-	select CPU_TLB_FA if MMU
-	help
-	  The FA526 is a version of the ARMv4 compatible processor with
-	  Branch Target Buffer, Unified TLB and cache line size 16.
-
-	  Say Y if you want support for the FA526 processor.
-	  Otherwise, say N.
-
 # ARM940T
 config CPU_ARM940T
 	bool "Support ARM940T processor" if ARCH_INTEGRATOR
@@ -507,9 +489,6 @@ config CPU_COPY_V4WB
 config CPU_COPY_FEROCEON
 	bool
 
-config CPU_COPY_FA
-	bool
-
 config CPU_COPY_V6
 	bool
 
@@ -535,13 +514,6 @@ config CPU_TLB_FEROCEON
 	help
 	  Feroceon TLB (v4wbi with non-outer-cachable page table walks).
 
-config CPU_TLB_FA
-	bool
-	help
-	  Faraday ARM FA526 architecture, unified TLB with writeback cache
-	  and invalidate instruction cache entry. Branch target buffer is
-	  also supported.
-
 config CPU_TLB_V6
 	bool
 
@@ -735,7 +707,7 @@ config CPU_DCACHE_SIZE
 
 config CPU_DCACHE_WRITETHROUGH
 	bool "Force write through D-cache"
-	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE
+	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE
 	default y if CPU_ARM925T
 	help
 	  Say Y here to use the data cache in writethrough mode. Unless you
@@ -750,7 +722,7 @@ config CPU_CACHE_ROUND_ROBIN
 
 config CPU_BPREDICT_DISABLE
 	bool "Disable branch prediction"
-	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526
+	depends on CPU_ARM1020 || CPU_V6 || CPU_V6K || CPU_MOHAWK || CPU_XSC3 || CPU_V7
 	help
 	  Say Y here to disable branch prediction.  If unsure, say N.
 
arch/arm/mm/Makefile +0 -4
index 8a9c4cb..a332287 100644
@@ -39,7 +39,6 @@ obj-$(CONFIG_CPU_CACHE_V4WT)	+= cache-v4wt.o
 obj-$(CONFIG_CPU_CACHE_V4WB)	+= cache-v4wb.o
 obj-$(CONFIG_CPU_CACHE_V6)	+= cache-v6.o
 obj-$(CONFIG_CPU_CACHE_V7)	+= cache-v7.o
-obj-$(CONFIG_CPU_CACHE_FA)	+= cache-fa.o
 
 AFLAGS_cache-v6.o	:=-Wa,-march=armv6
 AFLAGS_cache-v7.o	:=-Wa,-march=armv7-a
@@ -51,7 +50,6 @@ obj-$(CONFIG_CPU_COPY_V6)	+= copypage-v6.o context.o
 obj-$(CONFIG_CPU_SA1100)	+= copypage-v4mc.o
 obj-$(CONFIG_CPU_XSCALE)	+= copypage-xscale.o
 obj-$(CONFIG_CPU_XSC3)		+= copypage-xsc3.o
-obj-$(CONFIG_CPU_COPY_FA)	+= copypage-fa.o
 
 obj-$(CONFIG_CPU_TLB_V4WT)	+= tlb-v4.o
 obj-$(CONFIG_CPU_TLB_V4WB)	+= tlb-v4wb.o
@@ -59,7 +57,6 @@ obj-$(CONFIG_CPU_TLB_V4WBI)	+= tlb-v4wbi.o
 obj-$(CONFIG_CPU_TLB_FEROCEON)	+= tlb-v4wbi.o	# reuse v4wbi TLB functions
 obj-$(CONFIG_CPU_TLB_V6)	+= tlb-v6.o
 obj-$(CONFIG_CPU_TLB_V7)	+= tlb-v7.o
-obj-$(CONFIG_CPU_TLB_FA)	+= tlb-fa.o
 
 AFLAGS_tlb-v6.o		:=-Wa,-march=armv6
 AFLAGS_tlb-v7.o		:=-Wa,-march=armv7-a
@@ -74,7 +71,6 @@ obj-$(CONFIG_CPU_ARM925T)	+= proc-arm925.o
 obj-$(CONFIG_CPU_ARM926T)	+= proc-arm926.o
 obj-$(CONFIG_CPU_ARM940T)	+= proc-arm940.o
 obj-$(CONFIG_CPU_ARM946E)	+= proc-arm946.o
-obj-$(CONFIG_CPU_FA526)		+= proc-fa526.o
 obj-$(CONFIG_CPU_ARM1020)	+= proc-arm1020.o
 obj-$(CONFIG_CPU_ARM1020E)	+= proc-arm1020e.o
 obj-$(CONFIG_CPU_ARM1022)	+= proc-arm1022.o
arch/arm/mm/cache-fa.S deleted +0 -249

249 lines not on this page · raw message

arch/arm/mm/copypage-fa.c deleted +0 -86

86 lines not on this page · raw message

arch/arm/mm/proc-fa526.S deleted +0 -221

221 lines not on this page · raw message

arch/arm/mm/tlb-fa.S deleted +0 -69

69 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#13 lore raw

cover future of gemini platform

In reply to Arnd Bergmann

Hi Arnd,

Le 01/04/13 15:41, Arnd Bergmann a ?crit :

Quoted 11 lines

The gemini platform is quite broken at the moment due to bitrot, here are the two suggested solutions. We should either apply the first patch or the other two, depending on whether anyone still uses this.

Ulli was last actively working on this about two years ago, so I assume that he has moved on, but if he or anyone else is still interested in keeping Gemini alive, any patches and testing are very welcome. Without a maintainer however, I see no point in keeping it.

Quoted 8 lines

The fa526 CPU support is currently only used on Gemini, but Florian had some patches last year for it, so he might still need it. If there are still plans to get MCS814x or another fa526 based platform merged into mainline, we can keep this around, but unless I see a timeline for this, I would prefer to remove it for now. It should be trivial to revert that patch and bring it back if it's needed for a new platform.

I did not have actually hardware to port MCS814x to anything else than MCS8140 (real ARM 926EJS core), while MCS8142 and MCS8144 actually use a FA626 (not 526) core. Added in CC are Imre and Gabor who actually worked on the Gemini machine and might be able to either give their go for removal, or fix the issues.
--
Florian