Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cefd3e71 authored by Russell King's avatar Russell King
Browse files

Merge branch 'mach_memory_h' of git://git.linaro.org/people/nico/linux into devel-stable

parents a26bce12 0cdc8b92
Loading
Loading
Loading
Loading
+36 −10
Original line number Original line Diff line number Diff line
@@ -196,7 +196,8 @@ config VECTORS_BASE
	  The base address of exception vectors.
	  The base address of exception vectors.


config ARM_PATCH_PHYS_VIRT
config ARM_PATCH_PHYS_VIRT
	bool "Patch physical to virtual translations at runtime"
	bool "Patch physical to virtual translations at runtime" if EMBEDDED
	default y
	depends on !XIP_KERNEL && MMU
	depends on !XIP_KERNEL && MMU
	depends on !ARCH_REALVIEW || !SPARSEMEM
	depends on !ARCH_REALVIEW || !SPARSEMEM
	help
	help
@@ -205,16 +206,25 @@ config ARM_PATCH_PHYS_VIRT
	  kernel in system memory.
	  kernel in system memory.


	  This can only be used with non-XIP MMU kernels where the base
	  This can only be used with non-XIP MMU kernels where the base
	  of physical memory is at a 16MB boundary, or theoretically 64K
	  of physical memory is at a 16MB boundary.
	  for the MSM machine class.


config ARM_PATCH_PHYS_VIRT_16BIT
	  Only disable this option if you know that you do not require
	def_bool y
	  this feature (eg, building a kernel for a single machine) and
	depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM
	  you need to shrink the kernel to the minimal size.

config NEED_MACH_MEMORY_H
	bool
	help
	  Select this when mach/memory.h is required to provide special
	  definitions for this platform.  The need for mach/memory.h should
	  be avoided when possible.

config PHYS_OFFSET
	hex "Physical address of main memory"
	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
	help
	help
	  This option extends the physical to virtual translation patching
	  Please provide the physical address corresponding to the
	  to allow physical memory down to a theoretical minimum of 64K
	  location of main memory in your system.
	  boundaries.


source "init/Kconfig"
source "init/Kconfig"


@@ -247,6 +257,7 @@ config ARCH_INTEGRATOR
	select GENERIC_CLOCKEVENTS
	select GENERIC_CLOCKEVENTS
	select PLAT_VERSATILE
	select PLAT_VERSATILE
	select PLAT_VERSATILE_FPGA_IRQ
	select PLAT_VERSATILE_FPGA_IRQ
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for ARM's Integrator platform.
	  Support for ARM's Integrator platform.


@@ -262,6 +273,7 @@ config ARCH_REALVIEW
	select PLAT_VERSATILE_CLCD
	select PLAT_VERSATILE_CLCD
	select ARM_TIMER_SP804
	select ARM_TIMER_SP804
	select GPIO_PL061 if GPIOLIB
	select GPIO_PL061 if GPIOLIB
	select NEED_MACH_MEMORY_H
	help
	help
	  This enables support for ARM Ltd RealView boards.
	  This enables support for ARM Ltd RealView boards.


@@ -302,7 +314,6 @@ config ARCH_AT91
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_REQUIRE_GPIOLIB
	select HAVE_CLK
	select HAVE_CLK
	select CLKDEV_LOOKUP
	select CLKDEV_LOOKUP
	select ARM_PATCH_PHYS_VIRT if MMU
	help
	help
	  This enables support for systems based on the Atmel AT91RM9200,
	  This enables support for systems based on the Atmel AT91RM9200,
	  AT91SAM9 and AT91CAP9 processors.
	  AT91SAM9 and AT91CAP9 processors.
@@ -323,6 +334,7 @@ config ARCH_CLPS711X
	bool "Cirrus Logic CLPS711x/EP721x-based"
	bool "Cirrus Logic CLPS711x/EP721x-based"
	select CPU_ARM720T
	select CPU_ARM720T
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for Cirrus Logic 711x/721x based boards.
	  Support for Cirrus Logic 711x/721x based boards.


@@ -363,6 +375,7 @@ config ARCH_EBSA110
	select ISA
	select ISA
	select NO_IOPORT
	select NO_IOPORT
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  This is an evaluation board for the StrongARM processor available
	  This is an evaluation board for the StrongARM processor available
	  from Digital. It has limited hardware on-board, including an
	  from Digital. It has limited hardware on-board, including an
