ARM: sirf: enable multiplatform support
All the prerequisites are there now, so we can move sirf into multiplatform. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Родитель
275786b71d
Коммит
cf82e0e405
|
@ -49,7 +49,6 @@ config ARM
|
||||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||||
select HAVE_SYSCALL_TRACEPOINTS
|
select HAVE_SYSCALL_TRACEPOINTS
|
||||||
select HAVE_UID16
|
select HAVE_UID16
|
||||||
select HAVE_VIRT_TO_BUS
|
|
||||||
select KTIME_SCALAR
|
select KTIME_SCALAR
|
||||||
select PERF_USE_VMALLOC
|
select PERF_USE_VMALLOC
|
||||||
select RTC_LIB
|
select RTC_LIB
|
||||||
|
@ -415,22 +414,6 @@ config ARCH_GEMINI
|
||||||
help
|
help
|
||||||
Support for the Cortina Systems Gemini family SoCs
|
Support for the Cortina Systems Gemini family SoCs
|
||||||
|
|
||||||
config ARCH_SIRF
|
|
||||||
bool "CSR SiRF"
|
|
||||||
select ARCH_REQUIRE_GPIOLIB
|
|
||||||
select AUTO_ZRELADDR
|
|
||||||
select COMMON_CLK
|
|
||||||
select GENERIC_CLOCKEVENTS
|
|
||||||
select GENERIC_IRQ_CHIP
|
|
||||||
select MIGHT_HAVE_CACHE_L2X0
|
|
||||||
select NO_IOPORT
|
|
||||||
select PINCTRL
|
|
||||||
select PINCTRL_SIRF
|
|
||||||
select USE_OF
|
|
||||||
select SPARSE_IRQ
|
|
||||||
help
|
|
||||||
Support for CSR SiRFprimaII/Marco/Polo platforms
|
|
||||||
|
|
||||||
config ARCH_EBSA110
|
config ARCH_EBSA110
|
||||||
bool "EBSA-110"
|
bool "EBSA-110"
|
||||||
select ARCH_USES_GETTIMEOFFSET
|
select ARCH_USES_GETTIMEOFFSET
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
config ARCH_SIRF
|
||||||
|
bool "CSR SiRF" if ARCH_MULTI_V7
|
||||||
|
select ARCH_REQUIRE_GPIOLIB
|
||||||
|
select GENERIC_CLOCKEVENTS
|
||||||
|
select GENERIC_IRQ_CHIP
|
||||||
|
select MIGHT_HAVE_CACHE_L2X0
|
||||||
|
select NO_IOPORT
|
||||||
|
select PINCTRL
|
||||||
|
select PINCTRL_SIRF
|
||||||
|
help
|
||||||
|
Support for CSR SiRFprimaII/Marco/Polo platforms
|
||||||
|
|
||||||
if ARCH_SIRF
|
if ARCH_SIRF
|
||||||
|
|
||||||
menu "CSR SiRF atlas6/primaII/Marco/Polo Specific Features"
|
menu "CSR SiRF atlas6/primaII/Marco/Polo Specific Features"
|
||||||
|
|
|
@ -6,3 +6,5 @@ obj-$(CONFIG_CACHE_L2X0) += l2x0.o
|
||||||
obj-$(CONFIG_SUSPEND) += pm.o sleep.o
|
obj-$(CONFIG_SUSPEND) += pm.o sleep.o
|
||||||
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
|
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
|
||||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
||||||
|
|
||||||
|
CFLAGS_hotplug.o += -march=armv7-a
|
||||||
|
|
|
@ -13,6 +13,9 @@
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
#include <asm/exception.h>
|
#include <asm/exception.h>
|
||||||
|
|
||||||
|
#define SIRFSOC_VA_BASE _AC(0xFEC00000, UL)
|
||||||
|
#define SIRFSOC_VA(x) (SIRFSOC_VA_BASE + ((x) & 0x00FFF000))
|
||||||
|
|
||||||
extern struct smp_operations sirfsoc_smp_ops;
|
extern struct smp_operations sirfsoc_smp_ops;
|
||||||
extern void sirfsoc_secondary_startup(void);
|
extern void sirfsoc_secondary_startup(void);
|
||||||
extern void sirfsoc_cpu_die(unsigned int cpu);
|
extern void sirfsoc_cpu_die(unsigned int cpu);
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-prima2/include/mach/clkdev.h
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_CLKDEV_H
|
|
||||||
#define __MACH_CLKDEV_H
|
|
||||||
|
|
||||||
#define __clk_get(clk) ({ 1; })
|
|
||||||
#define __clk_put(clk) do { } while (0)
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,22 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-prima2/include/mach/entry-macro.S
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
|
||||||
|
|
||||||
#define SIRFSOC_INT_ID 0x38
|
|
||||||
|
|
||||||
.macro get_irqnr_preamble, base, tmp
|
|
||||||
ldr \base, =sirfsoc_intc_base
|
|
||||||
ldr \base, [\base]
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
|
||||||
ldr \irqnr, [\base, #SIRFSOC_INT_ID] @ Get the highest priority irq
|
|
||||||
cmp \irqnr, #0x40 @ the irq num can't be larger than 0x3f
|
|
||||||
movges \irqnr, #0
|
|
||||||
.endm
|
|
|
@ -1,15 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-prima2/include/mach/hardware.h
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_HARDWARE_H__
|
|
||||||
#define __MACH_HARDWARE_H__
|
|
||||||
|
|
||||||
#include <asm/sizes.h>
|
|
||||||
#include <mach/map.h>
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,18 +0,0 @@
|
||||||
/*
|
|
||||||
* memory & I/O static mapping definitions for CSR SiRFprimaII
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_PRIMA2_MAP_H__
|
|
||||||
#define __MACH_PRIMA2_MAP_H__
|
|
||||||
|
|
||||||
#include <linux/const.h>
|
|
||||||
|
|
||||||
#define SIRFSOC_VA_BASE _AC(0xFEC00000, UL)
|
|
||||||
|
|
||||||
#define SIRFSOC_VA(x) (SIRFSOC_VA_BASE + ((x) & 0x00FFF000))
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-prima2/include/mach/timex.h
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_TIMEX_H__
|
|
||||||
#define __MACH_TIMEX_H__
|
|
||||||
|
|
||||||
#define CLOCK_TICK_RATE 1000000
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-prima2/include/mach/uart.h
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_PRIMA2_SIRFSOC_UART_H
|
|
||||||
#define __MACH_PRIMA2_SIRFSOC_UART_H
|
|
||||||
|
|
||||||
/* UART-1: used as serial debug port */
|
|
||||||
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
|
|
||||||
#define SIRFSOC_UART1_PA_BASE 0xb0060000
|
|
||||||
#elif defined(CONFIG_DEBUG_SIRFMARCO_UART1)
|
|
||||||
#define SIRFSOC_UART1_PA_BASE 0xcc060000
|
|
||||||
#else
|
|
||||||
#define SIRFSOC_UART1_PA_BASE 0
|
|
||||||
#endif
|
|
||||||
#define SIRFSOC_UART1_VA_BASE SIRFSOC_VA(0x060000)
|
|
||||||
#define SIRFSOC_UART1_SIZE SZ_4K
|
|
||||||
|
|
||||||
#define SIRFSOC_UART_TXFIFO_STATUS 0x0114
|
|
||||||
#define SIRFSOC_UART_TXFIFO_DATA 0x0118
|
|
||||||
|
|
||||||
#define SIRFSOC_UART1_TXFIFO_FULL (1 << 5)
|
|
||||||
#define SIRFSOC_UART1_TXFIFO_EMPTY (1 << 6)
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-prima2/include/mach/uncompress.h
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
|
|
||||||
*
|
|
||||||
* Licensed under GPLv2 or later.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __ASM_ARCH_UNCOMPRESS_H
|
|
||||||
#define __ASM_ARCH_UNCOMPRESS_H
|
|
||||||
|
|
||||||
#include <linux/io.h>
|
|
||||||
#include <mach/hardware.h>
|
|
||||||
#include <mach/uart.h>
|
|
||||||
|
|
||||||
void arch_decomp_setup(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ void putc(char c)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* during kernel decompression, all mappings are flat:
|
|
||||||
* virt_addr == phys_addr
|
|
||||||
*/
|
|
||||||
if (!SIRFSOC_UART1_PA_BASE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
while (__raw_readl((void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_STATUS)
|
|
||||||
& SIRFSOC_UART1_TXFIFO_FULL)
|
|
||||||
barrier();
|
|
||||||
|
|
||||||
__raw_writel(c, (void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_DATA);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void flush(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <mach/map.h>
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
|
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
|
||||||
#define SIRFSOC_UART1_PA_BASE 0xb0060000
|
#define SIRFSOC_UART1_PA_BASE 0xb0060000
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <asm/smp_scu.h>
|
#include <asm/smp_scu.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
#include <asm/cputype.h>
|
#include <asm/cputype.h>
|
||||||
#include <mach/map.h>
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче