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

Commit 1fdb24e9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'devel-stable' of...

Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm

* 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (178 commits)
  ARM: 7139/1: fix compilation with CONFIG_ARM_ATAG_DTB_COMPAT and large TEXT_OFFSET
  ARM: gic, local timers: use the request_percpu_irq() interface
  ARM: gic: consolidate PPI handling
  ARM: switch from NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H
  ARM: mach-s5p64x0: remove mach/memory.h
  ARM: mach-s3c64xx: remove mach/memory.h
  ARM: plat-mxc: remove mach/memory.h
  ARM: mach-prima2: remove mach/memory.h
  ARM: mach-zynq: remove mach/memory.h
  ARM: mach-bcmring: remove mach/memory.h
  ARM: mach-davinci: remove mach/memory.h
  ARM: mach-pxa: remove mach/memory.h
  ARM: mach-ixp4xx: remove mach/memory.h
  ARM: mach-h720x: remove mach/memory.h
  ARM: mach-vt8500: remove mach/memory.h
  ARM: mach-s5pc100: remove mach/memory.h
  ARM: mach-tegra: remove mach/memory.h
  ARM: plat-tcc: remove mach/memory.h
  ARM: mach-mmp: remove mach/memory.h
  ARM: mach-cns3xxx: remove mach/memory.h
  ...

Fix up mostly pretty trivial conflicts in:
 - arch/arm/Kconfig
 - arch/arm/include/asm/localtimer.h
 - arch/arm/kernel/Makefile
 - arch/arm/mach-shmobile/board-ap4evb.c
 - arch/arm/mach-u300/core.c
 - arch/arm/mm/dma-mapping.c
 - arch/arm/mm/proc-v7.S
 - arch/arm/plat-omap/Kconfig
largely due to some CONFIG option renaming (ie CONFIG_PM_SLEEP ->
CONFIG_ARM_CPU_SUSPEND for the arm-specific suspend code etc) and
addition of NEED_MACH_MEMORY_H next to HAVE_IDE.
parents f362f98e 531a6a94
Loading
Loading
Loading
Loading
+63 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,7 @@ config ARM
	select HAVE_GENERIC_HARDIRQS
	select HAVE_GENERIC_HARDIRQS
	select HAVE_SPARSE_IRQ
	select HAVE_SPARSE_IRQ
	select GENERIC_IRQ_SHOW
	select GENERIC_IRQ_SHOW
	select CPU_PM if (SUSPEND || CPU_IDLE)
	help
	help
	  The ARM series is a line of low-power-consumption RISC chip designs
	  The ARM series is a line of low-power-consumption RISC chip designs
	  licensed by ARM Ltd and targeted at embedded applications and
	  licensed by ARM Ltd and targeted at embedded applications and
@@ -211,6 +212,19 @@ config ARM_PATCH_PHYS_VIRT
	  this feature (eg, building a kernel for a single machine) and
	  this feature (eg, building a kernel for a single machine) and
	  you need to shrink the kernel to the minimal size.
	  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
	  Please provide the physical address corresponding to the
	  location of main memory in your system.


config GENERIC_BUG
config GENERIC_BUG
	def_bool y
	def_bool y
@@ -247,6 +261,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 +277,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.


@@ -322,6 +338,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.


@@ -361,6 +378,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
@@ -376,6 +394,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.


@@ -385,6 +404,7 @@ config ARCH_FOOTBRIDGE
	select FOOTBRIDGE
	select FOOTBRIDGE
	select GENERIC_CLOCKEVENTS
	select GENERIC_CLOCKEVENTS
	select HAVE_IDE
	select HAVE_IDE
	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.
@@ -434,6 +454,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.


@@ -464,6 +485,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.


@@ -473,6 +495,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.


@@ -565,6 +588,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.
@@ -657,6 +681,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 +697,7 @@ config ARCH_RPC
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_USES_GETTIMEOFFSET
	select ARCH_USES_GETTIMEOFFSET
	select HAVE_IDE
	select HAVE_IDE
	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.
@@ -691,6 +717,7 @@ config ARCH_SA1100
	select TICK_ONESHOT
	select TICK_ONESHOT
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_REQUIRE_GPIOLIB
	select HAVE_IDE
	select HAVE_IDE
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for StrongARM 11x0 based boards.
	  Support for StrongARM 11x0 based boards.


@@ -782,6 +809,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 +826,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 +838,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>).
@@ -837,6 +867,7 @@ config ARCH_U300
	select HAVE_MACH_CLKDEV
	select HAVE_MACH_CLKDEV
	select GENERIC_GPIO
	select GENERIC_GPIO
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_REQUIRE_GPIOLIB
	select NEED_MACH_MEMORY_H
	help
	help
	  Support for ST-Ericsson U300 series mobile platforms.
	  Support for ST-Ericsson U300 series mobile platforms.