@@ -378,6 +391,7 @@ config ARCH_EP93XX
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_HAS_HOLES_MEMORYMODEL
	select ARCH_HAS_HOLES_MEMORYMODEL
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MEMORY_H
	help
	help
	  This enables support for the Cirrus EP93xx series of CPUs.
	  This enables support for the Cirrus EP93xx series of CPUs.


@@ -386,6 +400,7 @@ config ARCH_FOOTBRIDGE
	select CPU_SA110
	select CPU_SA110
	select FOOTBRIDGE
	select FOOTBRIDGE
	select GENERIC_CLOCKEVENTS
	select GENERIC_CLOCKEVENTS
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for systems based on the DC21285 companion chip
	  Support for systems based on the DC21285 companion chip
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@ -435,6 +450,7 @@ config ARCH_IOP13XX
	select PCI
	select PCI
	select ARCH_SUPPORTS_MSI
	select ARCH_SUPPORTS_MSI
	select VMSPLIT_1G
	select VMSPLIT_1G
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for Intel's IOP13XX (XScale) family of processors.
	  Support for Intel's IOP13XX (XScale) family of processors.


@@ -465,6 +481,7 @@ config ARCH_IXP23XX
	select CPU_XSC3
	select CPU_XSC3
 	select PCI
 	select PCI
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for Intel's IXP23xx (XScale) family of processors.
	  Support for Intel's IXP23xx (XScale) family of processors.


@@ -474,6 +491,7 @@ config ARCH_IXP2000
	select CPU_XSCALE
	select CPU_XSCALE
	select PCI
	select PCI
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for Intel's IXP2400/2800 (XScale) family of processors.
	  Support for Intel's IXP2400/2800 (XScale) family of processors.


@@ -567,6 +585,7 @@ config ARCH_KS8695
	select CPU_ARM922T
	select CPU_ARM922T
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
	  System-on-Chip devices.
	  System-on-Chip devices.
@@ -658,6 +677,7 @@ config ARCH_SHMOBILE
	select SPARSE_IRQ
	select SPARSE_IRQ
	select MULTI_IRQ_HANDLER
	select MULTI_IRQ_HANDLER
	select PM_GENERIC_DOMAINS if PM
	select PM_GENERIC_DOMAINS if PM
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
	  Support for Renesas's SH-Mobile and R-Mobile ARM platforms.


@@ -672,6 +692,7 @@ config ARCH_RPC
	select NO_IOPORT
	select NO_IOPORT
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
	  CD-ROM interface, serial and parallel port, and the floppy drive.
	  CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -690,6 +711,7 @@ config ARCH_SA1100
	select HAVE_SCHED_CLOCK
	select HAVE_SCHED_CLOCK
	select TICK_ONESHOT
	select TICK_ONESHOT
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_REQUIRE_GPIOLIB
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for StrongARM 11x0 based boards.
	  Support for StrongARM 11x0 based boards.


@@ -782,6 +804,7 @@ config ARCH_S5PV210
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select NEED_MACH_MEMORY_H
	help
	help
	  Samsung S5PV210/S5PC110 series based systems
	  Samsung S5PV210/S5PC110 series based systems


@@ -798,6 +821,7 @@ config ARCH_EXYNOS4
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select NEED_MACH_MEMORY_H
	help
	help
	  Samsung EXYNOS4 series based systems
	  Samsung EXYNOS4 series based systems


