mirror of https://gitee.com/openkylin/linux.git
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (272 commits) Fix soc_common PCMCIA configuration ARM: 5827/1: SA1100: h3100/h3600: emit messages on failed gpio_request ARM: 5826/1: SA1100: h3100/h3600: always build htc-egpio driver ARM: 5825/1: SA1100: h3600: update defconfig ARM: 5824/1: SA1100: reuse h3600 PCMCIA driver on h3100 ARM: 5823/1: SA1100: h3100/h3600: add support for gpio-keys ARM: 5822/1: SA1100: h3100/h3600: clean up #includes ARM: 5821/1: SA1100: h3100/h3600: revise copyright boilerplates ARM: 5820/1: SA1100: h3100/h3600: split h3600.c ARM: 5819/1: SA1100: h3100/h3600: merge h3600.h and h3600_gpio.h into h3xxx.h ARM: 5818/1: SA1100: h3100/h3600: drop old GPIO definitions ARM: 5817/1: SA1100: h3100/h3600: configure all unused gpios as inputs ARM: 5816/1: SA1100: h3600: remove IRQ_GPIO_* definitions ARM: 5815/1: SA1100: h3100/h3600: remove now unused assign_h3600_egpio handlers ARM: 5814/1: SA1100: h3100/h3600: convert all users of assign_h3600_egpio to gpiolib ARM: 5813/1: SA1100: h3100/h3600: add htc-egpio driver ARM: 5812/1: SA1100: h3100/h3600: separate machine-specific LCD helpers ARM: 5811/2: pcmcia: convert sa1100_h3600 driver to gpiolib ARM: 5799/1: SA1100: h3600: stop setting direction for LCD pins ARM: 5798/1: SA1100: h3600: remove unused cruft from h3600.h ...
This commit is contained in:
commit
79c9601c2e
|
@ -55,4 +55,4 @@ Maintainers
|
|||
This board is maintained by Simtec Electronics.
|
||||
|
||||
|
||||
(c) 2004 Ben Dooks, Simtec Electronics
|
||||
Copyright 2004 Ben Dooks, Simtec Electronics
|
||||
|
|
|
@ -134,4 +134,4 @@ Authour
|
|||
|
||||
|
||||
Ben Dooks, 03 October 2004
|
||||
(c) 2004 Ben Dooks, Simtec Electronics
|
||||
Copyright 2004 Ben Dooks, Simtec Electronics
|
||||
|
|
|
@ -299,4 +299,4 @@ Port Contributors
|
|||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2004-2005,2006 Simtec Electronics
|
||||
Ben Dooks, Copyright 2004-2006 Simtec Electronics
|
||||
|
|
|
@ -117,4 +117,4 @@ ATA
|
|||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2006 Simtec Electronics
|
||||
Ben Dooks, Copyright 2006 Simtec Electronics
|
||||
|
|
|
@ -18,4 +18,4 @@ Camera Interface
|
|||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2006 Simtec Electronics
|
||||
Ben Dooks, Copyright 2006 Simtec Electronics
|
||||
|
|
|
@ -133,5 +133,5 @@ Configuration
|
|||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2004 Simtec Electronics
|
||||
Ben Dooks, Copyright 2004 Simtec Electronics
|
||||
|
||||
|
|
|
@ -90,4 +90,4 @@ Platform Data
|
|||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2005 Simtec Electronics
|
||||
Ben Dooks, Copyright 2005 Simtec Electronics
|
||||
|
|
30
MAINTAINERS
30
MAINTAINERS
|
@ -659,6 +659,9 @@ ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
|
|||
M: Sascha Hauer <kernel@pengutronix.de>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
T: git://git.pengutronix.de/git/imx/linux-2.6.git
|
||||
F: arch/arm/mach-mx*/
|
||||
F: arch/arm/plat-mxc/
|
||||
|
||||
ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
|
@ -729,6 +732,19 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
|||
S: Maintained
|
||||
F: arch/arm/mach-ixp4xx/
|
||||
|
||||
ARM/INTEL RESEARCH IMOTE 2 MACHINE SUPPORT
|
||||
M: Jonathan Cameron <jic23@cam.ac.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-pxa/imote2.c
|
||||
|
||||
ARM/INTEL RESEARCH STARGATE 2 MACHINE SUPPORT
|
||||
M: Jonathan Cameron <jic23@cam.ac.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-pxa/stargate2.c
|
||||
F: drivers/pcmcia/pxa2xx_stargate2.c
|
||||
|
||||
ARM/INTEL XSC3 (MANZANO) ARM CORE
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
|
@ -771,6 +787,14 @@ ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
|
|||
M: Michael Petchkovsky <mkpetch@internode.on.net>
|
||||
S: Maintained
|
||||
|
||||
ARM/NOMADIK ARCHITECTURE
|
||||
M: Alessandro Rubini <rubini@unipv.it>
|
||||
M: STEricsson <STEricsson_nomadik_linux@list.st.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-nomadik/
|
||||
F: arch/arm/plat-nomadik/
|
||||
|
||||
ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
|
||||
M: Nelson Castillo <arhuaco@freaks-unidos.net>
|
||||
L: openmoko-kernel@lists.openmoko.org (subscribers-only)
|
||||
|
@ -915,6 +939,12 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
|||
W: http://www.mcuos.com
|
||||
S: Maintained
|
||||
|
||||
ARM/U8500 ARM ARCHITECTURE
|
||||
M: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-ux500/
|
||||
|
||||
ARM/VFP SUPPORT
|
||||
M: Russell King <linux@arm.linux.org.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
|
|
|
@ -433,6 +433,17 @@ config ARCH_L7200
|
|||
If you have any questions or comments about the Linux kernel port
|
||||
to this board, send e-mail to <sjhill@cotw.com>.
|
||||
|
||||
config ARCH_DOVE
|
||||
bool "Marvell Dove"
|
||||
select PCI
|
||||
select GENERIC_GPIO
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select PLAT_ORION
|
||||
help
|
||||
Support for the Marvell Dove SoC 88AP510
|
||||
|
||||
config ARCH_KIRKWOOD
|
||||
bool "Marvell Kirkwood"
|
||||
select CPU_FEROCEON
|
||||
|
@ -702,6 +713,16 @@ config ARCH_BCMRING
|
|||
help
|
||||
Support for Broadcom's BCMRing platform.
|
||||
|
||||
config ARCH_U8500
|
||||
bool "ST-Ericsson U8500 Series"
|
||||
select CPU_V7
|
||||
select ARM_AMBA
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select COMMON_CLKDEV
|
||||
help
|
||||
Support for ST-Ericsson's Ux500 architecture
|
||||
|
||||
endchoice
|
||||
|
||||
source "arch/arm/mach-clps711x/Kconfig"
|
||||
|
@ -747,6 +768,9 @@ source "arch/arm/mach-orion5x/Kconfig"
|
|||
|
||||
source "arch/arm/mach-kirkwood/Kconfig"
|
||||
|
||||
source "arch/arm/mach-dove/Kconfig"
|
||||
|
||||
source "arch/arm/plat-samsung/Kconfig"
|
||||
source "arch/arm/plat-s3c24xx/Kconfig"
|
||||
source "arch/arm/plat-s3c64xx/Kconfig"
|
||||
source "arch/arm/plat-s3c/Kconfig"
|
||||
|
@ -787,6 +811,7 @@ source "arch/arm/mach-at91/Kconfig"
|
|||
source "arch/arm/plat-mxc/Kconfig"
|
||||
|
||||
source "arch/arm/mach-nomadik/Kconfig"
|
||||
source "arch/arm/plat-nomadik/Kconfig"
|
||||
|
||||
source "arch/arm/mach-netx/Kconfig"
|
||||
|
||||
|
@ -804,12 +829,16 @@ source "arch/arm/mach-w90x900/Kconfig"
|
|||
|
||||
source "arch/arm/mach-bcmring/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ux500/Kconfig"
|
||||
|
||||
# Definitions to make life easier
|
||||
config ARCH_ACORN
|
||||
bool
|
||||
|
||||
config PLAT_IOP
|
||||
bool
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_TIME
|
||||
|
||||
config PLAT_ORION
|
||||
bool
|
||||
|
@ -955,10 +984,10 @@ source "kernel/time/Kconfig"
|
|||
config SMP
|
||||
bool "Symmetric Multi-Processing (EXPERIMENTAL)"
|
||||
depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\
|
||||
MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4)
|
||||
MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500)
|
||||
depends on GENERIC_CLOCKEVENTS
|
||||
select USE_GENERIC_SMP_HELPERS
|
||||
select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4)
|
||||
select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500)
|
||||
help
|
||||
This enables support for systems with more than one CPU. If you have
|
||||
a system with only one CPU, like most personal computers, say N. If
|
||||
|
@ -1027,9 +1056,9 @@ config HOTPLUG_CPU
|
|||
config LOCAL_TIMERS
|
||||
bool "Use local timer interrupts"
|
||||
depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
|
||||
REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4)
|
||||
REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500)
|
||||
default y
|
||||
select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4)
|
||||
select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500)
|
||||
help
|
||||
Enable support for local timers on SMP platforms, rather then the
|
||||
legacy IPI broadcast method. Local timers allows the system
|
||||
|
|
|
@ -83,6 +83,14 @@ config DEBUG_ICEDCC
|
|||
It does include a timeout to ensure that the system does not
|
||||
totally freeze when there is nothing connected to read.
|
||||
|
||||
config OC_ETM
|
||||
bool "On-chip ETM and ETB"
|
||||
select ARM_AMBA
|
||||
help
|
||||
Enables the on-chip embedded trace macrocell and embedded trace
|
||||
buffer driver that will allow you to collect traces of the
|
||||
kernel code.
|
||||
|
||||
config DEBUG_DC21285_PORT
|
||||
bool "Kernel low-level debugging messages via footbridge serial port"
|
||||
depends on DEBUG_LL && FOOTBRIDGE
|
||||
|
|
|
@ -122,6 +122,7 @@ machine-$(CONFIG_ARCH_AT91) := at91
|
|||
machine-$(CONFIG_ARCH_BCMRING) := bcmring
|
||||
machine-$(CONFIG_ARCH_CLPS711X) := clps711x
|
||||
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
|
||||
|
@ -166,6 +167,7 @@ machine-$(CONFIG_ARCH_SHARK) := shark
|
|||
machine-$(CONFIG_ARCH_STMP378X) := stmp378x
|
||||
machine-$(CONFIG_ARCH_STMP37XX) := stmp37xx
|
||||
machine-$(CONFIG_ARCH_U300) := u300
|
||||
machine-$(CONFIG_ARCH_U8500) := ux500
|
||||
machine-$(CONFIG_ARCH_VERSATILE) := versatile
|
||||
machine-$(CONFIG_ARCH_W90X900) := w90x900
|
||||
machine-$(CONFIG_FOOTBRIDGE) := footbridge
|
||||
|
@ -176,11 +178,12 @@ machine-$(CONFIG_ARCH_MXC91231) := mxc91231
|
|||
plat-$(CONFIG_ARCH_MXC) := mxc
|
||||
plat-$(CONFIG_ARCH_OMAP) := omap
|
||||
plat-$(CONFIG_PLAT_IOP) := iop
|
||||
plat-$(CONFIG_PLAT_NOMADIK) := nomadik
|
||||
plat-$(CONFIG_PLAT_ORION) := orion
|
||||
plat-$(CONFIG_PLAT_PXA) := pxa
|
||||
plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c
|
||||
plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c
|
||||
plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c
|
||||
plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c samsung
|
||||
plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c samsung
|
||||
plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c samsung
|
||||
plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx
|
||||
|
||||
ifeq ($(CONFIG_ARCH_EBSA110),y)
|
||||
|
|
|
@ -743,6 +743,12 @@ proc_types:
|
|||
W(b) __armv4_mmu_cache_off
|
||||
W(b) __armv6_mmu_cache_flush
|
||||
|
||||
.word 0x560f5810 @ Marvell PJ4 ARMv6
|
||||
.word 0xff0ffff0
|
||||
W(b) __armv4_mmu_cache_on
|
||||
W(b) __armv4_mmu_cache_off
|
||||
W(b) __armv6_mmu_cache_flush
|
||||
|
||||
.word 0x000f0000 @ new CPU Id
|
||||
.word 0x000f0000
|
||||
W(b) __armv7_mmu_cache_on
|
||||
|
|
|
@ -342,6 +342,22 @@ dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
|
|||
}
|
||||
EXPORT_SYMBOL(dma_map_single);
|
||||
|
||||
/*
|
||||
* see if a mapped address was really a "safe" buffer and if so, copy
|
||||
* the data from the safe buffer back to the unsafe buffer and free up
|
||||
* the safe buffer. (basically return things back to the way they
|
||||
* should be)
|
||||
*/
|
||||
void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
|
||||
__func__, (void *) dma_addr, size, dir);
|
||||
|
||||
unmap_single(dev, dma_addr, size, dir);
|
||||
}
|
||||
EXPORT_SYMBOL(dma_unmap_single);
|
||||
|
||||
dma_addr_t dma_map_page(struct device *dev, struct page *page,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
|
@ -366,8 +382,7 @@ EXPORT_SYMBOL(dma_map_page);
|
|||
* the safe buffer. (basically return things back to the way they
|
||||
* should be)
|
||||
*/
|
||||
|
||||
void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
|
||||
void dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
|
||||
|
@ -375,7 +390,7 @@ void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
|
|||
|
||||
unmap_single(dev, dma_addr, size, dir);
|
||||
}
|
||||
EXPORT_SYMBOL(dma_unmap_single);
|
||||
EXPORT_SYMBOL(dma_unmap_page);
|
||||
|
||||
int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
|
||||
unsigned long off, size_t sz, enum dma_data_direction dir)
|
||||
|
|
|
@ -120,6 +120,7 @@ CONFIG_ARCH_AT91RM9200DK=y
|
|||
# CONFIG_MACH_CARMEVA is not set
|
||||
# CONFIG_MACH_KB9200 is not set
|
||||
# CONFIG_MACH_ATEB9200 is not set
|
||||
CONFIG_MACH_ECO920=y
|
||||
|
||||
#
|
||||
# AT91RM9200 Feature Selections
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.30-rc8
|
||||
# Thu Jun 4 09:53:21 2009
|
||||
# Linux kernel version: 2.6.32-rc4
|
||||
# Tue Oct 13 19:03:13 2009
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_NO_IOPORT is not set
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
|
@ -18,14 +16,14 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
|||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
|
||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
|
||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_ARCH_MTD_XIP=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
|
@ -46,11 +44,12 @@ CONFIG_SYSVIPC_SYSCTL=y
|
|||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=18
|
||||
|
@ -83,7 +82,6 @@ CONFIG_SYSCTL_SYSCALL=y
|
|||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
|
@ -96,6 +94,10 @@ CONFIG_TIMERFD=y
|
|||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
|
@ -103,13 +105,17 @@ CONFIG_COMPAT_BRK=y
|
|||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
|
||||
#
|
||||
# GCOV-based kernel profiling
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_SLOW_WORK=y
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
|
@ -117,11 +123,11 @@ CONFIG_BASE_SMALL=0
|
|||
CONFIG_MODULES=y
|
||||
# CONFIG_MODULE_FORCE_LOAD is not set
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
# CONFIG_MODVERSIONS is not set
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_BLOCK=y
|
||||
# CONFIG_LBD is not set
|
||||
CONFIG_LBDAF=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
|
@ -142,19 +148,22 @@ CONFIG_FREEZER=y
|
|||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
# CONFIG_ARCH_MXC is not set
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_IMX is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
|
@ -163,25 +172,27 @@ CONFIG_FREEZER=y
|
|||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_LOKI is not set
|
||||
# CONFIG_ARCH_MV78XX0 is not set
|
||||
# CONFIG_ARCH_MXC is not set
|
||||
# CONFIG_ARCH_ORION5X is not set
|
||||
# CONFIG_ARCH_MMP is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
CONFIG_ARCH_PXA=y
|
||||
# CONFIG_ARCH_MMP is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
|
||||
#
|
||||
# Intel PXA2xx/PXA3xx Implementations
|
||||
|
@ -191,16 +202,19 @@ CONFIG_ARCH_PXA=y
|
|||
# Supported PXA3xx Processor Variants
|
||||
#
|
||||
CONFIG_CPU_PXA300=y
|
||||
# CONFIG_CPU_PXA310 is not set
|
||||
CONFIG_CPU_PXA310=y
|
||||
# CONFIG_CPU_PXA320 is not set
|
||||
# CONFIG_CPU_PXA930 is not set
|
||||
# CONFIG_CPU_PXA935 is not set
|
||||
# CONFIG_CPU_PXA950 is not set
|
||||
# CONFIG_ARCH_GUMSTIX is not set
|
||||
# CONFIG_MACH_INTELMOTE2 is not set
|
||||
# CONFIG_MACH_STARGATE2 is not set
|
||||
# CONFIG_ARCH_LUBBOCK is not set
|
||||
# CONFIG_MACH_LOGICPD_PXA270 is not set
|
||||
# CONFIG_MACH_MAINSTONE is not set
|
||||
# CONFIG_MACH_MP900C is not set
|
||||
# CONFIG_MACH_BALLOON3 is not set
|
||||
# CONFIG_ARCH_PXA_IDP is not set
|
||||
# CONFIG_PXA_SHARPSL is not set
|
||||
# CONFIG_ARCH_VIPER is not set
|
||||
|
@ -218,6 +232,7 @@ CONFIG_CPU_PXA300=y
|
|||
# CONFIG_MACH_SAAR is not set
|
||||
# CONFIG_MACH_ARMCORE is not set
|
||||
CONFIG_MACH_CM_X300=y
|
||||
# CONFIG_MACH_H4700 is not set
|
||||
# CONFIG_MACH_MAGICIAN is not set
|
||||
# CONFIG_MACH_HIMALAYA is not set
|
||||
# CONFIG_MACH_MIOA701 is not set
|
||||
|
@ -225,8 +240,8 @@ CONFIG_MACH_CM_X300=y
|
|||
# CONFIG_ARCH_PXA_PALM is not set
|
||||
# CONFIG_MACH_CSB726 is not set
|
||||
# CONFIG_PXA_EZX is not set
|
||||
# CONFIG_MACH_XCEP is not set
|
||||
CONFIG_PXA3xx=y
|
||||
# CONFIG_PXA_PWM is not set
|
||||
CONFIG_PLAT_PXA=y
|
||||
|
||||
#
|
||||
|
@ -236,7 +251,7 @@ CONFIG_CPU_32=y
|
|||
CONFIG_CPU_XSC3=y
|
||||
CONFIG_CPU_32v5=y
|
||||
CONFIG_CPU_ABRT_EV5T=y
|
||||
CONFIG_CPU_PABRT_NOIFAR=y
|
||||
CONFIG_CPU_PABRT_LEGACY=y
|
||||
CONFIG_CPU_CACHE_VIVT=y
|
||||
CONFIG_CPU_TLB_V4WBI=y
|
||||
CONFIG_CPU_CP15=y
|
||||
|
@ -246,11 +261,12 @@ CONFIG_IO_36=y
|
|||
#
|
||||
# Processor Features
|
||||
#
|
||||
# CONFIG_ARM_THUMB is not set
|
||||
CONFIG_ARM_THUMB=y
|
||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_OUTER_CACHE=y
|
||||
CONFIG_CACHE_XSC3L2=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_IWMMXT=y
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
|
@ -272,11 +288,12 @@ CONFIG_VMSPLIT_3G=y
|
|||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_PREEMPT_NONE=y
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_HZ=100
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
CONFIG_HIGHMEM=y
|
||||
|
@ -292,17 +309,19 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
|
|||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="root=/dev/mtdblock5 rootfstype=jffs2 console=ttyS2,38400"
|
||||
CONFIG_CMDLINE="root=/dev/mtdblock5 rootfstype=ubifs console=ttyS2,38400"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -355,6 +374,7 @@ CONFIG_PM_SLEEP=y
|
|||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
CONFIG_APM_EMULATION=y
|
||||
# CONFIG_PM_RUNTIME is not set
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_NET=y
|
||||
|
||||
|
@ -396,6 +416,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
|||
# CONFIG_NETFILTER is not set
|
||||
# CONFIG_IP_DCCP is not set
|
||||
# CONFIG_IP_SCTP is not set
|
||||
# CONFIG_RDS is not set
|
||||
# CONFIG_TIPC is not set
|
||||
# CONFIG_ATM is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
|
@ -410,6 +431,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
|||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_IEEE802154 is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
|
@ -433,22 +455,27 @@ CONFIG_BT_HIDP=m
|
|||
#
|
||||
# Bluetooth device drivers
|
||||
#
|
||||
# CONFIG_BT_HCIBTUSB is not set
|
||||
CONFIG_BT_HCIBTUSB=m
|
||||
# CONFIG_BT_HCIBTSDIO is not set
|
||||
# CONFIG_BT_HCIUART is not set
|
||||
# CONFIG_BT_HCIBCM203X is not set
|
||||
# CONFIG_BT_HCIBPA10X is not set
|
||||
# CONFIG_BT_HCIBFUSB is not set
|
||||
# CONFIG_BT_HCIVHCI is not set
|
||||
# CONFIG_BT_MRVL is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
CONFIG_WIRELESS=y
|
||||
# CONFIG_CFG80211 is not set
|
||||
CONFIG_CFG80211_DEFAULT_PS_VALUE=0
|
||||
# CONFIG_WIRELESS_OLD_REGULATORY is not set
|
||||
CONFIG_WIRELESS_EXT=y
|
||||
CONFIG_WIRELESS_EXT_SYSFS=y
|
||||
CONFIG_LIB80211=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
# CONFIG_MAC80211 is not set
|
||||
|
||||
#
|
||||
# CFG80211 needs to be enabled for MAC80211
|
||||
#
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
@ -461,6 +488,7 @@ CONFIG_LIB80211=m
|
|||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_DEVTMPFS is not set
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=y
|
||||
|
@ -472,9 +500,9 @@ CONFIG_EXTRA_FIRMWARE=""
|
|||
# CONFIG_CONNECTOR is not set
|
||||
CONFIG_MTD=y
|
||||
# CONFIG_MTD_DEBUG is not set
|
||||
# CONFIG_MTD_TESTS is not set
|
||||
# CONFIG_MTD_CONCAT is not set
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
# CONFIG_MTD_TESTS is not set
|
||||
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||
# CONFIG_MTD_CMDLINE_PARTS is not set
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
|
@ -521,6 +549,9 @@ CONFIG_MTD_CFI_I2=y
|
|||
#
|
||||
# Self-contained MTD device drivers
|
||||
#
|
||||
# CONFIG_MTD_DATAFLASH is not set
|
||||
# CONFIG_MTD_M25P80 is not set
|
||||
# CONFIG_MTD_SST25L is not set
|
||||
# CONFIG_MTD_SLRAM is not set
|
||||
# CONFIG_MTD_PHRAM is not set
|
||||
# CONFIG_MTD_MTDRAM is not set
|
||||
|
@ -556,7 +587,15 @@ CONFIG_MTD_NAND_PXA3xx=y
|
|||
#
|
||||
# UBI - Unsorted block images
|
||||
#
|
||||
# CONFIG_MTD_UBI is not set
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
CONFIG_MTD_UBI_BEB_RESERVE=1
|
||||
# CONFIG_MTD_UBI_GLUEBI is not set
|
||||
|
||||
#
|
||||
# UBI debugging options
|
||||
#
|
||||
# CONFIG_MTD_UBI_DEBUG is not set
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
|
@ -570,6 +609,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
|
|||
# CONFIG_BLK_DEV_XIP is not set
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
# CONFIG_MG_DISK is not set
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
@ -593,10 +633,6 @@ CONFIG_BLK_DEV_SD=y
|
|||
# CONFIG_BLK_DEV_SR is not set
|
||||
# CONFIG_CHR_DEV_SG is not set
|
||||
# CONFIG_CHR_DEV_SCH is not set
|
||||
|
||||
#
|
||||
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
|
||||
#
|
||||
# CONFIG_SCSI_MULTI_LUN is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
|
@ -621,7 +657,6 @@ CONFIG_SCSI_LOWLEVEL=y
|
|||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
|
@ -636,6 +671,7 @@ CONFIG_MII=y
|
|||
CONFIG_DM9000=y
|
||||
CONFIG_DM9000_DEBUGLEVEL=0
|
||||
CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
|
||||
# CONFIG_ENC28J60 is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_SMC911X is not set
|
||||
# CONFIG_SMSC911X is not set
|
||||
|
@ -648,20 +684,20 @@ CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
|
|||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||
# CONFIG_B44 is not set
|
||||
# CONFIG_KS8842 is not set
|
||||
# CONFIG_KS8851 is not set
|
||||
# CONFIG_KS8851_MLL is not set
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
|
||||
#
|
||||
# Wireless LAN
|
||||
#
|
||||
CONFIG_WLAN=y
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
CONFIG_WLAN_80211=y
|
||||
CONFIG_LIBERTAS=m
|
||||
# CONFIG_LIBERTAS_USB is not set
|
||||
CONFIG_LIBERTAS_SDIO=m
|
||||
# CONFIG_LIBERTAS_SPI is not set
|
||||
# CONFIG_LIBERTAS_DEBUG is not set
|
||||
# CONFIG_USB_ZD1201 is not set
|
||||
# CONFIG_USB_NET_RNDIS_WLAN is not set
|
||||
# CONFIG_HOSTAP is not set
|
||||
|
||||
#
|
||||
|
@ -683,6 +719,7 @@ CONFIG_LIBERTAS_SDIO=m
|
|||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
|
@ -706,33 +743,51 @@ CONFIG_INPUT_EVDEV=y
|
|||
# Input Device Drivers
|
||||
#
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
CONFIG_KEYBOARD_PXA27x=m
|
||||
# CONFIG_KEYBOARD_GPIO is not set
|
||||
# CONFIG_KEYBOARD_MATRIX is not set
|
||||
# CONFIG_KEYBOARD_LM8323 is not set
|
||||
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_OPENCORES is not set
|
||||
CONFIG_KEYBOARD_PXA27x=m
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
# CONFIG_TOUCHSCREEN_ADS7846 is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7877 is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||
# CONFIG_TOUCHSCREEN_DA9034 is not set
|
||||
# CONFIG_TOUCHSCREEN_EETI is not set
|
||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
||||
# CONFIG_TOUCHSCREEN_MCS5000 is not set
|
||||
# CONFIG_TOUCHSCREEN_MTOUCH is not set
|
||||
# CONFIG_TOUCHSCREEN_INEXIO is not set
|
||||
# CONFIG_TOUCHSCREEN_MK712 is not set
|
||||
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
|
||||
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
|
||||
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
|
||||
CONFIG_TOUCHSCREEN_WM97XX=m
|
||||
# CONFIG_TOUCHSCREEN_WM9705 is not set
|
||||
CONFIG_TOUCHSCREEN_WM9712=y
|
||||
# CONFIG_TOUCHSCREEN_WM9713 is not set
|
||||
# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
|
||||
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
|
||||
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
|
||||
# CONFIG_TOUCHSCREEN_TSC2007 is not set
|
||||
# CONFIG_TOUCHSCREEN_W90X900 is not set
|
||||
# CONFIG_INPUT_MISC is not set
|
||||
|
||||
#
|
||||
|
@ -760,6 +815,7 @@ CONFIG_DEVKMEM=y
|
|||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
CONFIG_SERIAL_PXA=y
|
||||
CONFIG_SERIAL_PXA_CONSOLE=y
|
||||
CONFIG_SERIAL_CORE=y
|
||||
|
@ -774,6 +830,7 @@ CONFIG_UNIX98_PTYS=y
|
|||
# CONFIG_TCG_TPM is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_COMPAT=y
|
||||
# CONFIG_I2C_CHARDEV is not set
|
||||
CONFIG_I2C_HELPER_AUTO=y
|
||||
|
||||
|
@ -784,6 +841,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||
#
|
||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||
#
|
||||
# CONFIG_I2C_DESIGNWARE is not set
|
||||
# CONFIG_I2C_GPIO is not set
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
CONFIG_I2C_PXA=y
|
||||
|
@ -807,19 +865,36 @@ CONFIG_I2C_PXA=y
|
|||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_SENSORS_PCF8574 is not set
|
||||
# CONFIG_PCF8575 is not set
|
||||
# CONFIG_SENSORS_MAX6875 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||
# CONFIG_SPI is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
|
||||
#
|
||||
# SPI Master Controller Drivers
|
||||
#
|
||||
CONFIG_SPI_BITBANG=y
|
||||
CONFIG_SPI_GPIO=y
|
||||
# CONFIG_SPI_PXA2XX is not set
|
||||
|
||||
#
|
||||
# SPI Protocol Masters
|
||||
#
|
||||
# CONFIG_SPI_SPIDEV is not set
|
||||
# CONFIG_SPI_TLE62X0 is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
#
|
||||
# CONFIG_PPS is not set
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
# CONFIG_GPIO_SYSFS is not set
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
|
@ -839,11 +914,17 @@ CONFIG_GPIO_PCA953X=y
|
|||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX7301 is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_GPIO_MC33880 is not set
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_THERMAL_HWMON is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
|
@ -860,32 +941,33 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_UCB1400_CORE is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
CONFIG_PMIC_DA903X=y
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM831X is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia core support
|
||||
#
|
||||
# CONFIG_VIDEO_DEV is not set
|
||||
# CONFIG_DVB_CORE is not set
|
||||
# CONFIG_VIDEO_MEDIA is not set
|
||||
|
||||
#
|
||||
# Multimedia drivers
|
||||
#
|
||||
# CONFIG_DAB is not set
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
CONFIG_REGULATOR=y
|
||||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
CONFIG_REGULATOR_DA903X=y
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
# CONFIG_REGULATOR_TPS6507X is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
|
@ -925,7 +1007,17 @@ CONFIG_FB_PXA=y
|
|||
# CONFIG_FB_METRONOME is not set
|
||||
# CONFIG_FB_MB862XX is not set
|
||||
# CONFIG_FB_BROADSHEET is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
# CONFIG_LCD_LMS283GF05 is not set
|
||||
# CONFIG_LCD_LTV350QV is not set
|
||||
# CONFIG_LCD_ILI9320 is not set
|
||||
CONFIG_LCD_TDO24M=y
|
||||
# CONFIG_LCD_VGG2432A4 is not set
|
||||
# CONFIG_LCD_PLATFORM is not set
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=m
|
||||
# CONFIG_BACKLIGHT_GENERIC is not set
|
||||
CONFIG_BACKLIGHT_DA903X=m
|
||||
|
||||
#
|
||||
# Display device support
|
||||
|
@ -956,38 +1048,48 @@ CONFIG_LOGO_LINUX_MONO=y
|
|||
CONFIG_LOGO_LINUX_VGA16=y
|
||||
CONFIG_LOGO_LINUX_CLUT224=y
|
||||
CONFIG_SOUND=m
|
||||
# CONFIG_SOUND_OSS_CORE is not set
|
||||
CONFIG_SOUND_OSS_CORE=y
|
||||
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
|
||||
CONFIG_SND=m
|
||||
CONFIG_SND_TIMER=m
|
||||
CONFIG_SND_PCM=m
|
||||
CONFIG_SND_JACK=y
|
||||
# CONFIG_SND_SEQUENCER is not set
|
||||
# CONFIG_SND_MIXER_OSS is not set
|
||||
# CONFIG_SND_PCM_OSS is not set
|
||||
CONFIG_SND_OSSEMUL=y
|
||||
CONFIG_SND_MIXER_OSS=m
|
||||
CONFIG_SND_PCM_OSS=m
|
||||
CONFIG_SND_PCM_OSS_PLUGINS=y
|
||||
# CONFIG_SND_DYNAMIC_MINORS is not set
|
||||
CONFIG_SND_SUPPORT_OLD_API=y
|
||||
CONFIG_SND_VERBOSE_PROCFS=y
|
||||
# CONFIG_SND_VERBOSE_PRINTK is not set
|
||||
# CONFIG_SND_DEBUG is not set
|
||||
CONFIG_SND_DRIVERS=y
|
||||
# CONFIG_SND_DUMMY is not set
|
||||
# CONFIG_SND_MTPAV is not set
|
||||
# CONFIG_SND_SERIAL_U16550 is not set
|
||||
# CONFIG_SND_MPU401 is not set
|
||||
CONFIG_SND_VMASTER=y
|
||||
# CONFIG_SND_RAWMIDI_SEQ is not set
|
||||
# CONFIG_SND_OPL3_LIB_SEQ is not set
|
||||
# CONFIG_SND_OPL4_LIB_SEQ is not set
|
||||
# CONFIG_SND_SBAWE_SEQ is not set
|
||||
# CONFIG_SND_EMU10K1_SEQ is not set
|
||||
CONFIG_SND_AC97_CODEC=m
|
||||
# CONFIG_SND_DRIVERS is not set
|
||||
CONFIG_SND_ARM=y
|
||||
CONFIG_SND_PXA2XX_LIB=m
|
||||
CONFIG_SND_PXA2XX_LIB_AC97=y
|
||||
# CONFIG_SND_PXA2XX_AC97 is not set
|
||||
CONFIG_SND_USB=y
|
||||
# CONFIG_SND_USB_AUDIO is not set
|
||||
# CONFIG_SND_USB_CAIAQ is not set
|
||||
# CONFIG_SND_SPI is not set
|
||||
# CONFIG_SND_USB is not set
|
||||
CONFIG_SND_SOC=m
|
||||
CONFIG_SND_SOC_AC97_BUS=y
|
||||
CONFIG_SND_PXA2XX_SOC=m
|
||||
CONFIG_SND_PXA2XX_SOC_AC97=m
|
||||
CONFIG_SND_PXA2XX_SOC_EM_X270=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
# CONFIG_SND_SOC_ALL_CODECS is not set
|
||||
CONFIG_SND_SOC_WM9712=m
|
||||
# CONFIG_SOUND_PRIME is not set
|
||||
CONFIG_AC97_BUS=m
|
||||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HID=y
|
||||
CONFIG_HID_DEBUG=y
|
||||
# CONFIG_HIDRAW is not set
|
||||
|
||||
#
|
||||
|
@ -1006,10 +1108,12 @@ CONFIG_HID_BELKIN=y
|
|||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EZKEY=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
|
@ -1023,9 +1127,15 @@ CONFIG_HID_PETALYNX=y
|
|||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=m
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
|
@ -1054,6 +1164,7 @@ CONFIG_USB_MON=y
|
|||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
# CONFIG_USB_ISP116X_HCD is not set
|
||||
# CONFIG_USB_ISP1760_HCD is not set
|
||||
# CONFIG_USB_ISP1362_HCD is not set
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
|
||||
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
|
||||
|
@ -1151,8 +1262,9 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
|||
#
|
||||
CONFIG_MMC_PXA=m
|
||||
# CONFIG_MMC_SDHCI is not set
|
||||
# CONFIG_MMC_AT91 is not set
|
||||
# CONFIG_MMC_ATMELMCI is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
|
||||
|
@ -1162,8 +1274,10 @@ CONFIG_LEDS_CLASS=y
|
|||
# CONFIG_LEDS_PCA9532 is not set
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_GPIO_PLATFORM=y
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
# CONFIG_LEDS_LP3944 is not set
|
||||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_DA903X is not set
|
||||
# CONFIG_LEDS_DAC124S085 is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
|
||||
#
|
||||
|
@ -1179,6 +1293,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
|||
#
|
||||
# iptables trigger is under Netfilter config (LED target)
|
||||
#
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_HCTOSYS=y
|
||||
|
@ -1210,10 +1325,19 @@ CONFIG_RTC_INTF_DEV=y
|
|||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
# CONFIG_RTC_DRV_FM3130 is not set
|
||||
# CONFIG_RTC_DRV_RX8581 is not set
|
||||
# CONFIG_RTC_DRV_RX8025 is not set
|
||||
|
||||
#
|
||||
# SPI RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_M41T94 is not set
|
||||
# CONFIG_RTC_DRV_DS1305 is not set
|
||||
# CONFIG_RTC_DRV_DS1390 is not set
|
||||
# CONFIG_RTC_DRV_MAX6902 is not set
|
||||
# CONFIG_RTC_DRV_R9701 is not set
|
||||
# CONFIG_RTC_DRV_RS5C348 is not set
|
||||
# CONFIG_RTC_DRV_DS3234 is not set
|
||||
# CONFIG_RTC_DRV_PCF2123 is not set
|
||||
|
||||
#
|
||||
# Platform RTC drivers
|
||||
|
@ -1233,12 +1357,15 @@ CONFIG_RTC_DRV_V3020=y
|
|||
#
|
||||
# on-CPU RTC drivers
|
||||
#
|
||||
CONFIG_RTC_DRV_SA1100=y
|
||||
# CONFIG_RTC_DRV_PXA is not set
|
||||
# CONFIG_RTC_DRV_SA1100 is not set
|
||||
CONFIG_RTC_DRV_PXA=y
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -1256,10 +1383,13 @@ CONFIG_JBD=y
|
|||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
CONFIG_FILE_LOCKING=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
|
@ -1319,6 +1449,12 @@ CONFIG_JFFS2_ZLIB=y
|
|||
# CONFIG_JFFS2_LZO is not set
|
||||
CONFIG_JFFS2_RTIME=y
|
||||
# CONFIG_JFFS2_RUBIN is not set
|
||||
CONFIG_UBIFS_FS=y
|
||||
# CONFIG_UBIFS_FS_XATTR is not set
|
||||
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
|
||||
CONFIG_UBIFS_FS_LZO=y
|
||||
CONFIG_UBIFS_FS_ZLIB=y
|
||||
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
|
@ -1329,12 +1465,12 @@ CONFIG_JFFS2_RTIME=y
|
|||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
# CONFIG_NFS_V4_1 is not set
|
||||
CONFIG_ROOT_NFS=y
|
||||
# CONFIG_NFSD is not set
|
||||
CONFIG_LOCKD=y
|
||||
|
@ -1378,7 +1514,7 @@ CONFIG_MSDOS_PARTITION=y
|
|||
# CONFIG_KARMA_PARTITION is not set
|
||||
# CONFIG_EFI_PARTITION is not set
|
||||
# CONFIG_SYSV68_PARTITION is not set
|
||||
CONFIG_NLS=m
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
CONFIG_NLS_CODEPAGE_437=m
|
||||
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||
|
@ -1428,6 +1564,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
|
|||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
|
@ -1441,6 +1578,7 @@ CONFIG_DEBUG_KERNEL=y
|
|||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_RT_MUTEX_TESTER is not set
|
||||
# CONFIG_DEBUG_SPINLOCK is not set
|
||||
|
@ -1460,32 +1598,20 @@ CONFIG_DEBUG_MEMORY_INIT=y
|
|||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
#
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
|
@ -1509,7 +1635,6 @@ CONFIG_CRYPTO=y
|
|||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
CONFIG_CRYPTO_AEAD2=y
|
||||
|
@ -1551,11 +1676,13 @@ CONFIG_CRYPTO_ECB=m
|
|||
#
|
||||
# CONFIG_CRYPTO_HMAC is not set
|
||||
# CONFIG_CRYPTO_XCBC is not set
|
||||
# CONFIG_CRYPTO_VMAC is not set
|
||||
|
||||
#
|
||||
# Digest
|
||||
#
|
||||
# CONFIG_CRYPTO_CRC32C is not set
|
||||
# CONFIG_CRYPTO_GHASH is not set
|
||||
# CONFIG_CRYPTO_MD4 is not set
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
|
@ -1591,9 +1718,9 @@ CONFIG_CRYPTO_DES=y
|
|||
#
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
|
||||
#
|
||||
# Random Number Generation
|
||||
|
@ -1608,7 +1735,7 @@ CONFIG_CRYPTO_DES=y
|
|||
CONFIG_BITREVERSE=y
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
# CONFIG_CRC_CCITT is not set
|
||||
# CONFIG_CRC16 is not set
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
# CONFIG_CRC_ITU_T is not set
|
||||
CONFIG_CRC32=y
|
||||
|
@ -1616,6 +1743,8 @@ CONFIG_CRC32=y
|
|||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.31-rc4
|
||||
# Tue Jul 28 14:11:34 2009
|
||||
# Linux kernel version: 2.6.32-rc5
|
||||
# Sun Nov 1 22:56:24 2009
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_HAVE_PWM=y
|
||||
|
@ -9,7 +9,6 @@ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
|||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
|
@ -46,11 +45,12 @@ CONFIG_SYSVIPC_SYSCTL=y
|
|||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
|
@ -87,16 +87,14 @@ CONFIG_SHMEM=y
|
|||
CONFIG_AIO=y
|
||||
|
||||
#
|
||||
# Performance Counters
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_SLUB is not set
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
|
@ -139,6 +137,7 @@ CONFIG_FREEZER=y
|
|||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
|
@ -153,6 +152,7 @@ CONFIG_ARCH_MXC=y
|
|||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
|
@ -175,18 +175,22 @@ CONFIG_ARCH_MXC=y
|
|||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
|
||||
#
|
||||
# Freescale MXC Implementations
|
||||
#
|
||||
# CONFIG_ARCH_MX1 is not set
|
||||
# CONFIG_ARCH_MX2 is not set
|
||||
# CONFIG_ARCH_MX25 is not set
|
||||
CONFIG_ARCH_MX3=y
|
||||
# CONFIG_ARCH_MXC91231 is not set
|
||||
CONFIG_ARCH_MX31=y
|
||||
CONFIG_ARCH_MX35=y
|
||||
|
||||
|
@ -205,6 +209,7 @@ CONFIG_MACH_QONG=y
|
|||
CONFIG_MACH_PCM043=y
|
||||
CONFIG_MACH_ARMADILLO5X0=y
|
||||
CONFIG_MACH_MX35_3DS=y
|
||||
CONFIG_MACH_KZM_ARM11_01=y
|
||||
CONFIG_MXC_IRQ_PRIOR=y
|
||||
CONFIG_MXC_PWM=y
|
||||
CONFIG_ARCH_HAS_RNGA=y
|
||||
|
@ -218,7 +223,7 @@ CONFIG_CPU_V6=y
|
|||
# CONFIG_CPU_32v6K is not set
|
||||
CONFIG_CPU_32v6=y
|
||||
CONFIG_CPU_ABRT_EV6=y
|
||||
CONFIG_CPU_PABRT_NOIFAR=y
|
||||
CONFIG_CPU_PABRT_V6=y
|
||||
CONFIG_CPU_CACHE_V6=y
|
||||
CONFIG_CPU_CACHE_VIPT=y
|
||||
CONFIG_CPU_COPY_V6=y
|
||||
|
@ -236,6 +241,7 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_OUTER_CACHE=y
|
||||
CONFIG_CACHE_L2X0=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
# CONFIG_ARM_ERRATA_411920 is not set
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
|
@ -257,6 +263,8 @@ CONFIG_VMSPLIT_3G=y
|
|||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_HZ=100
|
||||
CONFIG_AEABI=y
|
||||
|
@ -277,6 +285,7 @@ CONFIG_ZONE_DMA_FLAG=0
|
|||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
@ -326,6 +335,7 @@ CONFIG_PM_SLEEP=y
|
|||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
# CONFIG_APM_EMULATION is not set
|
||||
# CONFIG_PM_RUNTIME is not set
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_NET=y
|
||||
|
||||
|
@ -367,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
|||
# CONFIG_NETFILTER is not set
|
||||
# CONFIG_IP_DCCP is not set
|
||||
# CONFIG_IP_SCTP is not set
|
||||
# CONFIG_RDS is not set
|
||||
# CONFIG_TIPC is not set
|
||||
# CONFIG_ATM is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
|
@ -407,6 +418,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
|||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_DEVTMPFS is not set
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=m
|
||||
|
@ -416,9 +428,9 @@ CONFIG_EXTRA_FIRMWARE=""
|
|||
# CONFIG_CONNECTOR is not set
|
||||
CONFIG_MTD=y
|
||||
# CONFIG_MTD_DEBUG is not set
|
||||
# CONFIG_MTD_TESTS is not set
|
||||
# CONFIG_MTD_CONCAT is not set
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
# CONFIG_MTD_TESTS is not set
|
||||
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
|
@ -587,14 +599,12 @@ CONFIG_DNET=y
|
|||
# CONFIG_B44 is not set
|
||||
# CONFIG_CS89x0 is not set
|
||||
# CONFIG_KS8842 is not set
|
||||
# CONFIG_KS8851_MLL is not set
|
||||
CONFIG_FEC=y
|
||||
# CONFIG_FEC2 is not set
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
|
||||
#
|
||||
# Wireless LAN
|
||||
#
|
||||
CONFIG_WLAN=y
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
|
||||
|
@ -608,6 +618,7 @@ CONFIG_FEC=y
|
|||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
|
@ -630,7 +641,14 @@ CONFIG_DEVKMEM=y
|
|||
#
|
||||
# Serial drivers
|
||||
#
|
||||
# CONFIG_SERIAL_8250 is not set
|
||||
CONFIG_SERIAL_8250=m
|
||||
CONFIG_SERIAL_8250_NR_UARTS=4
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
# CONFIG_SERIAL_8250_MANY_PORTS is not set
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
|
||||
# CONFIG_SERIAL_8250_RSA is not set
|
||||
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
|
@ -649,6 +667,7 @@ CONFIG_UNIX98_PTYS=y
|
|||
# CONFIG_TCG_TPM is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_COMPAT=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_HELPER_AUTO=y
|
||||
|
||||
|
@ -681,15 +700,17 @@ CONFIG_I2C_IMX=y
|
|||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_SENSORS_PCF8574 is not set
|
||||
# CONFIG_PCF8575 is not set
|
||||
# CONFIG_SENSORS_PCA9539 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||
# CONFIG_SPI is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
#
|
||||
# CONFIG_PPS is not set
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_GPIO_SYSFS is not set
|
||||
|
@ -712,6 +733,10 @@ CONFIG_GPIOLIB=y
|
|||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
#
|
||||
CONFIG_W1=y
|
||||
|
||||
#
|
||||
|
@ -734,7 +759,6 @@ CONFIG_W1_SLAVE_THERM=y
|
|||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_THERMAL_HWMON is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
|
@ -759,12 +783,24 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM831X is not set
|
||||
CONFIG_MFD_WM8350=y
|
||||
CONFIG_MFD_WM8350_CONFIG_MODE_0=y
|
||||
CONFIG_MFD_WM8352_CONFIG_MODE_0=y
|
||||
CONFIG_MFD_WM8350_I2C=y
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_AB3100_CORE is not set
|
||||
CONFIG_REGULATOR=y
|
||||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
CONFIG_REGULATOR_WM8350=y
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
# CONFIG_REGULATOR_TPS6507X is not set
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
|
||||
#
|
||||
|
@ -874,10 +910,12 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
|||
# MMC/SD/SDIO Host Controller Drivers
|
||||
#
|
||||
# CONFIG_MMC_SDHCI is not set
|
||||
# CONFIG_MMC_AT91 is not set
|
||||
# CONFIG_MMC_ATMELMCI is not set
|
||||
CONFIG_MMC_MXC=y
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
|
@ -896,16 +934,11 @@ CONFIG_DMA_ENGINE=y
|
|||
# CONFIG_ASYNC_TX_DMA is not set
|
||||
# CONFIG_DMATEST is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
CONFIG_REGULATOR=y
|
||||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
CONFIG_REGULATOR_WM8350=y
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
|
@ -921,6 +954,7 @@ CONFIG_REGULATOR_WM8350=y
|
|||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
|
@ -995,7 +1029,6 @@ CONFIG_UBIFS_FS_ZLIB=y
|
|||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
|
@ -1033,6 +1066,7 @@ CONFIG_MSDOS_PARTITION=y
|
|||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
|
@ -1062,7 +1096,6 @@ CONFIG_CRYPTO=y
|
|||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
CONFIG_CRYPTO_AEAD2=y
|
||||
|
@ -1104,11 +1137,13 @@ CONFIG_CRYPTO_CBC=y
|
|||
#
|
||||
# CONFIG_CRYPTO_HMAC is not set
|
||||
# CONFIG_CRYPTO_XCBC is not set
|
||||
# CONFIG_CRYPTO_VMAC is not set
|
||||
|
||||
#
|
||||
# Digest
|
||||
#
|
||||
# CONFIG_CRYPTO_CRC32C is not set
|
||||
# CONFIG_CRYPTO_GHASH is not set
|
||||
# CONFIG_CRYPTO_MD4 is not set
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
# CONFIG_CRYPTO_MICHAEL_MIC is not set
|
||||
|
|
|
@ -0,0 +1,922 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.32-rc7
|
||||
# Tue Nov 17 12:31:33 2009
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
CONFIG_LOCKDEP_SUPPORT=y
|
||||
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
CONFIG_LOCK_KERNEL=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
CONFIG_LOCALVERSION=""
|
||||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=17
|
||||
# CONFIG_GROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_NAMESPACES=y
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_IPC_NS is not set
|
||||
CONFIG_USER_NS=y
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_UID16=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_EXTRA_PASS=y
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_SLUB is not set
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
|
||||
#
|
||||
# GCOV-based kernel profiling
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
# CONFIG_MODULES is not set
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBDAF=y
|
||||
CONFIG_BLK_DEV_BSG=y
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_DEFAULT_AS is not set
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
# CONFIG_ARCH_MXC is not set
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP23XX is not set
|
||||
# CONFIG_ARCH_IXP2000 is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_LOKI is not set
|
||||
# CONFIG_ARCH_MV78XX0 is not set
|
||||
# CONFIG_ARCH_ORION5X is not set
|
||||
# CONFIG_ARCH_MMP is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
CONFIG_ARCH_W90X900=y
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
CONFIG_CPU_NUC950=y
|
||||
|
||||
#
|
||||
# W90P910 Machines
|
||||
#
|
||||
# CONFIG_MACH_W90P910EVB is not set
|
||||
|
||||
#
|
||||
# NUC950 Machines
|
||||
#
|
||||
CONFIG_MACH_W90P950EVB=y
|
||||
|
||||
#
|
||||
# NUC960 Machines
|
||||
#
|
||||
# CONFIG_MACH_W90N960EVB is not set
|
||||
|
||||
#
|
||||
# NUC932 Machines
|
||||
#
|
||||
# CONFIG_MACH_NUC932EVB is not set
|
||||
|
||||
#
|
||||
# Processor Type
|
||||
#
|
||||
CONFIG_CPU_32=y
|
||||
CONFIG_CPU_ARM926T=y
|
||||
CONFIG_CPU_32v5=y
|
||||
CONFIG_CPU_ABRT_EV5TJ=y
|
||||
CONFIG_CPU_PABRT_LEGACY=y
|
||||
CONFIG_CPU_CACHE_VIVT=y
|
||||
CONFIG_CPU_COPY_V4WB=y
|
||||
CONFIG_CPU_TLB_V4WBI=y
|
||||
CONFIG_CPU_CP15=y
|
||||
CONFIG_CPU_CP15_MMU=y
|
||||
|
||||
#
|
||||
# Processor Features
|
||||
#
|
||||
CONFIG_ARM_THUMB=y
|
||||
# CONFIG_CPU_ICACHE_DISABLE is not set
|
||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
|
||||
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
# CONFIG_PCI_SYSCALL is not set
|
||||
# CONFIG_ARCH_SUPPORTS_MSI is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
# Kernel Features
|
||||
#
|
||||
CONFIG_TICK_ONESHOT=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_HZ=100
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4096
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 console=ttyS0,115200n8 rdinit=/sbin/init mem=64M"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_ATAGS_PROC=y
|
||||
|
||||
#
|
||||
# CPU Power Management
|
||||
#
|
||||
# CONFIG_CPU_IDLE is not set
|
||||
|
||||
#
|
||||
# Floating point emulation
|
||||
#
|
||||
|
||||
#
|
||||
# At least one emulation must be selected
|
||||
#
|
||||
CONFIG_FPE_NWFPE=y
|
||||
# CONFIG_FPE_NWFPE_XP is not set
|
||||
# CONFIG_FPE_FASTFPE is not set
|
||||
# CONFIG_VFP is not set
|
||||
|
||||
#
|
||||
# Userspace binary formats
|
||||
#
|
||||
CONFIG_BINFMT_ELF=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_HAVE_AOUT=y
|
||||
CONFIG_BINFMT_AOUT=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
|
||||
#
|
||||
# Power management options
|
||||
#
|
||||
# CONFIG_PM is not set
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
# CONFIG_NET is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_DEVTMPFS is not set
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=y
|
||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
||||
CONFIG_EXTRA_FIRMWARE=""
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
CONFIG_MTD=y
|
||||
# CONFIG_MTD_DEBUG is not set
|
||||
CONFIG_MTD_CONCAT=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||
# CONFIG_MTD_CMDLINE_PARTS is not set
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
# CONFIG_MTD_AR7_PARTS is not set
|
||||
|
||||
#
|
||||
# User Modules And Translation Layers
|
||||
#
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLKDEVS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
# CONFIG_FTL is not set
|
||||
# CONFIG_NFTL is not set
|
||||
# CONFIG_INFTL is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
# CONFIG_SSFDC is not set
|
||||
# CONFIG_MTD_OOPS is not set
|
||||
|
||||
#
|
||||
# RAM/ROM/Flash chip drivers
|
||||
#
|
||||
CONFIG_MTD_CFI=y
|
||||
# CONFIG_MTD_JEDECPROBE is not set
|
||||
CONFIG_MTD_GEN_PROBE=y
|
||||
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
|
||||
CONFIG_MTD_CFI_I1=y
|
||||
CONFIG_MTD_CFI_I2=y
|
||||
# CONFIG_MTD_CFI_I4 is not set
|
||||
# CONFIG_MTD_CFI_I8 is not set
|
||||
# CONFIG_MTD_CFI_INTELEXT is not set
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
# CONFIG_MTD_CFI_STAA is not set
|
||||
CONFIG_MTD_CFI_UTIL=y
|
||||
# CONFIG_MTD_RAM is not set
|
||||
# CONFIG_MTD_ROM is not set
|
||||
# CONFIG_MTD_ABSENT is not set
|
||||
|
||||
#
|
||||
# Mapping drivers for chip access
|
||||
#
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
# CONFIG_MTD_PHYSMAP_COMPAT is not set
|
||||
# CONFIG_MTD_ARM_INTEGRATOR is not set
|
||||
# CONFIG_MTD_PLATRAM is not set
|
||||
|
||||
#
|
||||
# Self-contained MTD device drivers
|
||||
#
|
||||
# CONFIG_MTD_SLRAM is not set
|
||||
# CONFIG_MTD_PHRAM is not set
|
||||
# CONFIG_MTD_MTDRAM is not set
|
||||
# CONFIG_MTD_BLOCK2MTD is not set
|
||||
|
||||
#
|
||||
# Disk-On-Chip Device Drivers
|
||||
#
|
||||
# CONFIG_MTD_DOC2000 is not set
|
||||
# CONFIG_MTD_DOC2001 is not set
|
||||
# CONFIG_MTD_DOC2001PLUS is not set
|
||||
# CONFIG_MTD_NAND is not set
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
|
||||
#
|
||||
# LPDDR flash memory drivers
|
||||
#
|
||||
# CONFIG_MTD_LPDDR is not set
|
||||
|
||||
#
|
||||
# UBI - Unsorted block images
|
||||
#
|
||||
# CONFIG_MTD_UBI is not set
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
# CONFIG_BLK_DEV_LOOP is not set
|
||||
# CONFIG_BLK_DEV_UB is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
# CONFIG_BLK_DEV_XIP is not set
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_MG_DISK is not set
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
# CONFIG_SCSI_TGT is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
# CONFIG_CHR_DEV_SG is not set
|
||||
# CONFIG_CHR_DEV_SCH is not set
|
||||
# CONFIG_SCSI_MULTI_LUN is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
# CONFIG_SCSI_SCAN_ASYNC is not set
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
# CONFIG_INPUT_POLLDEV is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
#
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
# CONFIG_INPUT_EVDEV is not set
|
||||
# CONFIG_INPUT_EVBUG is not set
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
#
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_INPUT_MISC is not set
|
||||
|
||||
#
|
||||
# Hardware I/O ports
|
||||
#
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
|
||||
#
|
||||
# Character devices
|
||||
#
|
||||
CONFIG_VT=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
# CONFIG_VT_HW_CONSOLE_BINDING is not set
|
||||
# CONFIG_DEVKMEM is not set
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
|
||||
#
|
||||
# Serial drivers
|
||||
#
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=1
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
|
||||
# CONFIG_SERIAL_8250_EXTENDED is not set
|
||||
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_R3964 is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_I2C is not set
|
||||
# CONFIG_SPI is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
#
|
||||
# CONFIG_PPS is not set
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_GPIO_SYSFS is not set
|
||||
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# PCI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
# Sonics Silicon Backplane
|
||||
#
|
||||
# CONFIG_SSB is not set
|
||||
|
||||
#
|
||||
# Multifunction device drivers
|
||||
#
|
||||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Display device support
|
||||
#
|
||||
# CONFIG_DISPLAY_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Console display driver support
|
||||
#
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
# CONFIG_SOUND is not set
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEBUG is not set
|
||||
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
|
||||
|
||||
#
|
||||
# Miscellaneous USB options
|
||||
#
|
||||
# CONFIG_USB_DEVICEFS is not set
|
||||
CONFIG_USB_DEVICE_CLASS=y
|
||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||
# CONFIG_USB_OTG is not set
|
||||
CONFIG_USB_MON=y
|
||||
# CONFIG_USB_WUSB is not set
|
||||
# CONFIG_USB_WUSB_CBAF is not set
|
||||
|
||||
#
|
||||
# USB Host Controller Drivers
|
||||
#
|
||||
# CONFIG_USB_C67X00_HCD is not set
|
||||
# CONFIG_USB_EHCI_HCD is not set
|
||||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
# CONFIG_USB_ISP116X_HCD is not set
|
||||
# CONFIG_USB_ISP1760_HCD is not set
|
||||
# CONFIG_USB_ISP1362_HCD is not set
|
||||
# CONFIG_USB_OHCI_HCD is not set
|
||||
# CONFIG_USB_SL811_HCD is not set
|
||||
# CONFIG_USB_R8A66597_HCD is not set
|
||||
# CONFIG_USB_HWA_HCD is not set
|
||||
# CONFIG_USB_MUSB_HDRC is not set
|
||||
|
||||
#
|
||||
# USB Device Class drivers
|
||||
#
|
||||
# CONFIG_USB_ACM is not set
|
||||
# CONFIG_USB_PRINTER is not set
|
||||
# CONFIG_USB_WDM is not set
|
||||
# CONFIG_USB_TMC is not set
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||
#
|
||||
|
||||
#
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_DATAFAB is not set
|
||||
# CONFIG_USB_STORAGE_FREECOM is not set
|
||||
# CONFIG_USB_STORAGE_ISD200 is not set
|
||||
# CONFIG_USB_STORAGE_USBAT is not set
|
||||
# CONFIG_USB_STORAGE_SDDR09 is not set
|
||||
# CONFIG_USB_STORAGE_SDDR55 is not set
|
||||
# CONFIG_USB_STORAGE_JUMPSHOT is not set
|
||||
# CONFIG_USB_STORAGE_ALAUDA is not set
|
||||
# CONFIG_USB_STORAGE_ONETOUCH is not set
|
||||
# CONFIG_USB_STORAGE_KARMA is not set
|
||||
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
#
|
||||
# CONFIG_USB_SERIAL is not set
|
||||
|
||||
#
|
||||
# USB Miscellaneous drivers
|
||||
#
|
||||
# CONFIG_USB_EMI62 is not set
|
||||
# CONFIG_USB_EMI26 is not set
|
||||
# CONFIG_USB_ADUTUX is not set
|
||||
# CONFIG_USB_SEVSEG is not set
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_BERRY_CHARGE is not set
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
# CONFIG_USB_APPLEDISPLAY is not set
|
||||
# CONFIG_USB_LD is not set
|
||||
# CONFIG_USB_TRANCEVIBRATOR is not set
|
||||
# CONFIG_USB_IOWARRIOR is not set
|
||||
# CONFIG_USB_TEST is not set
|
||||
# CONFIG_USB_ISIGHTFW is not set
|
||||
# CONFIG_USB_VST is not set
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
||||
#
|
||||
# OTG and related infrastructure
|
||||
#
|
||||
# CONFIG_USB_GPIO_VBUS is not set
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
# CONFIG_MMC is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
# CONFIG_EXT2_FS is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_EXT4_FS is not set
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_INOTIFY is not set
|
||||
CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_QUOTA is not set
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
CONFIG_GENERIC_ACL=y
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
# CONFIG_ISO9660_FS is not set
|
||||
# CONFIG_UDF_FS is not set
|
||||
|
||||
#
|
||||
# DOS/FAT/NT Filesystems
|
||||
#
|
||||
# CONFIG_MSDOS_FS is not set
|
||||
# CONFIG_VFAT_FS is not set
|
||||
# CONFIG_NTFS_FS is not set
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
# CONFIG_CONFIGFS_FS is not set
|
||||
CONFIG_MISC_FILESYSTEMS=y
|
||||
# CONFIG_ADFS_FS is not set
|
||||
# CONFIG_AFFS_FS is not set
|
||||
# CONFIG_HFS_FS is not set
|
||||
# CONFIG_HFSPLUS_FS is not set
|
||||
# CONFIG_BEFS_FS is not set
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_JFFS2_FS is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_OMFS_FS is not set
|
||||
# CONFIG_HPFS_FS is not set
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
CONFIG_ROMFS_FS=y
|
||||
CONFIG_ROMFS_BACKED_BY_BLOCK=y
|
||||
# CONFIG_ROMFS_BACKED_BY_MTD is not set
|
||||
# CONFIG_ROMFS_BACKED_BY_BOTH is not set
|
||||
CONFIG_ROMFS_ON_BLOCK=y
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
#
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
# CONFIG_OSF_PARTITION is not set
|
||||
# CONFIG_AMIGA_PARTITION is not set
|
||||
# CONFIG_ATARI_PARTITION is not set
|
||||
# CONFIG_MAC_PARTITION is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_BSD_DISKLABEL is not set
|
||||
# CONFIG_MINIX_SUBPARTITION is not set
|
||||
# CONFIG_SOLARIS_X86_PARTITION is not set
|
||||
# CONFIG_UNIXWARE_DISKLABEL is not set
|
||||
# CONFIG_LDM_PARTITION is not set
|
||||
# CONFIG_SGI_PARTITION is not set
|
||||
# CONFIG_ULTRIX_PARTITION is not set
|
||||
# CONFIG_SUN_PARTITION is not set
|
||||
# CONFIG_KARMA_PARTITION is not set
|
||||
# CONFIG_EFI_PARTITION is not set
|
||||
# CONFIG_SYSV68_PARTITION is not set
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||
# CONFIG_NLS_CODEPAGE_775 is not set
|
||||
# CONFIG_NLS_CODEPAGE_850 is not set
|
||||
# CONFIG_NLS_CODEPAGE_852 is not set
|
||||
# CONFIG_NLS_CODEPAGE_855 is not set
|
||||
# CONFIG_NLS_CODEPAGE_857 is not set
|
||||
# CONFIG_NLS_CODEPAGE_860 is not set
|
||||
# CONFIG_NLS_CODEPAGE_861 is not set
|
||||
# CONFIG_NLS_CODEPAGE_862 is not set
|
||||
# CONFIG_NLS_CODEPAGE_863 is not set
|
||||
# CONFIG_NLS_CODEPAGE_864 is not set
|
||||
# CONFIG_NLS_CODEPAGE_865 is not set
|
||||
# CONFIG_NLS_CODEPAGE_866 is not set
|
||||
# CONFIG_NLS_CODEPAGE_869 is not set
|
||||
# CONFIG_NLS_CODEPAGE_936 is not set
|
||||
# CONFIG_NLS_CODEPAGE_950 is not set
|
||||
# CONFIG_NLS_CODEPAGE_932 is not set
|
||||
# CONFIG_NLS_CODEPAGE_949 is not set
|
||||
# CONFIG_NLS_CODEPAGE_874 is not set
|
||||
# CONFIG_NLS_ISO8859_8 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1250 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1251 is not set
|
||||
# CONFIG_NLS_ASCII is not set
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
# CONFIG_NLS_ISO8859_2 is not set
|
||||
# CONFIG_NLS_ISO8859_3 is not set
|
||||
# CONFIG_NLS_ISO8859_4 is not set
|
||||
# CONFIG_NLS_ISO8859_5 is not set
|
||||
# CONFIG_NLS_ISO8859_6 is not set
|
||||
# CONFIG_NLS_ISO8859_7 is not set
|
||||
# CONFIG_NLS_ISO8859_9 is not set
|
||||
# CONFIG_NLS_ISO8859_13 is not set
|
||||
# CONFIG_NLS_ISO8859_14 is not set
|
||||
# CONFIG_NLS_ISO8859_15 is not set
|
||||
# CONFIG_NLS_KOI8_R is not set
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
# CONFIG_NLS_UTF8 is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
# CONFIG_DEBUG_KERNEL is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
#
|
||||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
# CONFIG_CRYPTO is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
# CONFIG_CRC_CCITT is not set
|
||||
# CONFIG_CRC16 is not set
|
||||
# CONFIG_CRC_T10DIF is not set
|
||||
# CONFIG_CRC_ITU_T is not set
|
||||
# CONFIG_CRC32 is not set
|
||||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
|
@ -0,0 +1,922 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.32-rc7
|
||||
# Tue Nov 17 12:20:11 2009
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
CONFIG_LOCKDEP_SUPPORT=y
|
||||
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
CONFIG_LOCK_KERNEL=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
CONFIG_LOCALVERSION=""
|
||||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=17
|
||||
# CONFIG_GROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_NAMESPACES=y
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_IPC_NS is not set
|
||||
CONFIG_USER_NS=y
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_UID16=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_EXTRA_PASS=y
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_SLUB is not set
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
|
||||
#
|
||||
# GCOV-based kernel profiling
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
# CONFIG_MODULES is not set
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBDAF=y
|
||||
CONFIG_BLK_DEV_BSG=y
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_DEFAULT_AS is not set
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
# CONFIG_ARCH_MXC is not set
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP23XX is not set
|
||||
# CONFIG_ARCH_IXP2000 is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_LOKI is not set
|
||||
# CONFIG_ARCH_MV78XX0 is not set
|
||||
# CONFIG_ARCH_ORION5X is not set
|
||||
# CONFIG_ARCH_MMP is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
CONFIG_ARCH_W90X900=y
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
CONFIG_CPU_NUC960=y
|
||||
|
||||
#
|
||||
# W90P910 Machines
|
||||
#
|
||||
# CONFIG_MACH_W90P910EVB is not set
|
||||
|
||||
#
|
||||
# NUC950 Machines
|
||||
#
|
||||
# CONFIG_MACH_W90P950EVB is not set
|
||||
|
||||
#
|
||||
# NUC960 Machines
|
||||
#
|
||||
CONFIG_MACH_W90N960EVB=y
|
||||
|
||||
#
|
||||
# NUC932 Machines
|
||||
#
|
||||
# CONFIG_MACH_NUC932EVB is not set
|
||||
|
||||
#
|
||||
# Processor Type
|
||||
#
|
||||
CONFIG_CPU_32=y
|
||||
CONFIG_CPU_ARM926T=y
|
||||
CONFIG_CPU_32v5=y
|
||||
CONFIG_CPU_ABRT_EV5TJ=y
|
||||
CONFIG_CPU_PABRT_LEGACY=y
|
||||
CONFIG_CPU_CACHE_VIVT=y
|
||||
CONFIG_CPU_COPY_V4WB=y
|
||||
CONFIG_CPU_TLB_V4WBI=y
|
||||
CONFIG_CPU_CP15=y
|
||||
CONFIG_CPU_CP15_MMU=y
|
||||
|
||||
#
|
||||
# Processor Features
|
||||
#
|
||||
CONFIG_ARM_THUMB=y
|
||||
# CONFIG_CPU_ICACHE_DISABLE is not set
|
||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
|
||||
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
# CONFIG_PCI_SYSCALL is not set
|
||||
# CONFIG_ARCH_SUPPORTS_MSI is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
# Kernel Features
|
||||
#
|
||||
CONFIG_TICK_ONESHOT=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_HZ=100
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4096
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 console=ttyS0,115200n8 rdinit=/sbin/init mem=64M"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_ATAGS_PROC=y
|
||||
|
||||
#
|
||||
# CPU Power Management
|
||||
#
|
||||
# CONFIG_CPU_IDLE is not set
|
||||
|
||||
#
|
||||
# Floating point emulation
|
||||
#
|
||||
|
||||
#
|
||||
# At least one emulation must be selected
|
||||
#
|
||||
CONFIG_FPE_NWFPE=y
|
||||
# CONFIG_FPE_NWFPE_XP is not set
|
||||
# CONFIG_FPE_FASTFPE is not set
|
||||
# CONFIG_VFP is not set
|
||||
|
||||
#
|
||||
# Userspace binary formats
|
||||
#
|
||||
CONFIG_BINFMT_ELF=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_HAVE_AOUT=y
|
||||
CONFIG_BINFMT_AOUT=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
|
||||
#
|
||||
# Power management options
|
||||
#
|
||||
# CONFIG_PM is not set
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
# CONFIG_NET is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_DEVTMPFS is not set
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=y
|
||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
||||
CONFIG_EXTRA_FIRMWARE=""
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
CONFIG_MTD=y
|
||||
# CONFIG_MTD_DEBUG is not set
|
||||
CONFIG_MTD_CONCAT=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||
# CONFIG_MTD_CMDLINE_PARTS is not set
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
# CONFIG_MTD_AR7_PARTS is not set
|
||||
|
||||
#
|
||||
# User Modules And Translation Layers
|
||||
#
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLKDEVS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
# CONFIG_FTL is not set
|
||||
# CONFIG_NFTL is not set
|
||||
# CONFIG_INFTL is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
# CONFIG_SSFDC is not set
|
||||
# CONFIG_MTD_OOPS is not set
|
||||
|
||||
#
|
||||
# RAM/ROM/Flash chip drivers
|
||||
#
|
||||
CONFIG_MTD_CFI=y
|
||||
# CONFIG_MTD_JEDECPROBE is not set
|
||||
CONFIG_MTD_GEN_PROBE=y
|
||||
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
|
||||
CONFIG_MTD_CFI_I1=y
|
||||
CONFIG_MTD_CFI_I2=y
|
||||
# CONFIG_MTD_CFI_I4 is not set
|
||||
# CONFIG_MTD_CFI_I8 is not set
|
||||
# CONFIG_MTD_CFI_INTELEXT is not set
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
# CONFIG_MTD_CFI_STAA is not set
|
||||
CONFIG_MTD_CFI_UTIL=y
|
||||
# CONFIG_MTD_RAM is not set
|
||||
# CONFIG_MTD_ROM is not set
|
||||
# CONFIG_MTD_ABSENT is not set
|
||||
|
||||
#
|
||||
# Mapping drivers for chip access
|
||||
#
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
# CONFIG_MTD_PHYSMAP_COMPAT is not set
|
||||
# CONFIG_MTD_ARM_INTEGRATOR is not set
|
||||
# CONFIG_MTD_PLATRAM is not set
|
||||
|
||||
#
|
||||
# Self-contained MTD device drivers
|
||||
#
|
||||
# CONFIG_MTD_SLRAM is not set
|
||||
# CONFIG_MTD_PHRAM is not set
|
||||
# CONFIG_MTD_MTDRAM is not set
|
||||
# CONFIG_MTD_BLOCK2MTD is not set
|
||||
|
||||
#
|
||||
# Disk-On-Chip Device Drivers
|
||||
#
|
||||
# CONFIG_MTD_DOC2000 is not set
|
||||
# CONFIG_MTD_DOC2001 is not set
|
||||
# CONFIG_MTD_DOC2001PLUS is not set
|
||||
# CONFIG_MTD_NAND is not set
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
|
||||
#
|
||||
# LPDDR flash memory drivers
|
||||
#
|
||||
# CONFIG_MTD_LPDDR is not set
|
||||
|
||||
#
|
||||
# UBI - Unsorted block images
|
||||
#
|
||||
# CONFIG_MTD_UBI is not set
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
# CONFIG_BLK_DEV_LOOP is not set
|
||||
# CONFIG_BLK_DEV_UB is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
# CONFIG_BLK_DEV_XIP is not set
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_MG_DISK is not set
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
# CONFIG_SCSI_TGT is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
# CONFIG_CHR_DEV_SG is not set
|
||||
# CONFIG_CHR_DEV_SCH is not set
|
||||
# CONFIG_SCSI_MULTI_LUN is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
# CONFIG_SCSI_SCAN_ASYNC is not set
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
# CONFIG_INPUT_POLLDEV is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
#
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
# CONFIG_INPUT_EVDEV is not set
|
||||
# CONFIG_INPUT_EVBUG is not set
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
#
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_INPUT_MISC is not set
|
||||
|
||||
#
|
||||
# Hardware I/O ports
|
||||
#
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
|
||||
#
|
||||
# Character devices
|
||||
#
|
||||
CONFIG_VT=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
# CONFIG_VT_HW_CONSOLE_BINDING is not set
|
||||
# CONFIG_DEVKMEM is not set
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
|
||||
#
|
||||
# Serial drivers
|
||||
#
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=1
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
|
||||
# CONFIG_SERIAL_8250_EXTENDED is not set
|
||||
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_R3964 is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_I2C is not set
|
||||
# CONFIG_SPI is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
#
|
||||
# CONFIG_PPS is not set
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_GPIO_SYSFS is not set
|
||||
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# PCI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# AC97 GPIO expanders:
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
# Sonics Silicon Backplane
|
||||
#
|
||||
# CONFIG_SSB is not set
|
||||
|
||||
#
|
||||
# Multifunction device drivers
|
||||
#
|
||||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_MFD_TC6393XB is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Display device support
|
||||
#
|
||||
# CONFIG_DISPLAY_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Console display driver support
|
||||
#
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
# CONFIG_SOUND is not set
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEBUG is not set
|
||||
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
|
||||
|
||||
#
|
||||
# Miscellaneous USB options
|
||||
#
|
||||
# CONFIG_USB_DEVICEFS is not set
|
||||
CONFIG_USB_DEVICE_CLASS=y
|
||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||
# CONFIG_USB_OTG is not set
|
||||
CONFIG_USB_MON=y
|
||||
# CONFIG_USB_WUSB is not set
|
||||
# CONFIG_USB_WUSB_CBAF is not set
|
||||
|
||||
#
|
||||
# USB Host Controller Drivers
|
||||
#
|
||||
# CONFIG_USB_C67X00_HCD is not set
|
||||
# CONFIG_USB_EHCI_HCD is not set
|
||||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
# CONFIG_USB_ISP116X_HCD is not set
|
||||
# CONFIG_USB_ISP1760_HCD is not set
|
||||
# CONFIG_USB_ISP1362_HCD is not set
|
||||
# CONFIG_USB_OHCI_HCD is not set
|
||||
# CONFIG_USB_SL811_HCD is not set
|
||||
# CONFIG_USB_R8A66597_HCD is not set
|
||||
# CONFIG_USB_HWA_HCD is not set
|
||||
# CONFIG_USB_MUSB_HDRC is not set
|
||||
|
||||
#
|
||||
# USB Device Class drivers
|
||||
#
|
||||
# CONFIG_USB_ACM is not set
|
||||
# CONFIG_USB_PRINTER is not set
|
||||
# CONFIG_USB_WDM is not set
|
||||
# CONFIG_USB_TMC is not set
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||
#
|
||||
|
||||
#
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_DATAFAB is not set
|
||||
# CONFIG_USB_STORAGE_FREECOM is not set
|
||||
# CONFIG_USB_STORAGE_ISD200 is not set
|
||||
# CONFIG_USB_STORAGE_USBAT is not set
|
||||
# CONFIG_USB_STORAGE_SDDR09 is not set
|
||||
# CONFIG_USB_STORAGE_SDDR55 is not set
|
||||
# CONFIG_USB_STORAGE_JUMPSHOT is not set
|
||||
# CONFIG_USB_STORAGE_ALAUDA is not set
|
||||
# CONFIG_USB_STORAGE_ONETOUCH is not set
|
||||
# CONFIG_USB_STORAGE_KARMA is not set
|
||||
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
#
|
||||
# CONFIG_USB_SERIAL is not set
|
||||
|
||||
#
|
||||
# USB Miscellaneous drivers
|
||||
#
|
||||
# CONFIG_USB_EMI62 is not set
|
||||
# CONFIG_USB_EMI26 is not set
|
||||
# CONFIG_USB_ADUTUX is not set
|
||||
# CONFIG_USB_SEVSEG is not set
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_BERRY_CHARGE is not set
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
# CONFIG_USB_APPLEDISPLAY is not set
|
||||
# CONFIG_USB_LD is not set
|
||||
# CONFIG_USB_TRANCEVIBRATOR is not set
|
||||
# CONFIG_USB_IOWARRIOR is not set
|
||||
# CONFIG_USB_TEST is not set
|
||||
# CONFIG_USB_ISIGHTFW is not set
|
||||
# CONFIG_USB_VST is not set
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
||||
#
|
||||
# OTG and related infrastructure
|
||||
#
|
||||
# CONFIG_USB_GPIO_VBUS is not set
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
# CONFIG_MMC is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
# CONFIG_EXT2_FS is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_EXT4_FS is not set
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_INOTIFY is not set
|
||||
CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_QUOTA is not set
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
CONFIG_GENERIC_ACL=y
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
# CONFIG_ISO9660_FS is not set
|
||||
# CONFIG_UDF_FS is not set
|
||||
|
||||
#
|
||||
# DOS/FAT/NT Filesystems
|
||||
#
|
||||
# CONFIG_MSDOS_FS is not set
|
||||
# CONFIG_VFAT_FS is not set
|
||||
# CONFIG_NTFS_FS is not set
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
# CONFIG_CONFIGFS_FS is not set
|
||||
CONFIG_MISC_FILESYSTEMS=y
|
||||
# CONFIG_ADFS_FS is not set
|
||||
# CONFIG_AFFS_FS is not set
|
||||
# CONFIG_HFS_FS is not set
|
||||
# CONFIG_HFSPLUS_FS is not set
|
||||
# CONFIG_BEFS_FS is not set
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_JFFS2_FS is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_OMFS_FS is not set
|
||||
# CONFIG_HPFS_FS is not set
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
CONFIG_ROMFS_FS=y
|
||||
CONFIG_ROMFS_BACKED_BY_BLOCK=y
|
||||
# CONFIG_ROMFS_BACKED_BY_MTD is not set
|
||||
# CONFIG_ROMFS_BACKED_BY_BOTH is not set
|
||||
CONFIG_ROMFS_ON_BLOCK=y
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
#
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
# CONFIG_OSF_PARTITION is not set
|
||||
# CONFIG_AMIGA_PARTITION is not set
|
||||
# CONFIG_ATARI_PARTITION is not set
|
||||
# CONFIG_MAC_PARTITION is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_BSD_DISKLABEL is not set
|
||||
# CONFIG_MINIX_SUBPARTITION is not set
|
||||
# CONFIG_SOLARIS_X86_PARTITION is not set
|
||||
# CONFIG_UNIXWARE_DISKLABEL is not set
|
||||
# CONFIG_LDM_PARTITION is not set
|
||||
# CONFIG_SGI_PARTITION is not set
|
||||
# CONFIG_ULTRIX_PARTITION is not set
|
||||
# CONFIG_SUN_PARTITION is not set
|
||||
# CONFIG_KARMA_PARTITION is not set
|
||||
# CONFIG_EFI_PARTITION is not set
|
||||
# CONFIG_SYSV68_PARTITION is not set
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||
# CONFIG_NLS_CODEPAGE_775 is not set
|
||||
# CONFIG_NLS_CODEPAGE_850 is not set
|
||||
# CONFIG_NLS_CODEPAGE_852 is not set
|
||||
# CONFIG_NLS_CODEPAGE_855 is not set
|
||||
# CONFIG_NLS_CODEPAGE_857 is not set
|
||||
# CONFIG_NLS_CODEPAGE_860 is not set
|
||||
# CONFIG_NLS_CODEPAGE_861 is not set
|
||||
# CONFIG_NLS_CODEPAGE_862 is not set
|
||||
# CONFIG_NLS_CODEPAGE_863 is not set
|
||||
# CONFIG_NLS_CODEPAGE_864 is not set
|
||||
# CONFIG_NLS_CODEPAGE_865 is not set
|
||||
# CONFIG_NLS_CODEPAGE_866 is not set
|
||||
# CONFIG_NLS_CODEPAGE_869 is not set
|
||||
# CONFIG_NLS_CODEPAGE_936 is not set
|
||||
# CONFIG_NLS_CODEPAGE_950 is not set
|
||||
# CONFIG_NLS_CODEPAGE_932 is not set
|
||||
# CONFIG_NLS_CODEPAGE_949 is not set
|
||||
# CONFIG_NLS_CODEPAGE_874 is not set
|
||||
# CONFIG_NLS_ISO8859_8 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1250 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1251 is not set
|
||||
# CONFIG_NLS_ASCII is not set
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
# CONFIG_NLS_ISO8859_2 is not set
|
||||
# CONFIG_NLS_ISO8859_3 is not set
|
||||
# CONFIG_NLS_ISO8859_4 is not set
|
||||
# CONFIG_NLS_ISO8859_5 is not set
|
||||
# CONFIG_NLS_ISO8859_6 is not set
|
||||
# CONFIG_NLS_ISO8859_7 is not set
|
||||
# CONFIG_NLS_ISO8859_9 is not set
|
||||
# CONFIG_NLS_ISO8859_13 is not set
|
||||
# CONFIG_NLS_ISO8859_14 is not set
|
||||
# CONFIG_NLS_ISO8859_15 is not set
|
||||
# CONFIG_NLS_KOI8_R is not set
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
# CONFIG_NLS_UTF8 is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
# CONFIG_DEBUG_KERNEL is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
#
|
||||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
# CONFIG_CRYPTO is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
# CONFIG_CRC_CCITT is not set
|
||||
# CONFIG_CRC16 is not set
|
||||
# CONFIG_CRC_T10DIF is not set
|
||||
# CONFIG_CRC_ITU_T is not set
|
||||
# CONFIG_CRC32 is not set
|
||||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
|
@ -0,0 +1,680 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.32-rc8
|
||||
# Mon Nov 30 11:11:29 2009
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_LOCKDEP_SUPPORT=y
|
||||
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_GENERIC_LOCKBREAK=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_LOCK_KERNEL=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
CONFIG_RCU_FANOUT=32
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=17
|
||||
CONFIG_GROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_USER_SCHED=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_RELAY is not set
|
||||
CONFIG_NAMESPACES=y
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_IPC_NS is not set
|
||||
# CONFIG_USER_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_UID16=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
|
||||
#
|
||||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
|
||||
#
|
||||
# GCOV-based kernel profiling
|
||||
#
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
# CONFIG_MODULE_FORCE_LOAD is not set
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||
# CONFIG_MODVERSIONS is not set
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_STOP_MACHINE=y
|
||||
CONFIG_BLOCK=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_DEFAULT_AS is not set
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_AT91 is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
# CONFIG_ARCH_MXC is not set
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_NOMADIK is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP23XX is not set
|
||||
# CONFIG_ARCH_IXP2000 is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_KIRKWOOD is not set
|
||||
# CONFIG_ARCH_LOKI is not set
|
||||
# CONFIG_ARCH_MV78XX0 is not set
|
||||
# CONFIG_ARCH_ORION5X is not set
|
||||
# CONFIG_ARCH_MMP is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_NS9XXX is not set
|
||||
# CONFIG_ARCH_W90X900 is not set
|
||||
# CONFIG_ARCH_PNX4008 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_MSM is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
# CONFIG_ARCH_SA1100 is not set
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_S3C64XX is not set
|
||||
# CONFIG_ARCH_S5PC1XX is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_U300 is not set
|
||||
# CONFIG_ARCH_DAVINCI is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_ARCH_BCMRING is not set
|
||||
CONFIG_ARCH_U8500=y
|
||||
CONFIG_PLAT_NOMADIK=y
|
||||
CONFIG_HAS_MTU=y
|
||||
|
||||
#
|
||||
# ST-Ericsson platform type
|
||||
#
|
||||
|
||||
#
|
||||
# ST-Ericsson Multicore Mobile Platforms
|
||||
#
|
||||
CONFIG_MACH_U8500_MOP=y
|
||||
|
||||
#
|
||||
# Processor Type
|
||||
#
|
||||
CONFIG_CPU_32=y
|
||||
CONFIG_CPU_32v6K=y
|
||||
CONFIG_CPU_V7=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
CONFIG_CPU_PABRT_V7=y
|
||||
CONFIG_CPU_CACHE_V7=y
|
||||
CONFIG_CPU_CACHE_VIPT=y
|
||||
CONFIG_CPU_COPY_V6=y
|
||||
CONFIG_CPU_TLB_V7=y
|
||||
CONFIG_CPU_HAS_ASID=y
|
||||
CONFIG_CPU_CP15=y
|
||||
CONFIG_CPU_CP15_MMU=y
|
||||
|
||||
#
|
||||
# Processor Features
|
||||
#
|
||||
CONFIG_ARM_THUMB=y
|
||||
# CONFIG_ARM_THUMBEE is not set
|
||||
# CONFIG_CPU_ICACHE_DISABLE is not set
|
||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_HAS_TLS_REG=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
CONFIG_ARM_AMBA=y
|
||||
# CONFIG_PCI_SYSCALL is not set
|
||||
# CONFIG_ARCH_SUPPORTS_MSI is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
# Kernel Features
|
||||
#
|
||||
# CONFIG_NO_HZ is not set
|
||||
# CONFIG_HIGH_RES_TIMERS is not set
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_HAVE_ARM_TWD=y
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_NR_CPUS=2
|
||||
# CONFIG_HOTPLUG_CPU is not set
|
||||
CONFIG_LOCAL_TIMERS=y
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_HZ=100
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
#
|
||||
# CPU Power Management
|
||||
#
|
||||
# CONFIG_CPU_IDLE is not set
|
||||
|
||||
#
|
||||
# Floating point emulation
|
||||
#
|
||||
|
||||
#
|
||||
# At least one emulation must be selected
|
||||
#
|
||||
# CONFIG_FPE_NWFPE is not set
|
||||
# CONFIG_FPE_FASTFPE is not set
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_NEON=y
|
||||
|
||||
#
|
||||
# Userspace binary formats
|
||||
#
|
||||
CONFIG_BINFMT_ELF=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_HAVE_AOUT=y
|
||||
# CONFIG_BINFMT_AOUT is not set
|
||||
# CONFIG_BINFMT_MISC is not set
|
||||
|
||||
#
|
||||
# Power management options
|
||||
#
|
||||
# CONFIG_PM is not set
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
# CONFIG_NET is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_DEVTMPFS is not set
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=y
|
||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
||||
CONFIG_EXTRA_FIRMWARE=""
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
# CONFIG_DEBUG_DEVRES is not set
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
# CONFIG_MTD is not set
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
# CONFIG_BLK_DEV_LOOP is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
# CONFIG_BLK_DEV_XIP is not set
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
# CONFIG_SCSI is not set
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_PHONE is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||
# CONFIG_INPUT_POLLDEV is not set
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
#
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_INPUT_EVBUG is not set
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
#
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_INPUT_MISC is not set
|
||||
|
||||
#
|
||||
# Hardware I/O ports
|
||||
#
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
|
||||
#
|
||||
# Character devices
|
||||
#
|
||||
CONFIG_VT=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_DEVKMEM=y
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
|
||||
#
|
||||
# Serial drivers
|
||||
#
|
||||
# CONFIG_SERIAL_8250 is not set
|
||||
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
# CONFIG_SERIAL_AMBA_PL010 is not set
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_R3964 is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_I2C is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
|
||||
#
|
||||
# SPI Master Controller Drivers
|
||||
#
|
||||
# CONFIG_SPI_BITBANG is not set
|
||||
CONFIG_SPI_PL022=y
|
||||
|
||||
#
|
||||
# SPI Protocol Masters
|
||||
#
|
||||
# CONFIG_SPI_SPIDEV is not set
|
||||
# CONFIG_SPI_TLE62X0 is not set
|
||||
|
||||
#
|
||||
# PPS support
|
||||
#
|
||||
# CONFIG_PPS is not set
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
# Sonics Silicon Backplane
|
||||
#
|
||||
# CONFIG_SSB is not set
|
||||
|
||||
#
|
||||
# Multifunction device drivers
|
||||
#
|
||||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_MFD_MC13783 is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Display device support
|
||||
#
|
||||
# CONFIG_DISPLAY_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Console display driver support
|
||||
#
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
# CONFIG_SOUND is not set
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
# CONFIG_MMC is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
|
||||
#
|
||||
# TI VLYNQ
|
||||
#
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||
CONFIG_EXT2_FS_SECURITY=y
|
||||
# CONFIG_EXT2_FS_XIP is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_EXT4_FS is not set
|
||||
CONFIG_FS_MBCACHE=y
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_QUOTA is not set
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
CONFIG_GENERIC_ACL=y
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
# CONFIG_ISO9660_FS is not set
|
||||
# CONFIG_UDF_FS is not set
|
||||
|
||||
#
|
||||
# DOS/FAT/NT Filesystems
|
||||
#
|
||||
# CONFIG_MSDOS_FS is not set
|
||||
# CONFIG_VFAT_FS is not set
|
||||
# CONFIG_NTFS_FS is not set
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
CONFIG_CONFIGFS_FS=m
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
#
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_NLS is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_RT_MUTEX_TESTER is not set
|
||||
# CONFIG_DEBUG_SPINLOCK is not set
|
||||
# CONFIG_DEBUG_MUTEXES is not set
|
||||
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||
# CONFIG_PROVE_LOCKING is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
|
||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
CONFIG_DEBUG_USER=y
|
||||
CONFIG_DEBUG_ERRORS=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
#
|
||||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
# CONFIG_CRYPTO is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
# CONFIG_CRC_CCITT is not set
|
||||
# CONFIG_CRC16 is not set
|
||||
CONFIG_CRC_T10DIF=m
|
||||
# CONFIG_CRC_ITU_T is not set
|
||||
# CONFIG_CRC32 is not set
|
||||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
|
@ -331,15 +331,15 @@ static inline void outer_flush_range(unsigned long start, unsigned long end)
|
|||
* Convert calls to our calling convention.
|
||||
*/
|
||||
#define flush_cache_all() __cpuc_flush_kern_all()
|
||||
#ifndef CONFIG_CPU_CACHE_VIPT
|
||||
static inline void flush_cache_mm(struct mm_struct *mm)
|
||||
|
||||
static inline void vivt_flush_cache_mm(struct mm_struct *mm)
|
||||
{
|
||||
if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm)))
|
||||
__cpuc_flush_user_all();
|
||||
}
|
||||
|
||||
static inline void
|
||||
flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end)
|
||||
vivt_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end)
|
||||
{
|
||||
if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm)))
|
||||
__cpuc_flush_user_range(start & PAGE_MASK, PAGE_ALIGN(end),
|
||||
|
@ -347,7 +347,7 @@ flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long
|
|||
}
|
||||
|
||||
static inline void
|
||||
flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn)
|
||||
vivt_flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn)
|
||||
{
|
||||
if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {
|
||||
unsigned long addr = user_addr & PAGE_MASK;
|
||||
|
@ -356,7 +356,7 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned l
|
|||
}
|
||||
|
||||
static inline void
|
||||
flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
|
||||
vivt_flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
|
||||
unsigned long uaddr, void *kaddr,
|
||||
unsigned long len, int write)
|
||||
{
|
||||
|
@ -365,6 +365,16 @@ flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
|
|||
__cpuc_coherent_kern_range(addr, addr + len);
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CONFIG_CPU_CACHE_VIPT
|
||||
#define flush_cache_mm(mm) \
|
||||
vivt_flush_cache_mm(mm)
|
||||
#define flush_cache_range(vma,start,end) \
|
||||
vivt_flush_cache_range(vma,start,end)
|
||||
#define flush_cache_page(vma,addr,pfn) \
|
||||
vivt_flush_cache_page(vma,addr,pfn)
|
||||
#define flush_ptrace_access(vma,page,ua,ka,len,write) \
|
||||
vivt_flush_ptrace_access(vma,page,ua,ka,len,write)
|
||||
#else
|
||||
extern void flush_cache_mm(struct mm_struct *mm);
|
||||
extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end);
|
||||
|
@ -410,8 +420,6 @@ extern void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
|
|||
*/
|
||||
extern void flush_dcache_page(struct page *);
|
||||
|
||||
extern void __flush_dcache_page(struct address_space *mapping, struct page *page);
|
||||
|
||||
static inline void __flush_icache_all(void)
|
||||
{
|
||||
#ifdef CONFIG_ARM_ERRATA_411920
|
||||
|
|
|
@ -15,20 +15,15 @@
|
|||
* must not be used by drivers.
|
||||
*/
|
||||
#ifndef __arch_page_to_dma
|
||||
|
||||
#if !defined(CONFIG_HIGHMEM)
|
||||
static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)
|
||||
{
|
||||
return (dma_addr_t)__virt_to_bus((unsigned long)page_address(page));
|
||||
}
|
||||
#elif defined(__pfn_to_bus)
|
||||
static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)
|
||||
{
|
||||
return (dma_addr_t)__pfn_to_bus(page_to_pfn(page));
|
||||
}
|
||||
#else
|
||||
#error "this machine class needs to define __arch_page_to_dma to use HIGHMEM"
|
||||
#endif
|
||||
|
||||
static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr)
|
||||
{
|
||||
return pfn_to_page(__bus_to_pfn(addr));
|
||||
}
|
||||
|
||||
static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)
|
||||
{
|
||||
|
@ -45,6 +40,11 @@ static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)
|
|||
return __arch_page_to_dma(dev, page);
|
||||
}
|
||||
|
||||
static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr)
|
||||
{
|
||||
return __arch_dma_to_page(dev, addr);
|
||||
}
|
||||
|
||||
static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)
|
||||
{
|
||||
return __arch_dma_to_virt(dev, addr);
|
||||
|
@ -257,9 +257,11 @@ extern int dma_needs_bounce(struct device*, dma_addr_t, size_t);
|
|||
*/
|
||||
extern dma_addr_t dma_map_single(struct device *, void *, size_t,
|
||||
enum dma_data_direction);
|
||||
extern void dma_unmap_single(struct device *, dma_addr_t, size_t,
|
||||
enum dma_data_direction);
|
||||
extern dma_addr_t dma_map_page(struct device *, struct page *,
|
||||
unsigned long, size_t, enum dma_data_direction);
|
||||
extern void dma_unmap_single(struct device *, dma_addr_t, size_t,
|
||||
extern void dma_unmap_page(struct device *, dma_addr_t, size_t,
|
||||
enum dma_data_direction);
|
||||
|
||||
/*
|
||||
|
@ -352,7 +354,6 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
|
|||
{
|
||||
/* nothing to do */
|
||||
}
|
||||
#endif /* CONFIG_DMABOUNCE */
|
||||
|
||||
/**
|
||||
* dma_unmap_page - unmap a buffer previously mapped through dma_map_page()
|
||||
|
@ -371,8 +372,9 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
|
|||
static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
dma_unmap_single(dev, handle, size, dir);
|
||||
/* nothing to do */
|
||||
}
|
||||
#endif /* CONFIG_DMABOUNCE */
|
||||
|
||||
/**
|
||||
* dma_sync_single_range_for_cpu
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* arch/arm/include/asm/hardware/cache-tauros2.h
|
||||
*
|
||||
* Copyright (C) 2008 Marvell Semiconductor
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
extern void __init tauros2_init(void);
|
|
@ -0,0 +1,165 @@
|
|||
/*
|
||||
* linux/arch/arm/include/asm/hardware/coresight.h
|
||||
*
|
||||
* CoreSight components' registers
|
||||
*
|
||||
* Copyright (C) 2009 Nokia Corporation.
|
||||
* Alexander Shishkin
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_HARDWARE_CORESIGHT_H
|
||||
#define __ASM_HARDWARE_CORESIGHT_H
|
||||
|
||||
#define TRACER_ACCESSED_BIT 0
|
||||
#define TRACER_RUNNING_BIT 1
|
||||
#define TRACER_CYCLE_ACC_BIT 2
|
||||
#define TRACER_ACCESSED BIT(TRACER_ACCESSED_BIT)
|
||||
#define TRACER_RUNNING BIT(TRACER_RUNNING_BIT)
|
||||
#define TRACER_CYCLE_ACC BIT(TRACER_CYCLE_ACC_BIT)
|
||||
|
||||
struct tracectx {
|
||||
unsigned int etb_bufsz;
|
||||
void __iomem *etb_regs;
|
||||
void __iomem *etm_regs;
|
||||
unsigned long flags;
|
||||
int ncmppairs;
|
||||
int etm_portsz;
|
||||
struct device *dev;
|
||||
struct clk *emu_clk;
|
||||
struct mutex mutex;
|
||||
};
|
||||
|
||||
#define TRACER_TIMEOUT 10000
|
||||
|
||||
#define etm_writel(t, v, x) \
|
||||
(__raw_writel((v), (t)->etm_regs + (x)))
|
||||
#define etm_readl(t, x) (__raw_readl((t)->etm_regs + (x)))
|
||||
|
||||
/* CoreSight Management Registers */
|
||||
#define CSMR_LOCKACCESS 0xfb0
|
||||
#define CSMR_LOCKSTATUS 0xfb4
|
||||
#define CSMR_AUTHSTATUS 0xfb8
|
||||
#define CSMR_DEVID 0xfc8
|
||||
#define CSMR_DEVTYPE 0xfcc
|
||||
/* CoreSight Component Registers */
|
||||
#define CSCR_CLASS 0xff4
|
||||
|
||||
#define CSCR_PRSR 0x314
|
||||
|
||||
#define UNLOCK_MAGIC 0xc5acce55
|
||||
|
||||
/* ETM control register, "ETM Architecture", 3.3.1 */
|
||||
#define ETMR_CTRL 0
|
||||
#define ETMCTRL_POWERDOWN 1
|
||||
#define ETMCTRL_PROGRAM (1 << 10)
|
||||
#define ETMCTRL_PORTSEL (1 << 11)
|
||||
#define ETMCTRL_DO_CONTEXTID (3 << 14)
|
||||
#define ETMCTRL_PORTMASK1 (7 << 4)
|
||||
#define ETMCTRL_PORTMASK2 (1 << 21)
|
||||
#define ETMCTRL_PORTMASK (ETMCTRL_PORTMASK1 | ETMCTRL_PORTMASK2)
|
||||
#define ETMCTRL_PORTSIZE(x) ((((x) & 7) << 4) | (!!((x) & 8)) << 21)
|
||||
#define ETMCTRL_DO_CPRT (1 << 1)
|
||||
#define ETMCTRL_DATAMASK (3 << 2)
|
||||
#define ETMCTRL_DATA_DO_DATA (1 << 2)
|
||||
#define ETMCTRL_DATA_DO_ADDR (1 << 3)
|
||||
#define ETMCTRL_DATA_DO_BOTH (ETMCTRL_DATA_DO_DATA | ETMCTRL_DATA_DO_ADDR)
|
||||
#define ETMCTRL_BRANCH_OUTPUT (1 << 8)
|
||||
#define ETMCTRL_CYCLEACCURATE (1 << 12)
|
||||
|
||||
/* ETM configuration code register */
|
||||
#define ETMR_CONFCODE (0x04)
|
||||
|
||||
/* ETM trace start/stop resource control register */
|
||||
#define ETMR_TRACESSCTRL (0x18)
|
||||
|
||||
/* ETM trigger event register */
|
||||
#define ETMR_TRIGEVT (0x08)
|
||||
|
||||
/* address access type register bits, "ETM architecture",
|
||||
* table 3-27 */
|
||||
/* - access type */
|
||||
#define ETMAAT_IFETCH 0
|
||||
#define ETMAAT_IEXEC 1
|
||||
#define ETMAAT_IEXECPASS 2
|
||||
#define ETMAAT_IEXECFAIL 3
|
||||
#define ETMAAT_DLOADSTORE 4
|
||||
#define ETMAAT_DLOAD 5
|
||||
#define ETMAAT_DSTORE 6
|
||||
/* - comparison access size */
|
||||
#define ETMAAT_JAVA (0 << 3)
|
||||
#define ETMAAT_THUMB (1 << 3)
|
||||
#define ETMAAT_ARM (3 << 3)
|
||||
/* - data value comparison control */
|
||||
#define ETMAAT_NOVALCMP (0 << 5)
|
||||
#define ETMAAT_VALMATCH (1 << 5)
|
||||
#define ETMAAT_VALNOMATCH (3 << 5)
|
||||
/* - exact match */
|
||||
#define ETMAAT_EXACTMATCH (1 << 7)
|
||||
/* - context id comparator control */
|
||||
#define ETMAAT_IGNCONTEXTID (0 << 8)
|
||||
#define ETMAAT_VALUE1 (1 << 8)
|
||||
#define ETMAAT_VALUE2 (2 << 8)
|
||||
#define ETMAAT_VALUE3 (3 << 8)
|
||||
/* - security level control */
|
||||
#define ETMAAT_IGNSECURITY (0 << 10)
|
||||
#define ETMAAT_NSONLY (1 << 10)
|
||||
#define ETMAAT_SONLY (2 << 10)
|
||||
|
||||
#define ETMR_COMP_VAL(x) (0x40 + (x) * 4)
|
||||
#define ETMR_COMP_ACC_TYPE(x) (0x80 + (x) * 4)
|
||||
|
||||
/* ETM status register, "ETM Architecture", 3.3.2 */
|
||||
#define ETMR_STATUS (0x10)
|
||||
#define ETMST_OVERFLOW (1 << 0)
|
||||
#define ETMST_PROGBIT (1 << 1)
|
||||
#define ETMST_STARTSTOP (1 << 2)
|
||||
#define ETMST_TRIGGER (1 << 3)
|
||||
|
||||
#define etm_progbit(t) (etm_readl((t), ETMR_STATUS) & ETMST_PROGBIT)
|
||||
#define etm_started(t) (etm_readl((t), ETMR_STATUS) & ETMST_STARTSTOP)
|
||||
#define etm_triggered(t) (etm_readl((t), ETMR_STATUS) & ETMST_TRIGGER)
|
||||
|
||||
#define ETMR_TRACEENCTRL2 0x1c
|
||||
#define ETMR_TRACEENCTRL 0x24
|
||||
#define ETMTE_INCLEXCL (1 << 24)
|
||||
#define ETMR_TRACEENEVT 0x20
|
||||
#define ETMCTRL_OPTS (ETMCTRL_DO_CPRT | \
|
||||
ETMCTRL_DATA_DO_ADDR | \
|
||||
ETMCTRL_BRANCH_OUTPUT | \
|
||||
ETMCTRL_DO_CONTEXTID)
|
||||
|
||||
/* ETB registers, "CoreSight Components TRM", 9.3 */
|
||||
#define ETBR_DEPTH 0x04
|
||||
#define ETBR_STATUS 0x0c
|
||||
#define ETBR_READMEM 0x10
|
||||
#define ETBR_READADDR 0x14
|
||||
#define ETBR_WRITEADDR 0x18
|
||||
#define ETBR_TRIGGERCOUNT 0x1c
|
||||
#define ETBR_CTRL 0x20
|
||||
#define ETBR_FORMATTERCTRL 0x304
|
||||
#define ETBFF_ENFTC 1
|
||||
#define ETBFF_ENFCONT (1 << 1)
|
||||
#define ETBFF_FONFLIN (1 << 4)
|
||||
#define ETBFF_MANUAL_FLUSH (1 << 6)
|
||||
#define ETBFF_TRIGIN (1 << 8)
|
||||
#define ETBFF_TRIGEVT (1 << 9)
|
||||
#define ETBFF_TRIGFL (1 << 10)
|
||||
|
||||
#define etb_writel(t, v, x) \
|
||||
(__raw_writel((v), (t)->etb_regs + (x)))
|
||||
#define etb_readl(t, x) (__raw_readl((t)->etb_regs + (x)))
|
||||
|
||||
#define etm_lock(t) do { etm_writel((t), 0, CSMR_LOCKACCESS); } while (0)
|
||||
#define etm_unlock(t) \
|
||||
do { etm_writel((t), UNLOCK_MAGIC, CSMR_LOCKACCESS); } while (0)
|
||||
|
||||
#define etb_lock(t) do { etb_writel((t), 0, CSMR_LOCKACCESS); } while (0)
|
||||
#define etb_unlock(t) \
|
||||
do { etb_writel((t), UNLOCK_MAGIC, CSMR_LOCKACCESS); } while (0)
|
||||
|
||||
#endif /* __ASM_HARDWARE_CORESIGHT_H */
|
||||
|
|
@ -234,7 +234,13 @@ extern int iop3xx_get_init_atu(void);
|
|||
void iop3xx_map_io(void);
|
||||
void iop_init_cp6_handler(void);
|
||||
void iop_init_time(unsigned long tickrate);
|
||||
unsigned long iop_gettimeoffset(void);
|
||||
|
||||
static inline u32 read_tmr0(void)
|
||||
{
|
||||
u32 val;
|
||||
asm volatile("mrc p6, 0, %0, c0, c1, 0" : "=r" (val));
|
||||
return val;
|
||||
}
|
||||
|
||||
static inline void write_tmr0(u32 val)
|
||||
{
|
||||
|
@ -253,6 +259,11 @@ static inline u32 read_tcr0(void)
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline void write_tcr0(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c2, c1, 0" : : "r" (val));
|
||||
}
|
||||
|
||||
static inline u32 read_tcr1(void)
|
||||
{
|
||||
u32 val;
|
||||
|
@ -260,6 +271,11 @@ static inline u32 read_tcr1(void)
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline void write_tcr1(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c3, c1, 0" : : "r" (val));
|
||||
}
|
||||
|
||||
static inline void write_trr0(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c4, c1, 0" : : "r" (val));
|
||||
|
|
|
@ -125,8 +125,10 @@
|
|||
* private definitions which should NOT be used outside memory.h
|
||||
* files. Use virt_to_phys/phys_to_virt/__pa/__va instead.
|
||||
*/
|
||||
#ifndef __virt_to_phys
|
||||
#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET)
|
||||
#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Convert a physical address to a Page Frame Number and back
|
||||
|
@ -134,6 +136,12 @@
|
|||
#define __phys_to_pfn(paddr) ((paddr) >> PAGE_SHIFT)
|
||||
#define __pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT)
|
||||
|
||||
/*
|
||||
* Convert a page to/from a physical address
|
||||
*/
|
||||
#define page_to_phys(page) (__pfn_to_phys(page_to_pfn(page)))
|
||||
#define phys_to_page(phys) (pfn_to_page(__phys_to_pfn(phys)))
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/*
|
||||
|
@ -194,7 +202,8 @@ static inline void *phys_to_virt(unsigned long x)
|
|||
#ifndef __virt_to_bus
|
||||
#define __virt_to_bus __virt_to_phys
|
||||
#define __bus_to_virt __phys_to_virt
|
||||
#define __pfn_to_bus(x) ((x) << PAGE_SHIFT)
|
||||
#define __pfn_to_bus(x) __pfn_to_phys(x)
|
||||
#define __bus_to_pfn(x) __phys_to_pfn(x)
|
||||
#endif
|
||||
|
||||
static inline __deprecated unsigned long virt_to_bus(void *x)
|
||||
|
@ -292,11 +301,6 @@ static inline __deprecated void *bus_to_virt(unsigned long x)
|
|||
|
||||
#endif /* !CONFIG_DISCONTIGMEM */
|
||||
|
||||
/*
|
||||
* For BIO. "will die". Kill me when bio_to_phys() and bvec_to_phys() die.
|
||||
*/
|
||||
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
|
||||
|
||||
/*
|
||||
* Optional coherency support. Currently used only by selected
|
||||
* Intel XSC3-based systems.
|
||||
|
|
|
@ -304,13 +304,23 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG);
|
|||
|
||||
static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
|
||||
|
||||
#define __pgprot_modify(prot,mask,bits) \
|
||||
__pgprot((pgprot_val(prot) & ~(mask)) | (bits))
|
||||
|
||||
/*
|
||||
* Mark the prot value as uncacheable and unbufferable.
|
||||
*/
|
||||
#define pgprot_noncached(prot) \
|
||||
__pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_UNCACHED)
|
||||
__pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED)
|
||||
#define pgprot_writecombine(prot) \
|
||||
__pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_BUFFERABLE)
|
||||
__pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE)
|
||||
#if __LINUX_ARM_ARCH__ >= 7
|
||||
#define pgprot_dmacoherent(prot) \
|
||||
__pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_BUFFERABLE)
|
||||
#else
|
||||
#define pgprot_dmacoherent(prot) \
|
||||
__pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_UNCACHED)
|
||||
#endif
|
||||
|
||||
#define pmd_none(pmd) (!pmd_val(pmd))
|
||||
#define pmd_present(pmd) (pmd_val(pmd))
|
||||
|
|
|
@ -22,6 +22,24 @@
|
|||
# define __SWAB_64_THRU_32__
|
||||
#endif
|
||||
|
||||
#if defined(__KERNEL__) && __LINUX_ARM_ARCH__ >= 6
|
||||
|
||||
static inline __attribute_const__ __u16 __arch_swab16(__u16 x)
|
||||
{
|
||||
__asm__ ("rev16 %0, %1" : "=r" (x) : "r" (x));
|
||||
return x;
|
||||
}
|
||||
#define __arch_swab16 __arch_swab16
|
||||
|
||||
static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
|
||||
{
|
||||
__asm__ ("rev %0, %1" : "=r" (x) : "r" (x));
|
||||
return x;
|
||||
}
|
||||
#define __arch_swab32 __arch_swab32
|
||||
|
||||
#else
|
||||
|
||||
static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
|
||||
{
|
||||
__u32 t;
|
||||
|
@ -48,3 +66,4 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
|
|||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -138,21 +138,26 @@ extern unsigned int user_debug;
|
|||
#define dmb() __asm__ __volatile__ ("" : : : "memory")
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
#if __LINUX_ARM_ARCH__ >= 7 || defined(CONFIG_SMP)
|
||||
#define mb() dmb()
|
||||
#define rmb() dmb()
|
||||
#define wmb() dmb()
|
||||
#else
|
||||
#define mb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
|
||||
#define rmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
|
||||
#define wmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
#define smp_mb() barrier()
|
||||
#define smp_rmb() barrier()
|
||||
#define smp_wmb() barrier()
|
||||
#else
|
||||
#define mb() dmb()
|
||||
#define rmb() dmb()
|
||||
#define wmb() dmb()
|
||||
#define smp_mb() dmb()
|
||||
#define smp_rmb() dmb()
|
||||
#define smp_wmb() dmb()
|
||||
#define smp_mb() mb()
|
||||
#define smp_rmb() rmb()
|
||||
#define smp_wmb() wmb()
|
||||
#endif
|
||||
|
||||
#define read_barrier_depends() do { } while(0)
|
||||
#define smp_read_barrier_depends() do { } while(0)
|
||||
|
||||
|
|
|
@ -17,6 +17,8 @@ obj-y := compat.o elf.o entry-armv.o entry-common.o irq.o \
|
|||
process.o ptrace.o return_address.o setup.o signal.o \
|
||||
sys_arm.o stacktrace.o time.o traps.o
|
||||
|
||||
obj-$(CONFIG_OC_ETM) += etm.o
|
||||
|
||||
obj-$(CONFIG_ISA_DMA_API) += dma.o
|
||||
obj-$(CONFIG_ARCH_ACORN) += ecard.o
|
||||
obj-$(CONFIG_FIQ) += fiq.o
|
||||
|
|
|
@ -0,0 +1,641 @@
|
|||
/*
|
||||
* linux/arch/arm/kernel/etm.c
|
||||
*
|
||||
* Driver for ARM's Embedded Trace Macrocell and Embedded Trace Buffer.
|
||||
*
|
||||
* Copyright (C) 2009 Nokia Corporation.
|
||||
* Alexander Shishkin
|
||||
*
|
||||
* 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 <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/sysrq.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/amba/bus.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <asm/hardware/coresight.h>
|
||||
#include <asm/sections.h>
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Alexander Shishkin");
|
||||
|
||||
static struct tracectx tracer;
|
||||
|
||||
static inline bool trace_isrunning(struct tracectx *t)
|
||||
{
|
||||
return !!(t->flags & TRACER_RUNNING);
|
||||
}
|
||||
|
||||
static int etm_setup_address_range(struct tracectx *t, int n,
|
||||
unsigned long start, unsigned long end, int exclude, int data)
|
||||
{
|
||||
u32 flags = ETMAAT_ARM | ETMAAT_IGNCONTEXTID | ETMAAT_NSONLY | \
|
||||
ETMAAT_NOVALCMP;
|
||||
|
||||
if (n < 1 || n > t->ncmppairs)
|
||||
return -EINVAL;
|
||||
|
||||
/* comparators and ranges are numbered starting with 1 as opposed
|
||||
* to bits in a word */
|
||||
n--;
|
||||
|
||||
if (data)
|
||||
flags |= ETMAAT_DLOADSTORE;
|
||||
else
|
||||
flags |= ETMAAT_IEXEC;
|
||||
|
||||
/* first comparator for the range */
|
||||
etm_writel(t, flags, ETMR_COMP_ACC_TYPE(n * 2));
|
||||
etm_writel(t, start, ETMR_COMP_VAL(n * 2));
|
||||
|
||||
/* second comparator is right next to it */
|
||||
etm_writel(t, flags, ETMR_COMP_ACC_TYPE(n * 2 + 1));
|
||||
etm_writel(t, end, ETMR_COMP_VAL(n * 2 + 1));
|
||||
|
||||
flags = exclude ? ETMTE_INCLEXCL : 0;
|
||||
etm_writel(t, flags | (1 << n), ETMR_TRACEENCTRL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int trace_start(struct tracectx *t)
|
||||
{
|
||||
u32 v;
|
||||
unsigned long timeout = TRACER_TIMEOUT;
|
||||
|
||||
etb_unlock(t);
|
||||
|
||||
etb_writel(t, 0, ETBR_FORMATTERCTRL);
|
||||
etb_writel(t, 1, ETBR_CTRL);
|
||||
|
||||
etb_lock(t);
|
||||
|
||||
/* configure etm */
|
||||
v = ETMCTRL_OPTS | ETMCTRL_PROGRAM | ETMCTRL_PORTSIZE(t->etm_portsz);
|
||||
|
||||
if (t->flags & TRACER_CYCLE_ACC)
|
||||
v |= ETMCTRL_CYCLEACCURATE;
|
||||
|
||||
etm_unlock(t);
|
||||
|
||||
etm_writel(t, v, ETMR_CTRL);
|
||||
|
||||
while (!(etm_readl(t, ETMR_CTRL) & ETMCTRL_PROGRAM) && --timeout)
|
||||
;
|
||||
if (!timeout) {
|
||||
dev_dbg(t->dev, "Waiting for progbit to assert timed out\n");
|
||||
etm_lock(t);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
etm_setup_address_range(t, 1, (unsigned long)_stext,
|
||||
(unsigned long)_etext, 0, 0);
|
||||
etm_writel(t, 0, ETMR_TRACEENCTRL2);
|
||||
etm_writel(t, 0, ETMR_TRACESSCTRL);
|
||||
etm_writel(t, 0x6f, ETMR_TRACEENEVT);
|
||||
|
||||
v &= ~ETMCTRL_PROGRAM;
|
||||
v |= ETMCTRL_PORTSEL;
|
||||
|
||||
etm_writel(t, v, ETMR_CTRL);
|
||||
|
||||
timeout = TRACER_TIMEOUT;
|
||||
while (etm_readl(t, ETMR_CTRL) & ETMCTRL_PROGRAM && --timeout)
|
||||
;
|
||||
if (!timeout) {
|
||||
dev_dbg(t->dev, "Waiting for progbit to deassert timed out\n");
|
||||
etm_lock(t);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
etm_lock(t);
|
||||
|
||||
t->flags |= TRACER_RUNNING;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int trace_stop(struct tracectx *t)
|
||||
{
|
||||
unsigned long timeout = TRACER_TIMEOUT;
|
||||
|
||||
etm_unlock(t);
|
||||
|
||||
etm_writel(t, 0x440, ETMR_CTRL);
|
||||
while (!(etm_readl(t, ETMR_CTRL) & ETMCTRL_PROGRAM) && --timeout)
|
||||
;
|
||||
if (!timeout) {
|
||||
dev_dbg(t->dev, "Waiting for progbit to assert timed out\n");
|
||||
etm_lock(t);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
etm_lock(t);
|
||||
|
||||
etb_unlock(t);
|
||||
etb_writel(t, ETBFF_MANUAL_FLUSH, ETBR_FORMATTERCTRL);
|
||||
|
||||
timeout = TRACER_TIMEOUT;
|
||||
while (etb_readl(t, ETBR_FORMATTERCTRL) &
|
||||
ETBFF_MANUAL_FLUSH && --timeout)
|
||||
;
|
||||
if (!timeout) {
|
||||
dev_dbg(t->dev, "Waiting for formatter flush to commence "
|
||||
"timed out\n");
|
||||
etb_lock(t);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
etb_writel(t, 0, ETBR_CTRL);
|
||||
|
||||
etb_lock(t);
|
||||
|
||||
t->flags &= ~TRACER_RUNNING;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int etb_getdatalen(struct tracectx *t)
|
||||
{
|
||||
u32 v;
|
||||
int rp, wp;
|
||||
|
||||
v = etb_readl(t, ETBR_STATUS);
|
||||
|
||||
if (v & 1)
|
||||
return t->etb_bufsz;
|
||||
|
||||
rp = etb_readl(t, ETBR_READADDR);
|
||||
wp = etb_readl(t, ETBR_WRITEADDR);
|
||||
|
||||
if (rp > wp) {
|
||||
etb_writel(t, 0, ETBR_READADDR);
|
||||
etb_writel(t, 0, ETBR_WRITEADDR);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return wp - rp;
|
||||
}
|
||||
|
||||
/* sysrq+v will always stop the running trace and leave it at that */
|
||||
static void etm_dump(void)
|
||||
{
|
||||
struct tracectx *t = &tracer;
|
||||
u32 first = 0;
|
||||
int length;
|
||||
|
||||
if (!t->etb_regs) {
|
||||
printk(KERN_INFO "No tracing hardware found\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (trace_isrunning(t))
|
||||
trace_stop(t);
|
||||
|
||||
etb_unlock(t);
|
||||
|
||||
length = etb_getdatalen(t);
|
||||
|
||||
if (length == t->etb_bufsz)
|
||||
first = etb_readl(t, ETBR_WRITEADDR);
|
||||
|
||||
etb_writel(t, first, ETBR_READADDR);
|
||||
|
||||
printk(KERN_INFO "Trace buffer contents length: %d\n", length);
|
||||
printk(KERN_INFO "--- ETB buffer begin ---\n");
|
||||
for (; length; length--)
|
||||
printk("%08x", cpu_to_be32(etb_readl(t, ETBR_READMEM)));
|
||||
printk(KERN_INFO "\n--- ETB buffer end ---\n");
|
||||
|
||||
/* deassert the overflow bit */
|
||||
etb_writel(t, 1, ETBR_CTRL);
|
||||
etb_writel(t, 0, ETBR_CTRL);
|
||||
|
||||
etb_writel(t, 0, ETBR_TRIGGERCOUNT);
|
||||
etb_writel(t, 0, ETBR_READADDR);
|
||||
etb_writel(t, 0, ETBR_WRITEADDR);
|
||||
|
||||
etb_lock(t);
|
||||
}
|
||||
|
||||
static void sysrq_etm_dump(int key, struct tty_struct *tty)
|
||||
{
|
||||
dev_dbg(tracer.dev, "Dumping ETB buffer\n");
|
||||
etm_dump();
|
||||
}
|
||||
|
||||
static struct sysrq_key_op sysrq_etm_op = {
|
||||
.handler = sysrq_etm_dump,
|
||||
.help_msg = "ETM buffer dump",
|
||||
.action_msg = "etm",
|
||||
};
|
||||
|
||||
static int etb_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (!tracer.etb_regs)
|
||||
return -ENODEV;
|
||||
|
||||
file->private_data = &tracer;
|
||||
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
static ssize_t etb_read(struct file *file, char __user *data,
|
||||
size_t len, loff_t *ppos)
|
||||
{
|
||||
int total, i;
|
||||
long length;
|
||||
struct tracectx *t = file->private_data;
|
||||
u32 first = 0;
|
||||
u32 *buf;
|
||||
|
||||
mutex_lock(&t->mutex);
|
||||
|
||||
if (trace_isrunning(t)) {
|
||||
length = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
etb_unlock(t);
|
||||
|
||||
total = etb_getdatalen(t);
|
||||
if (total == t->etb_bufsz)
|
||||
first = etb_readl(t, ETBR_WRITEADDR);
|
||||
|
||||
etb_writel(t, first, ETBR_READADDR);
|
||||
|
||||
length = min(total * 4, (int)len);
|
||||
buf = vmalloc(length);
|
||||
|
||||
dev_dbg(t->dev, "ETB buffer length: %d\n", total);
|
||||
dev_dbg(t->dev, "ETB status reg: %x\n", etb_readl(t, ETBR_STATUS));
|
||||
for (i = 0; i < length / 4; i++)
|
||||
buf[i] = etb_readl(t, ETBR_READMEM);
|
||||
|
||||
/* the only way to deassert overflow bit in ETB status is this */
|
||||
etb_writel(t, 1, ETBR_CTRL);
|
||||
etb_writel(t, 0, ETBR_CTRL);
|
||||
|
||||
etb_writel(t, 0, ETBR_WRITEADDR);
|
||||
etb_writel(t, 0, ETBR_READADDR);
|
||||
etb_writel(t, 0, ETBR_TRIGGERCOUNT);
|
||||
|
||||
etb_lock(t);
|
||||
|
||||
length -= copy_to_user(data, buf, length);
|
||||
vfree(buf);
|
||||
|
||||
out:
|
||||
mutex_unlock(&t->mutex);
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
static int etb_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
/* there's nothing to do here, actually */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations etb_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.read = etb_read,
|
||||
.open = etb_open,
|
||||
.release = etb_release,
|
||||
};
|
||||
|
||||
static struct miscdevice etb_miscdev = {
|
||||
.name = "tracebuf",
|
||||
.minor = 0,
|
||||
.fops = &etb_fops,
|
||||
};
|
||||
|
||||
static int __init etb_probe(struct amba_device *dev, struct amba_id *id)
|
||||
{
|
||||
struct tracectx *t = &tracer;
|
||||
int ret = 0;
|
||||
|
||||
ret = amba_request_regions(dev, NULL);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
t->etb_regs = ioremap_nocache(dev->res.start, resource_size(&dev->res));
|
||||
if (!t->etb_regs) {
|
||||
ret = -ENOMEM;
|
||||
goto out_release;
|
||||
}
|
||||
|
||||
amba_set_drvdata(dev, t);
|
||||
|
||||
etb_miscdev.parent = &dev->dev;
|
||||
|
||||
ret = misc_register(&etb_miscdev);
|
||||
if (ret)
|
||||
goto out_unmap;
|
||||
|
||||
t->emu_clk = clk_get(&dev->dev, "emu_src_ck");
|
||||
if (IS_ERR(t->emu_clk)) {
|
||||
dev_dbg(&dev->dev, "Failed to obtain emu_src_ck.\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
clk_enable(t->emu_clk);
|
||||
|
||||
etb_unlock(t);
|
||||
t->etb_bufsz = etb_readl(t, ETBR_DEPTH);
|
||||
dev_dbg(&dev->dev, "Size: %x\n", t->etb_bufsz);
|
||||
|
||||
/* make sure trace capture is disabled */
|
||||
etb_writel(t, 0, ETBR_CTRL);
|
||||
etb_writel(t, 0x1000, ETBR_FORMATTERCTRL);
|
||||
etb_lock(t);
|
||||
|
||||
dev_dbg(&dev->dev, "ETB AMBA driver initialized.\n");
|
||||
|
||||
out:
|
||||
return ret;
|
||||
|
||||
out_unmap:
|
||||
amba_set_drvdata(dev, NULL);
|
||||
iounmap(t->etb_regs);
|
||||
|
||||
out_release:
|
||||
amba_release_regions(dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int etb_remove(struct amba_device *dev)
|
||||
{
|
||||
struct tracectx *t = amba_get_drvdata(dev);
|
||||
|
||||
amba_set_drvdata(dev, NULL);
|
||||
|
||||
iounmap(t->etb_regs);
|
||||
t->etb_regs = NULL;
|
||||
|
||||
clk_disable(t->emu_clk);
|
||||
clk_put(t->emu_clk);
|
||||
|
||||
amba_release_regions(dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct amba_id etb_ids[] = {
|
||||
{
|
||||
.id = 0x0003b907,
|
||||
.mask = 0x0007ffff,
|
||||
},
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
static struct amba_driver etb_driver = {
|
||||
.drv = {
|
||||
.name = "etb",
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
.probe = etb_probe,
|
||||
.remove = etb_remove,
|
||||
.id_table = etb_ids,
|
||||
};
|
||||
|
||||
/* use a sysfs file "trace_running" to start/stop tracing */
|
||||
static ssize_t trace_running_show(struct kobject *kobj,
|
||||
struct kobj_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
return sprintf(buf, "%x\n", trace_isrunning(&tracer));
|
||||
}
|
||||
|
||||
static ssize_t trace_running_store(struct kobject *kobj,
|
||||
struct kobj_attribute *attr,
|
||||
const char *buf, size_t n)
|
||||
{
|
||||
unsigned int value;
|
||||
int ret;
|
||||
|
||||
if (sscanf(buf, "%u", &value) != 1)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&tracer.mutex);
|
||||
ret = value ? trace_start(&tracer) : trace_stop(&tracer);
|
||||
mutex_unlock(&tracer.mutex);
|
||||
|
||||
return ret ? : n;
|
||||
}
|
||||
|
||||
static struct kobj_attribute trace_running_attr =
|
||||
__ATTR(trace_running, 0644, trace_running_show, trace_running_store);
|
||||
|
||||
static ssize_t trace_info_show(struct kobject *kobj,
|
||||
struct kobj_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
u32 etb_wa, etb_ra, etb_st, etb_fc, etm_ctrl, etm_st;
|
||||
int datalen;
|
||||
|
||||
etb_unlock(&tracer);
|
||||
datalen = etb_getdatalen(&tracer);
|
||||
etb_wa = etb_readl(&tracer, ETBR_WRITEADDR);
|
||||
etb_ra = etb_readl(&tracer, ETBR_READADDR);
|
||||
etb_st = etb_readl(&tracer, ETBR_STATUS);
|
||||
etb_fc = etb_readl(&tracer, ETBR_FORMATTERCTRL);
|
||||
etb_lock(&tracer);
|
||||
|
||||
etm_unlock(&tracer);
|
||||
etm_ctrl = etm_readl(&tracer, ETMR_CTRL);
|
||||
etm_st = etm_readl(&tracer, ETMR_STATUS);
|
||||
etm_lock(&tracer);
|
||||
|
||||
return sprintf(buf, "Trace buffer len: %d\nComparator pairs: %d\n"
|
||||
"ETBR_WRITEADDR:\t%08x\n"
|
||||
"ETBR_READADDR:\t%08x\n"
|
||||
"ETBR_STATUS:\t%08x\n"
|
||||
"ETBR_FORMATTERCTRL:\t%08x\n"
|
||||
"ETMR_CTRL:\t%08x\n"
|
||||
"ETMR_STATUS:\t%08x\n",
|
||||
datalen,
|
||||
tracer.ncmppairs,
|
||||
etb_wa,
|
||||
etb_ra,
|
||||
etb_st,
|
||||
etb_fc,
|
||||
etm_ctrl,
|
||||
etm_st
|
||||
);
|
||||
}
|
||||
|
||||
static struct kobj_attribute trace_info_attr =
|
||||
__ATTR(trace_info, 0444, trace_info_show, NULL);
|
||||
|
||||
static ssize_t trace_mode_show(struct kobject *kobj,
|
||||
struct kobj_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
return sprintf(buf, "%d %d\n",
|
||||
!!(tracer.flags & TRACER_CYCLE_ACC),
|
||||
tracer.etm_portsz);
|
||||
}
|
||||
|
||||
static ssize_t trace_mode_store(struct kobject *kobj,
|
||||
struct kobj_attribute *attr,
|
||||
const char *buf, size_t n)
|
||||
{
|
||||
unsigned int cycacc, portsz;
|
||||
|
||||
if (sscanf(buf, "%u %u", &cycacc, &portsz) != 2)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&tracer.mutex);
|
||||
if (cycacc)
|
||||
tracer.flags |= TRACER_CYCLE_ACC;
|
||||
else
|
||||
tracer.flags &= ~TRACER_CYCLE_ACC;
|
||||
|
||||
tracer.etm_portsz = portsz & 0x0f;
|
||||
mutex_unlock(&tracer.mutex);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
static struct kobj_attribute trace_mode_attr =
|
||||
__ATTR(trace_mode, 0644, trace_mode_show, trace_mode_store);
|
||||
|
||||
static int __init etm_probe(struct amba_device *dev, struct amba_id *id)
|
||||
{
|
||||
struct tracectx *t = &tracer;
|
||||
int ret = 0;
|
||||
|
||||
if (t->etm_regs) {
|
||||
dev_dbg(&dev->dev, "ETM already initialized\n");
|
||||
ret = -EBUSY;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = amba_request_regions(dev, NULL);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
t->etm_regs = ioremap_nocache(dev->res.start, resource_size(&dev->res));
|
||||
if (!t->etm_regs) {
|
||||
ret = -ENOMEM;
|
||||
goto out_release;
|
||||
}
|
||||
|
||||
amba_set_drvdata(dev, t);
|
||||
|
||||
mutex_init(&t->mutex);
|
||||
t->dev = &dev->dev;
|
||||
t->flags = TRACER_CYCLE_ACC;
|
||||
t->etm_portsz = 1;
|
||||
|
||||
etm_unlock(t);
|
||||
ret = etm_readl(t, CSCR_PRSR);
|
||||
|
||||
t->ncmppairs = etm_readl(t, ETMR_CONFCODE) & 0xf;
|
||||
etm_writel(t, 0x440, ETMR_CTRL);
|
||||
etm_lock(t);
|
||||
|
||||
ret = sysfs_create_file(&dev->dev.kobj,
|
||||
&trace_running_attr.attr);
|
||||
if (ret)
|
||||
goto out_unmap;
|
||||
|
||||
/* failing to create any of these two is not fatal */
|
||||
ret = sysfs_create_file(&dev->dev.kobj, &trace_info_attr.attr);
|
||||
if (ret)
|
||||
dev_dbg(&dev->dev, "Failed to create trace_info in sysfs\n");
|
||||
|
||||
ret = sysfs_create_file(&dev->dev.kobj, &trace_mode_attr.attr);
|
||||
if (ret)
|
||||
dev_dbg(&dev->dev, "Failed to create trace_mode in sysfs\n");
|
||||
|
||||
dev_dbg(t->dev, "ETM AMBA driver initialized.\n");
|
||||
|
||||
out:
|
||||
return ret;
|
||||
|
||||
out_unmap:
|
||||
amba_set_drvdata(dev, NULL);
|
||||
iounmap(t->etm_regs);
|
||||
|
||||
out_release:
|
||||
amba_release_regions(dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int etm_remove(struct amba_device *dev)
|
||||
{
|
||||
struct tracectx *t = amba_get_drvdata(dev);
|
||||
|
||||
amba_set_drvdata(dev, NULL);
|
||||
|
||||
iounmap(t->etm_regs);
|
||||
t->etm_regs = NULL;
|
||||
|
||||
amba_release_regions(dev);
|
||||
|
||||
sysfs_remove_file(&dev->dev.kobj, &trace_running_attr.attr);
|
||||
sysfs_remove_file(&dev->dev.kobj, &trace_info_attr.attr);
|
||||
sysfs_remove_file(&dev->dev.kobj, &trace_mode_attr.attr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct amba_id etm_ids[] = {
|
||||
{
|
||||
.id = 0x0003b921,
|
||||
.mask = 0x0007ffff,
|
||||
},
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
static struct amba_driver etm_driver = {
|
||||
.drv = {
|
||||
.name = "etm",
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
.probe = etm_probe,
|
||||
.remove = etm_remove,
|
||||
.id_table = etm_ids,
|
||||
};
|
||||
|
||||
static int __init etm_init(void)
|
||||
{
|
||||
int retval;
|
||||
|
||||
retval = amba_driver_register(&etb_driver);
|
||||
if (retval) {
|
||||
printk(KERN_ERR "Failed to register etb\n");
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = amba_driver_register(&etm_driver);
|
||||
if (retval) {
|
||||
amba_driver_unregister(&etb_driver);
|
||||
printk(KERN_ERR "Failed to probe etm\n");
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* not being able to install this handler is not fatal */
|
||||
(void)register_sysrq_key('v', &sysrq_etm_op);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
device_initcall(etm_init);
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
* numbers for r1.
|
||||
*
|
||||
*/
|
||||
.section ".text.head", "ax"
|
||||
__HEAD
|
||||
ENTRY(stext)
|
||||
setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
|
||||
@ and irqs disabled
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
* crap here - that's what the boot loader (or in extreme, well justified
|
||||
* circumstances, zImage) is for.
|
||||
*/
|
||||
.section ".text.head", "ax"
|
||||
__HEAD
|
||||
ENTRY(stext)
|
||||
setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
|
||||
@ and irqs disabled
|
||||
|
|
|
@ -24,13 +24,11 @@ SECTIONS
|
|||
#else
|
||||
. = PAGE_OFFSET + TEXT_OFFSET;
|
||||
#endif
|
||||
.text.head : {
|
||||
_stext = .;
|
||||
_sinittext = .;
|
||||
*(.text.head)
|
||||
}
|
||||
|
||||
.init : { /* Init code and data */
|
||||
_stext = .;
|
||||
_sinittext = .;
|
||||
HEAD_TEXT
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
__proc_info_begin = .;
|
||||
|
@ -42,43 +40,31 @@ SECTIONS
|
|||
__tagtable_begin = .;
|
||||
*(.taglist.init)
|
||||
__tagtable_end = .;
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
*(.init.setup)
|
||||
__setup_end = .;
|
||||
|
||||
INIT_SETUP(16)
|
||||
|
||||
__early_begin = .;
|
||||
*(.early_param.init)
|
||||
__early_end = .;
|
||||
__initcall_start = .;
|
||||
INITCALLS
|
||||
__initcall_end = .;
|
||||
__con_initcall_start = .;
|
||||
*(.con_initcall.init)
|
||||
__con_initcall_end = .;
|
||||
__security_initcall_start = .;
|
||||
*(.security_initcall.init)
|
||||
__security_initcall_end = .;
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
. = ALIGN(32);
|
||||
__initramfs_start = .;
|
||||
usr/built-in.o(.init.ramfs)
|
||||
__initramfs_end = .;
|
||||
#endif
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__per_cpu_load = .;
|
||||
__per_cpu_start = .;
|
||||
*(.data.percpu.page_aligned)
|
||||
*(.data.percpu)
|
||||
*(.data.percpu.shared_aligned)
|
||||
__per_cpu_end = .;
|
||||
|
||||
INIT_CALLS
|
||||
CON_INITCALL
|
||||
SECURITY_INITCALL
|
||||
INIT_RAM_FS
|
||||
|
||||
#ifndef CONFIG_XIP_KERNEL
|
||||
__init_begin = _stext;
|
||||
INIT_DATA
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__init_end = .;
|
||||
#endif
|
||||
}
|
||||
|
||||
PERCPU(PAGE_SIZE)
|
||||
|
||||
#ifndef CONFIG_XIP_KERNEL
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__init_end = .;
|
||||
#endif
|
||||
|
||||
/DISCARD/ : { /* Exit code and data */
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
|
@ -157,7 +143,7 @@ SECTIONS
|
|||
* first, the init task union, aligned
|
||||
* to an 8192 byte boundary.
|
||||
*/
|
||||
*(.data.init_task)
|
||||
INIT_TASK_DATA(THREAD_SIZE)
|
||||
|
||||
#ifdef CONFIG_XIP_KERNEL
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
|
@ -167,17 +153,8 @@ SECTIONS
|
|||
__init_end = .;
|
||||
#endif
|
||||
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__nosave_begin = .;
|
||||
*(.data.nosave)
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__nosave_end = .;
|
||||
|
||||
/*
|
||||
* then the cacheline aligned data
|
||||
*/
|
||||
. = ALIGN(32);
|
||||
*(.data.cacheline_aligned)
|
||||
NOSAVE_DATA
|
||||
CACHELINE_ALIGNED_DATA(32)
|
||||
|
||||
/*
|
||||
* The exception fixup table (might need resorting at runtime)
|
||||
|
@ -256,20 +233,10 @@ SECTIONS
|
|||
}
|
||||
#endif
|
||||
|
||||
.bss : {
|
||||
__bss_start = .; /* BSS */
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_stop = .;
|
||||
_end = .;
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
BSS_SECTION(0, 0, 0)
|
||||
_end = .;
|
||||
|
||||
STABS_DEBUG
|
||||
.comment 0 : { *(.comment) }
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
if ARCH_AT91
|
||||
|
||||
config HAVE_AT91_DATAFLASH_CARD
|
||||
bool
|
||||
|
||||
config HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
bool
|
||||
|
||||
config HAVE_AT91_USART3
|
||||
bool
|
||||
|
||||
config HAVE_AT91_USART4
|
||||
bool
|
||||
|
||||
config HAVE_AT91_USART5
|
||||
bool
|
||||
|
||||
menu "Atmel AT91 System-on-Chip"
|
||||
|
||||
choice
|
||||
|
@ -10,54 +25,69 @@ config ARCH_AT91RM9200
|
|||
select CPU_ARM920T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_AT91_USART3
|
||||
|
||||
config ARCH_AT91SAM9260
|
||||
bool "AT91SAM9260 or AT91SAM9XE"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_AT91_USART3
|
||||
select HAVE_AT91_USART4
|
||||
select HAVE_AT91_USART5
|
||||
|
||||
config ARCH_AT91SAM9261
|
||||
bool "AT91SAM9261"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_FB_ATMEL
|
||||
|
||||
config ARCH_AT91SAM9G10
|
||||
bool "AT91SAM9G10"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_FB_ATMEL
|
||||
|
||||
config ARCH_AT91SAM9263
|
||||
bool "AT91SAM9263"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_FB_ATMEL
|
||||
|
||||
config ARCH_AT91SAM9RL
|
||||
bool "AT91SAM9RL"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_AT91_USART3
|
||||
select HAVE_FB_ATMEL
|
||||
|
||||
config ARCH_AT91SAM9G20
|
||||
bool "AT91SAM9G20"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_AT91_USART3
|
||||
select HAVE_AT91_USART4
|
||||
select HAVE_AT91_USART5
|
||||
|
||||
config ARCH_AT91SAM9G45
|
||||
bool "AT91SAM9G45"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_AT91_USART3
|
||||
select HAVE_FB_ATMEL
|
||||
|
||||
config ARCH_AT91CAP9
|
||||
bool "AT91CAP9"
|
||||
select CPU_ARM926T
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_FB_ATMEL
|
||||
|
||||
config ARCH_AT91X40
|
||||
bool "AT91x40"
|
||||
|
@ -76,93 +106,88 @@ comment "AT91RM9200 Board Type"
|
|||
|
||||
config MACH_ONEARM
|
||||
bool "Ajeco 1ARM Single Board Computer"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using Ajeco's 1ARM Single Board Computer.
|
||||
<http://www.ajeco.fi/products.htm>
|
||||
|
||||
config ARCH_AT91RM9200DK
|
||||
bool "Atmel AT91RM9200-DK Development board"
|
||||
depends on ARCH_AT91RM9200
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
help
|
||||
Select this if you are using Atmel's AT91RM9200-DK Development board.
|
||||
(Discontinued)
|
||||
|
||||
config MACH_AT91RM9200EK
|
||||
bool "Atmel AT91RM9200-EK Evaluation Kit"
|
||||
depends on ARCH_AT91RM9200
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
help
|
||||
Select this if you are using Atmel's AT91RM9200-EK Evaluation Kit.
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3507>
|
||||
|
||||
config MACH_CSB337
|
||||
bool "Cogent CSB337"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using Cogent's CSB337 board.
|
||||
<http://www.cogcomp.com/csb_csb337.htm>
|
||||
|
||||
config MACH_CSB637
|
||||
bool "Cogent CSB637"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using Cogent's CSB637 board.
|
||||
<http://www.cogcomp.com/csb_csb637.htm>
|
||||
|
||||
config MACH_CARMEVA
|
||||
bool "Conitec ARM&EVA"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using Conitec's AT91RM9200-MCU-Module.
|
||||
<http://www.conitec.net/english/linuxboard.htm>
|
||||
|
||||
config MACH_ATEB9200
|
||||
bool "Embest ATEB9200"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using Embest's ATEB9200 board.
|
||||
<http://www.embedinfo.com/english/product/ATEB9200.asp>
|
||||
|
||||
config MACH_KB9200
|
||||
bool "KwikByte KB920x"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using KwikByte's KB920x board.
|
||||
<http://kwikbyte.com/KB9202_description_new.htm>
|
||||
|
||||
config MACH_PICOTUX2XX
|
||||
bool "picotux 200"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using a picotux 200.
|
||||
<http://www.picotux.com/>
|
||||
|
||||
config MACH_KAFA
|
||||
bool "Sperry-Sun KAFA board"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using Sperry-Sun's KAFA board.
|
||||
|
||||
config MACH_ECBAT91
|
||||
bool "emQbit ECB_AT91 SBC"
|
||||
depends on ARCH_AT91RM9200
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
help
|
||||
Select this if you are using emQbit's ECB_AT91 board.
|
||||
<http://wiki.emqbit.com/free-ecb-at91>
|
||||
|
||||
config MACH_YL9200
|
||||
bool "ucDragon YL-9200"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using the ucDragon YL-9200 board.
|
||||
|
||||
config MACH_CPUAT91
|
||||
bool "Eukrea CPUAT91"
|
||||
depends on ARCH_AT91RM9200
|
||||
help
|
||||
Select this if you are using the Eukrea Electromatique's
|
||||
CPUAT91 board <http://www.eukrea.com/>.
|
||||
|
||||
config MACH_ECO920
|
||||
bool "eco920"
|
||||
help
|
||||
Select this if you are using the eco920 board
|
||||
|
||||
endif
|
||||
|
||||
# ----------------------------------------------------------
|
||||
|
@ -173,7 +198,6 @@ comment "AT91SAM9260 Variants"
|
|||
|
||||
config ARCH_AT91SAM9260_SAM9XE
|
||||
bool "AT91SAM9XE"
|
||||
depends on ARCH_AT91SAM9260
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9XE System-on-Chip.
|
||||
They are basically AT91SAM9260s with various sizes of embedded Flash.
|
||||
|
@ -182,28 +206,27 @@ comment "AT91SAM9260 / AT91SAM9XE Board Type"
|
|||
|
||||
config MACH_AT91SAM9260EK
|
||||
bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9260
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
|
||||
|
||||
config MACH_CAM60
|
||||
bool "KwikByte KB9260 (CAM60) board"
|
||||
depends on ARCH_AT91SAM9260
|
||||
help
|
||||
Select this if you are using KwikByte's KB9260 (CAM60) board based on the Atmel AT91SAM9260.
|
||||
<http://www.kwikbyte.com/KB9260.html>
|
||||
|
||||
config MACH_SAM9_L9260
|
||||
bool "Olimex SAM9-L9260 board"
|
||||
depends on ARCH_AT91SAM9260
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
help
|
||||
Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
|
||||
<http://www.olimex.com/dev/sam9-L9260.html>
|
||||
|
||||
config MACH_AFEB9260
|
||||
bool "Custom afeb9260 board v1"
|
||||
depends on ARCH_AT91SAM9260
|
||||
help
|
||||
Select this if you are using custom afeb9260 board based on
|
||||
open hardware design. Select this for revision 1 of the board.
|
||||
|
@ -212,21 +235,18 @@ config MACH_AFEB9260
|
|||
|
||||
config MACH_USB_A9260
|
||||
bool "CALAO USB-A9260"
|
||||
depends on ARCH_AT91SAM9260
|
||||
help
|
||||
Select this if you are using a Calao Systems USB-A9260.
|
||||
<http://www.calao-systems.com>
|
||||
|
||||
config MACH_QIL_A9260
|
||||
bool "CALAO QIL-A9260 board"
|
||||
depends on ARCH_AT91SAM9260
|
||||
help
|
||||
Select this if you are using a Calao Systems QIL-A9260 Board.
|
||||
<http://www.calao-systems.com>
|
||||
|
||||
config MACH_CPU9260
|
||||
bool "Eukrea CPU9260 board"
|
||||
depends on ARCH_AT91SAM9260
|
||||
help
|
||||
Select this if you are using a Eukrea Electromatique's
|
||||
CPU9260 Board <http://www.eukrea.com/>
|
||||
|
@ -241,7 +261,8 @@ comment "AT91SAM9261 Board Type"
|
|||
|
||||
config MACH_AT91SAM9261EK
|
||||
bool "Atmel AT91SAM9261-EK Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9261
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
|
||||
|
@ -256,7 +277,8 @@ comment "AT91SAM9G10 Board Type"
|
|||
|
||||
config MACH_AT91SAM9G10EK
|
||||
bool "Atmel AT91SAM9G10-EK Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9G10
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
|
||||
|
@ -271,21 +293,21 @@ comment "AT91SAM9263 Board Type"
|
|||
|
||||
config MACH_AT91SAM9263EK
|
||||
bool "Atmel AT91SAM9263-EK Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9263
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
|
||||
|
||||
config MACH_USB_A9263
|
||||
bool "CALAO USB-A9263"
|
||||
depends on ARCH_AT91SAM9263
|
||||
help
|
||||
Select this if you are using a Calao Systems USB-A9263.
|
||||
<http://www.calao-systems.com>
|
||||
|
||||
config MACH_NEOCORE926
|
||||
bool "Adeneo NEOCORE926"
|
||||
depends on ARCH_AT91SAM9263
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
help
|
||||
Select this if you are using the Adeneo Neocore 926 board.
|
||||
|
||||
|
@ -299,7 +321,6 @@ comment "AT91SAM9RL Board Type"
|
|||
|
||||
config MACH_AT91SAM9RLEK
|
||||
bool "Atmel AT91SAM9RL-EK Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9RL
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
|
||||
|
||||
|
@ -313,14 +334,15 @@ comment "AT91SAM9G20 Board Type"
|
|||
|
||||
config MACH_AT91SAM9G20EK
|
||||
bool "Atmel AT91SAM9G20-EK Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9G20
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
|
||||
that embeds only one SD/MMC slot.
|
||||
|
||||
config MACH_AT91SAM9G20EK_2MMC
|
||||
bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
|
||||
depends on ARCH_AT91SAM9G20
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
|
||||
with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
|
||||
|
@ -328,7 +350,6 @@ config MACH_AT91SAM9G20EK_2MMC
|
|||
|
||||
config MACH_CPU9G20
|
||||
bool "Eukrea CPU9G20 board"
|
||||
depends on ARCH_AT91SAM9G20
|
||||
help
|
||||
Select this if you are using a Eukrea Electromatique's
|
||||
CPU9G20 Board <http://www.eukrea.com/>
|
||||
|
@ -343,7 +364,7 @@ comment "AT91SAM9G45 Board Type"
|
|||
|
||||
config MACH_AT91SAM9G45EKES
|
||||
bool "Atmel AT91SAM9G45-EKES Evaluation Kit"
|
||||
depends on ARCH_AT91SAM9G45
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit.
|
||||
"ES" at the end of the name means that this board is an
|
||||
|
@ -359,7 +380,8 @@ comment "AT91CAP9 Board Type"
|
|||
|
||||
config MACH_AT91CAP9ADK
|
||||
bool "Atmel AT91CAP9A-DK Evaluation Kit"
|
||||
depends on ARCH_AT91CAP9
|
||||
select HAVE_AT91_DATAFLASH_CARD
|
||||
select HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit.
|
||||
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138>
|
||||
|
@ -388,13 +410,13 @@ comment "AT91 Board Options"
|
|||
|
||||
config MTD_AT91_DATAFLASH_CARD
|
||||
bool "Enable DataFlash Card support"
|
||||
depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_NEOCORE926)
|
||||
depends on HAVE_AT91_DATAFLASH_CARD
|
||||
help
|
||||
Enable support for the DataFlash card.
|
||||
|
||||
config MTD_NAND_ATMEL_BUSWIDTH_16
|
||||
bool "Enable 16-bit data bus interface to NAND flash"
|
||||
depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK)
|
||||
depends on HAVE_NAND_ATMEL_BUSWIDTH_16
|
||||
help
|
||||
On AT91SAM926x boards both types of NAND flash can be present
|
||||
(8 and 16 bit data bus width).
|
||||
|
@ -456,15 +478,15 @@ config AT91_EARLY_USART2
|
|||
|
||||
config AT91_EARLY_USART3
|
||||
bool "USART3"
|
||||
depends on (ARCH_AT91RM9200 || ARCH_AT91SAM9RL || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45)
|
||||
depends on HAVE_AT91_USART3
|
||||
|
||||
config AT91_EARLY_USART4
|
||||
bool "USART4"
|
||||
depends on ARCH_AT91SAM9260 || ARCH_AT91SAM9G20
|
||||
depends on HAVE_AT91_USART4
|
||||
|
||||
config AT91_EARLY_USART5
|
||||
bool "USART5"
|
||||
depends on ARCH_AT91SAM9260 || ARCH_AT91SAM9G20
|
||||
depends on HAVE_AT91_USART5
|
||||
|
||||
endchoice
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ obj-$(CONFIG_MACH_PICOTUX2XX) += board-picotux200.o
|
|||
obj-$(CONFIG_MACH_ECBAT91) += board-ecbat91.o
|
||||
obj-$(CONFIG_MACH_YL9200) += board-yl-9200.o
|
||||
obj-$(CONFIG_MACH_CPUAT91) += board-cpuat91.o
|
||||
obj-$(CONFIG_MACH_ECO920) += board-eco920.o
|
||||
|
||||
# AT91SAM9260 board-specific support
|
||||
obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o
|
||||
|
@ -77,6 +78,7 @@ obj-y += leds.o
|
|||
# Power Management
|
||||
obj-$(CONFIG_PM) += pm.o
|
||||
obj-$(CONFIG_AT91_SLOW_CLOCK) += pm_slowclock.o
|
||||
obj-$(CONFIG_CPU_IDLE) += cpuidle.o
|
||||
|
||||
ifeq ($(CONFIG_PM_DEBUG),y)
|
||||
CFLAGS_pm.o += -DDEBUG
|
||||
|
|
|
@ -130,6 +130,62 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data) {}
|
|||
#endif
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* USB Host HS (EHCI)
|
||||
* Needs an OHCI host for low and full speed management
|
||||
* -------------------------------------------------------------------- */
|
||||
|
||||
#if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_EHCI_HCD_MODULE)
|
||||
static u64 ehci_dmamask = DMA_BIT_MASK(32);
|
||||
static struct at91_usbh_data usbh_ehci_data;
|
||||
|
||||
static struct resource usbh_ehci_resources[] = {
|
||||
[0] = {
|
||||
.start = AT91SAM9G45_EHCI_BASE,
|
||||
.end = AT91SAM9G45_EHCI_BASE + SZ_1M - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = AT91SAM9G45_ID_UHPHS,
|
||||
.end = AT91SAM9G45_ID_UHPHS,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device at91_usbh_ehci_device = {
|
||||
.name = "atmel-ehci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.dma_mask = &ehci_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
.platform_data = &usbh_ehci_data,
|
||||
},
|
||||
.resource = usbh_ehci_resources,
|
||||
.num_resources = ARRAY_SIZE(usbh_ehci_resources),
|
||||
};
|
||||
|
||||
void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!data)
|
||||
return;
|
||||
|
||||
/* Enable VBus control for UHP ports */
|
||||
for (i = 0; i < data->ports; i++) {
|
||||
if (data->vbus_pin[i])
|
||||
at91_set_gpio_output(data->vbus_pin[i], 0);
|
||||
}
|
||||
|
||||
usbh_ehci_data = *data;
|
||||
at91_clock_associate("uhphs_clk", &at91_usbh_ehci_device.dev, "ehci_clk");
|
||||
platform_device_register(&at91_usbh_ehci_device);
|
||||
}
|
||||
#else
|
||||
void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) {}
|
||||
#endif
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* USB HS Device (Gadget)
|
||||
* -------------------------------------------------------------------- */
|
||||
|
|
|
@ -0,0 +1,158 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
#include "generic.h"
|
||||
|
||||
static void __init eco920_map_io(void)
|
||||
{
|
||||
at91rm9200_initialize(18432000, AT91RM9200_PQFP);
|
||||
|
||||
/* Setup the LEDs */
|
||||
at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1);
|
||||
|
||||
/* DBGU on ttyS0. (Rx & Tx only */
|
||||
at91_register_uart(0, 0, 0);
|
||||
|
||||
/* set serial console to ttyS0 (ie, DBGU) */
|
||||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static void __init eco920_init_irq(void)
|
||||
{
|
||||
at91rm9200_init_interrupts(NULL);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata eco920_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC2,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
||||
static struct at91_usbh_data __initdata eco920_usbh_data = {
|
||||
.ports = 1,
|
||||
};
|
||||
|
||||
static struct at91_udc_data __initdata eco920_udc_data = {
|
||||
.vbus_pin = AT91_PIN_PB12,
|
||||
.pullup_pin = AT91_PIN_PB13,
|
||||
};
|
||||
|
||||
static struct at91_mmc_data __initdata eco920_mmc_data = {
|
||||
.slot_b = 0,
|
||||
.wire4 = 0,
|
||||
};
|
||||
|
||||
static struct physmap_flash_data eco920_flash_data = {
|
||||
.width = 2,
|
||||
};
|
||||
|
||||
static struct resource eco920_flash_resource = {
|
||||
.start = 0x11000000,
|
||||
.end = 0x11ffffff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
static struct platform_device eco920_flash = {
|
||||
.name = "physmap-flash",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &eco920_flash_data,
|
||||
},
|
||||
.resource = &eco920_flash_resource,
|
||||
.num_resources = 1,
|
||||
};
|
||||
|
||||
static struct resource at91_beeper_resources[] = {
|
||||
[0] = {
|
||||
.start = AT91RM9200_BASE_TC3,
|
||||
.end = AT91RM9200_BASE_TC3 + 0x39,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device at91_beeper = {
|
||||
.name = "at91_beeper",
|
||||
.id = 0,
|
||||
.resource = at91_beeper_resources,
|
||||
.num_resources = ARRAY_SIZE(at91_beeper_resources),
|
||||
};
|
||||
|
||||
static struct spi_board_info eco920_spi_devices[] = {
|
||||
{ /* CAN controller */
|
||||
.modalias = "tlv5638",
|
||||
.chip_select = 3,
|
||||
.max_speed_hz = 20 * 1000 * 1000,
|
||||
.mode = SPI_CPHA,
|
||||
},
|
||||
};
|
||||
|
||||
static void __init eco920_board_init(void)
|
||||
{
|
||||
at91_add_device_serial();
|
||||
at91_add_device_eth(&eco920_eth_data);
|
||||
at91_add_device_usbh(&eco920_usbh_data);
|
||||
at91_add_device_udc(&eco920_udc_data);
|
||||
|
||||
at91_add_device_mmc(0, &eco920_mmc_data);
|
||||
platform_device_register(&eco920_flash);
|
||||
|
||||
at91_sys_write(AT91_SMC_CSR(7), AT91_SMC_RWHOLD_(1)
|
||||
| AT91_SMC_RWSETUP_(1)
|
||||
| AT91_SMC_DBW_8
|
||||
| AT91_SMC_WSEN
|
||||
| AT91_SMC_NWS_(15));
|
||||
|
||||
at91_set_A_periph(AT91_PIN_PC6, 1);
|
||||
|
||||
at91_set_gpio_input(AT91_PIN_PA23, 0);
|
||||
at91_set_deglitch(AT91_PIN_PA23, 1);
|
||||
|
||||
/* Initialization of the Static Memory Controller for Chip Select 3 */
|
||||
at91_sys_write(AT91_SMC_CSR(3),
|
||||
AT91_SMC_DBW_16 | /* 16 bit */
|
||||
AT91_SMC_WSEN |
|
||||
AT91_SMC_NWS_(5) | /* wait states */
|
||||
AT91_SMC_TDF_(1) /* float time */
|
||||
);
|
||||
|
||||
at91_clock_associate("tc3_clk", &at91_beeper.dev, "at91_beeper");
|
||||
at91_set_B_periph(AT91_PIN_PB6, 0);
|
||||
platform_device_register(&at91_beeper);
|
||||
|
||||
at91_add_device_spi(eco920_spi_devices, ARRAY_SIZE(eco920_spi_devices));
|
||||
}
|
||||
|
||||
MACHINE_START(ECO920, "eco920")
|
||||
/* Maintainer: Sascha Hauer */
|
||||
.phys_io = AT91_BASE_SYS,
|
||||
.io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
|
||||
.boot_params = AT91_SDRAM_BASE + 0x100,
|
||||
.timer = &at91rm9200_timer,
|
||||
.map_io = eco920_map_io,
|
||||
.init_irq = eco920_init_irq,
|
||||
.init_machine = eco920_board_init,
|
||||
MACHINE_END
|
|
@ -366,6 +366,7 @@ static void __init ek_board_init(void)
|
|||
at91_add_device_serial();
|
||||
/* USB HS Host */
|
||||
at91_add_device_usbh_ohci(&ek_usbh_hs_data);
|
||||
at91_add_device_usbh_ehci(&ek_usbh_hs_data);
|
||||
/* USB HS Device */
|
||||
at91_add_device_usba(&ek_usba_udc_data);
|
||||
/* SPI */
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
/*
|
||||
* based on arch/arm/mach-kirkwood/cpuidle.c
|
||||
*
|
||||
* CPU idle support for AT91 SoC
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* The cpu idle uses wait-for-interrupt and RAM self refresh in order
|
||||
* to implement two idle states -
|
||||
* #1 wait-for-interrupt
|
||||
* #2 wait-for-interrupt and RAM self refresh
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/cpuidle.h>
|
||||
#include <asm/proc-fns.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include "pm.h"
|
||||
|
||||
#define AT91_MAX_STATES 2
|
||||
|
||||
static DEFINE_PER_CPU(struct cpuidle_device, at91_cpuidle_device);
|
||||
|
||||
static struct cpuidle_driver at91_idle_driver = {
|
||||
.name = "at91_idle",
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
/* Actual code that puts the SoC in different idle states */
|
||||
static int at91_enter_idle(struct cpuidle_device *dev,
|
||||
struct cpuidle_state *state)
|
||||
{
|
||||
struct timeval before, after;
|
||||
int idle_time;
|
||||
u32 saved_lpr;
|
||||
|
||||
local_irq_disable();
|
||||
do_gettimeofday(&before);
|
||||
if (state == &dev->states[0])
|
||||
/* Wait for interrupt state */
|
||||
cpu_do_idle();
|
||||
else if (state == &dev->states[1]) {
|
||||
asm("b 1f; .align 5; 1:");
|
||||
asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */
|
||||
saved_lpr = sdram_selfrefresh_enable();
|
||||
cpu_do_idle();
|
||||
sdram_selfrefresh_disable(saved_lpr);
|
||||
}
|
||||
do_gettimeofday(&after);
|
||||
local_irq_enable();
|
||||
idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC +
|
||||
(after.tv_usec - before.tv_usec);
|
||||
return idle_time;
|
||||
}
|
||||
|
||||
/* Initialize CPU idle by registering the idle states */
|
||||
static int at91_init_cpuidle(void)
|
||||
{
|
||||
struct cpuidle_device *device;
|
||||
|
||||
cpuidle_register_driver(&at91_idle_driver);
|
||||
|
||||
device = &per_cpu(at91_cpuidle_device, smp_processor_id());
|
||||
device->state_count = AT91_MAX_STATES;
|
||||
|
||||
/* Wait for interrupt state */
|
||||
device->states[0].enter = at91_enter_idle;
|
||||
device->states[0].exit_latency = 1;
|
||||
device->states[0].target_residency = 10000;
|
||||
device->states[0].flags = CPUIDLE_FLAG_TIME_VALID;
|
||||
strcpy(device->states[0].name, "WFI");
|
||||
strcpy(device->states[0].desc, "Wait for interrupt");
|
||||
|
||||
/* Wait for interrupt and RAM self refresh state */
|
||||
device->states[1].enter = at91_enter_idle;
|
||||
device->states[1].exit_latency = 10;
|
||||
device->states[1].target_residency = 10000;
|
||||
device->states[1].flags = CPUIDLE_FLAG_TIME_VALID;
|
||||
strcpy(device->states[1].name, "RAM_SR");
|
||||
strcpy(device->states[1].desc, "WFI and RAM Self Refresh");
|
||||
|
||||
if (cpuidle_register_device(device)) {
|
||||
printk(KERN_ERR "at91_init_cpuidle: Failed registering\n");
|
||||
return -EIO;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
device_initcall(at91_init_cpuidle);
|
|
@ -98,6 +98,7 @@ struct at91_usbh_data {
|
|||
};
|
||||
extern void __init at91_add_device_usbh(struct at91_usbh_data *data);
|
||||
extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data);
|
||||
extern void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data);
|
||||
|
||||
/* NAND / SmartMedia */
|
||||
struct atmel_nand_data {
|
||||
|
|
|
@ -29,62 +29,7 @@
|
|||
#include <mach/cpu.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
#ifdef CONFIG_ARCH_AT91RM9200
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
/*
|
||||
* The AT91RM9200 goes into self-refresh mode with this command, and will
|
||||
* terminate self-refresh automatically on the next SDRAM access.
|
||||
*/
|
||||
#define sdram_selfrefresh_enable() at91_sys_write(AT91_SDRAMC_SRR, 1)
|
||||
#define sdram_selfrefresh_disable() do {} while (0)
|
||||
|
||||
#elif defined(CONFIG_ARCH_AT91CAP9)
|
||||
#include <mach/at91cap9_ddrsdr.h>
|
||||
|
||||
static u32 saved_lpr;
|
||||
|
||||
static inline void sdram_selfrefresh_enable(void)
|
||||
{
|
||||
u32 lpr;
|
||||
|
||||
saved_lpr = at91_sys_read(AT91_DDRSDRC_LPR);
|
||||
|
||||
lpr = saved_lpr & ~AT91_DDRSDRC_LPCB;
|
||||
at91_sys_write(AT91_DDRSDRC_LPR, lpr | AT91_DDRSDRC_LPCB_SELF_REFRESH);
|
||||
}
|
||||
|
||||
#define sdram_selfrefresh_disable() at91_sys_write(AT91_DDRSDRC_LPR, saved_lpr)
|
||||
|
||||
#else
|
||||
#include <mach/at91sam9_sdramc.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_AT91SAM9263
|
||||
/*
|
||||
* FIXME either or both the SDRAM controllers (EB0, EB1) might be in use;
|
||||
* handle those cases both here and in the Suspend-To-RAM support.
|
||||
*/
|
||||
#define AT91_SDRAMC AT91_SDRAMC0
|
||||
#warning Assuming EB1 SDRAM controller is *NOT* used
|
||||
#endif
|
||||
|
||||
static u32 saved_lpr;
|
||||
|
||||
static inline void sdram_selfrefresh_enable(void)
|
||||
{
|
||||
u32 lpr;
|
||||
|
||||
saved_lpr = at91_sys_read(AT91_SDRAMC_LPR);
|
||||
|
||||
lpr = saved_lpr & ~AT91_SDRAMC_LPCB;
|
||||
at91_sys_write(AT91_SDRAMC_LPR, lpr | AT91_SDRAMC_LPCB_SELF_REFRESH);
|
||||
}
|
||||
|
||||
#define sdram_selfrefresh_disable() at91_sys_write(AT91_SDRAMC_LPR, saved_lpr)
|
||||
|
||||
#endif
|
||||
|
||||
#include "pm.h"
|
||||
|
||||
/*
|
||||
* Show the reason for the previous system reset.
|
||||
|
@ -260,6 +205,7 @@ extern u32 at91_slow_clock_sz;
|
|||
|
||||
static int at91_pm_enter(suspend_state_t state)
|
||||
{
|
||||
u32 saved_lpr;
|
||||
at91_gpio_suspend();
|
||||
at91_irq_suspend();
|
||||
|
||||
|
@ -315,9 +261,9 @@ static int at91_pm_enter(suspend_state_t state)
|
|||
*/
|
||||
asm("b 1f; .align 5; 1:");
|
||||
asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */
|
||||
sdram_selfrefresh_enable();
|
||||
saved_lpr = sdram_selfrefresh_enable();
|
||||
asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */
|
||||
sdram_selfrefresh_disable();
|
||||
sdram_selfrefresh_disable(saved_lpr);
|
||||
break;
|
||||
|
||||
case PM_SUSPEND_ON:
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
#ifdef CONFIG_ARCH_AT91RM9200
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
/*
|
||||
* The AT91RM9200 goes into self-refresh mode with this command, and will
|
||||
* terminate self-refresh automatically on the next SDRAM access.
|
||||
*
|
||||
* Self-refresh mode is exited as soon as a memory access is made, but we don't
|
||||
* know for sure when that happens. However, we need to restore the low-power
|
||||
* mode if it was enabled before going idle. Restoring low-power mode while
|
||||
* still in self-refresh is "not recommended", but seems to work.
|
||||
*/
|
||||
|
||||
static inline u32 sdram_selfrefresh_enable(void)
|
||||
{
|
||||
u32 saved_lpr = at91_sys_read(AT91_SDRAMC_LPR);
|
||||
|
||||
at91_sys_write(AT91_SDRAMC_LPR, 0);
|
||||
at91_sys_write(AT91_SDRAMC_SRR, 1);
|
||||
return saved_lpr;
|
||||
}
|
||||
|
||||
#define sdram_selfrefresh_disable(saved_lpr) at91_sys_write(AT91_SDRAMC_LPR, saved_lpr)
|
||||
|
||||
#elif defined(CONFIG_ARCH_AT91CAP9)
|
||||
#include <mach/at91cap9_ddrsdr.h>
|
||||
|
||||
|
||||
static inline u32 sdram_selfrefresh_enable(void)
|
||||
{
|
||||
u32 saved_lpr, lpr;
|
||||
|
||||
saved_lpr = at91_sys_read(AT91_DDRSDRC_LPR);
|
||||
|
||||
lpr = saved_lpr & ~AT91_DDRSDRC_LPCB;
|
||||
at91_sys_write(AT91_DDRSDRC_LPR, lpr | AT91_DDRSDRC_LPCB_SELF_REFRESH);
|
||||
return saved_lpr;
|
||||
}
|
||||
|
||||
#define sdram_selfrefresh_disable(saved_lpr) at91_sys_write(AT91_DDRSDRC_LPR, saved_lpr)
|
||||
|
||||
#else
|
||||
#include <mach/at91sam9_sdramc.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_AT91SAM9263
|
||||
/*
|
||||
* FIXME either or both the SDRAM controllers (EB0, EB1) might be in use;
|
||||
* handle those cases both here and in the Suspend-To-RAM support.
|
||||
*/
|
||||
#define AT91_SDRAMC AT91_SDRAMC0
|
||||
#warning Assuming EB1 SDRAM controller is *NOT* used
|
||||
#endif
|
||||
|
||||
static inline u32 sdram_selfrefresh_enable(void)
|
||||
{
|
||||
u32 saved_lpr, lpr;
|
||||
|
||||
saved_lpr = at91_sys_read(AT91_SDRAMC_LPR);
|
||||
|
||||
lpr = saved_lpr & ~AT91_SDRAMC_LPCB;
|
||||
at91_sys_write(AT91_SDRAMC_LPR, lpr | AT91_SDRAMC_LPCB_SELF_REFRESH);
|
||||
return saved_lpr;
|
||||
}
|
||||
|
||||
#define sdram_selfrefresh_disable(saved_lpr) at91_sys_write(AT91_SDRAMC_LPR, saved_lpr)
|
||||
|
||||
#endif
|
|
@ -23,34 +23,11 @@
|
|||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
#define __io(a) ((void __iomem *)HW_IO_PHYS_TO_VIRT(a))
|
||||
|
||||
/* Do not enable mem_pci for a big endian arm architecture or unexpected byteswaps will */
|
||||
/* happen in readw/writew etc. */
|
||||
|
||||
#define readb(c) __raw_readb(c)
|
||||
#define readw(c) __raw_readw(c)
|
||||
#define readl(c) __raw_readl(c)
|
||||
#define readb_relaxed(addr) readb(addr)
|
||||
#define readw_relaxed(addr) readw(addr)
|
||||
#define readl_relaxed(addr) readl(addr)
|
||||
|
||||
#define readsb(p, d, l) __raw_readsb(p, d, l)
|
||||
#define readsw(p, d, l) __raw_readsw(p, d, l)
|
||||
#define readsl(p, d, l) __raw_readsl(p, d, l)
|
||||
|
||||
#define writeb(v, c) __raw_writeb(v, c)
|
||||
#define writew(v, c) __raw_writew(v, c)
|
||||
#define writel(v, c) __raw_writel(v, c)
|
||||
|
||||
#define writesb(p, d, l) __raw_writesb(p, d, l)
|
||||
#define writesw(p, d, l) __raw_writesw(p, d, l)
|
||||
#define writesl(p, d, l) __raw_writesl(p, d, l)
|
||||
|
||||
#define memset_io(c, v, l) _memset_io((c), (v), (l))
|
||||
#define memcpy_fromio(a, c, l) _memcpy_fromio((a), (c), (l))
|
||||
#define memcpy_toio(c, a, l) _memcpy_toio((c), (a), (l))
|
||||
|
||||
#define eth_io_copy_and_sum(s, c, l, b) eth_copy_and_sum((s), (c), (l), (b))
|
||||
/*
|
||||
* We don't actually have real ISA nor PCI buses, but there is so many
|
||||
* drivers out there that might just work if we fake them...
|
||||
*/
|
||||
#define __io(a) __typesafe_io(a)
|
||||
#define __mem_pci(a) (a)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
if ARCH_DOVE
|
||||
|
||||
menu "Marvell Dove Implementations"
|
||||
|
||||
config MACH_DOVE_DB
|
||||
bool "Marvell DB-MV88AP510 Development Board"
|
||||
select I2C_BOARDINFO
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell DB-MV88AP510 Development Board.
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
|
@ -0,0 +1,3 @@
|
|||
obj-y += common.o addr-map.o irq.o pcie.o
|
||||
|
||||
obj-$(CONFIG_MACH_DOVE_DB) += dove-db-setup.o
|
|
@ -0,0 +1,3 @@
|
|||
zreladdr-y := 0x00008000
|
||||
params_phys-y := 0x00000100
|
||||
initrd_phys-y := 0x00800000
|
|
@ -0,0 +1,149 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/addr-map.c
|
||||
*
|
||||
* Address map functions for Marvell Dove 88AP510 SoC
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mbus.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/setup.h>
|
||||
#include "common.h"
|
||||
|
||||
/*
|
||||
* Generic Address Decode Windows bit settings
|
||||
*/
|
||||
#define TARGET_DDR 0x0
|
||||
#define TARGET_BOOTROM 0x1
|
||||
#define TARGET_CESA 0x3
|
||||
#define TARGET_PCIE0 0x4
|
||||
#define TARGET_PCIE1 0x8
|
||||
#define TARGET_SCRATCHPAD 0xd
|
||||
|
||||
#define ATTR_CESA 0x01
|
||||
#define ATTR_BOOTROM 0xfd
|
||||
#define ATTR_DEV_SPI0_ROM 0xfe
|
||||
#define ATTR_DEV_SPI1_ROM 0xfb
|
||||
#define ATTR_PCIE_IO 0xe0
|
||||
#define ATTR_PCIE_MEM 0xe8
|
||||
#define ATTR_SCRATCHPAD 0x0
|
||||
|
||||
/*
|
||||
* CPU Address Decode Windows registers
|
||||
*/
|
||||
#define WIN_CTRL(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0x0)
|
||||
#define WIN_BASE(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0x4)
|
||||
#define WIN_REMAP_LO(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0x8)
|
||||
#define WIN_REMAP_HI(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0xc)
|
||||
|
||||
struct mbus_dram_target_info dove_mbus_dram_info;
|
||||
|
||||
static inline void __iomem *ddr_map_sc(int i)
|
||||
{
|
||||
return (void __iomem *)(DOVE_MC_VIRT_BASE + 0x100 + ((i) << 4));
|
||||
}
|
||||
|
||||
static int cpu_win_can_remap(int win)
|
||||
{
|
||||
if (win < 4)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __init setup_cpu_win(int win, u32 base, u32 size,
|
||||
u8 target, u8 attr, int remap)
|
||||
{
|
||||
u32 ctrl;
|
||||
|
||||
base &= 0xffff0000;
|
||||
ctrl = ((size - 1) & 0xffff0000) | (attr << 8) | (target << 4) | 1;
|
||||
|
||||
writel(base, WIN_BASE(win));
|
||||
writel(ctrl, WIN_CTRL(win));
|
||||
if (cpu_win_can_remap(win)) {
|
||||
if (remap < 0)
|
||||
remap = base;
|
||||
writel(remap & 0xffff0000, WIN_REMAP_LO(win));
|
||||
writel(0, WIN_REMAP_HI(win));
|
||||
}
|
||||
}
|
||||
|
||||
void __init dove_setup_cpu_mbus(void)
|
||||
{
|
||||
int i;
|
||||
int cs;
|
||||
|
||||
/*
|
||||
* First, disable and clear windows.
|
||||
*/
|
||||
for (i = 0; i < 8; i++) {
|
||||
writel(0, WIN_BASE(i));
|
||||
writel(0, WIN_CTRL(i));
|
||||
if (cpu_win_can_remap(i)) {
|
||||
writel(0, WIN_REMAP_LO(i));
|
||||
writel(0, WIN_REMAP_HI(i));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup windows for PCIe IO+MEM space.
|
||||
*/
|
||||
setup_cpu_win(0, DOVE_PCIE0_IO_PHYS_BASE, DOVE_PCIE0_IO_SIZE,
|
||||
TARGET_PCIE0, ATTR_PCIE_IO, DOVE_PCIE0_IO_BUS_BASE);
|
||||
setup_cpu_win(1, DOVE_PCIE1_IO_PHYS_BASE, DOVE_PCIE1_IO_SIZE,
|
||||
TARGET_PCIE1, ATTR_PCIE_IO, DOVE_PCIE1_IO_BUS_BASE);
|
||||
setup_cpu_win(2, DOVE_PCIE0_MEM_PHYS_BASE, DOVE_PCIE0_MEM_SIZE,
|
||||
TARGET_PCIE0, ATTR_PCIE_MEM, -1);
|
||||
setup_cpu_win(3, DOVE_PCIE1_MEM_PHYS_BASE, DOVE_PCIE1_MEM_SIZE,
|
||||
TARGET_PCIE1, ATTR_PCIE_MEM, -1);
|
||||
|
||||
/*
|
||||
* Setup window for CESA engine.
|
||||
*/
|
||||
setup_cpu_win(4, DOVE_CESA_PHYS_BASE, DOVE_CESA_SIZE,
|
||||
TARGET_CESA, ATTR_CESA, -1);
|
||||
|
||||
/*
|
||||
* Setup the Window to the BootROM for Standby and Sleep Resume
|
||||
*/
|
||||
setup_cpu_win(5, DOVE_BOOTROM_PHYS_BASE, DOVE_BOOTROM_SIZE,
|
||||
TARGET_BOOTROM, ATTR_BOOTROM, -1);
|
||||
|
||||
/*
|
||||
* Setup the Window to the PMU Scratch Pad space
|
||||
*/
|
||||
setup_cpu_win(6, DOVE_SCRATCHPAD_PHYS_BASE, DOVE_SCRATCHPAD_SIZE,
|
||||
TARGET_SCRATCHPAD, ATTR_SCRATCHPAD, -1);
|
||||
|
||||
/*
|
||||
* Setup MBUS dram target info.
|
||||
*/
|
||||
dove_mbus_dram_info.mbus_dram_target_id = TARGET_DDR;
|
||||
|
||||
for (i = 0, cs = 0; i < 2; i++) {
|
||||
u32 map = readl(ddr_map_sc(i));
|
||||
|
||||
/*
|
||||
* Chip select enabled?
|
||||
*/
|
||||
if (map & 1) {
|
||||
struct mbus_dram_window *w;
|
||||
|
||||
w = &dove_mbus_dram_info.cs[cs++];
|
||||
w->cs_index = i;
|
||||
w->mbus_attr = 0; /* CS address decoding done inside */
|
||||
/* the DDR controller, no need to */
|
||||
/* provide attributes */
|
||||
w->base = map & 0xff800000;
|
||||
w->size = 0x100000 << (((map & 0x000f0000) >> 16) - 4);
|
||||
}
|
||||
}
|
||||
dove_mbus_dram_info.num_cs = cs;
|
||||
}
|
|
@ -0,0 +1,781 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/common.c
|
||||
*
|
||||
* Core functions for Marvell Dove 88AP510 System On Chip
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/mbus.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <linux/mv643xx_i2c.h>
|
||||
#include <linux/ata_platform.h>
|
||||
#include <linux/spi/orion_spi.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/timex.h>
|
||||
#include <asm/hardware/cache-tauros2.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/pci.h>
|
||||
#include <mach/dove.h>
|
||||
#include <mach/bridge-regs.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <linux/irq.h>
|
||||
#include <plat/mv_xor.h>
|
||||
#include <plat/ehci-orion.h>
|
||||
#include <plat/time.h>
|
||||
#include "common.h"
|
||||
|
||||
/*****************************************************************************
|
||||
* I/O Address Mapping
|
||||
****************************************************************************/
|
||||
static struct map_desc dove_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = DOVE_SB_REGS_VIRT_BASE,
|
||||
.pfn = __phys_to_pfn(DOVE_SB_REGS_PHYS_BASE),
|
||||
.length = DOVE_SB_REGS_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = DOVE_NB_REGS_VIRT_BASE,
|
||||
.pfn = __phys_to_pfn(DOVE_NB_REGS_PHYS_BASE),
|
||||
.length = DOVE_NB_REGS_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = DOVE_PCIE0_IO_VIRT_BASE,
|
||||
.pfn = __phys_to_pfn(DOVE_PCIE0_IO_PHYS_BASE),
|
||||
.length = DOVE_PCIE0_IO_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = DOVE_PCIE1_IO_VIRT_BASE,
|
||||
.pfn = __phys_to_pfn(DOVE_PCIE1_IO_PHYS_BASE),
|
||||
.length = DOVE_PCIE1_IO_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
void __init dove_map_io(void)
|
||||
{
|
||||
iotable_init(dove_io_desc, ARRAY_SIZE(dove_io_desc));
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* EHCI
|
||||
****************************************************************************/
|
||||
static struct orion_ehci_data dove_ehci_data = {
|
||||
.dram = &dove_mbus_dram_info,
|
||||
.phy_version = EHCI_PHY_NA,
|
||||
};
|
||||
|
||||
static u64 ehci_dmamask = DMA_BIT_MASK(32);
|
||||
|
||||
/*****************************************************************************
|
||||
* EHCI0
|
||||
****************************************************************************/
|
||||
static struct resource dove_ehci0_resources[] = {
|
||||
{
|
||||
.start = DOVE_USB0_PHYS_BASE,
|
||||
.end = DOVE_USB0_PHYS_BASE + SZ_4K - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_USB0,
|
||||
.end = IRQ_DOVE_USB0,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_ehci0 = {
|
||||
.name = "orion-ehci",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.dma_mask = &ehci_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
.platform_data = &dove_ehci_data,
|
||||
},
|
||||
.resource = dove_ehci0_resources,
|
||||
.num_resources = ARRAY_SIZE(dove_ehci0_resources),
|
||||
};
|
||||
|
||||
void __init dove_ehci0_init(void)
|
||||
{
|
||||
platform_device_register(&dove_ehci0);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* EHCI1
|
||||
****************************************************************************/
|
||||
static struct resource dove_ehci1_resources[] = {
|
||||
{
|
||||
.start = DOVE_USB1_PHYS_BASE,
|
||||
.end = DOVE_USB1_PHYS_BASE + SZ_4K - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_USB1,
|
||||
.end = IRQ_DOVE_USB1,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_ehci1 = {
|
||||
.name = "orion-ehci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.dma_mask = &ehci_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
.platform_data = &dove_ehci_data,
|
||||
},
|
||||
.resource = dove_ehci1_resources,
|
||||
.num_resources = ARRAY_SIZE(dove_ehci1_resources),
|
||||
};
|
||||
|
||||
void __init dove_ehci1_init(void)
|
||||
{
|
||||
platform_device_register(&dove_ehci1);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* GE00
|
||||
****************************************************************************/
|
||||
struct mv643xx_eth_shared_platform_data dove_ge00_shared_data = {
|
||||
.t_clk = 0,
|
||||
.dram = &dove_mbus_dram_info,
|
||||
};
|
||||
|
||||
static struct resource dove_ge00_shared_resources[] = {
|
||||
{
|
||||
.name = "ge00 base",
|
||||
.start = DOVE_GE00_PHYS_BASE + 0x2000,
|
||||
.end = DOVE_GE00_PHYS_BASE + SZ_16K - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_ge00_shared = {
|
||||
.name = MV643XX_ETH_SHARED_NAME,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &dove_ge00_shared_data,
|
||||
},
|
||||
.num_resources = 1,
|
||||
.resource = dove_ge00_shared_resources,
|
||||
};
|
||||
|
||||
static struct resource dove_ge00_resources[] = {
|
||||
{
|
||||
.name = "ge00 irq",
|
||||
.start = IRQ_DOVE_GE00_SUM,
|
||||
.end = IRQ_DOVE_GE00_SUM,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_ge00 = {
|
||||
.name = MV643XX_ETH_NAME,
|
||||
.id = 0,
|
||||
.num_resources = 1,
|
||||
.resource = dove_ge00_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
{
|
||||
eth_data->shared = &dove_ge00_shared;
|
||||
dove_ge00.dev.platform_data = eth_data;
|
||||
|
||||
platform_device_register(&dove_ge00_shared);
|
||||
platform_device_register(&dove_ge00);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* SoC RTC
|
||||
****************************************************************************/
|
||||
static struct resource dove_rtc_resource[] = {
|
||||
{
|
||||
.start = DOVE_RTC_PHYS_BASE,
|
||||
.end = DOVE_RTC_PHYS_BASE + 32 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_RTC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
}
|
||||
};
|
||||
|
||||
void __init dove_rtc_init(void)
|
||||
{
|
||||
platform_device_register_simple("rtc-mv", -1, dove_rtc_resource, 2);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* SATA
|
||||
****************************************************************************/
|
||||
static struct resource dove_sata_resources[] = {
|
||||
{
|
||||
.name = "sata base",
|
||||
.start = DOVE_SATA_PHYS_BASE,
|
||||
.end = DOVE_SATA_PHYS_BASE + 0x5000 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "sata irq",
|
||||
.start = IRQ_DOVE_SATA,
|
||||
.end = IRQ_DOVE_SATA,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_sata = {
|
||||
.name = "sata_mv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(dove_sata_resources),
|
||||
.resource = dove_sata_resources,
|
||||
};
|
||||
|
||||
void __init dove_sata_init(struct mv_sata_platform_data *sata_data)
|
||||
{
|
||||
sata_data->dram = &dove_mbus_dram_info;
|
||||
dove_sata.dev.platform_data = sata_data;
|
||||
platform_device_register(&dove_sata);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* UART0
|
||||
****************************************************************************/
|
||||
static struct plat_serial8250_port dove_uart0_data[] = {
|
||||
{
|
||||
.mapbase = DOVE_UART0_PHYS_BASE,
|
||||
.membase = (char *)DOVE_UART0_VIRT_BASE,
|
||||
.irq = IRQ_DOVE_UART_0,
|
||||
.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = 0,
|
||||
}, {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource dove_uart0_resources[] = {
|
||||
{
|
||||
.start = DOVE_UART0_PHYS_BASE,
|
||||
.end = DOVE_UART0_PHYS_BASE + SZ_256 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_UART_0,
|
||||
.end = IRQ_DOVE_UART_0,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_uart0 = {
|
||||
.name = "serial8250",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = dove_uart0_data,
|
||||
},
|
||||
.resource = dove_uart0_resources,
|
||||
.num_resources = ARRAY_SIZE(dove_uart0_resources),
|
||||
};
|
||||
|
||||
void __init dove_uart0_init(void)
|
||||
{
|
||||
platform_device_register(&dove_uart0);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* UART1
|
||||
****************************************************************************/
|
||||
static struct plat_serial8250_port dove_uart1_data[] = {
|
||||
{
|
||||
.mapbase = DOVE_UART1_PHYS_BASE,
|
||||
.membase = (char *)DOVE_UART1_VIRT_BASE,
|
||||
.irq = IRQ_DOVE_UART_1,
|
||||
.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = 0,
|
||||
}, {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource dove_uart1_resources[] = {
|
||||
{
|
||||
.start = DOVE_UART1_PHYS_BASE,
|
||||
.end = DOVE_UART1_PHYS_BASE + SZ_256 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_UART_1,
|
||||
.end = IRQ_DOVE_UART_1,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_uart1 = {
|
||||
.name = "serial8250",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = dove_uart1_data,
|
||||
},
|
||||
.resource = dove_uart1_resources,
|
||||
.num_resources = ARRAY_SIZE(dove_uart1_resources),
|
||||
};
|
||||
|
||||
void __init dove_uart1_init(void)
|
||||
{
|
||||
platform_device_register(&dove_uart1);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* UART2
|
||||
****************************************************************************/
|
||||
static struct plat_serial8250_port dove_uart2_data[] = {
|
||||
{
|
||||
.mapbase = DOVE_UART2_PHYS_BASE,
|
||||
.membase = (char *)DOVE_UART2_VIRT_BASE,
|
||||
.irq = IRQ_DOVE_UART_2,
|
||||
.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = 0,
|
||||
}, {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource dove_uart2_resources[] = {
|
||||
{
|
||||
.start = DOVE_UART2_PHYS_BASE,
|
||||
.end = DOVE_UART2_PHYS_BASE + SZ_256 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_UART_2,
|
||||
.end = IRQ_DOVE_UART_2,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_uart2 = {
|
||||
.name = "serial8250",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = dove_uart2_data,
|
||||
},
|
||||
.resource = dove_uart2_resources,
|
||||
.num_resources = ARRAY_SIZE(dove_uart2_resources),
|
||||
};
|
||||
|
||||
void __init dove_uart2_init(void)
|
||||
{
|
||||
platform_device_register(&dove_uart2);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* UART3
|
||||
****************************************************************************/
|
||||
static struct plat_serial8250_port dove_uart3_data[] = {
|
||||
{
|
||||
.mapbase = DOVE_UART3_PHYS_BASE,
|
||||
.membase = (char *)DOVE_UART3_VIRT_BASE,
|
||||
.irq = IRQ_DOVE_UART_3,
|
||||
.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = 0,
|
||||
}, {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource dove_uart3_resources[] = {
|
||||
{
|
||||
.start = DOVE_UART3_PHYS_BASE,
|
||||
.end = DOVE_UART3_PHYS_BASE + SZ_256 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_UART_3,
|
||||
.end = IRQ_DOVE_UART_3,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_uart3 = {
|
||||
.name = "serial8250",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = dove_uart3_data,
|
||||
},
|
||||
.resource = dove_uart3_resources,
|
||||
.num_resources = ARRAY_SIZE(dove_uart3_resources),
|
||||
};
|
||||
|
||||
void __init dove_uart3_init(void)
|
||||
{
|
||||
platform_device_register(&dove_uart3);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* SPI0
|
||||
****************************************************************************/
|
||||
static struct orion_spi_info dove_spi0_data = {
|
||||
.tclk = 0,
|
||||
};
|
||||
|
||||
static struct resource dove_spi0_resources[] = {
|
||||
{
|
||||
.start = DOVE_SPI0_PHYS_BASE,
|
||||
.end = DOVE_SPI0_PHYS_BASE + SZ_512 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_SPI0,
|
||||
.end = IRQ_DOVE_SPI0,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_spi0 = {
|
||||
.name = "orion_spi",
|
||||
.id = 0,
|
||||
.resource = dove_spi0_resources,
|
||||
.dev = {
|
||||
.platform_data = &dove_spi0_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(dove_spi0_resources),
|
||||
};
|
||||
|
||||
void __init dove_spi0_init(void)
|
||||
{
|
||||
platform_device_register(&dove_spi0);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* SPI1
|
||||
****************************************************************************/
|
||||
static struct orion_spi_info dove_spi1_data = {
|
||||
.tclk = 0,
|
||||
};
|
||||
|
||||
static struct resource dove_spi1_resources[] = {
|
||||
{
|
||||
.start = DOVE_SPI1_PHYS_BASE,
|
||||
.end = DOVE_SPI1_PHYS_BASE + SZ_512 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_DOVE_SPI1,
|
||||
.end = IRQ_DOVE_SPI1,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_spi1 = {
|
||||
.name = "orion_spi",
|
||||
.id = 1,
|
||||
.resource = dove_spi1_resources,
|
||||
.dev = {
|
||||
.platform_data = &dove_spi1_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(dove_spi1_resources),
|
||||
};
|
||||
|
||||
void __init dove_spi1_init(void)
|
||||
{
|
||||
platform_device_register(&dove_spi1);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* I2C
|
||||
****************************************************************************/
|
||||
static struct mv64xxx_i2c_pdata dove_i2c_data = {
|
||||
.freq_m = 10, /* assumes 166 MHz TCLK gets 94.3kHz */
|
||||
.freq_n = 3,
|
||||
.timeout = 1000, /* Default timeout of 1 second */
|
||||
};
|
||||
|
||||
static struct resource dove_i2c_resources[] = {
|
||||
{
|
||||
.name = "i2c base",
|
||||
.start = DOVE_I2C_PHYS_BASE,
|
||||
.end = DOVE_I2C_PHYS_BASE + 0x20 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "i2c irq",
|
||||
.start = IRQ_DOVE_I2C,
|
||||
.end = IRQ_DOVE_I2C,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_i2c = {
|
||||
.name = MV64XXX_I2C_CTLR_NAME,
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(dove_i2c_resources),
|
||||
.resource = dove_i2c_resources,
|
||||
.dev = {
|
||||
.platform_data = &dove_i2c_data,
|
||||
},
|
||||
};
|
||||
|
||||
void __init dove_i2c_init(void)
|
||||
{
|
||||
platform_device_register(&dove_i2c);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* Time handling
|
||||
****************************************************************************/
|
||||
static int get_tclk(void)
|
||||
{
|
||||
/* use DOVE_RESET_SAMPLE_HI/LO to detect tclk */
|
||||
return 166666667;
|
||||
}
|
||||
|
||||
static void dove_timer_init(void)
|
||||
{
|
||||
orion_time_init(IRQ_DOVE_BRIDGE, get_tclk());
|
||||
}
|
||||
|
||||
struct sys_timer dove_timer = {
|
||||
.init = dove_timer_init,
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* XOR
|
||||
****************************************************************************/
|
||||
static struct mv_xor_platform_shared_data dove_xor_shared_data = {
|
||||
.dram = &dove_mbus_dram_info,
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* XOR 0
|
||||
****************************************************************************/
|
||||
static u64 dove_xor0_dmamask = DMA_BIT_MASK(32);
|
||||
|
||||
static struct resource dove_xor0_shared_resources[] = {
|
||||
{
|
||||
.name = "xor 0 low",
|
||||
.start = DOVE_XOR0_PHYS_BASE,
|
||||
.end = DOVE_XOR0_PHYS_BASE + 0xff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "xor 0 high",
|
||||
.start = DOVE_XOR0_HIGH_PHYS_BASE,
|
||||
.end = DOVE_XOR0_HIGH_PHYS_BASE + 0xff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_xor0_shared = {
|
||||
.name = MV_XOR_SHARED_NAME,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &dove_xor_shared_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(dove_xor0_shared_resources),
|
||||
.resource = dove_xor0_shared_resources,
|
||||
};
|
||||
|
||||
static struct resource dove_xor00_resources[] = {
|
||||
[0] = {
|
||||
.start = IRQ_DOVE_XOR_00,
|
||||
.end = IRQ_DOVE_XOR_00,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mv_xor_platform_data dove_xor00_data = {
|
||||
.shared = &dove_xor0_shared,
|
||||
.hw_id = 0,
|
||||
.pool_size = PAGE_SIZE,
|
||||
};
|
||||
|
||||
static struct platform_device dove_xor00_channel = {
|
||||
.name = MV_XOR_NAME,
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(dove_xor00_resources),
|
||||
.resource = dove_xor00_resources,
|
||||
.dev = {
|
||||
.dma_mask = &dove_xor0_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(64),
|
||||
.platform_data = (void *)&dove_xor00_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource dove_xor01_resources[] = {
|
||||
[0] = {
|
||||
.start = IRQ_DOVE_XOR_01,
|
||||
.end = IRQ_DOVE_XOR_01,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mv_xor_platform_data dove_xor01_data = {
|
||||
.shared = &dove_xor0_shared,
|
||||
.hw_id = 1,
|
||||
.pool_size = PAGE_SIZE,
|
||||
};
|
||||
|
||||
static struct platform_device dove_xor01_channel = {
|
||||
.name = MV_XOR_NAME,
|
||||
.id = 1,
|
||||
.num_resources = ARRAY_SIZE(dove_xor01_resources),
|
||||
.resource = dove_xor01_resources,
|
||||
.dev = {
|
||||
.dma_mask = &dove_xor0_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(64),
|
||||
.platform_data = (void *)&dove_xor01_data,
|
||||
},
|
||||
};
|
||||
|
||||
void __init dove_xor0_init(void)
|
||||
{
|
||||
platform_device_register(&dove_xor0_shared);
|
||||
|
||||
/*
|
||||
* two engines can't do memset simultaneously, this limitation
|
||||
* satisfied by removing memset support from one of the engines.
|
||||
*/
|
||||
dma_cap_set(DMA_MEMCPY, dove_xor00_data.cap_mask);
|
||||
dma_cap_set(DMA_XOR, dove_xor00_data.cap_mask);
|
||||
platform_device_register(&dove_xor00_channel);
|
||||
|
||||
dma_cap_set(DMA_MEMCPY, dove_xor01_data.cap_mask);
|
||||
dma_cap_set(DMA_MEMSET, dove_xor01_data.cap_mask);
|
||||
dma_cap_set(DMA_XOR, dove_xor01_data.cap_mask);
|
||||
platform_device_register(&dove_xor01_channel);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* XOR 1
|
||||
****************************************************************************/
|
||||
static u64 dove_xor1_dmamask = DMA_BIT_MASK(32);
|
||||
|
||||
static struct resource dove_xor1_shared_resources[] = {
|
||||
{
|
||||
.name = "xor 0 low",
|
||||
.start = DOVE_XOR1_PHYS_BASE,
|
||||
.end = DOVE_XOR1_PHYS_BASE + 0xff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "xor 0 high",
|
||||
.start = DOVE_XOR1_HIGH_PHYS_BASE,
|
||||
.end = DOVE_XOR1_HIGH_PHYS_BASE + 0xff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_xor1_shared = {
|
||||
.name = MV_XOR_SHARED_NAME,
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &dove_xor_shared_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(dove_xor1_shared_resources),
|
||||
.resource = dove_xor1_shared_resources,
|
||||
};
|
||||
|
||||
static struct resource dove_xor10_resources[] = {
|
||||
[0] = {
|
||||
.start = IRQ_DOVE_XOR_10,
|
||||
.end = IRQ_DOVE_XOR_10,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mv_xor_platform_data dove_xor10_data = {
|
||||
.shared = &dove_xor1_shared,
|
||||
.hw_id = 0,
|
||||
.pool_size = PAGE_SIZE,
|
||||
};
|
||||
|
||||
static struct platform_device dove_xor10_channel = {
|
||||
.name = MV_XOR_NAME,
|
||||
.id = 2,
|
||||
.num_resources = ARRAY_SIZE(dove_xor10_resources),
|
||||
.resource = dove_xor10_resources,
|
||||
.dev = {
|
||||
.dma_mask = &dove_xor1_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(64),
|
||||
.platform_data = (void *)&dove_xor10_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource dove_xor11_resources[] = {
|
||||
[0] = {
|
||||
.start = IRQ_DOVE_XOR_11,
|
||||
.end = IRQ_DOVE_XOR_11,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mv_xor_platform_data dove_xor11_data = {
|
||||
.shared = &dove_xor1_shared,
|
||||
.hw_id = 1,
|
||||
.pool_size = PAGE_SIZE,
|
||||
};
|
||||
|
||||
static struct platform_device dove_xor11_channel = {
|
||||
.name = MV_XOR_NAME,
|
||||
.id = 3,
|
||||
.num_resources = ARRAY_SIZE(dove_xor11_resources),
|
||||
.resource = dove_xor11_resources,
|
||||
.dev = {
|
||||
.dma_mask = &dove_xor1_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(64),
|
||||
.platform_data = (void *)&dove_xor11_data,
|
||||
},
|
||||
};
|
||||
|
||||
void __init dove_xor1_init(void)
|
||||
{
|
||||
platform_device_register(&dove_xor1_shared);
|
||||
|
||||
/*
|
||||
* two engines can't do memset simultaneously, this limitation
|
||||
* satisfied by removing memset support from one of the engines.
|
||||
*/
|
||||
dma_cap_set(DMA_MEMCPY, dove_xor10_data.cap_mask);
|
||||
dma_cap_set(DMA_XOR, dove_xor10_data.cap_mask);
|
||||
platform_device_register(&dove_xor10_channel);
|
||||
|
||||
dma_cap_set(DMA_MEMCPY, dove_xor11_data.cap_mask);
|
||||
dma_cap_set(DMA_MEMSET, dove_xor11_data.cap_mask);
|
||||
dma_cap_set(DMA_XOR, dove_xor11_data.cap_mask);
|
||||
platform_device_register(&dove_xor11_channel);
|
||||
}
|
||||
|
||||
void __init dove_init(void)
|
||||
{
|
||||
int tclk;
|
||||
|
||||
tclk = get_tclk();
|
||||
|
||||
printk(KERN_INFO "Dove 88AP510 SoC, ");
|
||||
printk(KERN_INFO "TCLK = %dMHz\n", (tclk + 499999) / 1000000);
|
||||
|
||||
#ifdef CONFIG_CACHE_TAUROS2
|
||||
tauros2_init();
|
||||
#endif
|
||||
dove_setup_cpu_mbus();
|
||||
|
||||
dove_ge00_shared_data.t_clk = tclk;
|
||||
dove_uart0_data[0].uartclk = tclk;
|
||||
dove_uart1_data[0].uartclk = tclk;
|
||||
dove_uart2_data[0].uartclk = tclk;
|
||||
dove_uart3_data[0].uartclk = tclk;
|
||||
dove_spi0_data.tclk = tclk;
|
||||
dove_spi1_data.tclk = tclk;
|
||||
|
||||
/* internal devices that every board has */
|
||||
dove_rtc_init();
|
||||
dove_xor0_init();
|
||||
dove_xor1_init();
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/common.h
|
||||
*
|
||||
* Core functions for Marvell Dove 88AP510 System On Chip
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_DOVE_COMMON_H
|
||||
#define __ARCH_DOVE_COMMON_H
|
||||
|
||||
struct mv643xx_eth_platform_data;
|
||||
struct mv_sata_platform_data;
|
||||
|
||||
extern struct sys_timer dove_timer;
|
||||
extern struct mbus_dram_target_info dove_mbus_dram_info;
|
||||
|
||||
/*
|
||||
* Basic Dove init functions used early by machine-setup.
|
||||
*/
|
||||
void dove_map_io(void);
|
||||
void dove_init(void);
|
||||
void dove_init_irq(void);
|
||||
void dove_setup_cpu_mbus(void);
|
||||
void dove_ge00_init(struct mv643xx_eth_platform_data *eth_data);
|
||||
void dove_sata_init(struct mv_sata_platform_data *sata_data);
|
||||
void dove_pcie_init(int init_port0, int init_port1);
|
||||
void dove_ehci0_init(void);
|
||||
void dove_ehci1_init(void);
|
||||
void dove_uart0_init(void);
|
||||
void dove_uart1_init(void);
|
||||
void dove_uart2_init(void);
|
||||
void dove_uart3_init(void);
|
||||
void dove_spi0_init(void);
|
||||
void dove_spi1_init(void);
|
||||
void dove_i2c_init(void);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,102 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/dove-db-setup.c
|
||||
*
|
||||
* Marvell DB-MV88AP510-BP Development Board Setup
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/ata_platform.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/orion_spi.h>
|
||||
#include <linux/spi/flash.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <mach/dove.h>
|
||||
#include "common.h"
|
||||
|
||||
static struct mv643xx_eth_platform_data dove_db_ge00_data = {
|
||||
.phy_addr = MV643XX_ETH_PHY_ADDR_DEFAULT,
|
||||
};
|
||||
|
||||
static struct mv_sata_platform_data dove_db_sata_data = {
|
||||
.n_ports = 1,
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* SPI Devices:
|
||||
* SPI0: 4M Flash ST-M25P32-VMF6P
|
||||
****************************************************************************/
|
||||
static const struct flash_platform_data dove_db_spi_flash_data = {
|
||||
.type = "m25p64",
|
||||
};
|
||||
|
||||
static struct spi_board_info __initdata dove_db_spi_flash_info[] = {
|
||||
{
|
||||
.modalias = "m25p80",
|
||||
.platform_data = &dove_db_spi_flash_data,
|
||||
.irq = -1,
|
||||
.max_speed_hz = 20000000,
|
||||
.bus_num = 0,
|
||||
.chip_select = 0,
|
||||
},
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* PCI
|
||||
****************************************************************************/
|
||||
static int __init dove_db_pci_init(void)
|
||||
{
|
||||
if (machine_is_dove_db())
|
||||
dove_pcie_init(1, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
subsys_initcall(dove_db_pci_init);
|
||||
|
||||
/*****************************************************************************
|
||||
* Board Init
|
||||
****************************************************************************/
|
||||
static void __init dove_db_init(void)
|
||||
{
|
||||
/*
|
||||
* Basic Dove setup. Needs to be called early.
|
||||
*/
|
||||
dove_init();
|
||||
|
||||
dove_ge00_init(&dove_db_ge00_data);
|
||||
dove_ehci0_init();
|
||||
dove_ehci1_init();
|
||||
dove_sata_init(&dove_db_sata_data);
|
||||
dove_spi0_init();
|
||||
dove_spi1_init();
|
||||
dove_uart0_init();
|
||||
dove_uart1_init();
|
||||
dove_i2c_init();
|
||||
spi_register_board_info(dove_db_spi_flash_info,
|
||||
ARRAY_SIZE(dove_db_spi_flash_info));
|
||||
}
|
||||
|
||||
MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board")
|
||||
.phys_io = DOVE_SB_REGS_PHYS_BASE,
|
||||
.io_pg_offst = ((DOVE_SB_REGS_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.init_machine = dove_db_init,
|
||||
.map_io = dove_map_io,
|
||||
.init_irq = dove_init_irq,
|
||||
.timer = &dove_timer,
|
||||
MACHINE_END
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/bridge-regs.h
|
||||
*
|
||||
* Mbus-L to Mbus Bridge Registers
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_BRIDGE_REGS_H
|
||||
#define __ASM_ARCH_BRIDGE_REGS_H
|
||||
|
||||
#include <mach/dove.h>
|
||||
|
||||
#define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0000)
|
||||
|
||||
#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104)
|
||||
#define CPU_CTRL_PCIE0_LINK 0x00000001
|
||||
#define CPU_RESET 0x00000002
|
||||
#define CPU_CTRL_PCIE1_LINK 0x00000008
|
||||
|
||||
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
|
||||
#define SOFT_RESET_OUT_EN 0x00000004
|
||||
|
||||
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
|
||||
#define SOFT_RESET 0x00000001
|
||||
|
||||
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
|
||||
#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
|
||||
#define BRIDGE_INT_TIMER0 0x0002
|
||||
#define BRIDGE_INT_TIMER1 0x0004
|
||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||
|
||||
#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
|
||||
#define IRQ_CAUSE_LOW_OFF 0x0000
|
||||
#define IRQ_MASK_LOW_OFF 0x0004
|
||||
#define FIQ_MASK_LOW_OFF 0x0008
|
||||
#define ENDPOINT_MASK_LOW_OFF 0x000c
|
||||
#define IRQ_CAUSE_HIGH_OFF 0x0010
|
||||
#define IRQ_MASK_HIGH_OFF 0x0014
|
||||
#define FIQ_MASK_HIGH_OFF 0x0018
|
||||
#define ENDPOINT_MASK_HIGH_OFF 0x001c
|
||||
#define PCIE_INTERRUPT_MASK_OFF 0x0020
|
||||
|
||||
#define IRQ_MASK_LOW (IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF)
|
||||
#define FIQ_MASK_LOW (IRQ_VIRT_BASE + FIQ_MASK_LOW_OFF)
|
||||
#define ENDPOINT_MASK_LOW (IRQ_VIRT_BASE + ENDPOINT_MASK_LOW_OFF)
|
||||
#define IRQ_MASK_HIGH (IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF)
|
||||
#define FIQ_MASK_HIGH (IRQ_VIRT_BASE + FIQ_MASK_HIGH_OFF)
|
||||
#define ENDPOINT_MASK_HIGH (IRQ_VIRT_BASE + ENDPOINT_MASK_HIGH_OFF)
|
||||
#define PCIE_INTERRUPT_MASK (IRQ_VIRT_BASE + PCIE_INTERRUPT_MASK_OFF)
|
||||
|
||||
#define POWER_MANAGEMENT (BRIDGE_VIRT_BASE | 0x011c)
|
||||
|
||||
#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/debug-macro.S
|
||||
*
|
||||
* 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/bridge-regs.h>
|
||||
|
||||
.macro addruart,rx
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
ldreq \rx, =DOVE_SB_REGS_PHYS_BASE
|
||||
ldrne \rx, =DOVE_SB_REGS_VIRT_BASE
|
||||
orr \rx, \rx, #0x00012000
|
||||
.endm
|
||||
|
||||
#define UART_SHIFT 2
|
||||
#include <asm/hardware/debug-8250.S>
|
|
@ -0,0 +1,180 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/dove.h
|
||||
*
|
||||
* Generic definitions for Marvell Dove 88AP510 SoC
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_DOVE_H
|
||||
#define __ASM_ARCH_DOVE_H
|
||||
|
||||
#include <mach/vmalloc.h>
|
||||
|
||||
/*
|
||||
* Marvell Dove address maps.
|
||||
*
|
||||
* phys virt size
|
||||
* c8000000 fdb00000 1M Cryptographic SRAM
|
||||
* e0000000 @runtime 128M PCIe-0 Memory space
|
||||
* e8000000 @runtime 128M PCIe-1 Memory space
|
||||
* f1000000 fde00000 8M on-chip south-bridge registers
|
||||
* f1800000 fe600000 8M on-chip north-bridge registers
|
||||
* f2000000 fee00000 1M PCIe-0 I/O space
|
||||
* f2100000 fef00000 1M PCIe-1 I/O space
|
||||
*/
|
||||
|
||||
#define DOVE_CESA_PHYS_BASE 0xc8000000
|
||||
#define DOVE_CESA_VIRT_BASE 0xfdb00000
|
||||
#define DOVE_CESA_SIZE SZ_1M
|
||||
|
||||
#define DOVE_PCIE0_MEM_PHYS_BASE 0xe0000000
|
||||
#define DOVE_PCIE0_MEM_SIZE SZ_128M
|
||||
|
||||
#define DOVE_PCIE1_MEM_PHYS_BASE 0xe8000000
|
||||
#define DOVE_PCIE1_MEM_SIZE SZ_128M
|
||||
|
||||
#define DOVE_BOOTROM_PHYS_BASE 0xf8000000
|
||||
#define DOVE_BOOTROM_SIZE SZ_128M
|
||||
|
||||
#define DOVE_SCRATCHPAD_PHYS_BASE 0xf0000000
|
||||
#define DOVE_SCRATCHPAD_VIRT_BASE 0xfdd00000
|
||||
#define DOVE_SCRATCHPAD_SIZE SZ_1M
|
||||
|
||||
#define DOVE_SB_REGS_PHYS_BASE 0xf1000000
|
||||
#define DOVE_SB_REGS_VIRT_BASE 0xfde00000
|
||||
#define DOVE_SB_REGS_SIZE SZ_8M
|
||||
|
||||
#define DOVE_NB_REGS_PHYS_BASE 0xf1800000
|
||||
#define DOVE_NB_REGS_VIRT_BASE 0xfe600000
|
||||
#define DOVE_NB_REGS_SIZE SZ_8M
|
||||
|
||||
#define DOVE_PCIE0_IO_PHYS_BASE 0xf2000000
|
||||
#define DOVE_PCIE0_IO_VIRT_BASE 0xfee00000
|
||||
#define DOVE_PCIE0_IO_BUS_BASE 0x00000000
|
||||
#define DOVE_PCIE0_IO_SIZE SZ_1M
|
||||
|
||||
#define DOVE_PCIE1_IO_PHYS_BASE 0xf2100000
|
||||
#define DOVE_PCIE1_IO_VIRT_BASE 0xfef00000
|
||||
#define DOVE_PCIE1_IO_BUS_BASE 0x00100000
|
||||
#define DOVE_PCIE1_IO_SIZE SZ_1M
|
||||
|
||||
/*
|
||||
* Dove Core Registers Map
|
||||
*/
|
||||
|
||||
/* SPI, I2C, UART */
|
||||
#define DOVE_I2C_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x11000)
|
||||
#define DOVE_UART0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12000)
|
||||
#define DOVE_UART0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12000)
|
||||
#define DOVE_UART1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12100)
|
||||
#define DOVE_UART1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12100)
|
||||
#define DOVE_UART2_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12200)
|
||||
#define DOVE_UART2_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12200)
|
||||
#define DOVE_UART3_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12300)
|
||||
#define DOVE_UART3_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12300)
|
||||
#define DOVE_SPI0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x10600)
|
||||
#define DOVE_SPI1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x14600)
|
||||
|
||||
/* North-South Bridge */
|
||||
#define BRIDGE_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x20000)
|
||||
|
||||
/* Cryptographic Engine */
|
||||
#define DOVE_CRYPT_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x30000)
|
||||
|
||||
/* PCIe 0 */
|
||||
#define DOVE_PCIE0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x40000)
|
||||
|
||||
/* USB */
|
||||
#define DOVE_USB0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x50000)
|
||||
#define DOVE_USB1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x51000)
|
||||
|
||||
/* XOR 0 Engine */
|
||||
#define DOVE_XOR0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60800)
|
||||
#define DOVE_XOR0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60800)
|
||||
#define DOVE_XOR0_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60A00)
|
||||
#define DOVE_XOR0_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60A00)
|
||||
|
||||
/* XOR 1 Engine */
|
||||
#define DOVE_XOR1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60900)
|
||||
#define DOVE_XOR1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60900)
|
||||
#define DOVE_XOR1_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60B00)
|
||||
#define DOVE_XOR1_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60B00)
|
||||
|
||||
/* Gigabit Ethernet */
|
||||
#define DOVE_GE00_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x70000)
|
||||
|
||||
/* PCIe 1 */
|
||||
#define DOVE_PCIE1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x80000)
|
||||
|
||||
/* CAFE */
|
||||
#define DOVE_SDIO0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x92000)
|
||||
#define DOVE_SDIO1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x90000)
|
||||
#define DOVE_CAM_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x94000)
|
||||
#define DOVE_CAFE_WIN_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x98000)
|
||||
|
||||
/* SATA */
|
||||
#define DOVE_SATA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xa0000)
|
||||
|
||||
/* I2S/SPDIF */
|
||||
#define DOVE_AUD0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xb0000)
|
||||
#define DOVE_AUD1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xb4000)
|
||||
|
||||
/* NAND Flash Controller */
|
||||
#define DOVE_NFC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xc0000)
|
||||
|
||||
/* MPP, GPIO, Reset Sampling */
|
||||
#define DOVE_MPP_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0200)
|
||||
#define DOVE_PMU_MPP_GENERAL_CTRL (DOVE_MPP_VIRT_BASE + 0x10)
|
||||
#define DOVE_RESET_SAMPLE_LO (DOVE_MPP_VIRT_BASE | 0x014)
|
||||
#define DOVE_RESET_SAMPLE_HI (DOVE_MPP_VIRT_BASE | 0x018)
|
||||
#define DOVE_GPIO_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0400)
|
||||
#define DOVE_MPP_GENERAL_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe803c)
|
||||
#define DOVE_AU1_SPDIFO_GPIO_EN (1 << 1)
|
||||
#define DOVE_NAND_GPIO_EN (1 << 0)
|
||||
#define DOVE_MPP_CTRL4_VIRT_BASE (DOVE_GPIO_VIRT_BASE + 0x40)
|
||||
|
||||
|
||||
/* Power Management */
|
||||
#define DOVE_PMU_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0000)
|
||||
|
||||
/* Real Time Clock */
|
||||
#define DOVE_RTC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xd8500)
|
||||
|
||||
/* AC97 */
|
||||
#define DOVE_AC97_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xe0000)
|
||||
#define DOVE_AC97_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe0000)
|
||||
|
||||
/* Peripheral DMA */
|
||||
#define DOVE_PDMA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xe4000)
|
||||
#define DOVE_PDMA_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe4000)
|
||||
|
||||
#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE | 0xe802C)
|
||||
#define DOVE_TWSI_ENABLE_OPTION1 (1 << 7)
|
||||
#define DOVE_GLOBAL_CONFIG_2 (DOVE_SB_REGS_VIRT_BASE | 0xe8030)
|
||||
#define DOVE_TWSI_ENABLE_OPTION2 (1 << 20)
|
||||
#define DOVE_TWSI_ENABLE_OPTION3 (1 << 21)
|
||||
#define DOVE_TWSI_OPTION3_GPIO (1 << 22)
|
||||
#define DOVE_SSP_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xec000)
|
||||
#define DOVE_SSP_CTRL_STATUS_1 (DOVE_SB_REGS_VIRT_BASE | 0xe8034)
|
||||
#define DOVE_SSP_ON_AU1 (1 << 0)
|
||||
#define DOVE_SSP_CLOCK_ENABLE (1 << 1)
|
||||
#define DOVE_SSP_BPB_CLOCK_SRC_SSP (1 << 11)
|
||||
/* Memory Controller */
|
||||
#define DOVE_MC_VIRT_BASE (DOVE_NB_REGS_VIRT_BASE | 0x00000)
|
||||
|
||||
/* LCD Controller */
|
||||
#define DOVE_LCD_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x10000)
|
||||
#define DOVE_LCD1_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x20000)
|
||||
#define DOVE_LCD2_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x10000)
|
||||
#define DOVE_LCD_DCON_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x30000)
|
||||
|
||||
/* Graphic Engine */
|
||||
#define DOVE_GPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x40000)
|
||||
|
||||
/* Video Engine */
|
||||
#define DOVE_VPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x400000)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/entry-macro.S
|
||||
*
|
||||
* Low-level IRQ helper macros for Marvell Dove platforms
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <mach/bridge-regs.h>
|
||||
|
||||
.macro disable_fiq
|
||||
.endm
|
||||
|
||||
.macro arch_ret_to_user, tmp1, tmp2
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_preamble, base, tmp
|
||||
ldr \base, =IRQ_VIRT_BASE
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
||||
@ check low interrupts
|
||||
ldr \irqstat, [\base, #IRQ_CAUSE_LOW_OFF]
|
||||
ldr \tmp, [\base, #IRQ_MASK_LOW_OFF]
|
||||
mov \irqnr, #31
|
||||
ands \irqstat, \irqstat, \tmp
|
||||
|
||||
@ if no low interrupts set, check high interrupts
|
||||
ldreq \irqstat, [\base, #IRQ_CAUSE_HIGH_OFF]
|
||||
ldreq \tmp, [\base, #IRQ_MASK_HIGH_OFF]
|
||||
moveq \irqnr, #63
|
||||
andeqs \irqstat, \irqstat, \tmp
|
||||
|
||||
@ find first active interrupt source
|
||||
clzne \irqstat, \irqstat
|
||||
subne \irqnr, \irqnr, \irqstat
|
||||
.endm
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/gpio.h
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_GPIO_H
|
||||
#define __ASM_ARCH_GPIO_H
|
||||
|
||||
#include <asm/errno.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <plat/gpio.h>
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
#define GPIO_MAX 64
|
||||
|
||||
#define GPIO_BASE_LO (DOVE_GPIO_VIRT_BASE + 0x00)
|
||||
#define GPIO_BASE_HI (DOVE_GPIO_VIRT_BASE + 0x20)
|
||||
|
||||
#define GPIO_BASE(pin) ((pin < 32) ? GPIO_BASE_LO : GPIO_BASE_HI)
|
||||
|
||||
#define GPIO_OUT(pin) (GPIO_BASE(pin) + 0x00)
|
||||
#define GPIO_IO_CONF(pin) (GPIO_BASE(pin) + 0x04)
|
||||
#define GPIO_BLINK_EN(pin) (GPIO_BASE(pin) + 0x08)
|
||||
#define GPIO_IN_POL(pin) (GPIO_BASE(pin) + 0x0c)
|
||||
#define GPIO_DATA_IN(pin) (GPIO_BASE(pin) + 0x10)
|
||||
#define GPIO_EDGE_CAUSE(pin) (GPIO_BASE(pin) + 0x14)
|
||||
#define GPIO_EDGE_MASK(pin) (GPIO_BASE(pin) + 0x18)
|
||||
#define GPIO_LEVEL_MASK(pin) (GPIO_BASE(pin) + 0x1c)
|
||||
|
||||
static inline int gpio_to_irq(int pin)
|
||||
{
|
||||
if (pin < NR_GPIO_IRQS)
|
||||
return pin + IRQ_DOVE_GPIO_START;
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int irq_to_gpio(int irq)
|
||||
{
|
||||
if (IRQ_DOVE_GPIO_START < irq && irq < NR_IRQS)
|
||||
return irq - IRQ_DOVE_GPIO_START;
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/hardware.h
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_HARDWARE_H
|
||||
#define __ASM_ARCH_HARDWARE_H
|
||||
|
||||
#include "dove.h"
|
||||
|
||||
#define pcibios_assign_all_busses() 1
|
||||
|
||||
#define PCIBIOS_MIN_IO 0x1000
|
||||
#define PCIBIOS_MIN_MEM 0x01000000
|
||||
#define PCIMEM_BASE DOVE_PCIE0_MEM_PHYS_BASE
|
||||
|
||||
|
||||
/* Macros below are required for compatibility with PXA AC'97 driver. */
|
||||
#define __REG(x) (*((volatile u32 *)((x) - DOVE_SB_REGS_PHYS_BASE + \
|
||||
DOVE_SB_REGS_VIRT_BASE)))
|
||||
#define __PREG(x) (((u32)&(x)) - DOVE_SB_REGS_VIRT_BASE + \
|
||||
DOVE_SB_REGS_PHYS_BASE)
|
||||
#endif
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/io.h
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_IO_H
|
||||
#define __ASM_ARCH_IO_H
|
||||
|
||||
#include "dove.h"
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
#define __io(a) ((void __iomem *)(((a) - DOVE_PCIE0_IO_PHYS_BASE) +\
|
||||
DOVE_PCIE0_IO_VIRT_BASE))
|
||||
#define __mem_pci(a) (a)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/irqs.h
|
||||
*
|
||||
* IRQ definitions for Marvell Dove 88AP510 SoC
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_IRQS_H
|
||||
#define __ASM_ARCH_IRQS_H
|
||||
|
||||
/*
|
||||
* Dove Low Interrupt Controller
|
||||
*/
|
||||
#define IRQ_DOVE_BRIDGE 0
|
||||
#define IRQ_DOVE_H2C 1
|
||||
#define IRQ_DOVE_C2H 2
|
||||
#define IRQ_DOVE_NAND 3
|
||||
#define IRQ_DOVE_PDMA 4
|
||||
#define IRQ_DOVE_SPI1 5
|
||||
#define IRQ_DOVE_SPI0 6
|
||||
#define IRQ_DOVE_UART_0 7
|
||||
#define IRQ_DOVE_UART_1 8
|
||||
#define IRQ_DOVE_UART_2 9
|
||||
#define IRQ_DOVE_UART_3 10
|
||||
#define IRQ_DOVE_I2C 11
|
||||
#define IRQ_DOVE_GPIO_0_7 12
|
||||
#define IRQ_DOVE_GPIO_8_15 13
|
||||
#define IRQ_DOVE_GPIO_16_23 14
|
||||
#define IRQ_DOVE_PCIE0_ERR 15
|
||||
#define IRQ_DOVE_PCIE0 16
|
||||
#define IRQ_DOVE_PCIE1_ERR 17
|
||||
#define IRQ_DOVE_PCIE1 18
|
||||
#define IRQ_DOVE_I2S0 19
|
||||
#define IRQ_DOVE_I2S0_ERR 20
|
||||
#define IRQ_DOVE_I2S1 21
|
||||
#define IRQ_DOVE_I2S1_ERR 22
|
||||
#define IRQ_DOVE_USB_ERR 23
|
||||
#define IRQ_DOVE_USB0 24
|
||||
#define IRQ_DOVE_USB1 25
|
||||
#define IRQ_DOVE_GE00_RX 26
|
||||
#define IRQ_DOVE_GE00_TX 27
|
||||
#define IRQ_DOVE_GE00_MISC 28
|
||||
#define IRQ_DOVE_GE00_SUM 29
|
||||
#define IRQ_DOVE_GE00_ERR 30
|
||||
#define IRQ_DOVE_CRYPTO 31
|
||||
|
||||
/*
|
||||
* Dove High Interrupt Controller
|
||||
*/
|
||||
#define IRQ_DOVE_AC97 32
|
||||
#define IRQ_DOVE_PMU 33
|
||||
#define IRQ_DOVE_CAM 34
|
||||
#define IRQ_DOVE_SDIO0 35
|
||||
#define IRQ_DOVE_SDIO1 36
|
||||
#define IRQ_DOVE_SDIO0_WAKEUP 37
|
||||
#define IRQ_DOVE_SDIO1_WAKEUP 38
|
||||
#define IRQ_DOVE_XOR_00 39
|
||||
#define IRQ_DOVE_XOR_01 40
|
||||
#define IRQ_DOVE_XOR0_ERR 41
|
||||
#define IRQ_DOVE_XOR_10 42
|
||||
#define IRQ_DOVE_XOR_11 43
|
||||
#define IRQ_DOVE_XOR1_ERR 44
|
||||
#define IRQ_DOVE_LCD_DCON 45
|
||||
#define IRQ_DOVE_LCD1 46
|
||||
#define IRQ_DOVE_LCD0 47
|
||||
#define IRQ_DOVE_GPU 48
|
||||
#define IRQ_DOVE_PERFORM_MNTR 49
|
||||
#define IRQ_DOVE_VPRO_DMA1 51
|
||||
#define IRQ_DOVE_SSP_TIMER 54
|
||||
#define IRQ_DOVE_SSP 55
|
||||
#define IRQ_DOVE_MC_L2_ERR 56
|
||||
#define IRQ_DOVE_CRYPTO_ERR 59
|
||||
#define IRQ_DOVE_GPIO_24_31 60
|
||||
#define IRQ_DOVE_HIGH_GPIO 61
|
||||
#define IRQ_DOVE_SATA 62
|
||||
|
||||
/*
|
||||
* DOVE General Purpose Pins
|
||||
*/
|
||||
#define IRQ_DOVE_GPIO_START 64
|
||||
#define NR_GPIO_IRQS 64
|
||||
|
||||
/*
|
||||
* PMU interrupts
|
||||
*/
|
||||
#define IRQ_DOVE_PMU_START (IRQ_DOVE_GPIO_START + NR_GPIO_IRQS)
|
||||
#define NR_PMU_IRQS 7
|
||||
#define IRQ_DOVE_RTC (IRQ_DOVE_PMU_START + 5)
|
||||
|
||||
#define NR_IRQS (IRQ_DOVE_PMU_START + NR_PMU_IRQS)
|
||||
|
||||
/* Required for compatability with PXA AC97 driver. */
|
||||
#define IRQ_AC97 IRQ_DOVE_AC97
|
||||
/* Required for compatability with PXA DMA driver. */
|
||||
#define IRQ_DMA IRQ_DOVE_PDMA
|
||||
/* Required for compatability with PXA NAND driver */
|
||||
#define IRQ_NAND IRQ_DOVE_NAND
|
||||
#endif
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/memory.h
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MEMORY_H
|
||||
#define __ASM_ARCH_MEMORY_H
|
||||
|
||||
#define PHYS_OFFSET UL(0x00000000)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/pm.h
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_PM_H
|
||||
#define __ASM_ARCH_PM_H
|
||||
|
||||
#include <asm/errno.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#define CLOCK_GATING_CONTROL (DOVE_PMU_VIRT_BASE + 0x38)
|
||||
#define CLOCK_GATING_USB0_MASK (1 << 0)
|
||||
#define CLOCK_GATING_USB1_MASK (1 << 1)
|
||||
#define CLOCK_GATING_GBE_MASK (1 << 2)
|
||||
#define CLOCK_GATING_SATA_MASK (1 << 3)
|
||||
#define CLOCK_GATING_PCIE0_MASK (1 << 4)
|
||||
#define CLOCK_GATING_PCIE1_MASK (1 << 5)
|
||||
#define CLOCK_GATING_SDIO0_MASK (1 << 8)
|
||||
#define CLOCK_GATING_SDIO1_MASK (1 << 9)
|
||||
#define CLOCK_GATING_NAND_MASK (1 << 10)
|
||||
#define CLOCK_GATING_CAMERA_MASK (1 << 11)
|
||||
#define CLOCK_GATING_I2S0_MASK (1 << 12)
|
||||
#define CLOCK_GATING_I2S1_MASK (1 << 13)
|
||||
#define CLOCK_GATING_CRYPTO_MASK (1 << 15)
|
||||
#define CLOCK_GATING_AC97_MASK (1 << 21)
|
||||
#define CLOCK_GATING_PDMA_MASK (1 << 22)
|
||||
#define CLOCK_GATING_XOR0_MASK (1 << 23)
|
||||
#define CLOCK_GATING_XOR1_MASK (1 << 24)
|
||||
#define CLOCK_GATING_GIGA_PHY_MASK (1 << 30)
|
||||
|
||||
#define PMU_INTERRUPT_CAUSE (DOVE_PMU_VIRT_BASE + 0x50)
|
||||
#define PMU_INTERRUPT_MASK (DOVE_PMU_VIRT_BASE + 0x54)
|
||||
|
||||
static inline int pmu_to_irq(int pin)
|
||||
{
|
||||
if (pin < NR_PMU_IRQS)
|
||||
return pin + IRQ_DOVE_PMU_START;
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int irq_to_pmu(int irq)
|
||||
{
|
||||
if (IRQ_DOVE_PMU_START < irq && irq < NR_IRQS)
|
||||
return irq - IRQ_DOVE_PMU_START;
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/system.h
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_SYSTEM_H
|
||||
#define __ASM_ARCH_SYSTEM_H
|
||||
|
||||
#include <mach/bridge-regs.h>
|
||||
|
||||
static inline void arch_idle(void)
|
||||
{
|
||||
cpu_do_idle();
|
||||
}
|
||||
|
||||
static inline void arch_reset(char mode, const char *cmd)
|
||||
{
|
||||
/*
|
||||
* Enable soft reset to assert RSTOUTn.
|
||||
*/
|
||||
writel(SOFT_RESET_OUT_EN, RSTOUTn_MASK);
|
||||
|
||||
/*
|
||||
* Assert soft reset.
|
||||
*/
|
||||
writel(SOFT_RESET, SYSTEM_SOFT_RESET);
|
||||
|
||||
while (1)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/timex.h
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define CLOCK_TICK_RATE (100 * HZ)
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/uncompress.h
|
||||
*
|
||||
* 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/dove.h>
|
||||
|
||||
#define UART_THR ((volatile unsigned char *)(DOVE_UART0_PHYS_BASE + 0x0))
|
||||
#define UART_LSR ((volatile unsigned char *)(DOVE_UART0_PHYS_BASE + 0x14))
|
||||
|
||||
#define LSR_THRE 0x20
|
||||
|
||||
static void putc(const char c)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 0x1000; i++) {
|
||||
/* Transmit fifo not full? */
|
||||
if (*UART_LSR & LSR_THRE)
|
||||
break;
|
||||
}
|
||||
|
||||
*UART_THR = c;
|
||||
}
|
||||
|
||||
static void flush(void)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* nothing to do
|
||||
*/
|
||||
#define arch_decomp_setup()
|
||||
#define arch_decomp_wdog()
|
|
@ -0,0 +1,5 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/include/mach/vmalloc.h
|
||||
*/
|
||||
|
||||
#define VMALLOC_END 0xfd800000
|
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/irq.c
|
||||
*
|
||||
* Dove IRQ handling.
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <plat/irq.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <mach/pm.h>
|
||||
#include <mach/bridge-regs.h>
|
||||
#include "common.h"
|
||||
|
||||
static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
int irqoff;
|
||||
BUG_ON(irq < IRQ_DOVE_GPIO_0_7 || irq > IRQ_DOVE_HIGH_GPIO);
|
||||
|
||||
irqoff = irq <= IRQ_DOVE_GPIO_16_23 ? irq - IRQ_DOVE_GPIO_0_7 :
|
||||
3 + irq - IRQ_DOVE_GPIO_24_31;
|
||||
|
||||
orion_gpio_irq_handler(irqoff << 3);
|
||||
if (irq == IRQ_DOVE_HIGH_GPIO) {
|
||||
orion_gpio_irq_handler(40);
|
||||
orion_gpio_irq_handler(48);
|
||||
orion_gpio_irq_handler(56);
|
||||
}
|
||||
}
|
||||
|
||||
static void pmu_irq_mask(unsigned int irq)
|
||||
{
|
||||
int pin = irq_to_pmu(irq);
|
||||
u32 u;
|
||||
|
||||
u = readl(PMU_INTERRUPT_MASK);
|
||||
u &= ~(1 << (pin & 31));
|
||||
writel(u, PMU_INTERRUPT_MASK);
|
||||
}
|
||||
|
||||
static void pmu_irq_unmask(unsigned int irq)
|
||||
{
|
||||
int pin = irq_to_pmu(irq);
|
||||
u32 u;
|
||||
|
||||
u = readl(PMU_INTERRUPT_MASK);
|
||||
u |= 1 << (pin & 31);
|
||||
writel(u, PMU_INTERRUPT_MASK);
|
||||
}
|
||||
|
||||
static void pmu_irq_ack(unsigned int irq)
|
||||
{
|
||||
int pin = irq_to_pmu(irq);
|
||||
u32 u;
|
||||
|
||||
u = ~(1 << (pin & 31));
|
||||
writel(u, PMU_INTERRUPT_CAUSE);
|
||||
}
|
||||
|
||||
static struct irq_chip pmu_irq_chip = {
|
||||
.name = "pmu_irq",
|
||||
.mask = pmu_irq_mask,
|
||||
.unmask = pmu_irq_unmask,
|
||||
.ack = pmu_irq_ack,
|
||||
};
|
||||
|
||||
static void pmu_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
unsigned long cause = readl(PMU_INTERRUPT_CAUSE);
|
||||
|
||||
cause &= readl(PMU_INTERRUPT_MASK);
|
||||
if (cause == 0) {
|
||||
do_bad_IRQ(irq, desc);
|
||||
return;
|
||||
}
|
||||
|
||||
for (irq = 0; irq < NR_PMU_IRQS; irq++) {
|
||||
if (!(cause & (1 << irq)))
|
||||
continue;
|
||||
irq = pmu_to_irq(irq);
|
||||
desc = irq_desc + irq;
|
||||
desc_handle_irq(irq, desc);
|
||||
}
|
||||
}
|
||||
|
||||
void __init dove_init_irq(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
orion_irq_init(0, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF));
|
||||
orion_irq_init(32, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF));
|
||||
|
||||
/*
|
||||
* Mask and clear GPIO IRQ interrupts.
|
||||
*/
|
||||
writel(0, GPIO_LEVEL_MASK(0));
|
||||
writel(0, GPIO_EDGE_MASK(0));
|
||||
writel(0, GPIO_EDGE_CAUSE(0));
|
||||
|
||||
/*
|
||||
* Mask and clear PMU interrupts
|
||||
*/
|
||||
writel(0, PMU_INTERRUPT_MASK);
|
||||
writel(0, PMU_INTERRUPT_CAUSE);
|
||||
|
||||
for (i = IRQ_DOVE_GPIO_START; i < IRQ_DOVE_PMU_START; i++) {
|
||||
set_irq_chip(i, &orion_gpio_irq_chip);
|
||||
set_irq_handler(i, handle_level_irq);
|
||||
irq_desc[i].status |= IRQ_LEVEL;
|
||||
set_irq_flags(i, IRQF_VALID);
|
||||
}
|
||||
set_irq_chained_handler(IRQ_DOVE_GPIO_0_7, gpio_irq_handler);
|
||||
set_irq_chained_handler(IRQ_DOVE_GPIO_8_15, gpio_irq_handler);
|
||||
set_irq_chained_handler(IRQ_DOVE_GPIO_16_23, gpio_irq_handler);
|
||||
set_irq_chained_handler(IRQ_DOVE_GPIO_24_31, gpio_irq_handler);
|
||||
set_irq_chained_handler(IRQ_DOVE_HIGH_GPIO, gpio_irq_handler);
|
||||
|
||||
for (i = IRQ_DOVE_PMU_START; i < NR_IRQS; i++) {
|
||||
set_irq_chip(i, &pmu_irq_chip);
|
||||
set_irq_handler(i, handle_level_irq);
|
||||
irq_desc[i].status |= IRQ_LEVEL;
|
||||
set_irq_flags(i, IRQF_VALID);
|
||||
}
|
||||
set_irq_chained_handler(IRQ_DOVE_PMU, pmu_irq_handler);
|
||||
}
|
|
@ -0,0 +1,238 @@
|
|||
/*
|
||||
* arch/arm/mach-dove/pcie.c
|
||||
*
|
||||
* PCIe functions for Marvell Dove 88AP510 SoC
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/mbus.h>
|
||||
#include <asm/mach/pci.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/delay.h>
|
||||
#include <plat/pcie.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/bridge-regs.h>
|
||||
#include "common.h"
|
||||
|
||||
struct pcie_port {
|
||||
u8 index;
|
||||
u8 root_bus_nr;
|
||||
void __iomem *base;
|
||||
spinlock_t conf_lock;
|
||||
char io_space_name[16];
|
||||
char mem_space_name[16];
|
||||
struct resource res[2];
|
||||
};
|
||||
|
||||
static struct pcie_port pcie_port[2];
|
||||
static int num_pcie_ports;
|
||||
|
||||
|
||||
static int __init dove_pcie_setup(int nr, struct pci_sys_data *sys)
|
||||
{
|
||||
struct pcie_port *pp;
|
||||
|
||||
if (nr >= num_pcie_ports)
|
||||
return 0;
|
||||
|
||||
pp = &pcie_port[nr];
|
||||
pp->root_bus_nr = sys->busnr;
|
||||
|
||||
/*
|
||||
* Generic PCIe unit setup.
|
||||
*/
|
||||
orion_pcie_set_local_bus_nr(pp->base, sys->busnr);
|
||||
|
||||
orion_pcie_setup(pp->base, &dove_mbus_dram_info);
|
||||
|
||||
/*
|
||||
* IORESOURCE_IO
|
||||
*/
|
||||
snprintf(pp->io_space_name, sizeof(pp->io_space_name),
|
||||
"PCIe %d I/O", pp->index);
|
||||
pp->io_space_name[sizeof(pp->io_space_name) - 1] = 0;
|
||||
pp->res[0].name = pp->io_space_name;
|
||||
if (pp->index == 0) {
|
||||
pp->res[0].start = DOVE_PCIE0_IO_PHYS_BASE;
|
||||
pp->res[0].end = pp->res[0].start + DOVE_PCIE0_IO_SIZE - 1;
|
||||
} else {
|
||||
pp->res[0].start = DOVE_PCIE1_IO_PHYS_BASE;
|
||||
pp->res[0].end = pp->res[0].start + DOVE_PCIE1_IO_SIZE - 1;
|
||||
}
|
||||
pp->res[0].flags = IORESOURCE_IO;
|
||||
if (request_resource(&ioport_resource, &pp->res[0]))
|
||||
panic("Request PCIe IO resource failed\n");
|
||||
sys->resource[0] = &pp->res[0];
|
||||
|
||||
/*
|
||||
* IORESOURCE_MEM
|
||||
*/
|
||||
snprintf(pp->mem_space_name, sizeof(pp->mem_space_name),
|
||||
"PCIe %d MEM", pp->index);
|
||||
pp->mem_space_name[sizeof(pp->mem_space_name) - 1] = 0;
|
||||
pp->res[1].name = pp->mem_space_name;
|
||||
if (pp->index == 0) {
|
||||
pp->res[1].start = DOVE_PCIE0_MEM_PHYS_BASE;
|
||||
pp->res[1].end = pp->res[1].start + DOVE_PCIE0_MEM_SIZE - 1;
|
||||
} else {
|
||||
pp->res[1].start = DOVE_PCIE1_MEM_PHYS_BASE;
|
||||
pp->res[1].end = pp->res[1].start + DOVE_PCIE1_MEM_SIZE - 1;
|
||||
}
|
||||
pp->res[1].flags = IORESOURCE_MEM;
|
||||
if (request_resource(&iomem_resource, &pp->res[1]))
|
||||
panic("Request PCIe Memory resource failed\n");
|
||||
sys->resource[1] = &pp->res[1];
|
||||
|
||||
sys->resource[2] = NULL;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static struct pcie_port *bus_to_port(int bus)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = num_pcie_ports - 1; i >= 0; i--) {
|
||||
int rbus = pcie_port[i].root_bus_nr;
|
||||
if (rbus != -1 && rbus <= bus)
|
||||
break;
|
||||
}
|
||||
|
||||
return i >= 0 ? pcie_port + i : NULL;
|
||||
}
|
||||
|
||||
static int pcie_valid_config(struct pcie_port *pp, int bus, int dev)
|
||||
{
|
||||
/*
|
||||
* Don't go out when trying to access nonexisting devices
|
||||
* on the local bus.
|
||||
*/
|
||||
if (bus == pp->root_bus_nr && dev > 1)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
|
||||
int size, u32 *val)
|
||||
{
|
||||
struct pcie_port *pp = bus_to_port(bus->number);
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
if (pcie_valid_config(pp, bus->number, PCI_SLOT(devfn)) == 0) {
|
||||
*val = 0xffffffff;
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&pp->conf_lock, flags);
|
||||
ret = orion_pcie_rd_conf(pp->base, bus, devfn, where, size, val);
|
||||
spin_unlock_irqrestore(&pp->conf_lock, flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int pcie_wr_conf(struct pci_bus *bus, u32 devfn,
|
||||
int where, int size, u32 val)
|
||||
{
|
||||
struct pcie_port *pp = bus_to_port(bus->number);
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
if (pcie_valid_config(pp, bus->number, PCI_SLOT(devfn)) == 0)
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
spin_lock_irqsave(&pp->conf_lock, flags);
|
||||
ret = orion_pcie_wr_conf(pp->base, bus, devfn, where, size, val);
|
||||
spin_unlock_irqrestore(&pp->conf_lock, flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct pci_ops pcie_ops = {
|
||||
.read = pcie_rd_conf,
|
||||
.write = pcie_wr_conf,
|
||||
};
|
||||
|
||||
static void __devinit rc_pci_fixup(struct pci_dev *dev)
|
||||
{
|
||||
/*
|
||||
* Prevent enumeration of root complex.
|
||||
*/
|
||||
if (dev->bus->parent == NULL && dev->devfn == 0) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
|
||||
dev->resource[i].start = 0;
|
||||
dev->resource[i].end = 0;
|
||||
dev->resource[i].flags = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup);
|
||||
|
||||
static struct pci_bus __init *
|
||||
dove_pcie_scan_bus(int nr, struct pci_sys_data *sys)
|
||||
{
|
||||
struct pci_bus *bus;
|
||||
|
||||
if (nr < num_pcie_ports) {
|
||||
bus = pci_scan_bus(sys->busnr, &pcie_ops, sys);
|
||||
} else {
|
||||
bus = NULL;
|
||||
BUG();
|
||||
}
|
||||
|
||||
return bus;
|
||||
}
|
||||
|
||||
static int __init dove_pcie_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||
{
|
||||
struct pcie_port *pp = bus_to_port(dev->bus->number);
|
||||
|
||||
return pp->index ? IRQ_DOVE_PCIE1 : IRQ_DOVE_PCIE0;
|
||||
}
|
||||
|
||||
static struct hw_pci dove_pci __initdata = {
|
||||
.nr_controllers = 2,
|
||||
.swizzle = pci_std_swizzle,
|
||||
.setup = dove_pcie_setup,
|
||||
.scan = dove_pcie_scan_bus,
|
||||
.map_irq = dove_pcie_map_irq,
|
||||
};
|
||||
|
||||
static void __init add_pcie_port(int index, unsigned long base)
|
||||
{
|
||||
printk(KERN_INFO "Dove PCIe port %d: ", index);
|
||||
|
||||
if (orion_pcie_link_up((void __iomem *)base)) {
|
||||
struct pcie_port *pp = &pcie_port[num_pcie_ports++];
|
||||
|
||||
printk(KERN_INFO "link up\n");
|
||||
|
||||
pp->index = index;
|
||||
pp->root_bus_nr = -1;
|
||||
pp->base = (void __iomem *)base;
|
||||
spin_lock_init(&pp->conf_lock);
|
||||
memset(pp->res, 0, sizeof(pp->res));
|
||||
} else {
|
||||
printk(KERN_INFO "link down, ignoring\n");
|
||||
}
|
||||
}
|
||||
|
||||
void __init dove_pcie_init(int init_port0, int init_port1)
|
||||
{
|
||||
if (init_port0)
|
||||
add_pcie_port(0, DOVE_PCIE0_VIRT_BASE);
|
||||
|
||||
if (init_port1)
|
||||
add_pcie_port(1, DOVE_PCIE1_VIRT_BASE);
|
||||
|
||||
pci_common_init(&dove_pci);
|
||||
}
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/fb.h>
|
||||
#include <mach/ep93xx_keypad.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
@ -728,6 +729,82 @@ void __init ep93xx_register_fb(struct ep93xxfb_mach_info *data)
|
|||
platform_device_register(&ep93xx_fb_device);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* EP93xx matrix keypad peripheral handling
|
||||
*************************************************************************/
|
||||
static struct resource ep93xx_keypad_resource[] = {
|
||||
{
|
||||
.start = EP93XX_KEY_MATRIX_PHYS_BASE,
|
||||
.end = EP93XX_KEY_MATRIX_PHYS_BASE + 0x0c - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = IRQ_EP93XX_KEY,
|
||||
.end = IRQ_EP93XX_KEY,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device ep93xx_keypad_device = {
|
||||
.name = "ep93xx-keypad",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(ep93xx_keypad_resource),
|
||||
.resource = ep93xx_keypad_resource,
|
||||
};
|
||||
|
||||
void __init ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data)
|
||||
{
|
||||
ep93xx_keypad_device.dev.platform_data = data;
|
||||
platform_device_register(&ep93xx_keypad_device);
|
||||
}
|
||||
|
||||
int ep93xx_keypad_acquire_gpio(struct platform_device *pdev)
|
||||
{
|
||||
int err;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
err = gpio_request(EP93XX_GPIO_LINE_C(i), dev_name(&pdev->dev));
|
||||
if (err)
|
||||
goto fail_gpio_c;
|
||||
err = gpio_request(EP93XX_GPIO_LINE_D(i), dev_name(&pdev->dev));
|
||||
if (err)
|
||||
goto fail_gpio_d;
|
||||
}
|
||||
|
||||
/* Enable the keypad controller; GPIO ports C and D used for keypad */
|
||||
ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_KEYS |
|
||||
EP93XX_SYSCON_DEVCFG_GONK);
|
||||
|
||||
return 0;
|
||||
|
||||
fail_gpio_d:
|
||||
gpio_free(EP93XX_GPIO_LINE_C(i));
|
||||
fail_gpio_c:
|
||||
for ( ; i >= 0; --i) {
|
||||
gpio_free(EP93XX_GPIO_LINE_C(i));
|
||||
gpio_free(EP93XX_GPIO_LINE_D(i));
|
||||
}
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(ep93xx_keypad_acquire_gpio);
|
||||
|
||||
void ep93xx_keypad_release_gpio(struct platform_device *pdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
gpio_free(EP93XX_GPIO_LINE_C(i));
|
||||
gpio_free(EP93XX_GPIO_LINE_D(i));
|
||||
}
|
||||
|
||||
/* Disable the keypad controller; GPIO ports C and D used for GPIO */
|
||||
ep93xx_devcfg_set_bits(EP93XX_SYSCON_DEVCFG_KEYS |
|
||||
EP93XX_SYSCON_DEVCFG_GONK);
|
||||
}
|
||||
EXPORT_SYMBOL(ep93xx_keypad_release_gpio);
|
||||
|
||||
|
||||
extern void ep93xx_gpio_init(void);
|
||||
|
||||
void __init ep93xx_init_devices(void)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
/*
|
||||
* arch/arm/mach-ep93xx/include/mach/clkdev.h
|
||||
*/
|
||||
|
||||
#ifndef __ASM_MACH_CLKDEV_H
|
||||
#define __ASM_MACH_CLKDEV_H
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
/*
|
||||
* arch/arm/mach-ep93xx/include/mach/dma.h
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_DMA_H
|
||||
#define __ASM_ARCH_DMA_H
|
||||
|
||||
|
|
|
@ -134,6 +134,7 @@
|
|||
#define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000)
|
||||
#define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000)
|
||||
|
||||
#define EP93XX_KEY_MATRIX_PHYS_BASE EP93XX_APB_PHYS(0x000f0000)
|
||||
#define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000)
|
||||
|
||||
#define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* arch/arm/mach-ep93xx/include/mach/hardware.h
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_HARDWARE_H
|
||||
#define __ASM_ARCH_HARDWARE_H
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* arch/arm/mach-ep93xx/include/mach/io.h
|
||||
*/
|
||||
|
||||
#ifndef __ASM_MACH_IO_H
|
||||
#define __ASM_MACH_IO_H
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ struct i2c_gpio_platform_data;
|
|||
struct i2c_board_info;
|
||||
struct platform_device;
|
||||
struct ep93xxfb_mach_info;
|
||||
struct ep93xx_keypad_platform_data;
|
||||
|
||||
struct ep93xx_eth_data
|
||||
{
|
||||
|
@ -39,6 +40,9 @@ void ep93xx_register_fb(struct ep93xxfb_mach_info *data);
|
|||
void ep93xx_register_pwm(int pwm0, int pwm1);
|
||||
int ep93xx_pwm_acquire_gpio(struct platform_device *pdev);
|
||||
void ep93xx_pwm_release_gpio(struct platform_device *pdev);
|
||||
void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data);
|
||||
int ep93xx_keypad_acquire_gpio(struct platform_device *pdev);
|
||||
void ep93xx_keypad_release_gpio(struct platform_device *pdev);
|
||||
|
||||
void ep93xx_init_devices(void);
|
||||
extern struct sys_timer ep93xx_timer;
|
||||
|
|
|
@ -64,6 +64,8 @@ static inline unsigned long __lbus_to_virt(dma_addr_t x)
|
|||
(dma_addr_t)page_to_phys(page); \
|
||||
})
|
||||
|
||||
#define __arch_dma_to_page(dev, addr) phys_to_page(addr)
|
||||
|
||||
#endif /* CONFIG_ARCH_IOP13XX */
|
||||
#endif /* !ASSEMBLY */
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#define IOP13XX_CORE_FREQ_1200 (5 << 16)
|
||||
|
||||
void iop_init_time(unsigned long tickrate);
|
||||
unsigned long iop_gettimeoffset(void);
|
||||
|
||||
static inline unsigned long iop13xx_core_freq(void)
|
||||
{
|
||||
|
@ -66,6 +65,13 @@ static inline unsigned long iop13xx_xsi_bus_ratio(void)
|
|||
return 2;
|
||||
}
|
||||
|
||||
static inline u32 read_tmr0(void)
|
||||
{
|
||||
u32 val;
|
||||
asm volatile("mrc p6, 0, %0, c0, c9, 0" : "=r" (val));
|
||||
return val;
|
||||
}
|
||||
|
||||
static inline void write_tmr0(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c0, c9, 0" : : "r" (val));
|
||||
|
@ -83,6 +89,11 @@ static inline u32 read_tcr0(void)
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline void write_tcr0(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c2, c9, 0" : : "r" (val));
|
||||
}
|
||||
|
||||
static inline u32 read_tcr1(void)
|
||||
{
|
||||
u32 val;
|
||||
|
@ -90,6 +101,11 @@ static inline u32 read_tcr1(void)
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline void write_tcr1(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c3, c9, 0" : : "r" (val));
|
||||
}
|
||||
|
||||
static inline void write_trr0(u32 val)
|
||||
{
|
||||
asm volatile("mcr p6, 0, %0, c4, c9, 0" : : "r" (val));
|
||||
|
|
|
@ -87,7 +87,6 @@ static void __init iq81340mc_timer_init(void)
|
|||
|
||||
static struct sys_timer iq81340mc_timer = {
|
||||
.init = iq81340mc_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
MACHINE_START(IQ81340MC, "Intel IQ81340MC")
|
||||
|
|
|
@ -89,7 +89,6 @@ static void __init iq81340sc_timer_init(void)
|
|||
|
||||
static struct sys_timer iq81340sc_timer = {
|
||||
.init = iq81340sc_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
MACHINE_START(IQ81340SC, "Intel IQ81340SC")
|
||||
|
|
|
@ -42,7 +42,6 @@ static void __init em7210_timer_init(void)
|
|||
|
||||
static struct sys_timer em7210_timer = {
|
||||
.init = em7210_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -47,7 +47,6 @@ static void __init glantank_timer_init(void)
|
|||
|
||||
static struct sys_timer glantank_timer = {
|
||||
.init = glantank_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -78,7 +78,6 @@ static void __init iq31244_timer_init(void)
|
|||
|
||||
static struct sys_timer iq31244_timer = {
|
||||
.init = iq31244_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -46,7 +46,6 @@ static void __init iq80321_timer_init(void)
|
|||
|
||||
static struct sys_timer iq80321_timer = {
|
||||
.init = iq80321_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ static void __init n2100_timer_init(void)
|
|||
|
||||
static struct sys_timer n2100_timer = {
|
||||
.init = n2100_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -48,7 +48,6 @@ static void __init iq80331_timer_init(void)
|
|||
|
||||
static struct sys_timer iq80331_timer = {
|
||||
.init = iq80331_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -48,7 +48,6 @@ static void __init iq80332_timer_init(void)
|
|||
|
||||
static struct sys_timer iq80332_timer = {
|
||||
.init = iq80332_timer_init,
|
||||
.offset = iop_gettimeoffset,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -33,10 +33,18 @@ config MACH_SHEEVAPLUG
|
|||
Marvell SheevaPlug Reference Board.
|
||||
|
||||
config MACH_TS219
|
||||
bool "QNAP TS-119 and TS-219 Turbo NAS"
|
||||
bool "QNAP TS-110, TS-119, TS-210, TS-219 and TS-219P Turbo NAS"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
QNAP TS-119 and TS-219 Turbo NAS devices.
|
||||
QNAP TS-110, TS-119, TS-210, TS-219 and TS-219P Turbo NAS
|
||||
devices.
|
||||
|
||||
config MACH_TS41X
|
||||
bool "QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS
|
||||
devices.
|
||||
|
||||
config MACH_OPENRD_BASE
|
||||
bool "Marvell OpenRD Base Board"
|
||||
|
|
|
@ -5,7 +5,8 @@ obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o
|
|||
obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
|
||||
obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
|
||||
obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
|
||||
obj-$(CONFIG_MACH_TS219) += ts219-setup.o
|
||||
obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
|
||||
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
|
||||
obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o
|
||||
|
||||
obj-$(CONFIG_CPU_IDLE) += cpuidle.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
*
|
||||
* QNAP TS-119/TS-219 Turbo NAS Board Setup
|
||||
* QNAP TS-11x/TS-21x Turbo NAS Board Setup
|
||||
*
|
||||
* Copyright (C) 2009 Martin Michlmayr <tbm@cyrius.com>
|
||||
* Copyright (C) 2008 Byron Bradley <byron.bbradley@gmail.com>
|
||||
|
@ -14,87 +14,17 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/spi/flash.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/orion_spi.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <linux/ata_platform.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/timex.h>
|
||||
#include <linux/serial_reg.h>
|
||||
#include <linux/pci.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <mach/kirkwood.h>
|
||||
#include "common.h"
|
||||
#include "mpp.h"
|
||||
|
||||
/****************************************************************************
|
||||
* 16 MiB NOR flash. The struct mtd_partition is not in the same order as the
|
||||
* partitions on the device because we want to keep compatability with
|
||||
* the QNAP firmware.
|
||||
* Layout as used by QNAP:
|
||||
* 0x00000000-0x00080000 : "U-Boot"
|
||||
* 0x00200000-0x00400000 : "Kernel"
|
||||
* 0x00400000-0x00d00000 : "RootFS"
|
||||
* 0x00d00000-0x01000000 : "RootFS2"
|
||||
* 0x00080000-0x000c0000 : "U-Boot Config"
|
||||
* 0x000c0000-0x00200000 : "NAS Config"
|
||||
*
|
||||
* We'll use "RootFS1" instead of "RootFS" to stay compatible with the layout
|
||||
* used by the QNAP TS-109/TS-209.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
static struct mtd_partition qnap_ts219_partitions[] = {
|
||||
{
|
||||
.name = "U-Boot",
|
||||
.size = 0x00080000,
|
||||
.offset = 0,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "Kernel",
|
||||
.size = 0x00200000,
|
||||
.offset = 0x00200000,
|
||||
}, {
|
||||
.name = "RootFS1",
|
||||
.size = 0x00900000,
|
||||
.offset = 0x00400000,
|
||||
}, {
|
||||
.name = "RootFS2",
|
||||
.size = 0x00300000,
|
||||
.offset = 0x00d00000,
|
||||
}, {
|
||||
.name = "U-Boot Config",
|
||||
.size = 0x00040000,
|
||||
.offset = 0x00080000,
|
||||
}, {
|
||||
.name = "NAS Config",
|
||||
.size = 0x00140000,
|
||||
.offset = 0x000c0000,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct flash_platform_data qnap_ts219_flash = {
|
||||
.type = "m25p128",
|
||||
.name = "spi_flash",
|
||||
.parts = qnap_ts219_partitions,
|
||||
.nr_parts = ARRAY_SIZE(qnap_ts219_partitions),
|
||||
};
|
||||
|
||||
static struct spi_board_info __initdata qnap_ts219_spi_slave_info[] = {
|
||||
{
|
||||
.modalias = "m25p80",
|
||||
.platform_data = &qnap_ts219_flash,
|
||||
.irq = -1,
|
||||
.max_speed_hz = 20000000,
|
||||
.bus_num = 0,
|
||||
.chip_select = 0,
|
||||
},
|
||||
};
|
||||
#include "tsx1x-common.h"
|
||||
|
||||
static struct i2c_board_info __initdata qnap_ts219_i2c_rtc = {
|
||||
I2C_BOARD_INFO("s35390a", 0x30),
|
||||
|
@ -152,36 +82,10 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
|
|||
MPP14_UART1_RXD, /* PIC controller */
|
||||
MPP15_GPIO, /* USB Copy button */
|
||||
MPP16_GPIO, /* Reset button */
|
||||
MPP36_GPIO, /* RAM: 0: 256 MB, 1: 512 MB */
|
||||
0
|
||||
};
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* QNAP TS-x19 specific power off method via UART1-attached PIC
|
||||
****************************************************************************/
|
||||
|
||||
#define UART1_REG(x) (UART1_VIRT_BASE + ((UART_##x) << 2))
|
||||
|
||||
void qnap_ts219_power_off(void)
|
||||
{
|
||||
/* 19200 baud divisor */
|
||||
const unsigned divisor = ((kirkwood_tclk + (8 * 19200)) / (16 * 19200));
|
||||
|
||||
pr_info("%s: triggering power-off...\n", __func__);
|
||||
|
||||
/* hijack UART1 and reset into sane state (19200,8n1) */
|
||||
writel(0x83, UART1_REG(LCR));
|
||||
writel(divisor & 0xff, UART1_REG(DLL));
|
||||
writel((divisor >> 8) & 0xff, UART1_REG(DLM));
|
||||
writel(0x03, UART1_REG(LCR));
|
||||
writel(0x00, UART1_REG(IER));
|
||||
writel(0x00, UART1_REG(FCR));
|
||||
writel(0x00, UART1_REG(MCR));
|
||||
|
||||
/* send the power-off command 'A' to PIC */
|
||||
writel('A', UART1_REG(TX));
|
||||
}
|
||||
|
||||
static void __init qnap_ts219_init(void)
|
||||
{
|
||||
/*
|
||||
|
@ -192,9 +96,7 @@ static void __init qnap_ts219_init(void)
|
|||
|
||||
kirkwood_uart0_init();
|
||||
kirkwood_uart1_init(); /* A PIC controller is connected here. */
|
||||
spi_register_board_info(qnap_ts219_spi_slave_info,
|
||||
ARRAY_SIZE(qnap_ts219_spi_slave_info));
|
||||
kirkwood_spi_init();
|
||||
qnap_tsx1x_register_flash();
|
||||
kirkwood_i2c_init();
|
||||
i2c_register_board_info(0, &qnap_ts219_i2c_rtc, 1);
|
||||
kirkwood_ge00_init(&qnap_ts219_ge00_data);
|
||||
|
@ -202,7 +104,7 @@ static void __init qnap_ts219_init(void)
|
|||
kirkwood_ehci_init();
|
||||
platform_device_register(&qnap_ts219_button_device);
|
||||
|
||||
pm_power_off = qnap_ts219_power_off;
|
||||
pm_power_off = qnap_tsx1x_power_off;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,154 @@
|
|||
/*
|
||||
*
|
||||
* QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS Board Setup
|
||||
*
|
||||
* Copyright (C) 2009 Martin Michlmayr <tbm@cyrius.com>
|
||||
* Copyright (C) 2008 Byron Bradley <byron.bbradley@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <linux/ata_platform.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/input.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <mach/kirkwood.h>
|
||||
#include "common.h"
|
||||
#include "mpp.h"
|
||||
#include "tsx1x-common.h"
|
||||
|
||||
static struct i2c_board_info __initdata qnap_ts41x_i2c_rtc = {
|
||||
I2C_BOARD_INFO("s35390a", 0x30),
|
||||
};
|
||||
|
||||
static struct mv643xx_eth_platform_data qnap_ts41x_ge00_data = {
|
||||
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||
};
|
||||
|
||||
static struct mv643xx_eth_platform_data qnap_ts41x_ge01_data = {
|
||||
.phy_addr = MV643XX_ETH_PHY_ADDR(0),
|
||||
};
|
||||
|
||||
static struct mv_sata_platform_data qnap_ts41x_sata_data = {
|
||||
.n_ports = 2,
|
||||
};
|
||||
|
||||
static struct gpio_keys_button qnap_ts41x_buttons[] = {
|
||||
{
|
||||
.code = KEY_COPY,
|
||||
.gpio = 43,
|
||||
.desc = "USB Copy",
|
||||
.active_low = 1,
|
||||
},
|
||||
{
|
||||
.code = KEY_RESTART,
|
||||
.gpio = 37,
|
||||
.desc = "Reset",
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_keys_platform_data qnap_ts41x_button_data = {
|
||||
.buttons = qnap_ts41x_buttons,
|
||||
.nbuttons = ARRAY_SIZE(qnap_ts41x_buttons),
|
||||
};
|
||||
|
||||
static struct platform_device qnap_ts41x_button_device = {
|
||||
.name = "gpio-keys",
|
||||
.id = -1,
|
||||
.num_resources = 0,
|
||||
.dev = {
|
||||
.platform_data = &qnap_ts41x_button_data,
|
||||
}
|
||||
};
|
||||
|
||||
static unsigned int qnap_ts41x_mpp_config[] __initdata = {
|
||||
MPP0_SPI_SCn,
|
||||
MPP1_SPI_MOSI,
|
||||
MPP2_SPI_SCK,
|
||||
MPP3_SPI_MISO,
|
||||
MPP6_SYSRST_OUTn,
|
||||
MPP7_PEX_RST_OUTn,
|
||||
MPP8_TW_SDA,
|
||||
MPP9_TW_SCK,
|
||||
MPP10_UART0_TXD,
|
||||
MPP11_UART0_RXD,
|
||||
MPP13_UART1_TXD, /* PIC controller */
|
||||
MPP14_UART1_RXD, /* PIC controller */
|
||||
MPP15_SATA0_ACTn,
|
||||
MPP16_SATA1_ACTn,
|
||||
MPP20_GE1_0,
|
||||
MPP21_GE1_1,
|
||||
MPP22_GE1_2,
|
||||
MPP23_GE1_3,
|
||||
MPP24_GE1_4,
|
||||
MPP25_GE1_5,
|
||||
MPP26_GE1_6,
|
||||
MPP27_GE1_7,
|
||||
MPP30_GE1_10,
|
||||
MPP31_GE1_11,
|
||||
MPP32_GE1_12,
|
||||
MPP33_GE1_13,
|
||||
MPP36_GPIO, /* RAM: 0: 256 MB, 1: 512 MB */
|
||||
MPP37_GPIO, /* Reset button */
|
||||
MPP43_GPIO, /* USB Copy button */
|
||||
MPP44_GPIO, /* Board ID: 0: TS-419U, 1: TS-419 */
|
||||
MPP45_GPIO, /* JP1: 0: console, 1: LCD */
|
||||
MPP46_GPIO, /* External SATA HDD1 error indicator */
|
||||
MPP47_GPIO, /* External SATA HDD2 error indicator */
|
||||
MPP48_GPIO, /* External SATA HDD3 error indicator */
|
||||
MPP49_GPIO, /* External SATA HDD4 error indicator */
|
||||
0
|
||||
};
|
||||
|
||||
static void __init qnap_ts41x_init(void)
|
||||
{
|
||||
/*
|
||||
* Basic setup. Needs to be called early.
|
||||
*/
|
||||
kirkwood_init();
|
||||
kirkwood_mpp_conf(qnap_ts41x_mpp_config);
|
||||
|
||||
kirkwood_uart0_init();
|
||||
kirkwood_uart1_init(); /* A PIC controller is connected here. */
|
||||
qnap_tsx1x_register_flash();
|
||||
kirkwood_i2c_init();
|
||||
i2c_register_board_info(0, &qnap_ts41x_i2c_rtc, 1);
|
||||
kirkwood_ge00_init(&qnap_ts41x_ge00_data);
|
||||
kirkwood_ge01_init(&qnap_ts41x_ge01_data);
|
||||
kirkwood_sata_init(&qnap_ts41x_sata_data);
|
||||
kirkwood_ehci_init();
|
||||
platform_device_register(&qnap_ts41x_button_device);
|
||||
|
||||
pm_power_off = qnap_tsx1x_power_off;
|
||||
|
||||
}
|
||||
|
||||
static int __init ts41x_pci_init(void)
|
||||
{
|
||||
if (machine_is_ts41x())
|
||||
kirkwood_pcie_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
subsys_initcall(ts41x_pci_init);
|
||||
|
||||
MACHINE_START(TS41X, "QNAP TS-41x")
|
||||
/* Maintainer: Martin Michlmayr <tbm@cyrius.com> */
|
||||
.phys_io = KIRKWOOD_REGS_PHYS_BASE,
|
||||
.io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.init_machine = qnap_ts41x_init,
|
||||
.map_io = kirkwood_map_io,
|
||||
.init_irq = kirkwood_init_irq,
|
||||
.timer = &kirkwood_timer,
|
||||
MACHINE_END
|
|
@ -0,0 +1,113 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/spi/flash.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/orion_spi.h>
|
||||
#include <linux/serial_reg.h>
|
||||
#include <mach/kirkwood.h>
|
||||
#include "common.h"
|
||||
|
||||
/*
|
||||
* QNAP TS-x1x Boards flash
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
* 16 MiB NOR flash. The struct mtd_partition is not in the same order as the
|
||||
* partitions on the device because we want to keep compatability with
|
||||
* the QNAP firmware.
|
||||
* Layout as used by QNAP:
|
||||
* 0x00000000-0x00080000 : "U-Boot"
|
||||
* 0x00200000-0x00400000 : "Kernel"
|
||||
* 0x00400000-0x00d00000 : "RootFS"
|
||||
* 0x00d00000-0x01000000 : "RootFS2"
|
||||
* 0x00080000-0x000c0000 : "U-Boot Config"
|
||||
* 0x000c0000-0x00200000 : "NAS Config"
|
||||
*
|
||||
* We'll use "RootFS1" instead of "RootFS" to stay compatible with the layout
|
||||
* used by the QNAP TS-109/TS-209.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
struct mtd_partition qnap_tsx1x_partitions[] = {
|
||||
{
|
||||
.name = "U-Boot",
|
||||
.size = 0x00080000,
|
||||
.offset = 0,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "Kernel",
|
||||
.size = 0x00200000,
|
||||
.offset = 0x00200000,
|
||||
}, {
|
||||
.name = "RootFS1",
|
||||
.size = 0x00900000,
|
||||
.offset = 0x00400000,
|
||||
}, {
|
||||
.name = "RootFS2",
|
||||
.size = 0x00300000,
|
||||
.offset = 0x00d00000,
|
||||
}, {
|
||||
.name = "U-Boot Config",
|
||||
.size = 0x00040000,
|
||||
.offset = 0x00080000,
|
||||
}, {
|
||||
.name = "NAS Config",
|
||||
.size = 0x00140000,
|
||||
.offset = 0x000c0000,
|
||||
},
|
||||
};
|
||||
|
||||
const struct flash_platform_data qnap_tsx1x_flash = {
|
||||
.type = "m25p128",
|
||||
.name = "spi_flash",
|
||||
.parts = qnap_tsx1x_partitions,
|
||||
.nr_parts = ARRAY_SIZE(qnap_tsx1x_partitions),
|
||||
};
|
||||
|
||||
struct spi_board_info __initdata qnap_tsx1x_spi_slave_info[] = {
|
||||
{
|
||||
.modalias = "m25p80",
|
||||
.platform_data = &qnap_tsx1x_flash,
|
||||
.irq = -1,
|
||||
.max_speed_hz = 20000000,
|
||||
.bus_num = 0,
|
||||
.chip_select = 0,
|
||||
},
|
||||
};
|
||||
|
||||
void qnap_tsx1x_register_flash(void)
|
||||
{
|
||||
spi_register_board_info(qnap_tsx1x_spi_slave_info,
|
||||
ARRAY_SIZE(qnap_tsx1x_spi_slave_info));
|
||||
kirkwood_spi_init();
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* QNAP TS-x1x specific power off method via UART1-attached PIC
|
||||
****************************************************************************/
|
||||
|
||||
#define UART1_REG(x) (UART1_VIRT_BASE + ((UART_##x) << 2))
|
||||
|
||||
void qnap_tsx1x_power_off(void)
|
||||
{
|
||||
/* 19200 baud divisor */
|
||||
const unsigned divisor = ((kirkwood_tclk + (8 * 19200)) / (16 * 19200));
|
||||
|
||||
pr_info("%s: triggering power-off...\n", __func__);
|
||||
|
||||
/* hijack UART1 and reset into sane state (19200,8n1) */
|
||||
writel(0x83, UART1_REG(LCR));
|
||||
writel(divisor & 0xff, UART1_REG(DLL));
|
||||
writel((divisor >> 8) & 0xff, UART1_REG(DLM));
|
||||
writel(0x03, UART1_REG(LCR));
|
||||
writel(0x00, UART1_REG(IER));
|
||||
writel(0x00, UART1_REG(FCR));
|
||||
writel(0x00, UART1_REG(MCR));
|
||||
|
||||
/* send the power-off command 'A' to PIC */
|
||||
writel('A', UART1_REG(TX));
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef __ARCH_KIRKWOOD_TSX1X_COMMON_H
|
||||
#define __ARCH_KIRKWOOD_TSX1X_COMMON_H
|
||||
|
||||
extern void qnap_tsx1x_register_flash(void);
|
||||
extern void qnap_tsx1x_power_off(void);
|
||||
|
||||
#endif
|
|
@ -41,6 +41,13 @@ extern struct bus_type platform_bus_type;
|
|||
__dma = __dma - PHYS_OFFSET + KS8695_PCIMEM_PA; \
|
||||
__dma; })
|
||||
|
||||
#define __arch_dma_to_page(dev, x) \
|
||||
({ dma_addr_t __dma = x; \
|
||||
if (!is_lbus_device(dev)) \
|
||||
__dma += PHYS_OFFSET - KS8695_PCIMEM_PA; \
|
||||
phys_to_page(__dma); \
|
||||
})
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -85,12 +88,48 @@ static struct platform_device smc91x_device = {
|
|||
.resource = smc91x_resources,
|
||||
};
|
||||
|
||||
static struct mtd_partition aspenite_nand_partitions[] = {
|
||||
{
|
||||
.name = "bootloader",
|
||||
.offset = 0,
|
||||
.size = SZ_1M,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "reserved",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_128K,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "reserved",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_8M,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
}, {
|
||||
.name = "kernel",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = (SZ_2M + SZ_1M),
|
||||
.mask_flags = 0,
|
||||
}, {
|
||||
.name = "filesystem",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_48M,
|
||||
.mask_flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct pxa3xx_nand_platform_data aspenite_nand_info = {
|
||||
.enable_arbiter = 1,
|
||||
.parts = aspenite_nand_partitions,
|
||||
.nr_parts = ARRAY_SIZE(aspenite_nand_partitions),
|
||||
};
|
||||
|
||||
static void __init common_init(void)
|
||||
{
|
||||
mfp_config(ARRAY_AND_SIZE(common_pin_config));
|
||||
|
||||
/* on-chip devices */
|
||||
pxa168_add_uart(1);
|
||||
pxa168_add_nand(&aspenite_nand_info);
|
||||
|
||||
/* off-chip devices */
|
||||
platform_device_register(&smc91x_device);
|
||||
|
|
|
@ -34,6 +34,21 @@ struct clkops apbc_clk_ops = {
|
|||
.disable = apbc_clk_disable,
|
||||
};
|
||||
|
||||
static void apmu_clk_enable(struct clk *clk)
|
||||
{
|
||||
__raw_writel(clk->enable_val, clk->clk_rst);
|
||||
}
|
||||
|
||||
static void apmu_clk_disable(struct clk *clk)
|
||||
{
|
||||
__raw_writel(0, clk->clk_rst);
|
||||
}
|
||||
|
||||
struct clkops apmu_clk_ops = {
|
||||
.enable = apmu_clk_enable,
|
||||
.disable = apmu_clk_disable,
|
||||
};
|
||||
|
||||
static DEFINE_SPINLOCK(clocks_lock);
|
||||
|
||||
int clk_enable(struct clk *clk)
|
||||
|
|
|
@ -25,6 +25,7 @@ struct clk {
|
|||
};
|
||||
|
||||
extern struct clkops apbc_clk_ops;
|
||||
extern struct clkops apmu_clk_ops;
|
||||
|
||||
#define APBC_CLK(_name, _reg, _fnclksel, _rate) \
|
||||
struct clk clk_##_name = { \
|
||||
|
|
|
@ -31,7 +31,9 @@
|
|||
#define IRQ_PXA168_DDR_INT 26
|
||||
#define IRQ_PXA168_UART1 27
|
||||
#define IRQ_PXA168_UART2 28
|
||||
#define IRQ_PXA168_UART3 29
|
||||
#define IRQ_PXA168_WDT 35
|
||||
#define IRQ_PXA168_MAIN_PMU 36
|
||||
#define IRQ_PXA168_FRQ_CHANGE 38
|
||||
#define IRQ_PXA168_SDH1 39
|
||||
#define IRQ_PXA168_SDH2 40
|
||||
|
@ -46,7 +48,7 @@
|
|||
#define IRQ_PXA168_USB2 51
|
||||
#define IRQ_PXA168_AC97 57
|
||||
#define IRQ_PXA168_TWSI1 58
|
||||
#define IRQ_PXA168_PMU 60
|
||||
#define IRQ_PXA168_AP_PMU 60
|
||||
#define IRQ_PXA168_SM_INT 63
|
||||
|
||||
/*
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <mach/devices.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
extern struct pxa_device_desc pxa168_device_uart1;
|
||||
extern struct pxa_device_desc pxa168_device_uart2;
|
||||
|
@ -13,6 +14,7 @@ extern struct pxa_device_desc pxa168_device_pwm1;
|
|||
extern struct pxa_device_desc pxa168_device_pwm2;
|
||||
extern struct pxa_device_desc pxa168_device_pwm3;
|
||||
extern struct pxa_device_desc pxa168_device_pwm4;
|
||||
extern struct pxa_device_desc pxa168_device_nand;
|
||||
|
||||
static inline int pxa168_add_uart(int id)
|
||||
{
|
||||
|
@ -64,4 +66,9 @@ static inline int pxa168_add_pwm(int id)
|
|||
|
||||
return pxa_register_device(d, NULL, 0);
|
||||
}
|
||||
|
||||
static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
|
||||
{
|
||||
return pxa_register_device(&pxa168_device_nand, info, sizeof(*info));
|
||||
}
|
||||
#endif /* __ASM_MACH_PXA168_H */
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue