future of gemini platform
Subsystems (4)
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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
RFC 1/3 ARM: gemini: get platform to build again
In reply to Arnd BergmannThere 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
RFC PATCH 1/3 ARM: gemini: get platform to build again
In reply to Arnd BergmannThere 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
RFC PATCH 3/3 ARM: remove fa526 CPU support
In reply to Arnd BergmannWith 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
cover future of gemini platform
In reply to Arnd BergmannThe 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
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
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
RFC 2/3 ARM: gemini: remove platform support
In reply to Arnd BergmannThe 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
RFC 2/3 ARM: gemini: remove platform support
In reply to Arnd BergmannThe 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
RFC 3/3 ARM: remove fa526 CPU support
In reply to Arnd BergmannWith 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
RFC 3/3 ARM: remove fa526 CPU support
In reply to Arnd BergmannWith 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
cover future of gemini platform
In reply to Arnd BergmannHi 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