提交 7e31aa11 编写于 作者: L Linus Torvalds

Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm

* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 5182/1: pxa: Fix pcm990 compilation
  [ARM] Fix explicit asm(-arm)?/arch-foo references
  [ARM] move include/asm-arm to arch/arm/include/asm
  [ARM] Remove explicit dependency for misc.o from compressed/Makefile
  [ARM] initrd: claim initrd memory exclusively
  [ARM] pxa: add support for L2 outer cache on XScale3 (attempt 2)
  [ARM] 5180/1: at91: Fix at91_nand -> atmel_nand rename fallout
  [ARM] add Sascha Hauer as Freescale i.MX Maintainer
  [ARM] i.MX: add missing clock functions exports
  [ARM] i.MX: remove set_imx_fb_info() export
  [ARM] mx1ads: make mmc platform data available for modules
  [ARM] mx2: add missing Kconfig dependency
......@@ -502,6 +502,12 @@ L: openezx-devel@lists.openezx.org (subscribers-only)
W: http://www.openezx.org/
S: Maintained
ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
P: Sascha Hauer
M: kernel@pengutronix.de
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
S: Maintained
ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
P: Lennert Buytenhek
M: kernel@wantstofly.org
......
......@@ -112,6 +112,3 @@ $(obj)/font.c: $(FONTC)
$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile .config
@sed "$(SEDFLAGS)" < $< > $@
$(obj)/misc.o: $(obj)/misc.c include/asm/arch/uncompress.h lib/inflate.c
/*
* linux/include/asm-arm/assembler.h
* arch/arm/include/asm/assembler.h
*
* Copyright (C) 1996-2000 Russell King
*
......
/*
* linux/include/asm-arm/atomic.h
* arch/arm/include/asm/atomic.h
*
* Copyright (C) 1996 Russell King.
* Copyright (C) 2002 Deep Blue Solutions Ltd.
......
/*
* linux/include/asm-arm/bugs.h
* arch/arm/include/asm/bugs.h
*
* Copyright (C) 1995-2003 Russell King
*
......
/*
* linux/include/asm-arm/byteorder.h
* arch/arm/include/asm/byteorder.h
*
* ARM Endian-ness. In little endian mode, the data bus is connected such
* that byte accesses appear as:
......
/*
* linux/include/asm-arm/cache.h
* arch/arm/include/asm/cache.h
*/
#ifndef __ASMARM_CACHE_H
#define __ASMARM_CACHE_H
......
/*
* linux/include/asm-arm/cacheflush.h
* arch/arm/include/asm/cacheflush.h
*
* Copyright (C) 1999-2002 Russell King
*
......
/*
* linux/include/asm-arm/checksum.h
* arch/arm/include/asm/checksum.h
*
* IP checksum routines
*
......
/*
* linux/include/asm-arm/cpu-multi32.h
* arch/arm/include/asm/cpu-multi32.h
*
* Copyright (C) 2000 Russell King
*
......
/*
* linux/include/asm-arm/cpu-single.h
* arch/arm/include/asm/cpu-single.h
*
* Copyright (C) 2000 Russell King
*
......
/*
* linux/include/asm-arm/cpu.h
* arch/arm/include/asm/cpu.h
*
* Copyright (C) 2004-2005 ARM Ltd.
*
......
/*
* linux/include/asm-arm/domain.h
* arch/arm/include/asm/domain.h
*
* Copyright (C) 1999 Russell King.
*
......
/*
* linux/include/asm-arm/ecard.h
* arch/arm/include/asm/ecard.h
*
* definitions for expansion cards
*
......
/*
* linux/include/asm-arm/fiq.h
* arch/arm/include/asm/fiq.h
*
* Support for FIQ on ARM architectures.
* Written by Philip Blundell <philb@gnu.org>, 1998
......
/*
* include/asm-arm/flat.h -- uClinux flat-format executables
* arch/arm/include/asm/flat.h -- uClinux flat-format executables
*/
#ifndef __ARM_FLAT_H__
......
/*
* linux/include/asm-arm/floppy.h
* arch/arm/include/asm/floppy.h
*
* Copyright (C) 1996-2000 Russell King
*
......
/*
* linux/include/asm-arm/fpstate.h
* arch/arm/include/asm/fpstate.h
*
* Copyright (C) 1995 Russell King
*
......
/*
* linux/include/asm-arm/glue.h
* arch/arm/include/asm/glue.h
*
* Copyright (C) 1997-1999 Russell King
* Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
......
/*
* linux/include/asm-arm/hardware.h
* arch/arm/include/asm/hardware.h
*
* Copyright (C) 1996 Russell King
*
......
/*
* include/asm-arm/hardware/cache-l2x0.h
* arch/arm/include/asm/hardware/cache-l2x0.h
*
* Copyright (C) 2007 ARM Limited
*
......
/*
* linux/include/asm-arm/hardware/clps7111.h
* arch/arm/include/asm/hardware/clps7111.h
*
* This file contains the hardware definitions of the CLPS7111 internal
* registers.
......
/*
* linux/include/asm-arm/hardware/cs89712.h
* arch/arm/include/asm/hardware/cs89712.h
*
* This file contains the hardware definitions of the CS89712
* additional internal registers.
......
/*
* linux/include/asm-arm/hardware/debug-8250.S
* arch/arm/include/asm/hardware/debug-8250.S
*
* Copyright (C) 1994-1999 Russell King
*
......
/* linux/include/asm-arm/hardware/debug-pl01x.S
/* arch/arm/include/asm/hardware/debug-pl01x.S
*
* Debugging macro include header
*
......
/*
* linux/include/asm-arm/hardware/dec21285.h
* arch/arm/include/asm/hardware/dec21285.h
*
* Copyright (C) 1998 Russell King
*
......
/*
* include/asm-arm/hardware/entry-macro-iomd.S
* arch/arm/include/asm/hardware/entry-macro-iomd.S
*
* Low-level IRQ helper macros for IOC/IOMD based platforms
*
......
/*
* linux/include/asm-arm/hardware/ep7211.h
* arch/arm/include/asm/hardware/ep7211.h
*
* This file contains the hardware definitions of the EP7211 internal
* registers.
......
/*
* linux/include/asm-arm/hardware/ep7212.h
* arch/arm/include/asm/hardware/ep7212.h
*
* This file contains the hardware definitions of the EP7212 internal
* registers.
......
/*
* linux/include/asm-arm/hardware/gic.h
* arch/arm/include/asm/hardware/gic.h
*
* Copyright (C) 2002 ARM Limited, All Rights Reserved.
*
......
/*
* linux/include/asm-arm/hardware/icst307.h
* arch/arm/include/asm/hardware/icst307.h
*
* Copyright (C) 2003 Deep Blue Solutions, Ltd, All Rights Reserved.
*
......
/*
* linux/include/asm-arm/hardware/icst525.h
* arch/arm/include/asm/hardware/icst525.h
*
* Copyright (C) 2003 Deep Blue Solutions, Ltd, All Rights Reserved.
*
......
/*
* linux/include/asm-arm/hardware/ioc.h
* arch/arm/include/asm/hardware/ioc.h
*
* Copyright (C) Russell King
*
......
/*
* linux/include/asm-arm/hardware/iomd.h
* arch/arm/include/asm/hardware/iomd.h
*
* Copyright (C) 1999 Russell King
*
......
/*
* linux/include/asm-arm/hardware/iop3xx-gpio.h
* arch/arm/include/asm/hardware/iop3xx-gpio.h
*
* IOP3xx GPIO wrappers
*
......
/*
* include/asm-arm/hardware/iop3xx.h
* arch/arm/include/asm/hardware/iop3xx.h
*
* Intel IOP32X and IOP33X register definitions
*
......
/*
* linux/include/asm-arm/hardware/locomo.h
* arch/arm/include/asm/hardware/locomo.h
*
* This file contains the definitions for the LoCoMo G/A Chip
*
......
/*
* linux/include/asm-arm/hardware/memc.h
* arch/arm/include/asm/hardware/memc.h
*
* Copyright (C) Russell King.
*
......
/*
* linux/include/asm-arm/hardware/pci_v3.h
* arch/arm/include/asm/hardware/pci_v3.h
*
* Internal header file PCI V3 chip
*
......
/*
* linux/include/asm-arm/hardware/sa1111.h
* arch/arm/include/asm/hardware/sa1111.h
*
* Copyright (C) 2000 John G Dorsey <john+@cs.cmu.edu>
*
......
/*
* linux/include/asm-arm/hardware/vic.h
* arch/arm/include/asm/hardware/vic.h
*
* Copyright (c) ARM Limited 2003. All rights reserved.
*
......
/*
* linux/include/asm-arm/ide.h
* arch/arm/include/asm/ide.h
*
* Copyright (C) 1994-1996 Linus Torvalds & authors
*/
......
/*
* linux/include/asm-arm/io.h
* arch/arm/include/asm/io.h
*
* Copyright (C) 1996-2000 Russell King
*
......
/*
* include/asm-arm/kprobes.h
* arch/arm/include/asm/kprobes.h
*
* Copyright (C) 2006, 2007 Motorola Inc.
*
......
/*
* linux/include/asm-arm/leds.h
* arch/arm/include/asm/leds.h
*
* Copyright (C) 1998 Russell King
*
......
/*
* linux/include/asm-arm/locks.h
* arch/arm/include/asm/locks.h
*
* Copyright (C) 2000 Russell King
*
......
/*
* linux/include/asm-arm/mach/arch.h
* arch/arm/include/asm/mach/arch.h
*
* Copyright (C) 2000 Russell King
*
......
/*
* linux/include/asm-arm/mach/dma.h
* arch/arm/include/asm/mach/dma.h
*
* Copyright (C) 1998-2000 Russell King
*
......
/*
* linux/include/asm-arm/mach/flash.h
* arch/arm/include/asm/mach/flash.h
*
* Copyright (C) 2003 Russell King, All Rights Reserved.
*
......
/*
* linux/include/asm-arm/mach/irda.h
* arch/arm/include/asm/mach/irda.h
*
* Copyright (C) 2004 Russell King.
*
......
/*
* linux/include/asm-arm/mach/irq.h
* arch/arm/include/asm/mach/irq.h
*
* Copyright (C) 1995-2000 Russell King.
*
......
/*
* linux/include/asm-arm/map.h
* arch/arm/include/asm/map.h
*
* Copyright (C) 1999-2000 Russell King
*
......
/*
* linux/include/asm-arm/mach/mmc.h
* arch/arm/include/asm/mach/mmc.h
*/
#ifndef ASMARM_MACH_MMC_H
#define ASMARM_MACH_MMC_H
......
/*
* linux/include/asm-arm/mach/pci.h
* arch/arm/include/asm/mach/pci.h
*
* Copyright (C) 2000 Russell King
*
......
/*
* linux/include/asm-arm/mach/serial_at91.h
* arch/arm/include/asm/mach/serial_at91.h
*
* Based on serial_sa1100.h by Nicolas Pitre
*
......
/*
* linux/include/asm-arm/mach/serial_sa1100.h
* arch/arm/include/asm/mach/serial_sa1100.h
*
* Author: Nicolas Pitre
*
* Moved to include/asm-arm/mach and changed lots, Russell King
* Moved and changed lots, Russell King
*
* Low level machine dependent UART functions.
*/
......
/*
* linux/include/asm-arm/mach/time.h
* arch/arm/include/asm/mach/time.h
*
* Copyright (C) 2004 MontaVista Software, Inc.
*
......
/*
* linux/include/asm-arm/mach/udc_pxa2xx.h
* arch/arm/include/asm/mach/udc_pxa2xx.h
*
* This supports machine-specific differences in how the PXA2xx
* USB Device Controller (UDC) is wired.
......
/*
* linux/include/asm-arm/memory.h
* arch/arm/include/asm/memory.h
*
* Copyright (C) 2000-2002 Russell King
* modification for nommu, Hyok S. Choi, 2004
......
/*
* linux/include/asm-arm/mmu_context.h
* arch/arm/include/asm/mmu_context.h
*
* Copyright (C) 1996 Russell King.
*
......
/*
* linux/include/asm-arm/mmzone.h
* arch/arm/include/asm/mmzone.h
*
* 1999-12-29 Nicolas Pitre Created
*
......
/*
* include/asm-arm/mutex.h
* arch/arm/include/asm/mutex.h
*
* ARM optimized mutex locking primitives
*
......
/*
* linux/include/asm-arm/page-nommu.h
* arch/arm/include/asm/page-nommu.h
*
* Copyright (C) 2004 Hyok S. Choi
*
......
/*
* linux/include/asm-arm/page.h
* arch/arm/include/asm/page.h
*
* Copyright (C) 1995-2003 Russell King
*
......
/*
* linux/include/asm-arm/param.h
* arch/arm/include/asm/param.h
*
* Copyright (C) 1995-1999 Russell King
*
......
/*
* linux/include/asm-arm/parport.h: ARM-specific parport initialisation
* arch/arm/include/asm/parport.h: ARM-specific parport initialisation
*
* Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk>
*
......
/*
* linux/include/asm-arm/pgalloc.h
* arch/arm/include/asm/pgalloc.h
*
* Copyright (C) 2000-2001 Russell King
*
......
/*
* linux/include/asm-arm/pgtable-hwdef.h
* arch/arm/include/asm/pgtable-hwdef.h
*
* Copyright (C) 1995-2002 Russell King
*
......
/*
* linux/include/asm-arm/pgtable-nommu.h
* arch/arm/include/asm/pgtable-nommu.h
*
* Copyright (C) 1995-2002 Russell King
* Copyright (C) 2004 Hyok S. Choi
......
/*
* linux/include/asm-arm/pgtable.h
* arch/arm/include/asm/pgtable.h
*
* Copyright (C) 1995-2002 Russell King
*
......
/*
* linux/include/asm-arm/posix_types.h
* arch/arm/include/asm/posix_types.h
*
* Copyright (C) 1996-1998 Russell King.
*
......
/*
* linux/include/asm-arm/proc-fns.h
* arch/arm/include/asm/proc-fns.h
*
* Copyright (C) 1997-1999 Russell King
* Copyright (C) 2000 Deep Blue Solutions Ltd
......
/*
* linux/include/asm-arm/processor.h
* arch/arm/include/asm/processor.h
*
* Copyright (C) 1995-1999 Russell King
*
......
/*
* linux/include/asm-arm/procinfo.h
* arch/arm/include/asm/procinfo.h
*
* Copyright (C) 1996-1999 Russell King
*
......
/*
* linux/include/asm-arm/ptrace.h
* arch/arm/include/asm/ptrace.h
*
* Copyright (C) 1996-2003 Russell King
*
......
/*
* linux/include/asm-arm/serial.h
* arch/arm/include/asm/serial.h
*
* Copyright (C) 1996 Russell King.
*
......
/*
* linux/include/asm-arm/smp.h
* arch/arm/include/asm/smp.h
*
* Copyright (C) 2004-2005 ARM Ltd.
*
......@@ -17,7 +17,7 @@
#include <asm/arch/smp.h>
#ifndef CONFIG_SMP
# error "<asm-arm/smp.h> included in non-SMP build"
# error "<asm/smp.h> included in non-SMP build"
#endif
#define raw_smp_processor_id() (current_thread_info()->cpu)
......
/*
* linux/include/asm-arm/therm.h: Definitions for Dallas Semiconductor
* arch/arm/include/asm/therm.h: Definitions for Dallas Semiconductor
* DS1620 thermometer driver (as used in the Rebel.com NetWinder)
*/
#ifndef __ASM_THERM_H
......
/*
* linux/include/asm-arm/thread_info.h
* arch/arm/include/asm/thread_info.h
*
* Copyright (C) 2002 Russell King.
*
......@@ -117,7 +117,7 @@ extern void iwmmxt_task_switch(struct thread_info *);
/*
* We use bit 30 of the preempt_count to indicate that kernel
* preemption is occurring. See include/asm-arm/hardirq.h.
* preemption is occurring. See <asm/hardirq.h>.
*/
#define PREEMPT_ACTIVE 0x40000000
......
/*
* linux/include/asm-arm/thread_notify.h
* arch/arm/include/asm/thread_notify.h
*
* Copyright (C) 2006 Russell King.
*
......
/*
* linux/include/asm-arm/timex.h
* arch/arm/include/asm/timex.h
*
* Copyright (C) 1997,1998 Russell King
*
......
/*
* linux/include/asm-arm/tlb.h
* arch/arm/include/asm/tlb.h
*
* Copyright (C) 2002 Russell King
*
......
/*
* linux/include/asm-arm/tlbflush.h
* arch/arm/include/asm/tlbflush.h
*
* Copyright (C) 1999-2003 Russell King
*
......
/*
* linux/include/asm-arm/uaccess.h
* arch/arm/include/asm/uaccess.h
*
* 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
......
/*
* linux/include/asm-arm/unistd.h
* arch/arm/include/asm/unistd.h
*
* Copyright (C) 2001-2005 Russell King
*
......
/*
* linux/include/asm-arm/vfp.h
* arch/arm/include/asm/vfp.h
*
* VFP register definitions.
* First, the standard VFP set.
......
/*
* linux/include/asm-arm/vfpmacros.h
* arch/arm/include/asm/vfpmacros.h
*
* Assembler-only file containing VFP macros and register definitions.
*/
......
/*
* linux/include/asm-arm/xor.h
* arch/arm/include/asm/xor.h
*
* Copyright (C) 2001 Russell King
*
......
......@@ -181,7 +181,7 @@ ENTRY(lookup_processor_type)
ldmfd sp!, {r4 - r7, r9, pc}
/*
* Look in include/asm-arm/procinfo.h and arch/arm/kernel/arch.[ch] for
* Look in <asm/procinfo.h> and arch/arm/kernel/arch.[ch] for
* more information about the __proc_info and __arch_info structures.
*/
.long __proc_info_begin
......
......@@ -20,7 +20,7 @@
* r2, r3 contains the zero-extended value
* lr corrupted
*
* No other registers must be altered. (see include/asm-arm/uaccess.h
* No other registers must be altered. (see <asm/uaccess.h>
* for specific ASM register usage).
*
* Note that ADDR_LIMIT is either 0 or 0xc0000000.
......
......@@ -20,7 +20,7 @@
* Outputs: r0 is the error code
* lr corrupted
*
* No other registers must be altered. (see include/asm-arm/uaccess.h
* No other registers must be altered. (see <asm/uaccess.h>
* for specific ASM register usage).
*
* Note that ADDR_LIMIT is either 0 or 0xc0000000
......
......@@ -172,24 +172,29 @@ struct clk *clk_get(struct device *dev, const char *id)
return clk;
}
EXPORT_SYMBOL(clk_get);
void clk_put(struct clk *clk)
{
}
EXPORT_SYMBOL(clk_put);
int clk_enable(struct clk *clk)
{
return 0;
}
EXPORT_SYMBOL(clk_enable);
void clk_disable(struct clk *clk)
{
}
EXPORT_SYMBOL(clk_disable);
unsigned long clk_get_rate(struct clk *clk)
{
return clk->get_rate();
}
EXPORT_SYMBOL(clk_get_rate);
int imx_clocks_init(void)
{
......
......@@ -251,7 +251,6 @@ void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info)
{
memcpy(&imx_fb_info,hard_imx_fb_info,sizeof(struct imxfb_mach_info));
}
EXPORT_SYMBOL(set_imx_fb_info);
static struct resource imxfb_resources[] = {
[0] = {
......
......@@ -125,7 +125,7 @@ static struct platform_device *devices[] __initdata = {
&imx_uart2_device,
};
#ifdef CONFIG_MMC_IMX
#if defined(CONFIG_MMC_IMX) || defined(CONFIG_MMC_IMX_MODULE)
static int mx1ads_mmc_card_present(struct device *dev)
{
/* MMC/SD Card Detect is PB 20 on MX1ADS V1.0.7 */
......@@ -143,7 +143,7 @@ mx1ads_init(void)
#ifdef CONFIG_LEDS
imx_gpio_mode(GPIO_PORTA | GPIO_OUT | 2);
#endif
#ifdef CONFIG_MMC_IMX
#if defined(CONFIG_MMC_IMX) || defined(CONFIG_MMC_IMX_MODULE)
/* SD/MMC card detect */
imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20);
imx_set_mmc_info(&mx1ads_mmc_info);
......
......@@ -13,12 +13,12 @@
#include <asm/mach/map.h>
#include <asm/gpio.h>
#include <asm/arch-ns9xxx/board.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch-ns9xxx/regs-sys-ns9360.h>
#include <asm/arch-ns9xxx/regs-mem.h>
#include <asm/arch-ns9xxx/regs-bbu.h>
#include <asm/arch-ns9xxx/regs-board-a9m9750dev.h>
#include <asm/arch/board.h>
#include <asm/arch/processor-ns9360.h>
#include <asm/arch/regs-sys-ns9360.h>
#include <asm/arch/regs-mem.h>
#include <asm/arch/regs-bbu.h>
#include <asm/arch/regs-board-a9m9750dev.h>
#include "board-a9m9750dev.h"
......
......@@ -14,8 +14,8 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <asm/arch-ns9xxx/regs-bbu.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch/regs-bbu.h>
#include <asm/arch/processor-ns9360.h>
#include "gpio-ns9360.h"
......
......@@ -13,9 +13,9 @@
#include <linux/spinlock.h>
#include <linux/module.h>
#include <asm/arch-ns9xxx/gpio.h>
#include <asm/arch-ns9xxx/processor.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch/gpio.h>
#include <asm/arch/processor.h>
#include <asm/arch/processor-ns9360.h>
#include <asm/bug.h>
#include <asm/types.h>
#include <asm/bitops.h>
......
......@@ -13,9 +13,9 @@
#include <asm/io.h>
#include <asm/mach/irq.h>
#include <asm/mach-types.h>
#include <asm/arch-ns9xxx/regs-sys-common.h>
#include <asm/arch-ns9xxx/irqs.h>
#include <asm/arch-ns9xxx/board.h>
#include <asm/arch/regs-sys-common.h>
#include <asm/arch/irqs.h>
#include <asm/arch/board.h>
#include "generic.h"
......
......@@ -11,7 +11,7 @@
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch/processor-ns9360.h>
#include "board-a9m9750dev.h"
#include "generic.h"
......
......@@ -11,7 +11,7 @@
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch/processor-ns9360.h>
#include "board-jscc9p9360.h"
#include "generic.h"
......
......@@ -11,8 +11,8 @@
#include <linux/platform_device.h>
#include <linux/serial_8250.h>
#include <asm/arch-ns9xxx/regs-board-a9m9750dev.h>
#include <asm/arch-ns9xxx/board.h>
#include <asm/arch/regs-board-a9m9750dev.h>
#include <asm/arch/board.h>
#define DRIVER_NAME "serial8250"
......
......@@ -14,8 +14,8 @@
#include <asm/page.h>
#include <asm/mach/map.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch-ns9xxx/regs-sys-ns9360.h>
#include <asm/arch/processor-ns9360.h>
#include <asm/arch/regs-sys-ns9360.h>
void ns9360_reset(char mode)
{
......
......@@ -15,9 +15,9 @@
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch-ns9xxx/regs-sys-ns9360.h>
#include <asm/arch-ns9xxx/irqs.h>
#include <asm/arch/processor-ns9360.h>
#include <asm/arch/regs-sys-ns9360.h>
#include <asm/arch/irqs.h>
#include <asm/arch/system.h>
#include "generic.h"
......
......@@ -22,7 +22,6 @@
#include <linux/irq.h>
#include <linux/platform_device.h>
#include <linux/ide.h>
#include <linux/i2c.h>
#include <linux/pwm_backlight.h>
......
......@@ -187,7 +187,7 @@ config CPU_ARM926T
ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || \
ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || \
ARCH_AT91SAM9G20 || ARCH_AT91CAP9 || \
ARCH_NS9XXX || ARCH_DAVINCI
ARCH_NS9XXX || ARCH_DAVINCI || ARCH_MX2
default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || \
ARCH_OMAP730 || ARCH_OMAP16XX || \
ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || \
......@@ -742,3 +742,11 @@ config CACHE_L2X0
select OUTER_CACHE
help
This option enables the L2x0 PrimeCell.
config CACHE_XSC3L2
bool "Enable the L2 cache on XScale3"
depends on CPU_XSC3
default y
select OUTER_CACHE
help
This option enables the L2 cache on XScale3.
/*
* arch/arm/mm/cache-xsc3l2.c - XScale3 L2 cache controller support
*
* Copyright (C) 2007 ARM Limited
*
* 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.
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/init.h>
#include <linux/spinlock.h>
#include <asm/system.h>
#include <asm/cacheflush.h>
#include <asm/io.h>
#define CR_L2 (1 << 26)
#define CACHE_LINE_SIZE 32
#define CACHE_LINE_SHIFT 5
#define CACHE_WAY_PER_SET 8
#define CACHE_WAY_SIZE(l2ctype) (8192 << (((l2ctype) >> 8) & 0xf))
#define CACHE_SET_SIZE(l2ctype) (CACHE_WAY_SIZE(l2ctype) >> CACHE_LINE_SHIFT)
static inline int xsc3_l2_present(void)
{
unsigned long l2ctype;
__asm__("mrc p15, 1, %0, c0, c0, 1" : "=r" (l2ctype));
return !!(l2ctype & 0xf8);
}
static inline void xsc3_l2_clean_mva(unsigned long addr)
{
__asm__("mcr p15, 1, %0, c7, c11, 1" : : "r" (addr));
}
static inline void xsc3_l2_clean_pa(unsigned long addr)
{
xsc3_l2_clean_mva(__phys_to_virt(addr));
}
static inline void xsc3_l2_inv_mva(unsigned long addr)
{
__asm__("mcr p15, 1, %0, c7, c7, 1" : : "r" (addr));
}
static inline void xsc3_l2_inv_pa(unsigned long addr)
{
xsc3_l2_inv_mva(__phys_to_virt(addr));
}
static inline void xsc3_l2_inv_all(void)
{
unsigned long l2ctype, set_way;
int set, way;
__asm__("mrc p15, 1, %0, c0, c0, 1" : "=r" (l2ctype));
for (set = 0; set < CACHE_SET_SIZE(l2ctype); set++) {
for (way = 0; way < CACHE_WAY_PER_SET; way++) {
set_way = (way << 29) | (set << 5);
__asm__("mcr p15, 1, %0, c7, c11, 2" : : "r"(set_way));
}
}
dsb();
}
static void xsc3_l2_inv_range(unsigned long start, unsigned long end)
{
if (start == 0 && end == -1ul) {
xsc3_l2_inv_all();
return;
}
/*
* Clean and invalidate partial first cache line.
*/
if (start & (CACHE_LINE_SIZE - 1)) {
xsc3_l2_clean_pa(start & ~(CACHE_LINE_SIZE - 1));
xsc3_l2_inv_pa(start & ~(CACHE_LINE_SIZE - 1));
start = (start | (CACHE_LINE_SIZE - 1)) + 1;
}
/*
* Clean and invalidate partial last cache line.
*/
if (end & (CACHE_LINE_SIZE - 1)) {
xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1));
xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
end &= ~(CACHE_LINE_SIZE - 1);
}
/*
* Invalidate all full cache lines between 'start' and 'end'.
*/
while (start != end) {
xsc3_l2_inv_pa(start);
start += CACHE_LINE_SIZE;
}
dsb();
}
static void xsc3_l2_clean_range(unsigned long start, unsigned long end)
{
start &= ~(CACHE_LINE_SIZE - 1);
while (start < end) {
xsc3_l2_clean_pa(start);
start += CACHE_LINE_SIZE;
}
dsb();
}
/*
* optimize L2 flush all operation by set/way format
*/
static inline void xsc3_l2_flush_all(void)
{
unsigned long l2ctype, set_way;
int set, way;
__asm__("mrc p15, 1, %0, c0, c0, 1" : "=r" (l2ctype));
for (set = 0; set < CACHE_SET_SIZE(l2ctype); set++) {
for (way = 0; way < CACHE_WAY_PER_SET; way++) {
set_way = (way << 29) | (set << 5);
__asm__("mcr p15, 1, %0, c7, c15, 2" : : "r"(set_way));
}
}
dsb();
}
static void xsc3_l2_flush_range(unsigned long start, unsigned long end)
{
if (start == 0 && end == -1ul) {
xsc3_l2_flush_all();
return;
}
start &= ~(CACHE_LINE_SIZE - 1);
while (start < end) {
xsc3_l2_clean_pa(start);
xsc3_l2_inv_pa(start);
start += CACHE_LINE_SIZE;
}
dsb();
}
static int __init xsc3_l2_init(void)
{
if (!cpu_is_xsc3() || !xsc3_l2_present())
return 0;
if (!(get_cr() & CR_L2)) {
pr_info("XScale3 L2 cache enabled.\n");
adjust_cr(CR_L2, CR_L2);
xsc3_l2_inv_all();
}
outer_cache.inv_range = xsc3_l2_inv_range;
outer_cache.clean_range = xsc3_l2_clean_range;
outer_cache.flush_range = xsc3_l2_flush_range;
return 0;
}
core_initcall(xsc3_l2_init);
......@@ -156,9 +156,9 @@ static int __init check_initrd(struct meminfo *mi)
}
if (initrd_node == -1) {
printk(KERN_ERR "initrd (0x%08lx - 0x%08lx) extends beyond "
printk(KERN_ERR "INITRD: 0x%08lx+0x%08lx extends beyond "
"physical memory - disabling initrd\n",
phys_initrd_start, end);
phys_initrd_start, phys_initrd_size);
phys_initrd_start = phys_initrd_size = 0;
}
#endif
......@@ -239,24 +239,32 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT,
boot_pages << PAGE_SHIFT, BOOTMEM_DEFAULT);
/*
* Reserve any special node zero regions.
*/
if (node == 0)
reserve_node_zero(pgdat);
#ifdef CONFIG_BLK_DEV_INITRD
/*
* If the initrd is in this node, reserve its memory.
*/
if (node == initrd_node) {
reserve_bootmem_node(pgdat, phys_initrd_start,
phys_initrd_size, BOOTMEM_DEFAULT);
int res = reserve_bootmem_node(pgdat, phys_initrd_start,
phys_initrd_size, BOOTMEM_EXCLUSIVE);
if (res == 0) {
initrd_start = __phys_to_virt(phys_initrd_start);
initrd_end = initrd_start + phys_initrd_size;
} else {
printk(KERN_ERR
"INITRD: 0x%08lx+0x%08lx overlaps in-use "
"memory region - disabling initrd\n",
phys_initrd_start, phys_initrd_size);
}
}
#endif
/*
* Finally, reserve any node zero regions.
*/
if (node == 0)
reserve_node_zero(pgdat);
/*
* initialise the zones within this node.
*/
......
......@@ -259,7 +259,7 @@ remap_area_supersections(unsigned long virt, unsigned long pfn,
* caller shouldn't need to know that small detail.
*
* 'flags' are the extra L_PTE_ flags that you want to specify for this
* mapping. See include/asm-arm/proc-armv/pgtable.h for more information.
* mapping. See <asm/pgtable.h> for more information.
*/
void __iomem *
__arm_ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size,
......
......@@ -231,7 +231,7 @@ cpu_arm720_name:
.align
/*
* See linux/include/asm-arm/procinfo.h for a definition of this structure.
* See <asm/procinfo.h> for a definition of this structure.
*/
.section ".proc.info.init", #alloc, #execinstr
......
......@@ -51,11 +51,6 @@
*/
#define CACHESIZE 32768
/*
* Run with L2 enabled.
*/
#define L2_CACHE_ENABLE 1
/*
* This macro is used to wait for a CP15 write and is needed when we
* have to ensure that the last operation to the coprocessor was
......@@ -265,12 +260,9 @@ ENTRY(xsc3_dma_inv_range)
tst r0, #CACHELINESIZE - 1
bic r0, r0, #CACHELINESIZE - 1
mcrne p15, 0, r0, c7, c10, 1 @ clean L1 D line
mcrne p15, 1, r0, c7, c11, 1 @ clean L2 line
tst r1, #CACHELINESIZE - 1
mcrne p15, 0, r1, c7, c10, 1 @ clean L1 D line
mcrne p15, 1, r1, c7, c11, 1 @ clean L2 line
1: mcr p15, 0, r0, c7, c6, 1 @ invalidate L1 D line
mcr p15, 1, r0, c7, c7, 1 @ invalidate L2 line
add r0, r0, #CACHELINESIZE
cmp r0, r1
blo 1b
......@@ -288,7 +280,6 @@ ENTRY(xsc3_dma_inv_range)
ENTRY(xsc3_dma_clean_range)
bic r0, r0, #CACHELINESIZE - 1
1: mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line
mcr p15, 1, r0, c7, c11, 1 @ clean L2 line
add r0, r0, #CACHELINESIZE
cmp r0, r1
blo 1b
......@@ -306,8 +297,6 @@ ENTRY(xsc3_dma_clean_range)
ENTRY(xsc3_dma_flush_range)
bic r0, r0, #CACHELINESIZE - 1
1: mcr p15, 0, r0, c7, c14, 1 @ clean/invalidate L1 D line
mcr p15, 1, r0, c7, c11, 1 @ clean L2 line
mcr p15, 1, r0, c7, c7, 1 @ invalidate L2 line
add r0, r0, #CACHELINESIZE
cmp r0, r1
blo 1b
......@@ -347,9 +336,7 @@ ENTRY(cpu_xsc3_switch_mm)
mcr p15, 0, ip, c7, c5, 0 @ invalidate L1 I cache and BTB
mcr p15, 0, ip, c7, c10, 4 @ data write barrier
mcr p15, 0, ip, c7, c5, 4 @ prefetch flush
#ifdef L2_CACHE_ENABLE
orr r0, r0, #0x18 @ cache the page table in L2
#endif
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I and D TLBs
cpwait_ret lr, ip
......@@ -378,12 +365,10 @@ ENTRY(cpu_xsc3_set_pte_ext)
orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w
@ combined with user -> user r/w
#if L2_CACHE_ENABLE
@ If it's cacheable, it needs to be in L2 also.
eor ip, r1, #L_PTE_CACHEABLE
tst ip, #L_PTE_CACHEABLE
orreq r2, r2, #PTE_EXT_TEX(0x5)
#endif
tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young?
movne r2, #0 @ no -> fault
......@@ -408,9 +393,7 @@ __xsc3_setup:
mcr p15, 0, ip, c7, c10, 4 @ data write barrier
mcr p15, 0, ip, c7, c5, 4 @ prefetch flush
mcr p15, 0, ip, c8, c7, 0 @ invalidate I and D TLBs
#if L2_CACHE_ENABLE
orr r4, r4, #0x18 @ cache the page table in L2
#endif
mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
mov r0, #0 @ don't allow CP access
......@@ -418,9 +401,7 @@ __xsc3_setup:
mrc p15, 0, r0, c1, c0, 1 @ get auxiliary control reg
and r0, r0, #2 @ preserve bit P bit setting
#if L2_CACHE_ENABLE
orr r0, r0, #(1 << 10) @ enable L2 for LLR cache
#endif
mcr p15, 0, r0, c1, c0, 1 @ set auxiliary control reg
adr r5, xsc3_crval
......@@ -429,9 +410,6 @@ __xsc3_setup:
bic r0, r0, r5 @ ..V. ..R. .... ..A.
orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu)
@ ...I Z..S .... .... (uc)
#if L2_CACHE_ENABLE
orr r0, r0, #0x04000000 @ L2 enable
#endif
mov pc, lr
.size __xsc3_setup, . - __xsc3_setup
......
......@@ -69,7 +69,7 @@ typedef union tagFPREG {
* This structure is exported to user space. Do not re-order.
* Only add new stuff to the end, and do not change the size of
* any element. Elements of this structure are used by user
* space, and must match struct user_fp in include/asm-arm/user.h.
* space, and must match struct user_fp in <asm/user.h>.
* We include the byte offsets below for documentation purposes.
*
* The size of this structure and FPREG are checked by fpmodule.c
......
......@@ -25,7 +25,7 @@
#endif
#include <asm/hardware.h>
#include <asm/arch-sa1100/h3600.h>
#include <asm/arch/h3600.h>
#include <asm/io.h>
......
......@@ -9,7 +9,7 @@
*/
#include <asm/hardware.h>
#include <asm/arch-ns9xxx/regs-board-a9m9750dev.h>
#include <asm/arch/regs-board-a9m9750dev.h>
.macro addruart,rx
mrc p15, 0, \rx, c1, c0
......
......@@ -9,7 +9,7 @@
* the Free Software Foundation.
*/
#include <asm/hardware.h>
#include <asm/arch-ns9xxx/regs-sys-common.h>
#include <asm/arch/regs-sys-common.h>
.macro get_irqnr_preamble, base, tmp
ldr \base, =SYS_ISRADDR
......
......@@ -11,7 +11,7 @@
#ifndef __ASM_ARCH_PROCESSOR_H
#define __ASM_ARCH_PROCESSOR_H
#include <asm/arch-ns9xxx/module.h>
#include <asm/arch/module.h>
#define processor_is_ns9210() (0 \
|| module_is_cc7ucamry() \
......
......@@ -12,8 +12,8 @@
#define __ASM_ARCH_SYSTEM_H
#include <asm/proc-fns.h>
#include <asm/arch-ns9xxx/processor.h>
#include <asm/arch-ns9xxx/processor-ns9360.h>
#include <asm/arch/processor.h>
#include <asm/arch/processor-ns9360.h>
static inline void arch_idle(void)
{
......
......@@ -154,7 +154,7 @@ struct omap_version_config {
};
#include <asm-arm/arch-omap/board-nokia.h>
#include <asm/arch/board-nokia.h>
struct omap_board_config_entry {
u16 tag;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册