@@ -809,6 +833,7 @@ config ARCH_SHARK
	select ZONE_DMA
	select ZONE_DMA
	select PCI
	select PCI
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for the StrongARM based Digital DNARD machine, also known
	  Support for the StrongARM based Digital DNARD machine, also known
	  as "Shark" (<http://www.shark-linux.de/shark.html>).
	  as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -836,6 +861,7 @@ config ARCH_U300
	select CLKDEV_LOOKUP
	select CLKDEV_LOOKUP
	select HAVE_MACH_CLKDEV
	select HAVE_MACH_CLKDEV
	select GENERIC_GPIO
	select GENERIC_GPIO
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for ST-Ericsson U300 series mobile platforms.
	  Support for ST-Ericsson U300 series mobile platforms.


+3 −0
Original line number Original line Diff line number Diff line
@@ -128,6 +128,9 @@ textofs-$(CONFIG_PM_H1940) := 0x00108000
ifeq ($(CONFIG_ARCH_SA1100),y)
ifeq ($(CONFIG_ARCH_SA1100),y)
textofs-$(CONFIG_SA1111) := 0x00208000
textofs-$(CONFIG_SA1111) := 0x00208000
endif
endif
textofs-$(CONFIG_ARCH_MSM7X30) := 0x00208000
textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000


# Machine directory name.  This list is sorted alphanumerically
# Machine directory name.  This list is sorted alphanumerically
# by CONFIG_* macro name.
# by CONFIG_* macro name.
+8 −8
Original line number Original line Diff line number Diff line
@@ -16,9 +16,12 @@
#include <linux/compiler.h>
#include <linux/compiler.h>
#include <linux/const.h>
#include <linux/const.h>
#include <linux/types.h>
#include <linux/types.h>
#include <mach/memory.h>
#include <asm/sizes.h>
#include <asm/sizes.h>


#ifdef CONFIG_NEED_MACH_MEMORY_H
#include <mach/memory.h>
#endif

/*
/*
 * Allow for constants defined here to be used from assembly code
 * Allow for constants defined here to be used from assembly code
 * by prepending the UL suffix only with actual C code compilation.
 * by prepending the UL suffix only with actual C code compilation.
@@ -151,7 +154,6 @@
 * so that all we need to do is modify the 8-bit constant field.
 * so that all we need to do is modify the 8-bit constant field.
 */
 */
#define __PV_BITS_31_24	0x81000000
#define __PV_BITS_31_24	0x81000000
#define __PV_BITS_23_16	0x00810000


extern unsigned long __pv_phys_offset;
extern unsigned long __pv_phys_offset;
#define PHYS_OFFSET __pv_phys_offset
#define PHYS_OFFSET __pv_phys_offset
@@ -169,9 +171,6 @@ static inline unsigned long __virt_to_phys(unsigned long x)
{
{
	unsigned long t;
	unsigned long t;
	__pv_stub(x, t, "add", __PV_BITS_31_24);
	__pv_stub(x, t, "add", __PV_BITS_31_24);
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT_16BIT
	__pv_stub(t, t, "add", __PV_BITS_23_16);
#endif
	return t;
	return t;
}
}


@@ -179,9 +178,6 @@ static inline unsigned long __phys_to_virt(unsigned long x)
{
{
	unsigned long t;
	unsigned long t;
	__pv_stub(x, t, "sub", __PV_BITS_31_24);
	__pv_stub(x, t, "sub", __PV_BITS_31_24);
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT_16BIT
	__pv_stub(t, t, "sub", __PV_BITS_23_16);
#endif
	return t;
	return t;
}
}
#else
#else
@@ -191,7 +187,11 @@ static inline unsigned long __phys_to_virt(unsigned long x)
#endif
#endif


#ifndef PHYS_OFFSET
#ifndef PHYS_OFFSET
#ifdef PLAT_PHYS_OFFSET
#define PHYS_OFFSET	PLAT_PHYS_OFFSET
#define PHYS_OFFSET	PLAT_PHYS_OFFSET
#else
#define PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
#endif
#endif
#endif


/*
/*
+0 −4
Original line number Original line Diff line number Diff line
@@ -31,11 +31,7 @@ struct mod_arch_specific {


/* Add __virt_to_phys patching state as well */
/* Add __virt_to_phys patching state as well */
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT_16BIT
#define MODULE_ARCH_VERMAGIC_P2V "p2v16 "
#else
#define MODULE_ARCH_VERMAGIC_P2V "p2v8 "
#define MODULE_ARCH_VERMAGIC_P2V "p2v8 "
#endif
#else
#else
#define MODULE_ARCH_VERMAGIC_P2V ""
#define MODULE_ARCH_VERMAGIC_P2V ""
#endif
#endif
+2 −2
Original line number Original line Diff line number Diff line
@@ -22,7 +22,7 @@
#if defined(CONFIG_DEBUG_ICEDCC)
#if defined(CONFIG_DEBUG_ICEDCC)
		@@ debug using ARM EmbeddedICE DCC channel
		@@ debug using ARM EmbeddedICE DCC channel


		.macro	addruart, rp, rv
		.macro	addruart, rp, rv, tmp
		.endm
		.endm


#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7)
#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7)
@@ -106,7 +106,7 @@


#ifdef CONFIG_MMU
#ifdef CONFIG_MMU
		.macro	addruart_current, rx, tmp1, tmp2
		.macro	addruart_current, rx, tmp1, tmp2
		addruart	\tmp1, \tmp2
		addruart	\tmp1, \tmp2, \rx
		mrc		p15, 0, \rx, c1, c0
		mrc		p15, 0, \rx, c1, c0
		tst		\rx, #1
		tst		\rx, #1
		moveq		\rx, \tmp1
		moveq		\rx, \tmp1
Loading