@@ -1835,6 +1866,38 @@ config ZBOOT_ROM_SH_MOBILE_SDHI


endchoice
endchoice


config ARM_APPENDED_DTB
	bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
	depends on OF && !ZBOOT_ROM && EXPERIMENTAL
	help
	  With this option, the boot code will look for a device tree binary
	  (DTB) appended to zImage
	  (e.g. cat zImage <filename>.dtb > zImage_w_dtb).

	  This is meant as a backward compatibility convenience for those
	  systems with a bootloader that can't be upgraded to accommodate
	  the documented boot protocol using a device tree.

	  Beware that there is very little in terms of protection against
	  this option being confused by leftover garbage in memory that might
	  look like a DTB header after a reboot if no actual DTB is appended
	  to zImage.  Do not leave this option active in a production kernel
	  if you don't intend to always append a DTB.  Proper passing of the
	  location into r2 of a bootloader provided DTB is always preferable
	  to this option.

config ARM_ATAG_DTB_COMPAT
	bool "Supplement the appended DTB with traditional ATAG information"
	depends on ARM_APPENDED_DTB
	help
	  Some old bootloaders can't be updated to a DTB capable one, yet
	  they provide ATAGs with memory configuration, the ramdisk address,
	  the kernel cmdline string, etc.  Such information is dynamically
	  provided by the bootloader and can't always be stored in a static
	  DTB.  To allow a device tree enabled kernel to be used with such
	  bootloaders, this option allows zImage to extract the information
	  from the ATAG list and store it at run time into the appended DTB.

config CMDLINE
config CMDLINE
	string "Default kernel command string"
	string "Default kernel command string"
	default ""
	default ""
+6 −0
Original line number Original line Diff line number Diff line
@@ -158,4 +158,10 @@ config DEBUG_S3C_UART
	  The uncompressor code port configuration is now handled
	  The uncompressor code port configuration is now handled
	  by CONFIG_S3C_LOWLEVEL_UART_PORT.
	  by CONFIG_S3C_LOWLEVEL_UART_PORT.


config ARM_KPROBES_TEST
	tristate "Kprobes test module"
	depends on KPROBES && MODULES
	help
	  Perform tests of kprobes API and instruction set simulation.

endmenu
endmenu
+9 −0
Original line number Original line Diff line number Diff line
@@ -5,3 +5,12 @@ piggy.lzo
piggy.lzma
piggy.lzma
vmlinux
vmlinux
vmlinux.lds
vmlinux.lds

# borrowed libfdt files
fdt.c
fdt.h
fdt_ro.c
fdt_rw.c
fdt_wip.c
libfdt.h
libfdt_internal.h
+28 −4
Original line number Original line Diff line number Diff line
@@ -26,6 +26,10 @@ HEAD = head.o
OBJS	+= misc.o decompress.o
OBJS	+= misc.o decompress.o
FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c
FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c


# string library code (-Os is enforced to keep it much smaller)
OBJS		+= string.o
CFLAGS_string.o	:= -Os

#
#
# Architecture dependencies
# Architecture dependencies
#
#
@@ -89,21 +93,41 @@ suffix_$(CONFIG_KERNEL_GZIP) = gzip
suffix_$(CONFIG_KERNEL_LZO)  = lzo
suffix_$(CONFIG_KERNEL_LZO)  = lzo
suffix_$(CONFIG_KERNEL_LZMA) = lzma
suffix_$(CONFIG_KERNEL_LZMA) = lzma


# Borrowed libfdt files for the ATAG compatibility mode

libfdt		:= fdt_rw.c fdt_ro.c fdt_wip.c fdt.c
libfdt_hdrs	:= fdt.h libfdt.h libfdt_internal.h

libfdt_objs	:= $(addsuffix .o, $(basename $(libfdt)))

$(addprefix $(obj)/,$(libfdt) $(libfdt_hdrs)): $(obj)/%: $(srctree)/scripts/dtc/libfdt/%
	$(call cmd,shipped)

$(addprefix $(obj)/,$(libfdt_objs) atags_to_fdt.o): \
	$(addprefix $(obj)/,$(libfdt_hdrs))

ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
OBJS	+= $(libfdt_objs) atags_to_fdt.o
endif

targets       := vmlinux vmlinux.lds \
targets       := vmlinux vmlinux.lds \
		 piggy.$(suffix_y) piggy.$(suffix_y).o \
		 piggy.$(suffix_y) piggy.$(suffix_y).o \
		 font.o font.c head.o misc.o $(OBJS)
		 lib1funcs.o lib1funcs.S font.o font.c head.o misc.o $(OBJS)


# Make sure files are removed during clean
# Make sure files are removed during clean
extra-y       += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S
extra-y       += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S $(libfdt) $(libfdt_hdrs)


ifeq ($(CONFIG_FUNCTION_TRACER),y)
ifeq ($(CONFIG_FUNCTION_TRACER),y)
ORIG_CFLAGS := $(KBUILD_CFLAGS)
ORIG_CFLAGS := $(KBUILD_CFLAGS)
KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
endif
endif


ccflags-y := -fpic -fno-builtin
ccflags-y := -fpic -fno-builtin -I$(obj)
asflags-y := -Wa,-march=all
asflags-y := -Wa,-march=all


# Supply kernel BSS size to the decompressor via a linker symbol.
KBSS_SZ = $(shell size $(obj)/../../../../vmlinux | awk 'END{print $$3}')
LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
# Supply ZRELADDR to the decompressor via a linker symbol.
# Supply ZRELADDR to the decompressor via a linker symbol.
ifneq ($(CONFIG_AUTO_ZRELADDR),y)
ifneq ($(CONFIG_AUTO_ZRELADDR),y)
LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR)
LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR)
@@ -123,7 +147,7 @@ LDFLAGS_vmlinux += -T
# For __aeabi_uidivmod
# For __aeabi_uidivmod
lib1funcs = $(obj)/lib1funcs.o
lib1funcs = $(obj)/lib1funcs.o


$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE
$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S
	$(call cmd,shipped)
	$(call cmd,shipped)


# We need to prevent any GOTOFF relocs being used with references
# We need to prevent any GOTOFF relocs being used with references
+97 −0
Original line number Original line Diff line number Diff line
#include <asm/setup.h>
#include <libfdt.h>

static int node_offset(void *fdt, const char *node_path)
{
	int offset = fdt_path_offset(fdt, node_path);
	if (offset == -FDT_ERR_NOTFOUND)
		offset = fdt_add_subnode(fdt, 0, node_path);
	return offset;
}

static int setprop(void *fdt, const char *node_path, const char *property,
		   uint32_t *val_array, int size)
{
	int offset = node_offset(fdt, node_path);
	if (offset < 0)
		return offset;
	return fdt_setprop(fdt, offset, property, val_array, size);
}

static int setprop_string(void *fdt, const char *node_path,
			  const char *property, const char *string)
{
	int offset = node_offset(fdt, node_path);
	if (offset < 0)
		return offset;
	return fdt_setprop_string(fdt, offset, property, string);
}

static int setprop_cell(void *fdt, const char *node_path,
			const char *property, uint32_t val)
{
	int offset = node_offset(fdt, node_path);
	if (offset < 0)
		return offset;
	return fdt_setprop_cell(fdt, offset, property, val);
}

/*
 * Convert and fold provided ATAGs into the provided FDT.
 *
 * REturn values:
 *    = 0 -> pretend success
 *    = 1 -> bad ATAG (may retry with another possible ATAG pointer)
 *    < 0 -> error from libfdt
 */
int atags_to_fdt(void *atag_list, void *fdt, int total_space)
{
	struct tag *atag = atag_list;
	uint32_t mem_reg_property[2 * NR_BANKS];
	int memcount = 0;
	int ret;

	/* make sure we've got an aligned pointer */
	if ((u32)atag_list & 0x3)
		return 1;

	/* if we get a DTB here we're done already */
	if (*(u32 *)atag_list == fdt32_to_cpu(FDT_MAGIC))
	       return 0;

	/* validate the ATAG */
	if (atag->hdr.tag != ATAG_CORE ||
	    (atag->hdr.size != tag_size(tag_core) &&
	     atag->hdr.size != 2))
		return 1;

	/* let's give it all the room it could need */
	ret = fdt_open_into(fdt, fdt, total_space);
	if (ret < 0)
		return ret;

	for_each_tag(atag, atag_list) {
		if (atag->hdr.tag == ATAG_CMDLINE) {
			setprop_string(fdt, "/chosen", "bootargs",
					atag->u.cmdline.cmdline);
		} else if (atag->hdr.tag == ATAG_MEM) {
			if (memcount >= sizeof(mem_reg_property)/4)
				continue;
			mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.start);
			mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.size);
		} else if (atag->hdr.tag == ATAG_INITRD2) {
			uint32_t initrd_start, initrd_size;
			initrd_start = atag->u.initrd.start;
			initrd_size = atag->u.initrd.size;
			setprop_cell(fdt, "/chosen", "linux,initrd-start",
					initrd_start);
			setprop_cell(fdt, "/chosen", "linux,initrd-end",
					initrd_start + initrd_size);
		}
	}

	if (memcount)
		setprop(fdt, "/memory", "reg", mem_reg_property, 4*memcount);

	return fdt_pack(fdt);
}
Loading