diff options
376 files changed, 1713 insertions, 1340 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 3269576dbfa8..5a3a78633177 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1793,6 +1793,38 @@ config ZBOOT_ROM_SH_MOBILE_SDHI | |||
| 1793 | 1793 | ||
| 1794 | endchoice | 1794 | endchoice |
| 1795 | 1795 | ||
| 1796 | config ARM_APPENDED_DTB | ||
| 1797 | bool "Use appended device tree blob to zImage (EXPERIMENTAL)" | ||
| 1798 | depends on OF && !ZBOOT_ROM && EXPERIMENTAL | ||
| 1799 | help | ||
| 1800 | With this option, the boot code will look for a device tree binary | ||
| 1801 | (DTB) appended to zImage | ||
| 1802 | (e.g. cat zImage <filename>.dtb > zImage_w_dtb). | ||
| 1803 | |||
| 1804 | This is meant as a backward compatibility convenience for those | ||
| 1805 | systems with a bootloader that can't be upgraded to accommodate | ||
| 1806 | the documented boot protocol using a device tree. | ||
| 1807 | |||
| 1808 | Beware that there is very little in terms of protection against | ||
| 1809 | this option being confused by leftover garbage in memory that might | ||
| 1810 | look like a DTB header after a reboot if no actual DTB is appended | ||
| 1811 | to zImage. Do not leave this option active in a production kernel | ||
| 1812 | if you don't intend to always append a DTB. Proper passing of the | ||
| 1813 | location into r2 of a bootloader provided DTB is always preferable | ||
| 1814 | to this option. | ||
| 1815 | |||
| 1816 | config ARM_ATAG_DTB_COMPAT | ||
| 1817 | bool "Supplement the appended DTB with traditional ATAG information" | ||
| 1818 | depends on ARM_APPENDED_DTB | ||
| 1819 | help | ||
| 1820 | Some old bootloaders can't be updated to a DTB capable one, yet | ||
| 1821 | they provide ATAGs with memory configuration, the ramdisk address, | ||
| 1822 | the kernel cmdline string, etc. Such information is dynamically | ||
| 1823 | provided by the bootloader and can't always be stored in a static | ||
| 1824 | DTB. To allow a device tree enabled kernel to be used with such | ||
| 1825 | bootloaders, this option allows zImage to extract the information | ||
| 1826 | from the ATAG list and store it at run time into the appended DTB. | ||
| 1827 | |||
| 1796 | config CMDLINE | 1828 | config CMDLINE |
| 1797 | string "Default kernel command string" | 1829 | string "Default kernel command string" |
| 1798 | default "" | 1830 | default "" |
diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore index c6028967d336..e0936a148516 100644 --- a/arch/arm/boot/compressed/.gitignore +++ b/arch/arm/boot/compressed/.gitignore | |||
| @@ -5,3 +5,12 @@ piggy.lzo | |||
| 5 | piggy.lzma | 5 | piggy.lzma |
| 6 | vmlinux | 6 | vmlinux |
| 7 | vmlinux.lds | 7 | vmlinux.lds |
| 8 | |||
| 9 | # borrowed libfdt files | ||
| 10 | fdt.c | ||
| 11 | fdt.h | ||
| 12 | fdt_ro.c | ||
| 13 | fdt_rw.c | ||
| 14 | fdt_wip.c | ||
| 15 | libfdt.h | ||
| 16 | libfdt_internal.h | ||
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 0c74a6fab952..e4f32a8e002a 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
| @@ -26,6 +26,10 @@ HEAD = head.o | |||
| 26 | OBJS += misc.o decompress.o | 26 | OBJS += misc.o decompress.o |
| 27 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c | 27 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c |
| 28 | 28 | ||
| 29 | # string library code (-Os is enforced to keep it much smaller) | ||
| 30 | OBJS += string.o | ||
| 31 | CFLAGS_string.o := -Os | ||
| 32 | |||
| 29 | # | 33 | # |
| 30 | # Architecture dependencies | 34 | # Architecture dependencies |
| 31 | # | 35 | # |
| @@ -89,21 +93,41 @@ suffix_$(CONFIG_KERNEL_GZIP) = gzip | |||
| 89 | suffix_$(CONFIG_KERNEL_LZO) = lzo | 93 | suffix_$(CONFIG_KERNEL_LZO) = lzo |
| 90 | suffix_$(CONFIG_KERNEL_LZMA) = lzma | 94 | suffix_$(CONFIG_KERNEL_LZMA) = lzma |
| 91 | 95 | ||
| 96 | # Borrowed libfdt files for the ATAG compatibility mode | ||
| 97 | |||
| 98 | libfdt := fdt_rw.c fdt_ro.c fdt_wip.c fdt.c | ||
| 99 | libfdt_hdrs := fdt.h libfdt.h libfdt_internal.h | ||
| 100 | |||
| 101 | libfdt_objs := $(addsuffix .o, $(basename $(libfdt))) | ||
| 102 | |||
| 103 | $(addprefix $(obj)/,$(libfdt) $(libfdt_hdrs)): $(obj)/%: $(srctree)/scripts/dtc/libfdt/% | ||
| 104 | $(call cmd,shipped) | ||
| 105 | |||
| 106 | $(addprefix $(obj)/,$(libfdt_objs) atags_to_fdt.o): \ | ||
| 107 | $(addprefix $(obj)/,$(libfdt_hdrs)) | ||
| 108 | |||
| 109 | ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y) | ||
| 110 | OBJS += $(libfdt_objs) atags_to_fdt.o | ||
| 111 | endif | ||
| 112 | |||
| 92 | targets := vmlinux vmlinux.lds \ | 113 | targets := vmlinux vmlinux.lds \ |
| 93 | piggy.$(suffix_y) piggy.$(suffix_y).o \ | 114 | piggy.$(suffix_y) piggy.$(suffix_y).o \ |
| 94 | font.o font.c head.o misc.o $(OBJS) | 115 | lib1funcs.o lib1funcs.S font.o font.c head.o misc.o $(OBJS) |
| 95 | 116 | ||
| 96 | # Make sure files are removed during clean | 117 | # Make sure files are removed during clean |
| 97 | extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S | 118 | extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S $(libfdt) $(libfdt_hdrs) |
| 98 | 119 | ||
| 99 | ifeq ($(CONFIG_FUNCTION_TRACER),y) | 120 | ifeq ($(CONFIG_FUNCTION_TRACER),y) |
| 100 | ORIG_CFLAGS := $(KBUILD_CFLAGS) | 121 | ORIG_CFLAGS := $(KBUILD_CFLAGS) |
| 101 | KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) | 122 | KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) |
| 102 | endif | 123 | endif |
| 103 | 124 | ||
| 104 | ccflags-y := -fpic -fno-builtin | 125 | ccflags-y := -fpic -fno-builtin -I$(obj) |
| 105 | asflags-y := -Wa,-march=all | 126 | asflags-y := -Wa,-march=all |
| 106 | 127 | ||
| 128 | # Supply kernel BSS size to the decompressor via a linker symbol. | ||
| 129 | KBSS_SZ = $(shell size $(obj)/../../../../vmlinux | awk 'END{print $$3}') | ||
| 130 | LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) | ||
| 107 | # Supply ZRELADDR to the decompressor via a linker symbol. | 131 | # Supply ZRELADDR to the decompressor via a linker symbol. |
| 108 | ifneq ($(CONFIG_AUTO_ZRELADDR),y) | 132 | ifneq ($(CONFIG_AUTO_ZRELADDR),y) |
| 109 | LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR) | 133 | LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR) |
| @@ -123,7 +147,7 @@ LDFLAGS_vmlinux += -T | |||
| 123 | # For __aeabi_uidivmod | 147 | # For __aeabi_uidivmod |
| 124 | lib1funcs = $(obj)/lib1funcs.o | 148 | lib1funcs = $(obj)/lib1funcs.o |
| 125 | 149 | ||
| 126 | $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE | 150 | $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S |
| 127 | $(call cmd,shipped) | 151 | $(call cmd,shipped) |
| 128 | 152 | ||
| 129 | # We need to prevent any GOTOFF relocs being used with references | 153 | # We need to prevent any GOTOFF relocs being used with references |
diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c new file mode 100644 index 000000000000..6ce11c481178 --- /dev/null +++ b/arch/arm/boot/compressed/atags_to_fdt.c | |||
| @@ -0,0 +1,97 @@ | |||
| 1 | #include <asm/setup.h> | ||
| 2 | #include <libfdt.h> | ||
| 3 | |||
| 4 | static int node_offset(void *fdt, const char *node_path) | ||
| 5 | { | ||
| 6 | int offset = fdt_path_offset(fdt, node_path); | ||
| 7 | if (offset == -FDT_ERR_NOTFOUND) | ||
| 8 | offset = fdt_add_subnode(fdt, 0, node_path); | ||
| 9 | return offset; | ||
| 10 | } | ||
| 11 | |||
| 12 | static int setprop(void *fdt, const char *node_path, const char *property, | ||
| 13 | uint32_t *val_array, int size) | ||
| 14 | { | ||
| 15 | int offset = node_offset(fdt, node_path); | ||
| 16 | if (offset < 0) | ||
| 17 | return offset; | ||
| 18 | return fdt_setprop(fdt, offset, property, val_array, size); | ||
| 19 | } | ||
| 20 | |||
| 21 | static int setprop_string(void *fdt, const char *node_path, | ||
| 22 | const char *property, const char *string) | ||
| 23 | { | ||
| 24 | int offset = node_offset(fdt, node_path); | ||
| 25 | if (offset < 0) | ||
| 26 | return offset; | ||
| 27 | return fdt_setprop_string(fdt, offset, property, string); | ||
| 28 | } | ||
| 29 | |||
| 30 | static int setprop_cell(void *fdt, const char *node_path, | ||
| 31 | const char *property, uint32_t val) | ||
| 32 | { | ||
| 33 | int offset = node_offset(fdt, node_path); | ||
| 34 | if (offset < 0) | ||
| 35 | return offset; | ||
| 36 | return fdt_setprop_cell(fdt, offset, property, val); | ||
| 37 | } | ||
| 38 | |||
| 39 | /* | ||
| 40 | * Convert and fold provided ATAGs into the provided FDT. | ||
| 41 | * | ||
| 42 | * REturn values: | ||
| 43 | * = 0 -> pretend success | ||
| 44 | * = 1 -> bad ATAG (may retry with another possible ATAG pointer) | ||
| 45 | * < 0 -> error from libfdt | ||
| 46 | */ | ||
| 47 | int atags_to_fdt(void *atag_list, void *fdt, int total_space) | ||
| 48 | { | ||
| 49 | struct tag *atag = atag_list; | ||
| 50 | uint32_t mem_reg_property[2 * NR_BANKS]; | ||
| 51 | int memcount = 0; | ||
| 52 | int ret; | ||
| 53 | |||
| 54 | /* make sure we've got an aligned pointer */ | ||
| 55 | if ((u32)atag_list & 0x3) | ||
| 56 | return 1; | ||
| 57 | |||
| 58 | /* if we get a DTB here we're done already */ | ||
| 59 | if (*(u32 *)atag_list == fdt32_to_cpu(FDT_MAGIC)) | ||
| 60 | return 0; | ||
| 61 | |||
| 62 | /* validate the ATAG */ | ||
| 63 | if (atag->hdr.tag != ATAG_CORE || | ||
| 64 | (atag->hdr.size != tag_size(tag_core) && | ||
| 65 | atag->hdr.size != 2)) | ||
| 66 | return 1; | ||
| 67 | |||
| 68 | /* let's give it all the room it could need */ | ||
| 69 | ret = fdt_open_into(fdt, fdt, total_space); | ||
| 70 | if (ret < 0) | ||
| 71 | return ret; | ||
| 72 | |||
| 73 | for_each_tag(atag, atag_list) { | ||
| 74 | if (atag->hdr.tag == ATAG_CMDLINE) { | ||
| 75 | setprop_string(fdt, "/chosen", "bootargs", | ||
| 76 | atag->u.cmdline.cmdline); | ||
| 77 | } else if (atag->hdr.tag == ATAG_MEM) { | ||
| 78 | if (memcount >= sizeof(mem_reg_property)/4) | ||
| 79 | continue; | ||
| 80 | mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.start); | ||
| 81 | mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.size); | ||
| 82 | } else if (atag->hdr.tag == ATAG_INITRD2) { | ||
| 83 | uint32_t initrd_start, initrd_size; | ||
| 84 | initrd_start = atag->u.initrd.start; | ||
| 85 | initrd_size = atag->u.initrd.size; | ||
| 86 | setprop_cell(fdt, "/chosen", "linux,initrd-start", | ||
| 87 | initrd_start); | ||
| 88 | setprop_cell(fdt, "/chosen", "linux,initrd-end", | ||
| 89 | initrd_start + initrd_size); | ||
| 90 | } | ||
| 91 | } | ||
| 92 | |||
| 93 | if (memcount) | ||
| 94 | setprop(fdt, "/memory", "reg", mem_reg_property, 4*memcount); | ||
| 95 | |||
| 96 | return fdt_pack(fdt); | ||
| 97 | } | ||
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index e95a5989602a..9f5ac11ccd8e 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -216,6 +216,103 @@ restart: adr r0, LC0 | |||
| 216 | mov r10, r6 | 216 | mov r10, r6 |
| 217 | #endif | 217 | #endif |
| 218 | 218 | ||
| 219 | mov r5, #0 @ init dtb size to 0 | ||
| 220 | #ifdef CONFIG_ARM_APPENDED_DTB | ||
| 221 | /* | ||
| 222 | * r0 = delta | ||
| 223 | * r2 = BSS start | ||
| 224 | * r3 = BSS end | ||
| 225 | * r4 = final kernel address | ||
| 226 | * r5 = appended dtb size (still unknown) | ||
| 227 | * r6 = _edata | ||
| 228 | * r7 = architecture ID | ||
| 229 | * r8 = atags/device tree pointer | ||
| 230 | * r9 = size of decompressed image | ||
| 231 | * r10 = end of this image, including bss/stack/malloc space if non XIP | ||
| 232 | * r11 = GOT start | ||
| 233 | * r12 = GOT end | ||
| 234 | * sp = stack pointer | ||
| 235 | * | ||
| 236 | * if there are device trees (dtb) appended to zImage, advance r10 so that the | ||
| 237 | * dtb data will get relocated along with the kernel if necessary. | ||
| 238 | */ | ||
| 239 | |||
| 240 | ldr lr, [r6, #0] | ||
| 241 | #ifndef __ARMEB__ | ||
| 242 | ldr r1, =0xedfe0dd0 @ sig is 0xd00dfeed big endian | ||
| 243 | #else | ||
| 244 | ldr r1, =0xd00dfeed | ||
| 245 | #endif | ||
| 246 | cmp lr, r1 | ||
| 247 | bne dtb_check_done @ not found | ||
| 248 | |||
| 249 | #ifdef CONFIG_ARM_ATAG_DTB_COMPAT | ||
| 250 | /* | ||
| 251 | * OK... Let's do some funky business here. | ||
| 252 | * If we do have a DTB appended to zImage, and we do have | ||
| 253 | * an ATAG list around, we want the later to be translated | ||
| 254 | * and folded into the former here. To be on the safe side, | ||
| 255 | * let's temporarily move the stack away into the malloc | ||
| 256 | * area. No GOT fixup has occurred yet, but none of the | ||
| 257 | * code we're about to call uses any global variable. | ||
| 258 | */ | ||
| 259 | add sp, sp, #0x10000 | ||
| 260 | stmfd sp!, {r0-r3, ip, lr} | ||
| 261 | mov r0, r8 | ||
| 262 | mov r1, r6 | ||
| 263 | sub r2, sp, r6 | ||
| 264 | bl atags_to_fdt | ||
| 265 | |||
| 266 | /* | ||
| 267 | * If returned value is 1, there is no ATAG at the location | ||
| 268 | * pointed by r8. Try the typical 0x100 offset from start | ||
| 269 | * of RAM and hope for the best. | ||
| 270 | */ | ||
| 271 | cmp r0, #1 | ||
| 272 | sub r0, r4, #(TEXT_OFFSET - 0x100) | ||
| 273 | mov r1, r6 | ||
| 274 | sub r2, sp, r6 | ||
| 275 | blne atags_to_fdt | ||
| 276 | |||
| 277 | ldmfd sp!, {r0-r3, ip, lr} | ||
| 278 | sub sp, sp, #0x10000 | ||
| 279 | #endif | ||
| 280 | |||
| 281 | mov r8, r6 @ use the appended device tree | ||
| 282 | |||
| 283 | /* | ||
| 284 | * Make sure that the DTB doesn't end up in the final | ||
| 285 | * kernel's .bss area. To do so, we adjust the decompressed | ||
| 286 | * kernel size to compensate if that .bss size is larger | ||
| 287 | * than the relocated code. | ||
| 288 | */ | ||
| 289 | ldr r5, =_kernel_bss_size | ||
| 290 | adr r1, wont_overwrite | ||
| 291 | sub r1, r6, r1 | ||
| 292 | subs r1, r5, r1 | ||
| 293 | addhi r9, r9, r1 | ||
| 294 | |||
| 295 | /* Get the dtb's size */ | ||
| 296 | ldr r5, [r6, #4] | ||
| 297 | #ifndef __ARMEB__ | ||
| 298 | /* convert r5 (dtb size) to little endian */ | ||
| 299 | eor r1, r5, r5, ror #16 | ||
| 300 | bic r1, r1, #0x00ff0000 | ||
| 301 | mov r5, r5, ror #8 | ||
| 302 | eor r5, r5, r1, lsr #8 | ||
| 303 | #endif | ||
| 304 | |||
| 305 | /* preserve 64-bit alignment */ | ||
| 306 | add r5, r5, #7 | ||
| 307 | bic r5, r5, #7 | ||
| 308 | |||
| 309 | /* relocate some pointers past the appended dtb */ | ||
| 310 | add r6, r6, r5 | ||
| 311 | add r10, r10, r5 | ||
| 312 | add sp, sp, r5 | ||
| 313 | dtb_check_done: | ||
| 314 | #endif | ||
| 315 | |||
| 219 | /* | 316 | /* |
| 220 | * Check to see if we will overwrite ourselves. | 317 | * Check to see if we will overwrite ourselves. |
| 221 | * r4 = final kernel address | 318 | * r4 = final kernel address |
| @@ -223,15 +320,14 @@ restart: adr r0, LC0 | |||
| 223 | * r10 = end of this image, including bss/stack/malloc space if non XIP | 320 | * r10 = end of this image, including bss/stack/malloc space if non XIP |
| 224 | * We basically want: | 321 | * We basically want: |
| 225 | * r4 - 16k page directory >= r10 -> OK | 322 | * r4 - 16k page directory >= r10 -> OK |
| 226 | * r4 + image length <= current position (pc) -> OK | 323 | * r4 + image length <= address of wont_overwrite -> OK |
| 227 | */ | 324 | */ |
| 228 | add r10, r10, #16384 | 325 | add r10, r10, #16384 |
| 229 | cmp r4, r10 | 326 | cmp r4, r10 |
| 230 | bhs wont_overwrite | 327 | bhs wont_overwrite |
| 231 | add r10, r4, r9 | 328 | add r10, r4, r9 |
| 232 | ARM( cmp r10, pc ) | 329 | adr r9, wont_overwrite |
| 233 | THUMB( mov lr, pc ) | 330 | cmp r10, r9 |
| 234 | THUMB( cmp r10, lr ) | ||
| 235 | bls wont_overwrite | 331 | bls wont_overwrite |
| 236 | 332 | ||
| 237 | /* | 333 | /* |
| @@ -285,14 +381,16 @@ wont_overwrite: | |||
| 285 | * r2 = BSS start | 381 | * r2 = BSS start |
| 286 | * r3 = BSS end | 382 | * r3 = BSS end |
| 287 | * r4 = kernel execution address | 383 | * r4 = kernel execution address |
| 384 | * r5 = appended dtb size (0 if not present) | ||
| 288 | * r7 = architecture ID | 385 | * r7 = architecture ID |
| 289 | * r8 = atags pointer | 386 | * r8 = atags pointer |
| 290 | * r11 = GOT start | 387 | * r11 = GOT start |
| 291 | * r12 = GOT end | 388 | * r12 = GOT end |
| 292 | * sp = stack pointer | 389 | * sp = stack pointer |
| 293 | */ | 390 | */ |
| 294 | teq r0, #0 | 391 | orrs r1, r0, r5 |
| 295 | beq not_relocated | 392 | beq not_relocated |
| 393 | |||
| 296 | add r11, r11, r0 | 394 | add r11, r11, r0 |
| 297 | add r12, r12, r0 | 395 | add r12, r12, r0 |
| 298 | 396 | ||
| @@ -307,12 +405,21 @@ wont_overwrite: | |||
| 307 | 405 | ||
| 308 | /* | 406 | /* |
| 309 | * Relocate all entries in the GOT table. | 407 | * Relocate all entries in the GOT table. |
| 408 | * Bump bss entries to _edata + dtb size | ||
| 310 | */ | 409 | */ |
| 311 | 1: ldr r1, [r11, #0] @ relocate entries in the GOT | 410 | 1: ldr r1, [r11, #0] @ relocate entries in the GOT |
| 312 | add r1, r1, r0 @ table. This fixes up the | 411 | add r1, r1, r0 @ This fixes up C references |
| 313 | str r1, [r11], #4 @ C references. | 412 | cmp r1, r2 @ if entry >= bss_start && |
| 413 | cmphs r3, r1 @ bss_end > entry | ||
| 414 | addhi r1, r1, r5 @ entry += dtb size | ||
| 415 | str r1, [r11], #4 @ next entry | ||
| 314 | cmp r11, r12 | 416 | cmp r11, r12 |
| 315 | blo 1b | 417 | blo 1b |
| 418 | |||
| 419 | /* bump our bss pointers too */ | ||
| 420 | add r2, r2, r5 | ||
| 421 | add r3, r3, r5 | ||
| 422 | |||
| 316 | #else | 423 | #else |
| 317 | 424 | ||
| 318 | /* | 425 | /* |
diff --git a/arch/arm/boot/compressed/libfdt_env.h b/arch/arm/boot/compressed/libfdt_env.h new file mode 100644 index 000000000000..1f4e71876b00 --- /dev/null +++ b/arch/arm/boot/compressed/libfdt_env.h | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | #ifndef _ARM_LIBFDT_ENV_H | ||
| 2 | #define _ARM_LIBFDT_ENV_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | #include <linux/string.h> | ||
| 6 | #include <asm/byteorder.h> | ||
| 7 | |||
| 8 | #define fdt16_to_cpu(x) be16_to_cpu(x) | ||
| 9 | #define cpu_to_fdt16(x) cpu_to_be16(x) | ||
| 10 | #define fdt32_to_cpu(x) be32_to_cpu(x) | ||
| 11 | #define cpu_to_fdt32(x) cpu_to_be32(x) | ||
| 12 | #define fdt64_to_cpu(x) be64_to_cpu(x) | ||
| 13 | #define cpu_to_fdt64(x) cpu_to_be64(x) | ||
| 14 | |||
| 15 | #endif | ||
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 832d37236c59..8e2a8fca5ed2 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
| @@ -18,14 +18,9 @@ | |||
| 18 | 18 | ||
| 19 | unsigned int __machine_arch_type; | 19 | unsigned int __machine_arch_type; |
| 20 | 20 | ||
| 21 | #define _LINUX_STRING_H_ | ||
| 22 | |||
| 23 | #include <linux/compiler.h> /* for inline */ | 21 | #include <linux/compiler.h> /* for inline */ |
| 24 | #include <linux/types.h> /* for size_t */ | 22 | #include <linux/types.h> |
| 25 | #include <linux/stddef.h> /* for NULL */ | ||
| 26 | #include <linux/linkage.h> | 23 | #include <linux/linkage.h> |
| 27 | #include <asm/string.h> | ||
| 28 | |||
| 29 | 24 | ||
| 30 | static void putstr(const char *ptr); | 25 | static void putstr(const char *ptr); |
| 31 | extern void error(char *x); | 26 | extern void error(char *x); |
| @@ -101,41 +96,6 @@ static void putstr(const char *ptr) | |||
| 101 | flush(); | 96 | flush(); |
| 102 | } | 97 | } |
| 103 | 98 | ||
| 104 | |||
| 105 | void *memcpy(void *__dest, __const void *__src, size_t __n) | ||
| 106 | { | ||
| 107 | int i = 0; | ||
| 108 | unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src; | ||
| 109 | |||
| 110 | for (i = __n >> 3; i > 0; i--) { | ||
| 111 | *d++ = *s++; | ||
| 112 | *d++ = *s++; | ||
| 113 | *d++ = *s++; | ||
| 114 | *d++ = *s++; | ||
| 115 | *d++ = *s++; | ||
| 116 | *d++ = *s++; | ||
| 117 | *d++ = *s++; | ||
| 118 | *d++ = *s++; | ||
| 119 | } | ||
| 120 | |||
| 121 | if (__n & 1 << 2) { | ||
| 122 | *d++ = *s++; | ||
| 123 | *d++ = *s++; | ||
| 124 | *d++ = *s++; | ||
| 125 | *d++ = *s++; | ||
| 126 | } | ||
| 127 | |||
| 128 | if (__n & 1 << 1) { | ||
| 129 | *d++ = *s++; | ||
| 130 | *d++ = *s++; | ||
| 131 | } | ||
| 132 | |||
| 133 | if (__n & 1) | ||
| 134 | *d++ = *s++; | ||
| 135 | |||
| 136 | return __dest; | ||
| 137 | } | ||
| 138 | |||
| 139 | /* | 99 | /* |
| 140 | * gzip declarations | 100 | * gzip declarations |
| 141 | */ | 101 | */ |
diff --git a/arch/arm/boot/compressed/string.c b/arch/arm/boot/compressed/string.c new file mode 100644 index 000000000000..36e53ef9200f --- /dev/null +++ b/arch/arm/boot/compressed/string.c | |||
| @@ -0,0 +1,127 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/boot/compressed/string.c | ||
| 3 | * | ||
| 4 | * Small subset of simple string routines | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <linux/string.h> | ||
| 8 | |||
| 9 | void *memcpy(void *__dest, __const void *__src, size_t __n) | ||
| 10 | { | ||
| 11 | int i = 0; | ||
| 12 | unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src; | ||
| 13 | |||
| 14 | for (i = __n >> 3; i > 0; i--) { | ||
| 15 | *d++ = *s++; | ||
| 16 | *d++ = *s++; | ||
| 17 | *d++ = *s++; | ||
| 18 | *d++ = *s++; | ||
| 19 | *d++ = *s++; | ||
| 20 | *d++ = *s++; | ||
| 21 | *d++ = *s++; | ||
| 22 | *d++ = *s++; | ||
| 23 | } | ||
| 24 | |||
| 25 | if (__n & 1 << 2) { | ||
| 26 | *d++ = *s++; | ||
| 27 | *d++ = *s++; | ||
| 28 | *d++ = *s++; | ||
| 29 | *d++ = *s++; | ||
| 30 | } | ||
| 31 | |||
| 32 | if (__n & 1 << 1) { | ||
| 33 | *d++ = *s++; | ||
| 34 | *d++ = *s++; | ||
| 35 | } | ||
| 36 | |||
| 37 | if (__n & 1) | ||
| 38 | *d++ = *s++; | ||
| 39 | |||
| 40 | return __dest; | ||
| 41 | } | ||
| 42 | |||
| 43 | void *memmove(void *__dest, __const void *__src, size_t count) | ||
| 44 | { | ||
| 45 | unsigned char *d = __dest; | ||
| 46 | const unsigned char *s = __src; | ||
| 47 | |||
| 48 | if (__dest == __src) | ||
| 49 | return __dest; | ||
| 50 | |||
| 51 | if (__dest < __src) | ||
| 52 | return memcpy(__dest, __src, count); | ||
| 53 | |||
| 54 | while (count--) | ||
| 55 | d[count] = s[count]; | ||
| 56 | return __dest; | ||
| 57 | } | ||
| 58 | |||
| 59 | size_t strlen(const char *s) | ||
| 60 | { | ||
| 61 | const char *sc = s; | ||
| 62 | |||
| 63 | while (*sc != '\0') | ||
| 64 | sc++; | ||
| 65 | return sc - s; | ||
| 66 | } | ||
| 67 | |||
| 68 | int memcmp(const void *cs, const void *ct, size_t count) | ||
| 69 | { | ||
| 70 | const unsigned char *su1 = cs, *su2 = ct, *end = su1 + count; | ||
| 71 | int res = 0; | ||
| 72 | |||
| 73 | while (su1 < end) { | ||
| 74 | res = *su1++ - *su2++; | ||
| 75 | if (res) | ||
| 76 | break; | ||
| 77 | } | ||
| 78 | return res; | ||
| 79 | } | ||
| 80 | |||
| 81 | int strcmp(const char *cs, const char *ct) | ||
| 82 | { | ||
| 83 | unsigned char c1, c2; | ||
| 84 | int res = 0; | ||
| 85 | |||
| 86 | do { | ||
| 87 | c1 = *cs++; | ||
| 88 | c2 = *ct++; | ||
| 89 | res = c1 - c2; | ||
| 90 | if (res) | ||
| 91 | break; | ||
| 92 | } while (c1); | ||
| 93 | return res; | ||
| 94 | } | ||
| 95 | |||
| 96 | void *memchr(const void *s, int c, size_t count) | ||
| 97 | { | ||
| 98 | const unsigned char *p = s; | ||
| 99 | |||
| 100 | while (count--) | ||
| 101 | if ((unsigned char)c == *p++) | ||
| 102 | return (void *)(p - 1); | ||
| 103 | return NULL; | ||
| 104 | } | ||
| 105 | |||
| 106 | char *strchr(const char *s, int c) | ||
| 107 | { | ||
| 108 | while (*s != (char)c) | ||
| 109 | if (*s++ == '\0') | ||
| 110 | return NULL; | ||
| 111 | return (char *)s; | ||
| 112 | } | ||
| 113 | |||
| 114 | #undef memset | ||
| 115 | |||
| 116 | void *memset(void *s, int c, size_t count) | ||
| 117 | { | ||
| 118 | char *xs = s; | ||
| 119 | while (count--) | ||
| 120 | *xs++ = c; | ||
| 121 | return s; | ||
| 122 | } | ||
| 123 | |||
| 124 | void __memzero(void *s, size_t count) | ||
| 125 | { | ||
| 126 | memset(s, 0, count); | ||
| 127 | } | ||
diff --git a/arch/arm/boot/compressed/vmlinux.lds.in b/arch/arm/boot/compressed/vmlinux.lds.in index 4e728834a1b9..4919f2ac8b89 100644 --- a/arch/arm/boot/compressed/vmlinux.lds.in +++ b/arch/arm/boot/compressed/vmlinux.lds.in | |||
| @@ -51,6 +51,10 @@ SECTIONS | |||
| 51 | _got_start = .; | 51 | _got_start = .; |
| 52 | .got : { *(.got) } | 52 | .got : { *(.got) } |
| 53 | _got_end = .; | 53 | _got_end = .; |
| 54 | |||
| 55 | /* ensure the zImage file size is always a multiple of 64 bits */ | ||
| 56 | /* (without a dummy byte, ld just ignores the empty section) */ | ||
| 57 | .pad : { BYTE(0); . = ALIGN(8); } | ||
| 54 | _edata = .; | 58 | _edata = .; |
| 55 | 59 | ||
| 56 | . = BSS_START; | 60 | . = BSS_START; |
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index 7a21d0bf7134..7f27fab9d404 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
| @@ -205,6 +205,13 @@ extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *, | |||
| 205 | int dma_mmap_writecombine(struct device *, struct vm_area_struct *, | 205 | int dma_mmap_writecombine(struct device *, struct vm_area_struct *, |
| 206 | void *, dma_addr_t, size_t); | 206 | void *, dma_addr_t, size_t); |
| 207 | 207 | ||
| 208 | /* | ||
| 209 | * This can be called during boot to increase the size of the consistent | ||
| 210 | * DMA region above it's default value of 2MB. It must be called before the | ||
| 211 | * memory allocator is initialised, i.e. before any core_initcall. | ||
| 212 | */ | ||
| 213 | extern void __init init_consistent_dma_size(unsigned long size); | ||
| 214 | |||
| 208 | 215 | ||
| 209 | #ifdef CONFIG_DMABOUNCE | 216 | #ifdef CONFIG_DMABOUNCE |
| 210 | /* | 217 | /* |
diff --git a/arch/arm/include/asm/hw_breakpoint.h b/arch/arm/include/asm/hw_breakpoint.h index f389b2704d82..c190bc992f0e 100644 --- a/arch/arm/include/asm/hw_breakpoint.h +++ b/arch/arm/include/asm/hw_breakpoint.h | |||
| @@ -50,6 +50,7 @@ static inline void decode_ctrl_reg(u32 reg, | |||
| 50 | #define ARM_DEBUG_ARCH_V6_1 2 | 50 | #define ARM_DEBUG_ARCH_V6_1 2 |
| 51 | #define ARM_DEBUG_ARCH_V7_ECP14 3 | 51 | #define ARM_DEBUG_ARCH_V7_ECP14 3 |
| 52 | #define ARM_DEBUG_ARCH_V7_MM 4 | 52 | #define ARM_DEBUG_ARCH_V7_MM 4 |
| 53 | #define ARM_DEBUG_ARCH_V7_1 5 | ||
| 53 | 54 | ||
| 54 | /* Breakpoint */ | 55 | /* Breakpoint */ |
| 55 | #define ARM_BREAKPOINT_EXECUTE 0 | 56 | #define ARM_BREAKPOINT_EXECUTE 0 |
| @@ -57,6 +58,7 @@ static inline void decode_ctrl_reg(u32 reg, | |||
| 57 | /* Watchpoints */ | 58 | /* Watchpoints */ |
| 58 | #define ARM_BREAKPOINT_LOAD 1 | 59 | #define ARM_BREAKPOINT_LOAD 1 |
| 59 | #define ARM_BREAKPOINT_STORE 2 | 60 | #define ARM_BREAKPOINT_STORE 2 |
| 61 | #define ARM_FSR_ACCESS_MASK (1 << 11) | ||
| 60 | 62 | ||
| 61 | /* Privilege Levels */ | 63 | /* Privilege Levels */ |
| 62 | #define ARM_BREAKPOINT_PRIV 1 | 64 | #define ARM_BREAKPOINT_PRIV 1 |
diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 217aa1911dd7..727da118bcc1 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h | |||
| @@ -17,7 +17,7 @@ struct sys_timer; | |||
| 17 | struct machine_desc { | 17 | struct machine_desc { |
| 18 | unsigned int nr; /* architecture number */ | 18 | unsigned int nr; /* architecture number */ |
| 19 | const char *name; /* architecture name */ | 19 | const char *name; /* architecture name */ |
| 20 | unsigned long boot_params; /* tagged list */ | 20 | unsigned long atag_offset; /* tagged list (relative) */ |
| 21 | const char **dt_compat; /* array of device tree | 21 | const char **dt_compat; /* array of device tree |
| 22 | * 'compatible' strings */ | 22 | * 'compatible' strings */ |
| 23 | 23 | ||
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index b8de516e600e..652fccca4952 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
| @@ -77,16 +77,7 @@ | |||
| 77 | */ | 77 | */ |
| 78 | #define IOREMAP_MAX_ORDER 24 | 78 | #define IOREMAP_MAX_ORDER 24 |
| 79 | 79 | ||
| 80 | /* | ||
| 81 | * Size of DMA-consistent memory region. Must be multiple of 2M, | ||
| 82 | * between 2MB and 14MB inclusive. | ||
| 83 | */ | ||
| 84 | #ifndef CONSISTENT_DMA_SIZE | ||
| 85 | #define CONSISTENT_DMA_SIZE SZ_2M | ||
| 86 | #endif | ||
| 87 | |||
| 88 | #define CONSISTENT_END (0xffe00000UL) | 80 | #define CONSISTENT_END (0xffe00000UL) |
| 89 | #define CONSISTENT_BASE (CONSISTENT_END - CONSISTENT_DMA_SIZE) | ||
| 90 | 81 | ||
| 91 | #else /* CONFIG_MMU */ | 82 | #else /* CONFIG_MMU */ |
| 92 | 83 | ||
diff --git a/arch/arm/include/asm/pmu.h b/arch/arm/include/asm/pmu.h index b7e82c4aced6..71d99b83cdb9 100644 --- a/arch/arm/include/asm/pmu.h +++ b/arch/arm/include/asm/pmu.h | |||
| @@ -13,7 +13,12 @@ | |||
| 13 | #define __ARM_PMU_H__ | 13 | #define __ARM_PMU_H__ |
| 14 | 14 | ||
| 15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
| 16 | #include <linux/perf_event.h> | ||
| 16 | 17 | ||
| 18 | /* | ||
| 19 | * Types of PMUs that can be accessed directly and require mutual | ||
| 20 | * exclusion between profiling tools. | ||
| 21 | */ | ||
| 17 | enum arm_pmu_type { | 22 | enum arm_pmu_type { |
| 18 | ARM_PMU_DEVICE_CPU = 0, | 23 | ARM_PMU_DEVICE_CPU = 0, |
| 19 | ARM_NUM_PMU_DEVICES, | 24 | ARM_NUM_PMU_DEVICES, |
| @@ -37,21 +42,17 @@ struct arm_pmu_platdata { | |||
| 37 | * reserve_pmu() - reserve the hardware performance counters | 42 | * reserve_pmu() - reserve the hardware performance counters |
| 38 | * | 43 | * |
| 39 | * Reserve the hardware performance counters in the system for exclusive use. | 44 | * Reserve the hardware performance counters in the system for exclusive use. |
| 40 | * The platform_device for the system is returned on success, ERR_PTR() | 45 | * Returns 0 on success or -EBUSY if the lock is already held. |
| 41 | * encoded error on failure. | ||
| 42 | */ | 46 | */ |
| 43 | extern struct platform_device * | 47 | extern int |
| 44 | reserve_pmu(enum arm_pmu_type type); | 48 | reserve_pmu(enum arm_pmu_type type); |
| 45 | 49 | ||
| 46 | /** | 50 | /** |
| 47 | * release_pmu() - Relinquish control of the performance counters | 51 | * release_pmu() - Relinquish control of the performance counters |
| 48 | * | 52 | * |
| 49 | * Release the performance counters and allow someone else to use them. | 53 | * Release the performance counters and allow someone else to use them. |
| 50 | * Callers must have disabled the counters and released IRQs before calling | ||
| 51 | * this. The platform_device returned from reserve_pmu() must be passed as | ||
| 52 | * a cookie. | ||
| 53 | */ | 54 | */ |
| 54 | extern int | 55 | extern void |
| 55 | release_pmu(enum arm_pmu_type type); | 56 | release_pmu(enum arm_pmu_type type); |
| 56 | 57 | ||
| 57 | /** | 58 | /** |
| @@ -68,24 +69,78 @@ init_pmu(enum arm_pmu_type type); | |||
| 68 | 69 | ||
| 69 | #include <linux/err.h> | 70 | #include <linux/err.h> |
| 70 | 71 | ||
| 71 | static inline struct platform_device * | ||
| 72 | reserve_pmu(enum arm_pmu_type type) | ||
| 73 | { | ||
| 74 | return ERR_PTR(-ENODEV); | ||
| 75 | } | ||
| 76 | |||
| 77 | static inline int | 72 | static inline int |
| 78 | release_pmu(enum arm_pmu_type type) | 73 | reserve_pmu(enum arm_pmu_type type) |
| 79 | { | 74 | { |
| 80 | return -ENODEV; | 75 | return -ENODEV; |
| 81 | } | 76 | } |
| 82 | 77 | ||
| 83 | static inline int | 78 | static inline void |
| 84 | init_pmu(enum arm_pmu_type type) | 79 | release_pmu(enum arm_pmu_type type) { } |
| 85 | { | ||
| 86 | return -ENODEV; | ||
| 87 | } | ||
| 88 | 80 | ||
| 89 | #endif /* CONFIG_CPU_HAS_PMU */ | 81 | #endif /* CONFIG_CPU_HAS_PMU */ |
| 90 | 82 | ||
| 83 | #ifdef CONFIG_HW_PERF_EVENTS | ||
| 84 | |||
| 85 | /* The events for a given PMU register set. */ | ||
| 86 | struct pmu_hw_events { | ||
| 87 | /* | ||
| 88 | * The events that are active on the PMU for the given index. | ||
| 89 | */ | ||
| 90 | struct perf_event **events; | ||
| 91 | |||
| 92 | /* | ||
| 93 | * A 1 bit for an index indicates that the counter is being used for | ||
| 94 | * an event. A 0 means that the counter can be used. | ||
| 95 | */ | ||
| 96 | unsigned long *used_mask; | ||
| 97 | |||
| 98 | /* | ||
| 99 | * Hardware lock to serialize accesses to PMU registers. Needed for the | ||
| 100 | * read/modify/write sequences. | ||
| 101 | */ | ||
| 102 | raw_spinlock_t pmu_lock; | ||
| 103 | }; | ||
| 104 | |||
| 105 | struct arm_pmu { | ||
| 106 | struct pmu pmu; | ||
| 107 | enum arm_perf_pmu_ids id; | ||
| 108 | enum arm_pmu_type type; | ||
| 109 | cpumask_t active_irqs; | ||
| 110 | const char *name; | ||
| 111 | irqreturn_t (*handle_irq)(int irq_num, void *dev); | ||
| 112 | void (*enable)(struct hw_perf_event *evt, int idx); | ||
| 113 | void (*disable)(struct hw_perf_event *evt, int idx); | ||
| 114 | int (*get_event_idx)(struct pmu_hw_events *hw_events, | ||
| 115 | struct hw_perf_event *hwc); | ||
| 116 | int (*set_event_filter)(struct hw_perf_event *evt, | ||
| 117 | struct perf_event_attr *attr); | ||
| 118 | u32 (*read_counter)(int idx); | ||
| 119 | void (*write_counter)(int idx, u32 val); | ||
| 120 | void (*start)(void); | ||
| 121 | void (*stop)(void); | ||
| 122 | void (*reset)(void *); | ||
| 123 | int (*map_event)(struct perf_event *event); | ||
| 124 | int num_events; | ||
| 125 | atomic_t active_events; | ||
| 126 | struct mutex reserve_mutex; | ||
| 127 | u64 max_period; | ||
| 128 | struct platform_device *plat_device; | ||
| 129 | struct pmu_hw_events *(*get_hw_events)(void); | ||
| 130 | }; | ||
| 131 | |||
| 132 | #define to_arm_pmu(p) (container_of(p, struct arm_pmu, pmu)) | ||
| 133 | |||
| 134 | int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type); | ||
| 135 | |||
| 136 | u64 armpmu_event_update(struct perf_event *event, | ||
| 137 | struct hw_perf_event *hwc, | ||
| 138 | int idx, int overflow); | ||
| 139 | |||
| 140 | int armpmu_event_set_period(struct perf_event *event, | ||
| 141 | struct hw_perf_event *hwc, | ||
| 142 | int idx); | ||
| 143 | |||
| 144 | #endif /* CONFIG_HW_PERF_EVENTS */ | ||
| 145 | |||
| 91 | #endif /* __ARM_PMU_H__ */ | 146 | #endif /* __ARM_PMU_H__ */ |
diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c index a927ca1f5566..5a46225f007e 100644 --- a/arch/arm/kernel/hw_breakpoint.c +++ b/arch/arm/kernel/hw_breakpoint.c | |||
| @@ -45,7 +45,6 @@ static DEFINE_PER_CPU(struct perf_event *, wp_on_reg[ARM_MAX_WRP]); | |||
| 45 | 45 | ||
| 46 | /* Number of BRP/WRP registers on this CPU. */ | 46 | /* Number of BRP/WRP registers on this CPU. */ |
| 47 | static int core_num_brps; | 47 | static int core_num_brps; |
| 48 | static int core_num_reserved_brps; | ||
| 49 | static int core_num_wrps; | 48 | static int core_num_wrps; |
| 50 | 49 | ||
| 51 | /* Debug architecture version. */ | 50 | /* Debug architecture version. */ |
| @@ -137,10 +136,11 @@ static u8 get_debug_arch(void) | |||
| 137 | u32 didr; | 136 | u32 didr; |
| 138 | 137 | ||
| 139 | /* Do we implement the extended CPUID interface? */ | 138 | /* Do we implement the extended CPUID interface? */ |
| 140 | if (WARN_ONCE((((read_cpuid_id() >> 16) & 0xf) != 0xf), | 139 | if (((read_cpuid_id() >> 16) & 0xf) != 0xf) { |
| 141 | "CPUID feature registers not supported. " | 140 | pr_warning("CPUID feature registers not supported. " |
| 142 | "Assuming v6 debug is present.\n")) | 141 | "Assuming v6 debug is present.\n"); |
| 143 | return ARM_DEBUG_ARCH_V6; | 142 | return ARM_DEBUG_ARCH_V6; |
| 143 | } | ||
| 144 | 144 | ||
| 145 | ARM_DBG_READ(c0, 0, didr); | 145 | ARM_DBG_READ(c0, 0, didr); |
| 146 | return (didr >> 16) & 0xf; | 146 | return (didr >> 16) & 0xf; |
| @@ -154,10 +154,21 @@ u8 arch_get_debug_arch(void) | |||
| 154 | static int debug_arch_supported(void) | 154 | static int debug_arch_supported(void) |
| 155 | { | 155 | { |
| 156 | u8 arch = get_debug_arch(); | 156 | u8 arch = get_debug_arch(); |
| 157 | return arch >= ARM_DEBUG_ARCH_V6 && arch <= ARM_DEBUG_ARCH_V7_ECP14; | 157 | |
| 158 | /* We don't support the memory-mapped interface. */ | ||
| 159 | return (arch >= ARM_DEBUG_ARCH_V6 && arch <= ARM_DEBUG_ARCH_V7_ECP14) || | ||
| 160 | arch >= ARM_DEBUG_ARCH_V7_1; | ||
| 161 | } | ||
| 162 | |||
| 163 | /* Determine number of WRP registers available. */ | ||
| 164 | static int get_num_wrp_resources(void) | ||
| 165 | { | ||
| 166 | u32 didr; | ||
| 167 | ARM_DBG_READ(c0, 0, didr); | ||
| 168 | return ((didr >> 28) & 0xf) + 1; | ||
| 158 | } | 169 | } |
| 159 | 170 | ||
| 160 | /* Determine number of BRP register available. */ | 171 | /* Determine number of BRP registers available. */ |
| 161 | static int get_num_brp_resources(void) | 172 | static int get_num_brp_resources(void) |
| 162 | { | 173 | { |
| 163 | u32 didr; | 174 | u32 didr; |
| @@ -176,9 +187,10 @@ static int core_has_mismatch_brps(void) | |||
| 176 | static int get_num_wrps(void) | 187 | static int get_num_wrps(void) |
| 177 | { | 188 | { |
| 178 | /* | 189 | /* |
| 179 | * FIXME: When a watchpoint fires, the only way to work out which | 190 | * On debug architectures prior to 7.1, when a watchpoint fires, the |
| 180 | * watchpoint it was is by disassembling the faulting instruction | 191 | * only way to work out which watchpoint it was is by disassembling |
| 181 | * and working out the address of the memory access. | 192 | * the faulting instruction and working out the address of the memory |
| 193 | * access. | ||
| 182 | * | 194 | * |
| 183 | * Furthermore, we can only do this if the watchpoint was precise | 195 | * Furthermore, we can only do this if the watchpoint was precise |
| 184 | * since imprecise watchpoints prevent us from calculating register | 196 | * since imprecise watchpoints prevent us from calculating register |
| @@ -192,36 +204,17 @@ static int get_num_wrps(void) | |||
| 192 | * [the ARM ARM states that the DFAR is UNKNOWN, but experience shows | 204 | * [the ARM ARM states that the DFAR is UNKNOWN, but experience shows |
| 193 | * that it is set on some implementations]. | 205 | * that it is set on some implementations]. |
| 194 | */ | 206 | */ |
| 207 | if (get_debug_arch() < ARM_DEBUG_ARCH_V7_1) | ||
| 208 | return 1; | ||
| 195 | 209 | ||
| 196 | #if 0 | 210 | return get_num_wrp_resources(); |
| 197 | int wrps; | ||
| 198 | u32 didr; | ||
| 199 | ARM_DBG_READ(c0, 0, didr); | ||
| 200 | wrps = ((didr >> 28) & 0xf) + 1; | ||
| 201 | #endif | ||
| 202 | int wrps = 1; | ||
| 203 | |||
| 204 | if (core_has_mismatch_brps() && wrps >= get_num_brp_resources()) | ||
| 205 | wrps = get_num_brp_resources() - 1; | ||
| 206 | |||
| 207 | return wrps; | ||
| 208 | } | ||
| 209 | |||
| 210 | /* We reserve one breakpoint for each watchpoint. */ | ||
| 211 | static int get_num_reserved_brps(void) | ||
| 212 | { | ||
| 213 | if (core_has_mismatch_brps()) | ||
| 214 | return get_num_wrps(); | ||
| 215 | return 0; | ||
| 216 | } | 211 | } |
| 217 | 212 | ||
| 218 | /* Determine number of usable BRPs available. */ | 213 | /* Determine number of usable BRPs available. */ |
| 219 | static int get_num_brps(void) | 214 | static int get_num_brps(void) |
| 220 | { | 215 | { |
| 221 | int brps = get_num_brp_resources(); | 216 | int brps = get_num_brp_resources(); |
| 222 | if (core_has_mismatch_brps()) | 217 | return core_has_mismatch_brps() ? brps - 1 : brps; |
| 223 | brps -= get_num_reserved_brps(); | ||
| 224 | return brps; | ||
| 225 | } | 218 | } |
| 226 | 219 | ||
| 227 | /* | 220 | /* |
| @@ -239,7 +232,7 @@ static int enable_monitor_mode(void) | |||
| 239 | 232 | ||
| 240 | /* Ensure that halting mode is disabled. */ | 233 | /* Ensure that halting mode is disabled. */ |
| 241 | if (WARN_ONCE(dscr & ARM_DSCR_HDBGEN, | 234 | if (WARN_ONCE(dscr & ARM_DSCR_HDBGEN, |
| 242 | "halting debug mode enabled. Unable to access hardware resources.\n")) { | 235 | "halting debug mode enabled. Unable to access hardware resources.\n")) { |
| 243 | ret = -EPERM; | 236 | ret = -EPERM; |
| 244 | goto out; | 237 | goto out; |
| 245 | } | 238 | } |
| @@ -255,6 +248,7 @@ static int enable_monitor_mode(void) | |||
| 255 | ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN)); | 248 | ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN)); |
| 256 | break; | 249 | break; |
| 257 | case ARM_DEBUG_ARCH_V7_ECP14: | 250 | case ARM_DEBUG_ARCH_V7_ECP14: |
| 251 | case ARM_DEBUG_ARCH_V7_1: | ||
| 258 | ARM_DBG_WRITE(c2, 2, (dscr | ARM_DSCR_MDBGEN)); | 252 | ARM_DBG_WRITE(c2, 2, (dscr | ARM_DSCR_MDBGEN)); |
| 259 | break; | 253 | break; |
| 260 | default: | 254 | default: |
| @@ -346,24 +340,10 @@ int arch_install_hw_breakpoint(struct perf_event *bp) | |||
| 346 | val_base = ARM_BASE_BVR; | 340 | val_base = ARM_BASE_BVR; |
| 347 | slots = (struct perf_event **)__get_cpu_var(bp_on_reg); | 341 | slots = (struct perf_event **)__get_cpu_var(bp_on_reg); |
| 348 | max_slots = core_num_brps; | 342 | max_slots = core_num_brps; |
| 349 | if (info->step_ctrl.enabled) { | ||
| 350 | /* Override the breakpoint data with the step data. */ | ||
| 351 | addr = info->trigger & ~0x3; | ||
| 352 | ctrl = encode_ctrl_reg(info->step_ctrl); | ||
| 353 | } | ||
| 354 | } else { | 343 | } else { |
| 355 | /* Watchpoint */ | 344 | /* Watchpoint */ |
| 356 | if (info->step_ctrl.enabled) { | 345 | ctrl_base = ARM_BASE_WCR; |
| 357 | /* Install into the reserved breakpoint region. */ | 346 | val_base = ARM_BASE_WVR; |
| 358 | ctrl_base = ARM_BASE_BCR + core_num_brps; | ||
| 359 | val_base = ARM_BASE_BVR + core_num_brps; | ||
| 360 | /* Override the watchpoint data with the step data. */ | ||
| 361 | addr = info->trigger & ~0x3; | ||
| 362 | ctrl = encode_ctrl_reg(info->step_ctrl); | ||
| 363 | } else { | ||
| 364 | ctrl_base = ARM_BASE_WCR; | ||
| 365 | val_base = ARM_BASE_WVR; | ||
| 366 | } | ||
| 367 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 347 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
| 368 | max_slots = core_num_wrps; | 348 | max_slots = core_num_wrps; |
| 369 | } | 349 | } |
| @@ -382,6 +362,17 @@ int arch_install_hw_breakpoint(struct perf_event *bp) | |||
| 382 | goto out; | 362 | goto out; |
| 383 | } | 363 | } |
| 384 | 364 | ||
| 365 | /* Override the breakpoint data with the step data. */ | ||
| 366 | if (info->step_ctrl.enabled) { | ||
| 367 | addr = info->trigger & ~0x3; | ||
| 368 | ctrl = encode_ctrl_reg(info->step_ctrl); | ||
| 369 | if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE) { | ||
| 370 | i = 0; | ||
| 371 | ctrl_base = ARM_BASE_BCR + core_num_brps; | ||
| 372 | val_base = ARM_BASE_BVR + core_num_brps; | ||
| 373 | } | ||
| 374 | } | ||
| 375 | |||
| 385 | /* Setup the address register. */ | 376 | /* Setup the address register. */ |
| 386 | write_wb_reg(val_base + i, addr); | 377 | write_wb_reg(val_base + i, addr); |
| 387 | 378 | ||
| @@ -405,10 +396,7 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) | |||
| 405 | max_slots = core_num_brps; | 396 | max_slots = core_num_brps; |
| 406 | } else { | 397 | } else { |
| 407 | /* Watchpoint */ | 398 | /* Watchpoint */ |
| 408 | if (info->step_ctrl.enabled) | 399 | base = ARM_BASE_WCR; |
| 409 | base = ARM_BASE_BCR + core_num_brps; | ||
| 410 | else | ||
| 411 | base = ARM_BASE_WCR; | ||
| 412 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 400 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
| 413 | max_slots = core_num_wrps; | 401 | max_slots = core_num_wrps; |
| 414 | } | 402 | } |
| @@ -426,6 +414,13 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) | |||
| 426 | if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot\n")) | 414 | if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot\n")) |
| 427 | return; | 415 | return; |
| 428 | 416 | ||
| 417 | /* Ensure that we disable the mismatch breakpoint. */ | ||
| 418 | if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE && | ||
| 419 | info->step_ctrl.enabled) { | ||
| 420 | i = 0; | ||
| 421 | base = ARM_BASE_BCR + core_num_brps; | ||
| 422 | } | ||
| 423 | |||
| 429 | /* Reset the control register. */ | 424 | /* Reset the control register. */ |
| 430 | write_wb_reg(base + i, 0); | 425 | write_wb_reg(base + i, 0); |
| 431 | } | 426 | } |
| @@ -632,10 +627,9 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) | |||
| 632 | * we can use the mismatch feature as a poor-man's hardware | 627 | * we can use the mismatch feature as a poor-man's hardware |
| 633 | * single-step, but this only works for per-task breakpoints. | 628 | * single-step, but this only works for per-task breakpoints. |
| 634 | */ | 629 | */ |
| 635 | if (WARN_ONCE(!bp->overflow_handler && | 630 | if (!bp->overflow_handler && (arch_check_bp_in_kernelspace(bp) || |
| 636 | (arch_check_bp_in_kernelspace(bp) || !core_has_mismatch_brps() | 631 | !core_has_mismatch_brps() || !bp->hw.bp_target)) { |
| 637 | || !bp->hw.bp_target), | 632 | pr_warning("overflow handler required but none found\n"); |
| 638 | "overflow handler required but none found\n")) { | ||
| 639 | ret = -EINVAL; | 633 | ret = -EINVAL; |
| 640 | } | 634 | } |
| 641 | out: | 635 | out: |
| @@ -666,34 +660,62 @@ static void disable_single_step(struct perf_event *bp) | |||
| 666 | arch_install_hw_breakpoint(bp); | 660 | arch_install_hw_breakpoint(bp); |
| 667 | } | 661 | } |
| 668 | 662 | ||
| 669 | static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) | 663 | static void watchpoint_handler(unsigned long addr, unsigned int fsr, |
| 664 | struct pt_regs *regs) | ||
| 670 | { | 665 | { |
| 671 | int i; | 666 | int i, access; |
| 667 | u32 val, ctrl_reg, alignment_mask; | ||
| 672 | struct perf_event *wp, **slots; | 668 | struct perf_event *wp, **slots; |
| 673 | struct arch_hw_breakpoint *info; | 669 | struct arch_hw_breakpoint *info; |
| 670 | struct arch_hw_breakpoint_ctrl ctrl; | ||
| 674 | 671 | ||
| 675 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 672 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
| 676 | 673 | ||
| 677 | /* Without a disassembler, we can only handle 1 watchpoint. */ | ||
| 678 | BUG_ON(core_num_wrps > 1); | ||
| 679 | |||
| 680 | for (i = 0; i < core_num_wrps; ++i) { | 674 | for (i = 0; i < core_num_wrps; ++i) { |
| 681 | rcu_read_lock(); | 675 | rcu_read_lock(); |
| 682 | 676 | ||
| 683 | wp = slots[i]; | 677 | wp = slots[i]; |
| 684 | 678 | ||
| 685 | if (wp == NULL) { | 679 | if (wp == NULL) |
| 686 | rcu_read_unlock(); | 680 | goto unlock; |
| 687 | continue; | ||
| 688 | } | ||
| 689 | 681 | ||
| 682 | info = counter_arch_bp(wp); | ||
| 690 | /* | 683 | /* |
| 691 | * The DFAR is an unknown value. Since we only allow a | 684 | * The DFAR is an unknown value on debug architectures prior |
| 692 | * single watchpoint, we can set the trigger to the lowest | 685 | * to 7.1. Since we only allow a single watchpoint on these |
| 693 | * possible faulting address. | 686 | * older CPUs, we can set the trigger to the lowest possible |
| 687 | * faulting address. | ||
| 694 | */ | 688 | */ |
| 695 | info = counter_arch_bp(wp); | 689 | if (debug_arch < ARM_DEBUG_ARCH_V7_1) { |
| 696 | info->trigger = wp->attr.bp_addr; | 690 | BUG_ON(i > 0); |
| 691 | info->trigger = wp->attr.bp_addr; | ||
| 692 | } else { | ||
| 693 | if (info->ctrl.len == ARM_BREAKPOINT_LEN_8) | ||
| 694 | alignment_mask = 0x7; | ||
| 695 | else | ||
| 696 | alignment_mask = 0x3; | ||
| 697 | |||
| 698 | /* Check if the watchpoint value matches. */ | ||
| 699 | val = read_wb_reg(ARM_BASE_WVR + i); | ||
| 700 | if (val != (addr & ~alignment_mask)) | ||
| 701 | goto unlock; | ||
| 702 | |||
| 703 | /* Possible match, check the byte address select. */ | ||
| 704 | ctrl_reg = read_wb_reg(ARM_BASE_WCR + i); | ||
| 705 | decode_ctrl_reg(ctrl_reg, &ctrl); | ||
| 706 | if (!((1 << (addr & alignment_mask)) & ctrl.len)) | ||
| 707 | goto unlock; | ||
| 708 | |||
| 709 | /* Check that the access type matches. */ | ||
| 710 | access = (fsr & ARM_FSR_ACCESS_MASK) ? HW_BREAKPOINT_W : | ||
| 711 | HW_BREAKPOINT_R; | ||
| 712 | if (!(access & hw_breakpoint_type(wp))) | ||
| 713 | goto unlock; | ||
| 714 | |||
| 715 | /* We have a winner. */ | ||
| 716 | info->trigger = addr; | ||
| 717 | } | ||
| 718 | |||
| 697 | pr_debug("watchpoint fired: address = 0x%x\n", info->trigger); | 719 | pr_debug("watchpoint fired: address = 0x%x\n", info->trigger); |
| 698 | perf_bp_event(wp, regs); | 720 | perf_bp_event(wp, regs); |
| 699 | 721 | ||
| @@ -705,6 +727,7 @@ static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) | |||
| 705 | if (!wp->overflow_handler) | 727 | if (!wp->overflow_handler) |
| 706 | enable_single_step(wp, instruction_pointer(regs)); | 728 | enable_single_step(wp, instruction_pointer(regs)); |
| 707 | 729 | ||
| 730 | unlock: | ||
| 708 | rcu_read_unlock(); | 731 | rcu_read_unlock(); |
| 709 | } | 732 | } |
| 710 | } | 733 | } |
| @@ -717,7 +740,7 @@ static void watchpoint_single_step_handler(unsigned long pc) | |||
| 717 | 740 | ||
| 718 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 741 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
| 719 | 742 | ||
| 720 | for (i = 0; i < core_num_reserved_brps; ++i) { | 743 | for (i = 0; i < core_num_wrps; ++i) { |
| 721 | rcu_read_lock(); | 744 | rcu_read_lock(); |
| 722 | 745 | ||
| 723 | wp = slots[i]; | 746 | wp = slots[i]; |
| @@ -820,7 +843,7 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, | |||
| 820 | case ARM_ENTRY_ASYNC_WATCHPOINT: | 843 | case ARM_ENTRY_ASYNC_WATCHPOINT: |
| 821 | WARN(1, "Asynchronous watchpoint exception taken. Debugging results may be unreliable\n"); | 844 | WARN(1, "Asynchronous watchpoint exception taken. Debugging results may be unreliable\n"); |
| 822 | case ARM_ENTRY_SYNC_WATCHPOINT: | 845 | case ARM_ENTRY_SYNC_WATCHPOINT: |
| 823 | watchpoint_handler(addr, regs); | 846 | watchpoint_handler(addr, fsr, regs); |
| 824 | break; | 847 | break; |
| 825 | default: | 848 | default: |
| 826 | ret = 1; /* Unhandled fault. */ | 849 | ret = 1; /* Unhandled fault. */ |
| @@ -834,11 +857,31 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, | |||
| 834 | /* | 857 | /* |
| 835 | * One-time initialisation. | 858 | * One-time initialisation. |
| 836 | */ | 859 | */ |
| 837 | static void reset_ctrl_regs(void *info) | 860 | static cpumask_t debug_err_mask; |
| 861 | |||
| 862 | static int debug_reg_trap(struct pt_regs *regs, unsigned int instr) | ||
| 838 | { | 863 | { |
| 839 | int i, cpu = smp_processor_id(); | 864 | int cpu = smp_processor_id(); |
| 865 | |||
| 866 | pr_warning("Debug register access (0x%x) caused undefined instruction on CPU %d\n", | ||
| 867 | instr, cpu); | ||
| 868 | |||
| 869 | /* Set the error flag for this CPU and skip the faulting instruction. */ | ||
| 870 | cpumask_set_cpu(cpu, &debug_err_mask); | ||
| 871 | instruction_pointer(regs) += 4; | ||
| 872 | return 0; | ||
| 873 | } | ||
| 874 | |||
| 875 | static struct undef_hook debug_reg_hook = { | ||
| 876 | .instr_mask = 0x0fe80f10, | ||
| 877 | .instr_val = 0x0e000e10, | ||
| 878 | .fn = debug_reg_trap, | ||
| 879 | }; | ||
| 880 | |||
| 881 | static void reset_ctrl_regs(void *unused) | ||
| 882 | { | ||
| 883 | int i, raw_num_brps, err = 0, cpu = smp_processor_id(); | ||
| 840 | u32 dbg_power; | 884 | u32 dbg_power; |
| 841 | cpumask_t *cpumask = info; | ||
| 842 | 885 | ||
| 843 | /* | 886 | /* |
| 844 | * v7 debug contains save and restore registers so that debug state | 887 | * v7 debug contains save and restore registers so that debug state |
| @@ -848,38 +891,52 @@ static void reset_ctrl_regs(void *info) | |||
| 848 | * Access Register to avoid taking undefined instruction exceptions | 891 | * Access Register to avoid taking undefined instruction exceptions |
| 849 | * later on. | 892 | * later on. |
| 850 | */ | 893 | */ |
| 851 | if (debug_arch >= ARM_DEBUG_ARCH_V7_ECP14) { | 894 | switch (debug_arch) { |
| 895 | case ARM_DEBUG_ARCH_V7_ECP14: | ||
| 852 | /* | 896 | /* |
| 853 | * Ensure sticky power-down is clear (i.e. debug logic is | 897 | * Ensure sticky power-down is clear (i.e. debug logic is |
| 854 | * powered up). | 898 | * powered up). |
| 855 | */ | 899 | */ |
| 856 | asm volatile("mrc p14, 0, %0, c1, c5, 4" : "=r" (dbg_power)); | 900 | asm volatile("mrc p14, 0, %0, c1, c5, 4" : "=r" (dbg_power)); |
| 857 | if ((dbg_power & 0x1) == 0) { | 901 | if ((dbg_power & 0x1) == 0) |
| 858 | pr_warning("CPU %d debug is powered down!\n", cpu); | 902 | err = -EPERM; |
| 859 | cpumask_or(cpumask, cpumask, cpumask_of(cpu)); | 903 | break; |
| 860 | return; | 904 | case ARM_DEBUG_ARCH_V7_1: |
| 861 | } | ||
| 862 | |||
| 863 | /* | 905 | /* |
| 864 | * Unconditionally clear the lock by writing a value | 906 | * Ensure the OS double lock is clear. |
| 865 | * other than 0xC5ACCE55 to the access register. | ||
| 866 | */ | 907 | */ |
| 867 | asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0)); | 908 | asm volatile("mrc p14, 0, %0, c1, c3, 4" : "=r" (dbg_power)); |
| 868 | isb(); | 909 | if ((dbg_power & 0x1) == 1) |
| 910 | err = -EPERM; | ||
| 911 | break; | ||
| 912 | } | ||
| 869 | 913 | ||
| 870 | /* | 914 | if (err) { |
| 871 | * Clear any configured vector-catch events before | 915 | pr_warning("CPU %d debug is powered down!\n", cpu); |
| 872 | * enabling monitor mode. | 916 | cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); |
| 873 | */ | 917 | return; |
| 874 | asm volatile("mcr p14, 0, %0, c0, c7, 0" : : "r" (0)); | ||
| 875 | isb(); | ||
| 876 | } | 918 | } |
| 877 | 919 | ||
| 920 | /* | ||
| 921 | * Unconditionally clear the lock by writing a value | ||
| 922 | * other than 0xC5ACCE55 to the access register. | ||
| 923 | */ | ||
| 924 | asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0)); | ||
| 925 | isb(); | ||
| 926 | |||
| 927 | /* | ||
| 928 | * Clear any configured vector-catch events before | ||
| 929 | * enabling monitor mode. | ||
| 930 | */ | ||
| 931 | asm volatile("mcr p14, 0, %0, c0, c7, 0" : : "r" (0)); | ||
| 932 | isb(); | ||
| 933 | |||
| 878 | if (enable_monitor_mode()) | 934 | if (enable_monitor_mode()) |
| 879 | return; | 935 | return; |
| 880 | 936 | ||
| 881 | /* We must also reset any reserved registers. */ | 937 | /* We must also reset any reserved registers. */ |
| 882 | for (i = 0; i < core_num_brps + core_num_reserved_brps; ++i) { | 938 | raw_num_brps = get_num_brp_resources(); |
| 939 | for (i = 0; i < raw_num_brps; ++i) { | ||
| 883 | write_wb_reg(ARM_BASE_BCR + i, 0UL); | 940 | write_wb_reg(ARM_BASE_BCR + i, 0UL); |
| 884 | write_wb_reg(ARM_BASE_BVR + i, 0UL); | 941 | write_wb_reg(ARM_BASE_BVR + i, 0UL); |
| 885 | } | 942 | } |
| @@ -895,6 +952,7 @@ static int __cpuinit dbg_reset_notify(struct notifier_block *self, | |||
| 895 | { | 952 | { |
| 896 | if (action == CPU_ONLINE) | 953 | if (action == CPU_ONLINE) |
| 897 | smp_call_function_single((int)cpu, reset_ctrl_regs, NULL, 1); | 954 | smp_call_function_single((int)cpu, reset_ctrl_regs, NULL, 1); |
| 955 | |||
| 898 | return NOTIFY_OK; | 956 | return NOTIFY_OK; |
| 899 | } | 957 | } |
| 900 | 958 | ||
| @@ -905,7 +963,6 @@ static struct notifier_block __cpuinitdata dbg_reset_nb = { | |||
| 905 | static int __init arch_hw_breakpoint_init(void) | 963 | static int __init arch_hw_breakpoint_init(void) |
| 906 | { | 964 | { |
| 907 | u32 dscr; | 965 | u32 dscr; |
| 908 | cpumask_t cpumask = { CPU_BITS_NONE }; | ||
| 909 | 966 | ||
| 910 | debug_arch = get_debug_arch(); | 967 | debug_arch = get_debug_arch(); |
| 911 | 968 | ||
| @@ -916,28 +973,31 @@ static int __init arch_hw_breakpoint_init(void) | |||
| 916 | 973 | ||
| 917 | /* Determine how many BRPs/WRPs are available. */ | 974 | /* Determine how many BRPs/WRPs are available. */ |
| 918 | core_num_brps = get_num_brps(); | 975 | core_num_brps = get_num_brps(); |
| 919 | core_num_reserved_brps = get_num_reserved_brps(); | ||
| 920 | core_num_wrps = get_num_wrps(); | 976 | core_num_wrps = get_num_wrps(); |
| 921 | 977 | ||
| 922 | pr_info("found %d breakpoint and %d watchpoint registers.\n", | 978 | /* |
| 923 | core_num_brps + core_num_reserved_brps, core_num_wrps); | 979 | * We need to tread carefully here because DBGSWENABLE may be |
| 924 | 980 | * driven low on this core and there isn't an architected way to | |
| 925 | if (core_num_reserved_brps) | 981 | * determine that. |
| 926 | pr_info("%d breakpoint(s) reserved for watchpoint " | 982 | */ |
| 927 | "single-step.\n", core_num_reserved_brps); | 983 | register_undef_hook(&debug_reg_hook); |
| 928 | 984 | ||
| 929 | /* | 985 | /* |
| 930 | * Reset the breakpoint resources. We assume that a halting | 986 | * Reset the breakpoint resources. We assume that a halting |
| 931 | * debugger will leave the world in a nice state for us. | 987 | * debugger will leave the world in a nice state for us. |
| 932 | */ | 988 | */ |
| 933 | on_each_cpu(reset_ctrl_regs, &cpumask, 1); | 989 | on_each_cpu(reset_ctrl_regs, NULL, 1); |
| 934 | if (!cpumask_empty(&cpumask)) { | 990 | unregister_undef_hook(&debug_reg_hook); |
| 991 | if (!cpumask_empty(&debug_err_mask)) { | ||
| 935 | core_num_brps = 0; | 992 | core_num_brps = 0; |
| 936 | core_num_reserved_brps = 0; | ||
| 937 | core_num_wrps = 0; | 993 | core_num_wrps = 0; |
| 938 | return 0; | 994 | return 0; |
| 939 | } | 995 | } |
| 940 | 996 | ||
| 997 | pr_info("found %d " "%s" "breakpoint and %d watchpoint registers.\n", | ||
| 998 | core_num_brps, core_has_mismatch_brps() ? "(+1 reserved) " : | ||
| 999 | "", core_num_wrps); | ||
| 1000 | |||
| 941 | ARM_DBG_READ(c1, 0, dscr); | 1001 | ARM_DBG_READ(c1, 0, dscr); |
| 942 | if (dscr & ARM_DSCR_HDBGEN) { | 1002 | if (dscr & ARM_DSCR_HDBGEN) { |
| 943 | max_watchpoint_len = 4; | 1003 | max_watchpoint_len = 4; |
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 53c9c2610cbc..e6e5d7c84f1a 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | */ | 12 | */ |
| 13 | #define pr_fmt(fmt) "hw perfevents: " fmt | 13 | #define pr_fmt(fmt) "hw perfevents: " fmt |
| 14 | 14 | ||
| 15 | #include <linux/bitmap.h> | ||
| 15 | #include <linux/interrupt.h> | 16 | #include <linux/interrupt.h> |
| 16 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
| 17 | #include <linux/module.h> | 18 | #include <linux/module.h> |
| @@ -26,16 +27,8 @@ | |||
| 26 | #include <asm/pmu.h> | 27 | #include <asm/pmu.h> |
| 27 | #include <asm/stacktrace.h> | 28 | #include <asm/stacktrace.h> |
| 28 | 29 | ||
| 29 | static struct platform_device *pmu_device; | ||
| 30 | |||
| 31 | /* | ||
| 32 | * Hardware lock to serialize accesses to PMU registers. Needed for the | ||
| 33 | * read/modify/write sequences. | ||
| 34 | */ | ||
| 35 | static DEFINE_RAW_SPINLOCK(pmu_lock); | ||
| 36 | |||
| 37 | /* | 30 | /* |
| 38 | * ARMv6 supports a maximum of 3 events, starting from index 1. If we add | 31 | * ARMv6 supports a maximum of 3 events, starting from index 0. If we add |
| 39 | * another platform that supports more, we need to increase this to be the | 32 | * another platform that supports more, we need to increase this to be the |
| 40 | * largest of all platforms. | 33 | * largest of all platforms. |
| 41 | * | 34 | * |
| @@ -43,62 +36,24 @@ static DEFINE_RAW_SPINLOCK(pmu_lock); | |||
| 43 | * cycle counter CCNT + 31 events counters CNT0..30. | 36 | * cycle counter CCNT + 31 events counters CNT0..30. |
| 44 | * Cortex-A8 has 1+4 counters, Cortex-A9 has 1+6 counters. | 37 | * Cortex-A8 has 1+4 counters, Cortex-A9 has 1+6 counters. |
| 45 | */ | 38 | */ |
| 46 | #define ARMPMU_MAX_HWEVENTS 33 | 39 | #define ARMPMU_MAX_HWEVENTS 32 |
| 47 | 40 | ||
| 48 | /* The events for a given CPU. */ | 41 | static DEFINE_PER_CPU(struct perf_event * [ARMPMU_MAX_HWEVENTS], hw_events); |
| 49 | struct cpu_hw_events { | 42 | static DEFINE_PER_CPU(unsigned long [BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)], used_mask); |
| 50 | /* | 43 | static DEFINE_PER_CPU(struct pmu_hw_events, cpu_hw_events); |
| 51 | * The events that are active on the CPU for the given index. Index 0 | ||
| 52 | * is reserved. | ||
| 53 | */ | ||
| 54 | struct perf_event *events[ARMPMU_MAX_HWEVENTS]; | ||
| 55 | |||
| 56 | /* | ||
| 57 | * A 1 bit for an index indicates that the counter is being used for | ||
| 58 | * an event. A 0 means that the counter can be used. | ||
| 59 | */ | ||
| 60 | unsigned long used_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)]; | ||
| 61 | 44 | ||
| 62 | /* | 45 | #define to_arm_pmu(p) (container_of(p, struct arm_pmu, pmu)) |
| 63 | * A 1 bit for an index indicates that the counter is actively being | ||
| 64 | * used. | ||
| 65 | */ | ||
| 66 | unsigned long active_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)]; | ||
| 67 | }; | ||
| 68 | static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events); | ||
| 69 | |||
| 70 | struct arm_pmu { | ||
| 71 | enum arm_perf_pmu_ids id; | ||
| 72 | const char *name; | ||
| 73 | irqreturn_t (*handle_irq)(int irq_num, void *dev); | ||
| 74 | void (*enable)(struct hw_perf_event *evt, int idx); | ||
| 75 | void (*disable)(struct hw_perf_event *evt, int idx); | ||
| 76 | int (*get_event_idx)(struct cpu_hw_events *cpuc, | ||
| 77 | struct hw_perf_event *hwc); | ||
| 78 | u32 (*read_counter)(int idx); | ||
| 79 | void (*write_counter)(int idx, u32 val); | ||
| 80 | void (*start)(void); | ||
| 81 | void (*stop)(void); | ||
| 82 | void (*reset)(void *); | ||
| 83 | const unsigned (*cache_map)[PERF_COUNT_HW_CACHE_MAX] | ||
| 84 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
| 85 | [PERF_COUNT_HW_CACHE_RESULT_MAX]; | ||
| 86 | const unsigned (*event_map)[PERF_COUNT_HW_MAX]; | ||
| 87 | u32 raw_event_mask; | ||
| 88 | int num_events; | ||
| 89 | u64 max_period; | ||
| 90 | }; | ||
| 91 | 46 | ||
| 92 | /* Set at runtime when we know what CPU type we are. */ | 47 | /* Set at runtime when we know what CPU type we are. */ |
| 93 | static const struct arm_pmu *armpmu; | 48 | static struct arm_pmu *cpu_pmu; |
| 94 | 49 | ||
| 95 | enum arm_perf_pmu_ids | 50 | enum arm_perf_pmu_ids |
| 96 | armpmu_get_pmu_id(void) | 51 | armpmu_get_pmu_id(void) |
| 97 | { | 52 | { |
| 98 | int id = -ENODEV; | 53 | int id = -ENODEV; |
| 99 | 54 | ||
| 100 | if (armpmu != NULL) | 55 | if (cpu_pmu != NULL) |
| 101 | id = armpmu->id; | 56 | id = cpu_pmu->id; |
| 102 | 57 | ||
| 103 | return id; | 58 | return id; |
| 104 | } | 59 | } |
| @@ -109,8 +64,8 @@ armpmu_get_max_events(void) | |||
| 109 | { | 64 | { |
| 110 | int max_events = 0; | 65 | int max_events = 0; |
| 111 | 66 | ||
| 112 | if (armpmu != NULL) | 67 | if (cpu_pmu != NULL) |
| 113 | max_events = armpmu->num_events; | 68 | max_events = cpu_pmu->num_events; |
| 114 | 69 | ||
| 115 | return max_events; | 70 | return max_events; |
| 116 | } | 71 | } |
| @@ -130,7 +85,11 @@ EXPORT_SYMBOL_GPL(perf_num_counters); | |||
| 130 | #define CACHE_OP_UNSUPPORTED 0xFFFF | 85 | #define CACHE_OP_UNSUPPORTED 0xFFFF |
| 131 | 86 | ||
| 132 | static int | 87 | static int |
| 133 | armpmu_map_cache_event(u64 config) | 88 | armpmu_map_cache_event(const unsigned (*cache_map) |
| 89 | [PERF_COUNT_HW_CACHE_MAX] | ||
| 90 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
| 91 | [PERF_COUNT_HW_CACHE_RESULT_MAX], | ||
| 92 | u64 config) | ||
| 134 | { | 93 | { |
| 135 | unsigned int cache_type, cache_op, cache_result, ret; | 94 | unsigned int cache_type, cache_op, cache_result, ret; |
| 136 | 95 | ||
| @@ -146,7 +105,7 @@ armpmu_map_cache_event(u64 config) | |||
| 146 | if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX) | 105 | if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX) |
| 147 | return -EINVAL; | 106 | return -EINVAL; |
| 148 | 107 | ||
| 149 | ret = (int)(*armpmu->cache_map)[cache_type][cache_op][cache_result]; | 108 | ret = (int)(*cache_map)[cache_type][cache_op][cache_result]; |
| 150 | 109 | ||
| 151 | if (ret == CACHE_OP_UNSUPPORTED) | 110 | if (ret == CACHE_OP_UNSUPPORTED) |
| 152 | return -ENOENT; | 111 | return -ENOENT; |
| @@ -155,23 +114,46 @@ armpmu_map_cache_event(u64 config) | |||
| 155 | } | 114 | } |
| 156 | 115 | ||
| 157 | static int | 116 | static int |
| 158 | armpmu_map_event(u64 config) | 117 | armpmu_map_event(const unsigned (*event_map)[PERF_COUNT_HW_MAX], u64 config) |
| 159 | { | 118 | { |
| 160 | int mapping = (*armpmu->event_map)[config]; | 119 | int mapping = (*event_map)[config]; |
| 161 | return mapping == HW_OP_UNSUPPORTED ? -EOPNOTSUPP : mapping; | 120 | return mapping == HW_OP_UNSUPPORTED ? -ENOENT : mapping; |
| 162 | } | 121 | } |
| 163 | 122 | ||
| 164 | static int | 123 | static int |
| 165 | armpmu_map_raw_event(u64 config) | 124 | armpmu_map_raw_event(u32 raw_event_mask, u64 config) |
| 166 | { | 125 | { |
| 167 | return (int)(config & armpmu->raw_event_mask); | 126 | return (int)(config & raw_event_mask); |
| 168 | } | 127 | } |
| 169 | 128 | ||
| 170 | static int | 129 | static int map_cpu_event(struct perf_event *event, |
| 130 | const unsigned (*event_map)[PERF_COUNT_HW_MAX], | ||
| 131 | const unsigned (*cache_map) | ||
| 132 | [PERF_COUNT_HW_CACHE_MAX] | ||
| 133 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
| 134 | [PERF_COUNT_HW_CACHE_RESULT_MAX], | ||
| 135 | u32 raw_event_mask) | ||
| 136 | { | ||
| 137 | u64 config = event->attr.config; | ||
| 138 | |||
| 139 | switch (event->attr.type) { | ||
| 140 | case PERF_TYPE_HARDWARE: | ||
| 141 | return armpmu_map_event(event_map, config); | ||
| 142 | case PERF_TYPE_HW_CACHE: | ||
| 143 | return armpmu_map_cache_event(cache_map, config); | ||
| 144 | case PERF_TYPE_RAW: | ||
| 145 | return armpmu_map_raw_event(raw_event_mask, config); | ||
| 146 | } | ||
| 147 | |||
| 148 | return -ENOENT; | ||
| 149 | } | ||
| 150 | |||
| 151 | int | ||
| 171 | armpmu_event_set_period(struct perf_event *event, | 152 | armpmu_event_set_period(struct perf_event *event, |
| 172 | struct hw_perf_event *hwc, | 153 | struct hw_perf_event *hwc, |
| 173 | int idx) | 154 | int idx) |
| 174 | { | 155 | { |
| 156 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 175 | s64 left = local64_read(&hwc->period_left); | 157 | s64 left = local64_read(&hwc->period_left); |
| 176 | s64 period = hwc->sample_period; | 158 | s64 period = hwc->sample_period; |
| 177 | int ret = 0; | 159 | int ret = 0; |
| @@ -202,11 +184,12 @@ armpmu_event_set_period(struct perf_event *event, | |||
| 202 | return ret; | 184 | return ret; |
| 203 | } | 185 | } |
| 204 | 186 | ||
| 205 | static u64 | 187 | u64 |
| 206 | armpmu_event_update(struct perf_event *event, | 188 | armpmu_event_update(struct perf_event *event, |
| 207 | struct hw_perf_event *hwc, | 189 | struct hw_perf_event *hwc, |
| 208 | int idx, int overflow) | 190 | int idx, int overflow) |
| 209 | { | 191 | { |
| 192 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 210 | u64 delta, prev_raw_count, new_raw_count; | 193 | u64 delta, prev_raw_count, new_raw_count; |
| 211 | 194 | ||
| 212 | again: | 195 | again: |
| @@ -246,11 +229,9 @@ armpmu_read(struct perf_event *event) | |||
| 246 | static void | 229 | static void |
| 247 | armpmu_stop(struct perf_event *event, int flags) | 230 | armpmu_stop(struct perf_event *event, int flags) |
| 248 | { | 231 | { |
| 232 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 249 | struct hw_perf_event *hwc = &event->hw; | 233 | struct hw_perf_event *hwc = &event->hw; |
| 250 | 234 | ||
| 251 | if (!armpmu) | ||
| 252 | return; | ||
| 253 | |||
| 254 | /* | 235 | /* |
| 255 | * ARM pmu always has to update the counter, so ignore | 236 | * ARM pmu always has to update the counter, so ignore |
| 256 | * PERF_EF_UPDATE, see comments in armpmu_start(). | 237 | * PERF_EF_UPDATE, see comments in armpmu_start(). |
| @@ -266,11 +247,9 @@ armpmu_stop(struct perf_event *event, int flags) | |||
| 266 | static void | 247 | static void |
| 267 | armpmu_start(struct perf_event *event, int flags) | 248 | armpmu_start(struct perf_event *event, int flags) |
| 268 | { | 249 | { |
| 250 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 269 | struct hw_perf_event *hwc = &event->hw; | 251 | struct hw_perf_event *hwc = &event->hw; |
| 270 | 252 | ||
| 271 | if (!armpmu) | ||
| 272 | return; | ||
| 273 | |||
| 274 | /* | 253 | /* |
| 275 | * ARM pmu always has to reprogram the period, so ignore | 254 | * ARM pmu always has to reprogram the period, so ignore |
| 276 | * PERF_EF_RELOAD, see the comment below. | 255 | * PERF_EF_RELOAD, see the comment below. |
| @@ -293,16 +272,16 @@ armpmu_start(struct perf_event *event, int flags) | |||
| 293 | static void | 272 | static void |
| 294 | armpmu_del(struct perf_event *event, int flags) | 273 | armpmu_del(struct perf_event *event, int flags) |
| 295 | { | 274 | { |
| 296 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 275 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
| 276 | struct pmu_hw_events *hw_events = armpmu->get_hw_events(); | ||
| 297 | struct hw_perf_event *hwc = &event->hw; | 277 | struct hw_perf_event *hwc = &event->hw; |
| 298 | int idx = hwc->idx; | 278 | int idx = hwc->idx; |
| 299 | 279 | ||
| 300 | WARN_ON(idx < 0); | 280 | WARN_ON(idx < 0); |
| 301 | 281 | ||
| 302 | clear_bit(idx, cpuc->active_mask); | ||
| 303 | armpmu_stop(event, PERF_EF_UPDATE); | 282 | armpmu_stop(event, PERF_EF_UPDATE); |
| 304 | cpuc->events[idx] = NULL; | 283 | hw_events->events[idx] = NULL; |
| 305 | clear_bit(idx, cpuc->used_mask); | 284 | clear_bit(idx, hw_events->used_mask); |
| 306 | 285 | ||
| 307 | perf_event_update_userpage(event); | 286 | perf_event_update_userpage(event); |
| 308 | } | 287 | } |
| @@ -310,7 +289,8 @@ armpmu_del(struct perf_event *event, int flags) | |||
| 310 | static int | 289 | static int |
| 311 | armpmu_add(struct perf_event *event, int flags) | 290 | armpmu_add(struct perf_event *event, int flags) |
| 312 | { | 291 | { |
| 313 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 292 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
| 293 | struct pmu_hw_events *hw_events = armpmu->get_hw_events(); | ||
| 314 | struct hw_perf_event *hwc = &event->hw; | 294 | struct hw_perf_event *hwc = &event->hw; |
| 315 | int idx; | 295 | int idx; |
| 316 | int err = 0; | 296 | int err = 0; |
| @@ -318,7 +298,7 @@ armpmu_add(struct perf_event *event, int flags) | |||
| 318 | perf_pmu_disable(event->pmu); | 298 | perf_pmu_disable(event->pmu); |
| 319 | 299 | ||
| 320 | /* If we don't have a space for the counter then finish early. */ | 300 | /* If we don't have a space for the counter then finish early. */ |
| 321 | idx = armpmu->get_event_idx(cpuc, hwc); | 301 | idx = armpmu->get_event_idx(hw_events, hwc); |
| 322 | if (idx < 0) { | 302 | if (idx < 0) { |
| 323 | err = idx; | 303 | err = idx; |
| 324 | goto out; | 304 | goto out; |
| @@ -330,8 +310,7 @@ armpmu_add(struct perf_event *event, int flags) | |||
| 330 | */ | 310 | */ |
| 331 | event->hw.idx = idx; | 311 | event->hw.idx = idx; |
| 332 | armpmu->disable(hwc, idx); | 312 | armpmu->disable(hwc, idx); |
| 333 | cpuc->events[idx] = event; | 313 | hw_events->events[idx] = event; |
| 334 | set_bit(idx, cpuc->active_mask); | ||
| 335 | 314 | ||
| 336 | hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE; | 315 | hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE; |
| 337 | if (flags & PERF_EF_START) | 316 | if (flags & PERF_EF_START) |
| @@ -345,25 +324,25 @@ out: | |||
| 345 | return err; | 324 | return err; |
| 346 | } | 325 | } |
| 347 | 326 | ||
| 348 | static struct pmu pmu; | ||
| 349 | |||
| 350 | static int | 327 | static int |
| 351 | validate_event(struct cpu_hw_events *cpuc, | 328 | validate_event(struct pmu_hw_events *hw_events, |
| 352 | struct perf_event *event) | 329 | struct perf_event *event) |
| 353 | { | 330 | { |
| 331 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 354 | struct hw_perf_event fake_event = event->hw; | 332 | struct hw_perf_event fake_event = event->hw; |
| 333 | struct pmu *leader_pmu = event->group_leader->pmu; | ||
| 355 | 334 | ||
| 356 | if (event->pmu != &pmu || event->state <= PERF_EVENT_STATE_OFF) | 335 | if (event->pmu != leader_pmu || event->state <= PERF_EVENT_STATE_OFF) |
| 357 | return 1; | 336 | return 1; |
| 358 | 337 | ||
| 359 | return armpmu->get_event_idx(cpuc, &fake_event) >= 0; | 338 | return armpmu->get_event_idx(hw_events, &fake_event) >= 0; |
| 360 | } | 339 | } |
| 361 | 340 | ||
| 362 | static int | 341 | static int |
| 363 | validate_group(struct perf_event *event) | 342 | validate_group(struct perf_event *event) |
| 364 | { | 343 | { |
| 365 | struct perf_event *sibling, *leader = event->group_leader; | 344 | struct perf_event *sibling, *leader = event->group_leader; |
| 366 | struct cpu_hw_events fake_pmu; | 345 | struct pmu_hw_events fake_pmu; |
| 367 | 346 | ||
| 368 | memset(&fake_pmu, 0, sizeof(fake_pmu)); | 347 | memset(&fake_pmu, 0, sizeof(fake_pmu)); |
| 369 | 348 | ||
| @@ -383,110 +362,119 @@ validate_group(struct perf_event *event) | |||
| 383 | 362 | ||
| 384 | static irqreturn_t armpmu_platform_irq(int irq, void *dev) | 363 | static irqreturn_t armpmu_platform_irq(int irq, void *dev) |
| 385 | { | 364 | { |
| 386 | struct arm_pmu_platdata *plat = dev_get_platdata(&pmu_device->dev); | 365 | struct arm_pmu *armpmu = (struct arm_pmu *) dev; |
| 366 | struct platform_device *plat_device = armpmu->plat_device; | ||
| 367 | struct arm_pmu_platdata *plat = dev_get_platdata(&plat_device->dev); | ||
| 387 | 368 | ||
| 388 | return plat->handle_irq(irq, dev, armpmu->handle_irq); | 369 | return plat->handle_irq(irq, dev, armpmu->handle_irq); |
| 389 | } | 370 | } |
| 390 | 371 | ||
| 372 | static void | ||
| 373 | armpmu_release_hardware(struct arm_pmu *armpmu) | ||
| 374 | { | ||
| 375 | int i, irq, irqs; | ||
| 376 | struct platform_device *pmu_device = armpmu->plat_device; | ||
| 377 | |||
| 378 | irqs = min(pmu_device->num_resources, num_possible_cpus()); | ||
| 379 | |||
| 380 | for (i = 0; i < irqs; ++i) { | ||
| 381 | if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs)) | ||
| 382 | continue; | ||
| 383 | irq = platform_get_irq(pmu_device, i); | ||
| 384 | if (irq >= 0) | ||
| 385 | free_irq(irq, armpmu); | ||
| 386 | } | ||
| 387 | |||
| 388 | release_pmu(armpmu->type); | ||
| 389 | } | ||
| 390 | |||
| 391 | static int | 391 | static int |
| 392 | armpmu_reserve_hardware(void) | 392 | armpmu_reserve_hardware(struct arm_pmu *armpmu) |
| 393 | { | 393 | { |
| 394 | struct arm_pmu_platdata *plat; | 394 | struct arm_pmu_platdata *plat; |
| 395 | irq_handler_t handle_irq; | 395 | irq_handler_t handle_irq; |
| 396 | int i, err = -ENODEV, irq; | 396 | int i, err, irq, irqs; |
| 397 | struct platform_device *pmu_device = armpmu->plat_device; | ||
| 397 | 398 | ||
| 398 | pmu_device = reserve_pmu(ARM_PMU_DEVICE_CPU); | 399 | err = reserve_pmu(armpmu->type); |
| 399 | if (IS_ERR(pmu_device)) { | 400 | if (err) { |
| 400 | pr_warning("unable to reserve pmu\n"); | 401 | pr_warning("unable to reserve pmu\n"); |
| 401 | return PTR_ERR(pmu_device); | 402 | return err; |
| 402 | } | 403 | } |
| 403 | 404 | ||
| 404 | init_pmu(ARM_PMU_DEVICE_CPU); | ||
| 405 | |||
| 406 | plat = dev_get_platdata(&pmu_device->dev); | 405 | plat = dev_get_platdata(&pmu_device->dev); |
| 407 | if (plat && plat->handle_irq) | 406 | if (plat && plat->handle_irq) |
| 408 | handle_irq = armpmu_platform_irq; | 407 | handle_irq = armpmu_platform_irq; |
| 409 | else | 408 | else |
| 410 | handle_irq = armpmu->handle_irq; | 409 | handle_irq = armpmu->handle_irq; |
| 411 | 410 | ||
| 412 | if (pmu_device->num_resources < 1) { | 411 | irqs = min(pmu_device->num_resources, num_possible_cpus()); |
| 412 | if (irqs < 1) { | ||
| 413 | pr_err("no irqs for PMUs defined\n"); | 413 | pr_err("no irqs for PMUs defined\n"); |
| 414 | return -ENODEV; | 414 | return -ENODEV; |
| 415 | } | 415 | } |
| 416 | 416 | ||
| 417 | for (i = 0; i < pmu_device->num_resources; ++i) { | 417 | for (i = 0; i < irqs; ++i) { |
| 418 | err = 0; | ||
| 418 | irq = platform_get_irq(pmu_device, i); | 419 | irq = platform_get_irq(pmu_device, i); |
| 419 | if (irq < 0) | 420 | if (irq < 0) |
| 420 | continue; | 421 | continue; |
| 421 | 422 | ||
| 423 | /* | ||
| 424 | * If we have a single PMU interrupt that we can't shift, | ||
| 425 | * assume that we're running on a uniprocessor machine and | ||
| 426 | * continue. Otherwise, continue without this interrupt. | ||
| 427 | */ | ||
| 428 | if (irq_set_affinity(irq, cpumask_of(i)) && irqs > 1) { | ||
| 429 | pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n", | ||
| 430 | irq, i); | ||
| 431 | continue; | ||
| 432 | } | ||
| 433 | |||
| 422 | err = request_irq(irq, handle_irq, | 434 | err = request_irq(irq, handle_irq, |
| 423 | IRQF_DISABLED | IRQF_NOBALANCING, | 435 | IRQF_DISABLED | IRQF_NOBALANCING, |
| 424 | "armpmu", NULL); | 436 | "arm-pmu", armpmu); |
| 425 | if (err) { | 437 | if (err) { |
| 426 | pr_warning("unable to request IRQ%d for ARM perf " | 438 | pr_err("unable to request IRQ%d for ARM PMU counters\n", |
| 427 | "counters\n", irq); | 439 | irq); |
| 428 | break; | 440 | armpmu_release_hardware(armpmu); |
| 441 | return err; | ||
| 429 | } | 442 | } |
| 430 | } | ||
| 431 | 443 | ||
| 432 | if (err) { | 444 | cpumask_set_cpu(i, &armpmu->active_irqs); |
| 433 | for (i = i - 1; i >= 0; --i) { | ||
| 434 | irq = platform_get_irq(pmu_device, i); | ||
| 435 | if (irq >= 0) | ||
| 436 | free_irq(irq, NULL); | ||
| 437 | } | ||
| 438 | release_pmu(ARM_PMU_DEVICE_CPU); | ||
| 439 | pmu_device = NULL; | ||
| 440 | } | 445 | } |
| 441 | 446 | ||
| 442 | return err; | 447 | return 0; |
| 443 | } | 448 | } |
| 444 | 449 | ||
| 445 | static void | 450 | static void |
| 446 | armpmu_release_hardware(void) | 451 | hw_perf_event_destroy(struct perf_event *event) |
| 447 | { | 452 | { |
| 448 | int i, irq; | 453 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
| 454 | atomic_t *active_events = &armpmu->active_events; | ||
| 455 | struct mutex *pmu_reserve_mutex = &armpmu->reserve_mutex; | ||
| 449 | 456 | ||
| 450 | for (i = pmu_device->num_resources - 1; i >= 0; --i) { | 457 | if (atomic_dec_and_mutex_lock(active_events, pmu_reserve_mutex)) { |
| 451 | irq = platform_get_irq(pmu_device, i); | 458 | armpmu_release_hardware(armpmu); |
| 452 | if (irq >= 0) | 459 | mutex_unlock(pmu_reserve_mutex); |
| 453 | free_irq(irq, NULL); | ||
| 454 | } | 460 | } |
| 455 | armpmu->stop(); | ||
| 456 | |||
| 457 | release_pmu(ARM_PMU_DEVICE_CPU); | ||
| 458 | pmu_device = NULL; | ||
| 459 | } | 461 | } |
| 460 | 462 | ||
| 461 | static atomic_t active_events = ATOMIC_INIT(0); | 463 | static int |
| 462 | static DEFINE_MUTEX(pmu_reserve_mutex); | 464 | event_requires_mode_exclusion(struct perf_event_attr *attr) |
| 463 | |||
| 464 | static void | ||
| 465 | hw_perf_event_destroy(struct perf_event *event) | ||
| 466 | { | 465 | { |
| 467 | if (atomic_dec_and_mutex_lock(&active_events, &pmu_reserve_mutex)) { | 466 | return attr->exclude_idle || attr->exclude_user || |
| 468 | armpmu_release_hardware(); | 467 | attr->exclude_kernel || attr->exclude_hv; |
| 469 | mutex_unlock(&pmu_reserve_mutex); | ||
| 470 | } | ||
| 471 | } | 468 | } |
| 472 | 469 | ||
| 473 | static int | 470 | static int |
| 474 | __hw_perf_event_init(struct perf_event *event) | 471 | __hw_perf_event_init(struct perf_event *event) |
| 475 | { | 472 | { |
| 473 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 476 | struct hw_perf_event *hwc = &event->hw; | 474 | struct hw_perf_event *hwc = &event->hw; |
| 477 | int mapping, err; | 475 | int mapping, err; |
| 478 | 476 | ||
| 479 | /* Decode the generic type into an ARM event identifier. */ | 477 | mapping = armpmu->map_event(event); |
| 480 | if (PERF_TYPE_HARDWARE == event->attr.type) { | ||
| 481 | mapping = armpmu_map_event(event->attr.config); | ||
| 482 | } else if (PERF_TYPE_HW_CACHE == event->attr.type) { | ||
| 483 | mapping = armpmu_map_cache_event(event->attr.config); | ||
| 484 | } else if (PERF_TYPE_RAW == event->attr.type) { | ||
| 485 | mapping = armpmu_map_raw_event(event->attr.config); | ||
| 486 | } else { | ||
| 487 | pr_debug("event type %x not supported\n", event->attr.type); | ||
| 488 | return -EOPNOTSUPP; | ||
| 489 | } | ||
| 490 | 478 | ||
| 491 | if (mapping < 0) { | 479 | if (mapping < 0) { |
| 492 | pr_debug("event %x:%llx not supported\n", event->attr.type, | 480 | pr_debug("event %x:%llx not supported\n", event->attr.type, |
| @@ -495,34 +483,31 @@ __hw_perf_event_init(struct perf_event *event) | |||
| 495 | } | 483 | } |
| 496 | 484 | ||
| 497 | /* | 485 | /* |
| 486 | * We don't assign an index until we actually place the event onto | ||
| 487 | * hardware. Use -1 to signify that we haven't decided where to put it | ||
| 488 | * yet. For SMP systems, each core has it's own PMU so we can't do any | ||
| 489 | * clever allocation or constraints checking at this point. | ||
| 490 | */ | ||
| 491 | hwc->idx = -1; | ||
| 492 | hwc->config_base = 0; | ||
| 493 | hwc->config = 0; | ||
| 494 | hwc->event_base = 0; | ||
| 495 | |||
| 496 | /* | ||
| 498 | * Check whether we need to exclude the counter from certain modes. | 497 | * Check whether we need to exclude the counter from certain modes. |
| 499 | * The ARM performance counters are on all of the time so if someone | ||
| 500 | * has asked us for some excludes then we have to fail. | ||
| 501 | */ | 498 | */ |
| 502 | if (event->attr.exclude_kernel || event->attr.exclude_user || | 499 | if ((!armpmu->set_event_filter || |
| 503 | event->attr.exclude_hv || event->attr.exclude_idle) { | 500 | armpmu->set_event_filter(hwc, &event->attr)) && |
| 501 | event_requires_mode_exclusion(&event->attr)) { | ||
| 504 | pr_debug("ARM performance counters do not support " | 502 | pr_debug("ARM performance counters do not support " |
| 505 | "mode exclusion\n"); | 503 | "mode exclusion\n"); |
| 506 | return -EPERM; | 504 | return -EPERM; |
| 507 | } | 505 | } |
| 508 | 506 | ||
| 509 | /* | 507 | /* |
| 510 | * We don't assign an index until we actually place the event onto | 508 | * Store the event encoding into the config_base field. |
| 511 | * hardware. Use -1 to signify that we haven't decided where to put it | ||
| 512 | * yet. For SMP systems, each core has it's own PMU so we can't do any | ||
| 513 | * clever allocation or constraints checking at this point. | ||
| 514 | */ | 509 | */ |
| 515 | hwc->idx = -1; | 510 | hwc->config_base |= (unsigned long)mapping; |
| 516 | |||
| 517 | /* | ||
| 518 | * Store the event encoding into the config_base field. config and | ||
| 519 | * event_base are unused as the only 2 things we need to know are | ||
| 520 | * the event mapping and the counter to use. The counter to use is | ||
| 521 | * also the indx and the config_base is the event type. | ||
| 522 | */ | ||
| 523 | hwc->config_base = (unsigned long)mapping; | ||
| 524 | hwc->config = 0; | ||
| 525 | hwc->event_base = 0; | ||
| 526 | 511 | ||
| 527 | if (!hwc->sample_period) { | 512 | if (!hwc->sample_period) { |
| 528 | hwc->sample_period = armpmu->max_period; | 513 | hwc->sample_period = armpmu->max_period; |
| @@ -542,32 +527,23 @@ __hw_perf_event_init(struct perf_event *event) | |||
| 542 | 527 | ||
| 543 | static int armpmu_event_init(struct perf_event *event) | 528 | static int armpmu_event_init(struct perf_event *event) |
| 544 | { | 529 | { |
| 530 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
| 545 | int err = 0; | 531 | int err = 0; |
| 532 | atomic_t *active_events = &armpmu->active_events; | ||
| 546 | 533 | ||
| 547 | switch (event->attr.type) { | 534 | if (armpmu->map_event(event) == -ENOENT) |
| 548 | case PERF_TYPE_RAW: | ||
| 549 | case PERF_TYPE_HARDWARE: | ||
| 550 | case PERF_TYPE_HW_CACHE: | ||
| 551 | break; | ||
| 552 | |||
| 553 | default: | ||
| 554 | return -ENOENT; | 535 | return -ENOENT; |
| 555 | } | ||
| 556 | |||
| 557 | if (!armpmu) | ||
| 558 | return -ENODEV; | ||
| 559 | 536 | ||
| 560 | event->destroy = hw_perf_event_destroy; | 537 | event->destroy = hw_perf_event_destroy; |
| 561 | 538 | ||
| 562 | if (!atomic_inc_not_zero(&active_events)) { | 539 | if (!atomic_inc_not_zero(active_events)) { |
| 563 | mutex_lock(&pmu_reserve_mutex); | 540 | mutex_lock(&armpmu->reserve_mutex); |
| 564 | if (atomic_read(&active_events) == 0) { | 541 | if (atomic_read(active_events) == 0) |
| 565 | err = armpmu_reserve_hardware(); | 542 | err = armpmu_reserve_hardware(armpmu); |
| 566 | } | ||
| 567 | 543 | ||
| 568 | if (!err) | 544 | if (!err) |
| 569 | atomic_inc(&active_events); | 545 | atomic_inc(active_events); |
| 570 | mutex_unlock(&pmu_reserve_mutex); | 546 | mutex_unlock(&armpmu->reserve_mutex); |
| 571 | } | 547 | } |
| 572 | 548 | ||
| 573 | if (err) | 549 | if (err) |
| @@ -582,22 +558,9 @@ static int armpmu_event_init(struct perf_event *event) | |||
| 582 | 558 | ||
| 583 | static void armpmu_enable(struct pmu *pmu) | 559 | static void armpmu_enable(struct pmu *pmu) |
| 584 | { | 560 | { |
| 585 | /* Enable all of the perf events on hardware. */ | 561 | struct arm_pmu *armpmu = to_arm_pmu(pmu); |
| 586 | int idx, enabled = 0; | 562 | struct pmu_hw_events *hw_events = armpmu->get_hw_events(); |
| 587 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 563 | int enabled = bitmap_weight(hw_events->used_mask, armpmu->num_events); |
| 588 | |||
| 589 | if (!armpmu) | ||
| 590 | return; | ||
| 591 | |||
| 592 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | ||
| 593 | struct perf_event *event = cpuc->events[idx]; | ||
| 594 | |||
| 595 | if (!event) | ||
| 596 | continue; | ||
| 597 | |||
| 598 | armpmu->enable(&event->hw, idx); | ||
| 599 | enabled = 1; | ||
| 600 | } | ||
| 601 | 564 | ||
| 602 | if (enabled) | 565 | if (enabled) |
| 603 | armpmu->start(); | 566 | armpmu->start(); |
| @@ -605,20 +568,32 @@ static void armpmu_enable(struct pmu *pmu) | |||
| 605 | 568 | ||
| 606 | static void armpmu_disable(struct pmu *pmu) | 569 | static void armpmu_disable(struct pmu *pmu) |
| 607 | { | 570 | { |
| 608 | if (armpmu) | 571 | struct arm_pmu *armpmu = to_arm_pmu(pmu); |
| 609 | armpmu->stop(); | 572 | armpmu->stop(); |
| 610 | } | 573 | } |
| 611 | 574 | ||
| 612 | static struct pmu pmu = { | 575 | static void __init armpmu_init(struct arm_pmu *armpmu) |
| 613 | .pmu_enable = armpmu_enable, | 576 | { |
| 614 | .pmu_disable = armpmu_disable, | 577 | atomic_set(&armpmu->active_events, 0); |
| 615 | .event_init = armpmu_event_init, | 578 | mutex_init(&armpmu->reserve_mutex); |
| 616 | .add = armpmu_add, | 579 | |
| 617 | .del = armpmu_del, | 580 | armpmu->pmu = (struct pmu) { |
| 618 | .start = armpmu_start, | 581 | .pmu_enable = armpmu_enable, |
| 619 | .stop = armpmu_stop, | 582 | .pmu_disable = armpmu_disable, |
| 620 | .read = armpmu_read, | 583 | .event_init = armpmu_event_init, |
| 621 | }; | 584 | .add = armpmu_add, |
| 585 | .del = armpmu_del, | ||
| 586 | .start = armpmu_start, | ||
| 587 | .stop = armpmu_stop, | ||
| 588 | .read = armpmu_read, | ||
| 589 | }; | ||
| 590 | } | ||
| 591 | |||
| 592 | int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type) | ||
| 593 | { | ||
| 594 | armpmu_init(armpmu); | ||
| 595 | return perf_pmu_register(&armpmu->pmu, name, type); | ||
| 596 | } | ||
| 622 | 597 | ||
| 623 | /* Include the PMU-specific implementations. */ | 598 | /* Include the PMU-specific implementations. */ |
| 624 | #include "perf_event_xscale.c" | 599 | #include "perf_event_xscale.c" |
| @@ -630,14 +605,72 @@ static struct pmu pmu = { | |||
| 630 | * This requires SMP to be available, so exists as a separate initcall. | 605 | * This requires SMP to be available, so exists as a separate initcall. |
| 631 | */ | 606 | */ |
| 632 | static int __init | 607 | static int __init |
| 633 | armpmu_reset(void) | 608 | cpu_pmu_reset(void) |
| 609 | { | ||
| 610 | if (cpu_pmu && cpu_pmu->reset) | ||
| 611 | return on_each_cpu(cpu_pmu->reset, NULL, 1); | ||
| 612 | return 0; | ||
| 613 | } | ||
| 614 | arch_initcall(cpu_pmu_reset); | ||
| 615 | |||
| 616 | /* | ||
| 617 | * PMU platform driver and devicetree bindings. | ||
| 618 | */ | ||
| 619 | static struct of_device_id armpmu_of_device_ids[] = { | ||
| 620 | {.compatible = "arm,cortex-a9-pmu"}, | ||
| 621 | {.compatible = "arm,cortex-a8-pmu"}, | ||
| 622 | {.compatible = "arm,arm1136-pmu"}, | ||
| 623 | {.compatible = "arm,arm1176-pmu"}, | ||
| 624 | {}, | ||
| 625 | }; | ||
| 626 | |||
| 627 | static struct platform_device_id armpmu_plat_device_ids[] = { | ||
| 628 | {.name = "arm-pmu"}, | ||
| 629 | {}, | ||
| 630 | }; | ||
| 631 | |||
| 632 | static int __devinit armpmu_device_probe(struct platform_device *pdev) | ||
| 634 | { | 633 | { |
| 635 | if (armpmu && armpmu->reset) | 634 | cpu_pmu->plat_device = pdev; |
| 636 | return on_each_cpu(armpmu->reset, NULL, 1); | ||
| 637 | return 0; | 635 | return 0; |
| 638 | } | 636 | } |
| 639 | arch_initcall(armpmu_reset); | ||
| 640 | 637 | ||
| 638 | static struct platform_driver armpmu_driver = { | ||
| 639 | .driver = { | ||
| 640 | .name = "arm-pmu", | ||
| 641 | .of_match_table = armpmu_of_device_ids, | ||
| 642 | }, | ||
| 643 | .probe = armpmu_device_probe, | ||
| 644 | .id_table = armpmu_plat_device_ids, | ||
| 645 | }; | ||
| 646 | |||
| 647 | static int __init register_pmu_driver(void) | ||
| 648 | { | ||
| 649 | return platform_driver_register(&armpmu_driver); | ||
| 650 | } | ||
| 651 | device_initcall(register_pmu_driver); | ||
| 652 | |||
| 653 | static struct pmu_hw_events *armpmu_get_cpu_events(void) | ||
| 654 | { | ||
| 655 | return &__get_cpu_var(cpu_hw_events); | ||
| 656 | } | ||
| 657 | |||
| 658 | static void __init cpu_pmu_init(struct arm_pmu *armpmu) | ||
| 659 | { | ||
| 660 | int cpu; | ||
| 661 | for_each_possible_cpu(cpu) { | ||
| 662 | struct pmu_hw_events *events = &per_cpu(cpu_hw_events, cpu); | ||
| 663 | events->events = per_cpu(hw_events, cpu); | ||
| 664 | events->used_mask = per_cpu(used_mask, cpu); | ||
| 665 | raw_spin_lock_init(&events->pmu_lock); | ||
| 666 | } | ||
| 667 | armpmu->get_hw_events = armpmu_get_cpu_events; | ||
| 668 | armpmu->type = ARM_PMU_DEVICE_CPU; | ||
| 669 | } | ||
| 670 | |||
| 671 | /* | ||
| 672 | * CPU PMU identification and registration. | ||
| 673 | */ | ||
| 641 | static int __init | 674 | static int __init |
| 642 | init_hw_perf_events(void) | 675 | init_hw_perf_events(void) |
| 643 | { | 676 | { |
| @@ -651,22 +684,22 @@ init_hw_perf_events(void) | |||
| 651 | case 0xB360: /* ARM1136 */ | 684 | case 0xB360: /* ARM1136 */ |
| 652 | case 0xB560: /* ARM1156 */ | 685 | case 0xB560: /* ARM1156 */ |
| 653 | case 0xB760: /* ARM1176 */ | 686 | case 0xB760: /* ARM1176 */ |
| 654 | armpmu = armv6pmu_init(); | 687 | cpu_pmu = armv6pmu_init(); |
| 655 | break; | 688 | break; |
| 656 | case 0xB020: /* ARM11mpcore */ | 689 | case 0xB020: /* ARM11mpcore */ |
| 657 | armpmu = armv6mpcore_pmu_init(); | 690 | cpu_pmu = armv6mpcore_pmu_init(); |
| 658 | break; | 691 | break; |
| 659 | case 0xC080: /* Cortex-A8 */ | 692 | case 0xC080: /* Cortex-A8 */ |
| 660 | armpmu = armv7_a8_pmu_init(); | 693 | cpu_pmu = armv7_a8_pmu_init(); |
| 661 | break; | 694 | break; |
| 662 | case 0xC090: /* Cortex-A9 */ | 695 | case 0xC090: /* Cortex-A9 */ |
| 663 | armpmu = armv7_a9_pmu_init(); | 696 | cpu_pmu = armv7_a9_pmu_init(); |
| 664 | break; | 697 | break; |
| 665 | case 0xC050: /* Cortex-A5 */ | 698 | case 0xC050: /* Cortex-A5 */ |
| 666 | armpmu = armv7_a5_pmu_init(); | 699 | cpu_pmu = armv7_a5_pmu_init(); |
| 667 | break; | 700 | break; |
| 668 | case 0xC0F0: /* Cortex-A15 */ | 701 | case 0xC0F0: /* Cortex-A15 */ |
| 669 | armpmu = armv7_a15_pmu_init(); | 702 | cpu_pmu = armv7_a15_pmu_init(); |
| 670 | break; | 703 | break; |
| 671 | } | 704 | } |
| 672 | /* Intel CPUs [xscale]. */ | 705 | /* Intel CPUs [xscale]. */ |
| @@ -674,23 +707,23 @@ init_hw_perf_events(void) | |||
| 674 | part_number = (cpuid >> 13) & 0x7; | 707 | part_number = (cpuid >> 13) & 0x7; |
| 675 | switch (part_number) { | 708 | switch (part_number) { |
| 676 | case 1: | 709 | case 1: |
| 677 | armpmu = xscale1pmu_init(); | 710 | cpu_pmu = xscale1pmu_init(); |
| 678 | break; | 711 | break; |
| 679 | case 2: | 712 | case 2: |
| 680 | armpmu = xscale2pmu_init(); | 713 | cpu_pmu = xscale2pmu_init(); |
| 681 | break; | 714 | break; |
| 682 | } | 715 | } |
| 683 | } | 716 | } |
| 684 | 717 | ||
| 685 | if (armpmu) { | 718 | if (cpu_pmu) { |
| 686 | pr_info("enabled with %s PMU driver, %d counters available\n", | 719 | pr_info("enabled with %s PMU driver, %d counters available\n", |
| 687 | armpmu->name, armpmu->num_events); | 720 | cpu_pmu->name, cpu_pmu->num_events); |
| 721 | cpu_pmu_init(cpu_pmu); | ||
| 722 | armpmu_register(cpu_pmu, "cpu", PERF_TYPE_RAW); | ||
| 688 | } else { | 723 | } else { |
| 689 | pr_info("no hardware support available\n"); | 724 | pr_info("no hardware support available\n"); |
| 690 | } | 725 | } |
| 691 | 726 | ||
| 692 | perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW); | ||
| 693 | |||
| 694 | return 0; | 727 | return 0; |
| 695 | } | 728 | } |
| 696 | early_initcall(init_hw_perf_events); | 729 | early_initcall(init_hw_perf_events); |
diff --git a/arch/arm/kernel/perf_event_v6.c b/arch/arm/kernel/perf_event_v6.c index dd7f3b9f4cb3..e63d8115c01b 100644 --- a/arch/arm/kernel/perf_event_v6.c +++ b/arch/arm/kernel/perf_event_v6.c | |||
| @@ -54,7 +54,7 @@ enum armv6_perf_types { | |||
| 54 | }; | 54 | }; |
| 55 | 55 | ||
| 56 | enum armv6_counters { | 56 | enum armv6_counters { |
| 57 | ARMV6_CYCLE_COUNTER = 1, | 57 | ARMV6_CYCLE_COUNTER = 0, |
| 58 | ARMV6_COUNTER0, | 58 | ARMV6_COUNTER0, |
| 59 | ARMV6_COUNTER1, | 59 | ARMV6_COUNTER1, |
| 60 | }; | 60 | }; |
| @@ -433,6 +433,7 @@ armv6pmu_enable_event(struct hw_perf_event *hwc, | |||
| 433 | int idx) | 433 | int idx) |
| 434 | { | 434 | { |
| 435 | unsigned long val, mask, evt, flags; | 435 | unsigned long val, mask, evt, flags; |
| 436 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 436 | 437 | ||
| 437 | if (ARMV6_CYCLE_COUNTER == idx) { | 438 | if (ARMV6_CYCLE_COUNTER == idx) { |
| 438 | mask = 0; | 439 | mask = 0; |
| @@ -454,12 +455,29 @@ armv6pmu_enable_event(struct hw_perf_event *hwc, | |||
| 454 | * Mask out the current event and set the counter to count the event | 455 | * Mask out the current event and set the counter to count the event |
| 455 | * that we're interested in. | 456 | * that we're interested in. |
| 456 | */ | 457 | */ |
| 457 | raw_spin_lock_irqsave(&pmu_lock, flags); | 458 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 458 | val = armv6_pmcr_read(); | 459 | val = armv6_pmcr_read(); |
| 459 | val &= ~mask; | 460 | val &= ~mask; |
| 460 | val |= evt; | 461 | val |= evt; |
| 461 | armv6_pmcr_write(val); | 462 | armv6_pmcr_write(val); |
| 462 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 463 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 464 | } | ||
| 465 | |||
| 466 | static int counter_is_active(unsigned long pmcr, int idx) | ||
| 467 | { | ||
| 468 | unsigned long mask = 0; | ||
| 469 | if (idx == ARMV6_CYCLE_COUNTER) | ||
| 470 | mask = ARMV6_PMCR_CCOUNT_IEN; | ||
| 471 | else if (idx == ARMV6_COUNTER0) | ||
| 472 | mask = ARMV6_PMCR_COUNT0_IEN; | ||
| 473 | else if (idx == ARMV6_COUNTER1) | ||
| 474 | mask = ARMV6_PMCR_COUNT1_IEN; | ||
| 475 | |||
| 476 | if (mask) | ||
| 477 | return pmcr & mask; | ||
| 478 | |||
| 479 | WARN_ONCE(1, "invalid counter number (%d)\n", idx); | ||
| 480 | return 0; | ||
| 463 | } | 481 | } |
| 464 | 482 | ||
| 465 | static irqreturn_t | 483 | static irqreturn_t |
| @@ -468,7 +486,7 @@ armv6pmu_handle_irq(int irq_num, | |||
| 468 | { | 486 | { |
| 469 | unsigned long pmcr = armv6_pmcr_read(); | 487 | unsigned long pmcr = armv6_pmcr_read(); |
| 470 | struct perf_sample_data data; | 488 | struct perf_sample_data data; |
| 471 | struct cpu_hw_events *cpuc; | 489 | struct pmu_hw_events *cpuc; |
| 472 | struct pt_regs *regs; | 490 | struct pt_regs *regs; |
| 473 | int idx; | 491 | int idx; |
| 474 | 492 | ||
| @@ -487,11 +505,11 @@ armv6pmu_handle_irq(int irq_num, | |||
| 487 | perf_sample_data_init(&data, 0); | 505 | perf_sample_data_init(&data, 0); |
| 488 | 506 | ||
| 489 | cpuc = &__get_cpu_var(cpu_hw_events); | 507 | cpuc = &__get_cpu_var(cpu_hw_events); |
| 490 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 508 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
| 491 | struct perf_event *event = cpuc->events[idx]; | 509 | struct perf_event *event = cpuc->events[idx]; |
| 492 | struct hw_perf_event *hwc; | 510 | struct hw_perf_event *hwc; |
| 493 | 511 | ||
| 494 | if (!test_bit(idx, cpuc->active_mask)) | 512 | if (!counter_is_active(pmcr, idx)) |
| 495 | continue; | 513 | continue; |
| 496 | 514 | ||
| 497 | /* | 515 | /* |
| @@ -508,7 +526,7 @@ armv6pmu_handle_irq(int irq_num, | |||
| 508 | continue; | 526 | continue; |
| 509 | 527 | ||
| 510 | if (perf_event_overflow(event, &data, regs)) | 528 | if (perf_event_overflow(event, &data, regs)) |
| 511 | armpmu->disable(hwc, idx); | 529 | cpu_pmu->disable(hwc, idx); |
| 512 | } | 530 | } |
| 513 | 531 | ||
| 514 | /* | 532 | /* |
| @@ -527,28 +545,30 @@ static void | |||
| 527 | armv6pmu_start(void) | 545 | armv6pmu_start(void) |
| 528 | { | 546 | { |
| 529 | unsigned long flags, val; | 547 | unsigned long flags, val; |
| 548 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 530 | 549 | ||
| 531 | raw_spin_lock_irqsave(&pmu_lock, flags); | 550 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 532 | val = armv6_pmcr_read(); | 551 | val = armv6_pmcr_read(); |
| 533 | val |= ARMV6_PMCR_ENABLE; | 552 | val |= ARMV6_PMCR_ENABLE; |
| 534 | armv6_pmcr_write(val); | 553 | armv6_pmcr_write(val); |
| 535 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 554 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 536 | } | 555 | } |
| 537 | 556 | ||
| 538 | static void | 557 | static void |
| 539 | armv6pmu_stop(void) | 558 | armv6pmu_stop(void) |
| 540 | { | 559 | { |
| 541 | unsigned long flags, val; | 560 | unsigned long flags, val; |
| 561 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 542 | 562 | ||
| 543 | raw_spin_lock_irqsave(&pmu_lock, flags); | 563 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 544 | val = armv6_pmcr_read(); | 564 | val = armv6_pmcr_read(); |
| 545 | val &= ~ARMV6_PMCR_ENABLE; | 565 | val &= ~ARMV6_PMCR_ENABLE; |
| 546 | armv6_pmcr_write(val); | 566 | armv6_pmcr_write(val); |
| 547 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 567 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 548 | } | 568 | } |
| 549 | 569 | ||
| 550 | static int | 570 | static int |
| 551 | armv6pmu_get_event_idx(struct cpu_hw_events *cpuc, | 571 | armv6pmu_get_event_idx(struct pmu_hw_events *cpuc, |
| 552 | struct hw_perf_event *event) | 572 | struct hw_perf_event *event) |
| 553 | { | 573 | { |
| 554 | /* Always place a cycle counter into the cycle counter. */ | 574 | /* Always place a cycle counter into the cycle counter. */ |
| @@ -578,6 +598,7 @@ armv6pmu_disable_event(struct hw_perf_event *hwc, | |||
| 578 | int idx) | 598 | int idx) |
| 579 | { | 599 | { |
| 580 | unsigned long val, mask, evt, flags; | 600 | unsigned long val, mask, evt, flags; |
| 601 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 581 | 602 | ||
| 582 | if (ARMV6_CYCLE_COUNTER == idx) { | 603 | if (ARMV6_CYCLE_COUNTER == idx) { |
| 583 | mask = ARMV6_PMCR_CCOUNT_IEN; | 604 | mask = ARMV6_PMCR_CCOUNT_IEN; |
| @@ -598,12 +619,12 @@ armv6pmu_disable_event(struct hw_perf_event *hwc, | |||
| 598 | * of ETM bus signal assertion cycles. The external reporting should | 619 | * of ETM bus signal assertion cycles. The external reporting should |
| 599 | * be disabled and so this should never increment. | 620 | * be disabled and so this should never increment. |
| 600 | */ | 621 | */ |
| 601 | raw_spin_lock_irqsave(&pmu_lock, flags); | 622 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 602 | val = armv6_pmcr_read(); | 623 | val = armv6_pmcr_read(); |
| 603 | val &= ~mask; | 624 | val &= ~mask; |
| 604 | val |= evt; | 625 | val |= evt; |
| 605 | armv6_pmcr_write(val); | 626 | armv6_pmcr_write(val); |
| 606 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 627 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 607 | } | 628 | } |
| 608 | 629 | ||
| 609 | static void | 630 | static void |
| @@ -611,6 +632,7 @@ armv6mpcore_pmu_disable_event(struct hw_perf_event *hwc, | |||
| 611 | int idx) | 632 | int idx) |
| 612 | { | 633 | { |
| 613 | unsigned long val, mask, flags, evt = 0; | 634 | unsigned long val, mask, flags, evt = 0; |
| 635 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 614 | 636 | ||
| 615 | if (ARMV6_CYCLE_COUNTER == idx) { | 637 | if (ARMV6_CYCLE_COUNTER == idx) { |
| 616 | mask = ARMV6_PMCR_CCOUNT_IEN; | 638 | mask = ARMV6_PMCR_CCOUNT_IEN; |
| @@ -627,15 +649,21 @@ armv6mpcore_pmu_disable_event(struct hw_perf_event *hwc, | |||
| 627 | * Unlike UP ARMv6, we don't have a way of stopping the counters. We | 649 | * Unlike UP ARMv6, we don't have a way of stopping the counters. We |
| 628 | * simply disable the interrupt reporting. | 650 | * simply disable the interrupt reporting. |
| 629 | */ | 651 | */ |
| 630 | raw_spin_lock_irqsave(&pmu_lock, flags); | 652 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 631 | val = armv6_pmcr_read(); | 653 | val = armv6_pmcr_read(); |
| 632 | val &= ~mask; | 654 | val &= ~mask; |
| 633 | val |= evt; | 655 | val |= evt; |
| 634 | armv6_pmcr_write(val); | 656 | armv6_pmcr_write(val); |
| 635 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 657 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 658 | } | ||
| 659 | |||
| 660 | static int armv6_map_event(struct perf_event *event) | ||
| 661 | { | ||
| 662 | return map_cpu_event(event, &armv6_perf_map, | ||
| 663 | &armv6_perf_cache_map, 0xFF); | ||
| 636 | } | 664 | } |
| 637 | 665 | ||
| 638 | static const struct arm_pmu armv6pmu = { | 666 | static struct arm_pmu armv6pmu = { |
| 639 | .id = ARM_PERF_PMU_ID_V6, | 667 | .id = ARM_PERF_PMU_ID_V6, |
| 640 | .name = "v6", | 668 | .name = "v6", |
| 641 | .handle_irq = armv6pmu_handle_irq, | 669 | .handle_irq = armv6pmu_handle_irq, |
| @@ -646,14 +674,12 @@ static const struct arm_pmu armv6pmu = { | |||
| 646 | .get_event_idx = armv6pmu_get_event_idx, | 674 | .get_event_idx = armv6pmu_get_event_idx, |
| 647 | .start = armv6pmu_start, | 675 | .start = armv6pmu_start, |
| 648 | .stop = armv6pmu_stop, | 676 | .stop = armv6pmu_stop, |
| 649 | .cache_map = &armv6_perf_cache_map, | 677 | .map_event = armv6_map_event, |
| 650 | .event_map = &armv6_perf_map, | ||
| 651 | .raw_event_mask = 0xFF, | ||
| 652 | .num_events = 3, | 678 | .num_events = 3, |
| 653 | .max_period = (1LLU << 32) - 1, | 679 | .max_period = (1LLU << 32) - 1, |
| 654 | }; | 680 | }; |
| 655 | 681 | ||
| 656 | static const struct arm_pmu *__init armv6pmu_init(void) | 682 | static struct arm_pmu *__init armv6pmu_init(void) |
| 657 | { | 683 | { |
| 658 | return &armv6pmu; | 684 | return &armv6pmu; |
| 659 | } | 685 | } |
| @@ -665,7 +691,14 @@ static const struct arm_pmu *__init armv6pmu_init(void) | |||
| 665 | * disable the interrupt reporting and update the event. When unthrottling we | 691 | * disable the interrupt reporting and update the event. When unthrottling we |
| 666 | * reset the period and enable the interrupt reporting. | 692 | * reset the period and enable the interrupt reporting. |
| 667 | */ | 693 | */ |
| 668 | static const struct arm_pmu armv6mpcore_pmu = { | 694 | |
| 695 | static int armv6mpcore_map_event(struct perf_event *event) | ||
| 696 | { | ||
| 697 | return map_cpu_event(event, &armv6mpcore_perf_map, | ||
| 698 | &armv6mpcore_perf_cache_map, 0xFF); | ||
| 699 | } | ||
| 700 | |||
| 701 | static struct arm_pmu armv6mpcore_pmu = { | ||
| 669 | .id = ARM_PERF_PMU_ID_V6MP, | 702 | .id = ARM_PERF_PMU_ID_V6MP, |
| 670 | .name = "v6mpcore", | 703 | .name = "v6mpcore", |
| 671 | .handle_irq = armv6pmu_handle_irq, | 704 | .handle_irq = armv6pmu_handle_irq, |
| @@ -676,24 +709,22 @@ static const struct arm_pmu armv6mpcore_pmu = { | |||
| 676 | .get_event_idx = armv6pmu_get_event_idx, | 709 | .get_event_idx = armv6pmu_get_event_idx, |
| 677 | .start = armv6pmu_start, | 710 | .start = armv6pmu_start, |
| 678 | .stop = armv6pmu_stop, | 711 | .stop = armv6pmu_stop, |
| 679 | .cache_map = &armv6mpcore_perf_cache_map, | 712 | .map_event = armv6mpcore_map_event, |
| 680 | .event_map = &armv6mpcore_perf_map, | ||
| 681 | .raw_event_mask = 0xFF, | ||
| 682 | .num_events = 3, | 713 | .num_events = 3, |
| 683 | .max_period = (1LLU << 32) - 1, | 714 | .max_period = (1LLU << 32) - 1, |
| 684 | }; | 715 | }; |
| 685 | 716 | ||
| 686 | static const struct arm_pmu *__init armv6mpcore_pmu_init(void) | 717 | static struct arm_pmu *__init armv6mpcore_pmu_init(void) |
| 687 | { | 718 | { |
| 688 | return &armv6mpcore_pmu; | 719 | return &armv6mpcore_pmu; |
| 689 | } | 720 | } |
| 690 | #else | 721 | #else |
| 691 | static const struct arm_pmu *__init armv6pmu_init(void) | 722 | static struct arm_pmu *__init armv6pmu_init(void) |
| 692 | { | 723 | { |
| 693 | return NULL; | 724 | return NULL; |
| 694 | } | 725 | } |
| 695 | 726 | ||
| 696 | static const struct arm_pmu *__init armv6mpcore_pmu_init(void) | 727 | static struct arm_pmu *__init armv6mpcore_pmu_init(void) |
| 697 | { | 728 | { |
| 698 | return NULL; | 729 | return NULL; |
| 699 | } | 730 | } |
diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index 4c851834f68e..98b75738345e 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel/perf_event_v7.c | |||
| @@ -17,6 +17,9 @@ | |||
| 17 | */ | 17 | */ |
| 18 | 18 | ||
| 19 | #ifdef CONFIG_CPU_V7 | 19 | #ifdef CONFIG_CPU_V7 |
| 20 | |||
| 21 | static struct arm_pmu armv7pmu; | ||
| 22 | |||
| 20 | /* | 23 | /* |
| 21 | * Common ARMv7 event types | 24 | * Common ARMv7 event types |
| 22 | * | 25 | * |
| @@ -676,23 +679,24 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] | |||
| 676 | }; | 679 | }; |
| 677 | 680 | ||
| 678 | /* | 681 | /* |
| 679 | * Perf Events counters | 682 | * Perf Events' indices |
| 680 | */ | 683 | */ |
| 681 | enum armv7_counters { | 684 | #define ARMV7_IDX_CYCLE_COUNTER 0 |
| 682 | ARMV7_CYCLE_COUNTER = 1, /* Cycle counter */ | 685 | #define ARMV7_IDX_COUNTER0 1 |
| 683 | ARMV7_COUNTER0 = 2, /* First event counter */ | 686 | #define ARMV7_IDX_COUNTER_LAST (ARMV7_IDX_CYCLE_COUNTER + cpu_pmu->num_events - 1) |
| 684 | }; | 687 | |
| 688 | #define ARMV7_MAX_COUNTERS 32 | ||
| 689 | #define ARMV7_COUNTER_MASK (ARMV7_MAX_COUNTERS - 1) | ||
| 685 | 690 | ||
| 686 | /* | 691 | /* |
| 687 | * The cycle counter is ARMV7_CYCLE_COUNTER. | 692 | * ARMv7 low level PMNC access |
| 688 | * The first event counter is ARMV7_COUNTER0. | ||
| 689 | * The last event counter is (ARMV7_COUNTER0 + armpmu->num_events - 1). | ||
| 690 | */ | 693 | */ |
| 691 | #define ARMV7_COUNTER_LAST (ARMV7_COUNTER0 + armpmu->num_events - 1) | ||
| 692 | 694 | ||
| 693 | /* | 695 | /* |
| 694 | * ARMv7 low level PMNC access | 696 | * Perf Event to low level counters mapping |
| 695 | */ | 697 | */ |
| 698 | #define ARMV7_IDX_TO_COUNTER(x) \ | ||
| 699 | (((x) - ARMV7_IDX_COUNTER0) & ARMV7_COUNTER_MASK) | ||
| 696 | 700 | ||
| 697 | /* | 701 | /* |
| 698 | * Per-CPU PMNC: config reg | 702 | * Per-CPU PMNC: config reg |
| @@ -708,103 +712,76 @@ enum armv7_counters { | |||
| 708 | #define ARMV7_PMNC_MASK 0x3f /* Mask for writable bits */ | 712 | #define ARMV7_PMNC_MASK 0x3f /* Mask for writable bits */ |
| 709 | 713 | ||
| 710 | /* | 714 | /* |
| 711 | * Available counters | 715 | * FLAG: counters overflow flag status reg |
| 712 | */ | ||
| 713 | #define ARMV7_CNT0 0 /* First event counter */ | ||
| 714 | #define ARMV7_CCNT 31 /* Cycle counter */ | ||
| 715 | |||
| 716 | /* Perf Event to low level counters mapping */ | ||
| 717 | #define ARMV7_EVENT_CNT_TO_CNTx (ARMV7_COUNTER0 - ARMV7_CNT0) | ||
| 718 | |||
| 719 | /* | ||
| 720 | * CNTENS: counters enable reg | ||
| 721 | */ | ||
| 722 | #define ARMV7_CNTENS_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
| 723 | #define ARMV7_CNTENS_C (1 << ARMV7_CCNT) | ||
| 724 | |||
| 725 | /* | ||
| 726 | * CNTENC: counters disable reg | ||
| 727 | */ | ||
| 728 | #define ARMV7_CNTENC_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
| 729 | #define ARMV7_CNTENC_C (1 << ARMV7_CCNT) | ||
| 730 | |||
| 731 | /* | ||
| 732 | * INTENS: counters overflow interrupt enable reg | ||
| 733 | */ | ||
| 734 | #define ARMV7_INTENS_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
| 735 | #define ARMV7_INTENS_C (1 << ARMV7_CCNT) | ||
| 736 | |||
| 737 | /* | ||
| 738 | * INTENC: counters overflow interrupt disable reg | ||
| 739 | */ | ||
| 740 | #define ARMV7_INTENC_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
| 741 | #define ARMV7_INTENC_C (1 << ARMV7_CCNT) | ||
| 742 | |||
| 743 | /* | ||
| 744 | * EVTSEL: Event selection reg | ||
| 745 | */ | 716 | */ |
| 746 | #define ARMV7_EVTSEL_MASK 0xff /* Mask for writable bits */ | 717 | #define ARMV7_FLAG_MASK 0xffffffff /* Mask for writable bits */ |
| 718 | #define ARMV7_OVERFLOWED_MASK ARMV7_FLAG_MASK | ||
| 747 | 719 | ||
| 748 | /* | 720 | /* |
| 749 | * SELECT: Counter selection reg | 721 | * PMXEVTYPER: Event selection reg |
| 750 | */ | 722 | */ |
| 751 | #define ARMV7_SELECT_MASK 0x1f /* Mask for writable bits */ | 723 | #define ARMV7_EVTYPE_MASK 0xc00000ff /* Mask for writable bits */ |
| 724 | #define ARMV7_EVTYPE_EVENT 0xff /* Mask for EVENT bits */ | ||
| 752 | 725 | ||
| 753 | /* | 726 | /* |
| 754 | * FLAG: counters overflow flag status reg | 727 | * Event filters for PMUv2 |
| 755 | */ | 728 | */ |
| 756 | #define ARMV7_FLAG_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | 729 | #define ARMV7_EXCLUDE_PL1 (1 << 31) |
| 757 | #define ARMV7_FLAG_C (1 << ARMV7_CCNT) | 730 | #define ARMV7_EXCLUDE_USER (1 << 30) |
| 758 | #define ARMV7_FLAG_MASK 0xffffffff /* Mask for writable bits */ | 731 | #define ARMV7_INCLUDE_HYP (1 << 27) |
| 759 | #define ARMV7_OVERFLOWED_MASK ARMV7_FLAG_MASK | ||
| 760 | 732 | ||
| 761 | static inline unsigned long armv7_pmnc_read(void) | 733 | static inline u32 armv7_pmnc_read(void) |
| 762 | { | 734 | { |
| 763 | u32 val; | 735 | u32 val; |
| 764 | asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(val)); | 736 | asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(val)); |
| 765 | return val; | 737 | return val; |
| 766 | } | 738 | } |
| 767 | 739 | ||
| 768 | static inline void armv7_pmnc_write(unsigned long val) | 740 | static inline void armv7_pmnc_write(u32 val) |
| 769 | { | 741 | { |
| 770 | val &= ARMV7_PMNC_MASK; | 742 | val &= ARMV7_PMNC_MASK; |
| 771 | isb(); | 743 | isb(); |
| 772 | asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r"(val)); | 744 | asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r"(val)); |
| 773 | } | 745 | } |
| 774 | 746 | ||
| 775 | static inline int armv7_pmnc_has_overflowed(unsigned long pmnc) | 747 | static inline int armv7_pmnc_has_overflowed(u32 pmnc) |
| 776 | { | 748 | { |
| 777 | return pmnc & ARMV7_OVERFLOWED_MASK; | 749 | return pmnc & ARMV7_OVERFLOWED_MASK; |
| 778 | } | 750 | } |
| 779 | 751 | ||
| 780 | static inline int armv7_pmnc_counter_has_overflowed(unsigned long pmnc, | 752 | static inline int armv7_pmnc_counter_valid(int idx) |
| 781 | enum armv7_counters counter) | 753 | { |
| 754 | return idx >= ARMV7_IDX_CYCLE_COUNTER && idx <= ARMV7_IDX_COUNTER_LAST; | ||
| 755 | } | ||
| 756 | |||
| 757 | static inline int armv7_pmnc_counter_has_overflowed(u32 pmnc, int idx) | ||
| 782 | { | 758 | { |
| 783 | int ret = 0; | 759 | int ret = 0; |
| 760 | u32 counter; | ||
| 784 | 761 | ||
| 785 | if (counter == ARMV7_CYCLE_COUNTER) | 762 | if (!armv7_pmnc_counter_valid(idx)) { |
| 786 | ret = pmnc & ARMV7_FLAG_C; | ||
| 787 | else if ((counter >= ARMV7_COUNTER0) && (counter <= ARMV7_COUNTER_LAST)) | ||
| 788 | ret = pmnc & ARMV7_FLAG_P(counter); | ||
| 789 | else | ||
| 790 | pr_err("CPU%u checking wrong counter %d overflow status\n", | 763 | pr_err("CPU%u checking wrong counter %d overflow status\n", |
| 791 | smp_processor_id(), counter); | 764 | smp_processor_id(), idx); |
| 765 | } else { | ||
| 766 | counter = ARMV7_IDX_TO_COUNTER(idx); | ||
| 767 | ret = pmnc & BIT(counter); | ||
| 768 | } | ||
| 792 | 769 | ||
| 793 | return ret; | 770 | return ret; |
| 794 | } | 771 | } |
| 795 | 772 | ||
| 796 | static inline int armv7_pmnc_select_counter(unsigned int idx) | 773 | static inline int armv7_pmnc_select_counter(int idx) |
| 797 | { | 774 | { |
| 798 | u32 val; | 775 | u32 counter; |
| 799 | 776 | ||
| 800 | if ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST)) { | 777 | if (!armv7_pmnc_counter_valid(idx)) { |
| 801 | pr_err("CPU%u selecting wrong PMNC counter" | 778 | pr_err("CPU%u selecting wrong PMNC counter %d\n", |
| 802 | " %d\n", smp_processor_id(), idx); | 779 | smp_processor_id(), idx); |
| 803 | return -1; | 780 | return -EINVAL; |
| 804 | } | 781 | } |
| 805 | 782 | ||
| 806 | val = (idx - ARMV7_EVENT_CNT_TO_CNTx) & ARMV7_SELECT_MASK; | 783 | counter = ARMV7_IDX_TO_COUNTER(idx); |
| 807 | asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (val)); | 784 | asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (counter)); |
| 808 | isb(); | 785 | isb(); |
| 809 | 786 | ||
| 810 | return idx; | 787 | return idx; |
| @@ -812,124 +789,95 @@ static inline int armv7_pmnc_select_counter(unsigned int idx) | |||
| 812 | 789 | ||
| 813 | static inline u32 armv7pmu_read_counter(int idx) | 790 | static inline u32 armv7pmu_read_counter(int idx) |
| 814 | { | 791 | { |
| 815 | unsigned long value = 0; | 792 | u32 value = 0; |
| 816 | 793 | ||
| 817 | if (idx == ARMV7_CYCLE_COUNTER) | 794 | if (!armv7_pmnc_counter_valid(idx)) |
| 818 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (value)); | ||
| 819 | else if ((idx >= ARMV7_COUNTER0) && (idx <= ARMV7_COUNTER_LAST)) { | ||
| 820 | if (armv7_pmnc_select_counter(idx) == idx) | ||
| 821 | asm volatile("mrc p15, 0, %0, c9, c13, 2" | ||
| 822 | : "=r" (value)); | ||
| 823 | } else | ||
| 824 | pr_err("CPU%u reading wrong counter %d\n", | 795 | pr_err("CPU%u reading wrong counter %d\n", |
| 825 | smp_processor_id(), idx); | 796 | smp_processor_id(), idx); |
| 797 | else if (idx == ARMV7_IDX_CYCLE_COUNTER) | ||
| 798 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (value)); | ||
| 799 | else if (armv7_pmnc_select_counter(idx) == idx) | ||
| 800 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (value)); | ||
| 826 | 801 | ||
| 827 | return value; | 802 | return value; |
| 828 | } | 803 | } |
| 829 | 804 | ||
| 830 | static inline void armv7pmu_write_counter(int idx, u32 value) | 805 | static inline void armv7pmu_write_counter(int idx, u32 value) |
| 831 | { | 806 | { |
| 832 | if (idx == ARMV7_CYCLE_COUNTER) | 807 | if (!armv7_pmnc_counter_valid(idx)) |
| 833 | asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value)); | ||
| 834 | else if ((idx >= ARMV7_COUNTER0) && (idx <= ARMV7_COUNTER_LAST)) { | ||
| 835 | if (armv7_pmnc_select_counter(idx) == idx) | ||
| 836 | asm volatile("mcr p15, 0, %0, c9, c13, 2" | ||
| 837 | : : "r" (value)); | ||
| 838 | } else | ||
| 839 | pr_err("CPU%u writing wrong counter %d\n", | 808 | pr_err("CPU%u writing wrong counter %d\n", |
| 840 | smp_processor_id(), idx); | 809 | smp_processor_id(), idx); |
| 810 | else if (idx == ARMV7_IDX_CYCLE_COUNTER) | ||
| 811 | asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value)); | ||
| 812 | else if (armv7_pmnc_select_counter(idx) == idx) | ||
| 813 | asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (value)); | ||
| 841 | } | 814 | } |
| 842 | 815 | ||
| 843 | static inline void armv7_pmnc_write_evtsel(unsigned int idx, u32 val) | 816 | static inline void armv7_pmnc_write_evtsel(int idx, u32 val) |
| 844 | { | 817 | { |
| 845 | if (armv7_pmnc_select_counter(idx) == idx) { | 818 | if (armv7_pmnc_select_counter(idx) == idx) { |
| 846 | val &= ARMV7_EVTSEL_MASK; | 819 | val &= ARMV7_EVTYPE_MASK; |
| 847 | asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val)); | 820 | asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val)); |
| 848 | } | 821 | } |
| 849 | } | 822 | } |
| 850 | 823 | ||
| 851 | static inline u32 armv7_pmnc_enable_counter(unsigned int idx) | 824 | static inline int armv7_pmnc_enable_counter(int idx) |
| 852 | { | 825 | { |
| 853 | u32 val; | 826 | u32 counter; |
| 854 | 827 | ||
| 855 | if ((idx != ARMV7_CYCLE_COUNTER) && | 828 | if (!armv7_pmnc_counter_valid(idx)) { |
| 856 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 829 | pr_err("CPU%u enabling wrong PMNC counter %d\n", |
| 857 | pr_err("CPU%u enabling wrong PMNC counter" | 830 | smp_processor_id(), idx); |
| 858 | " %d\n", smp_processor_id(), idx); | 831 | return -EINVAL; |
| 859 | return -1; | ||
| 860 | } | 832 | } |
| 861 | 833 | ||
| 862 | if (idx == ARMV7_CYCLE_COUNTER) | 834 | counter = ARMV7_IDX_TO_COUNTER(idx); |
| 863 | val = ARMV7_CNTENS_C; | 835 | asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (BIT(counter))); |
| 864 | else | ||
| 865 | val = ARMV7_CNTENS_P(idx); | ||
| 866 | |||
| 867 | asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (val)); | ||
| 868 | |||
| 869 | return idx; | 836 | return idx; |
| 870 | } | 837 | } |
| 871 | 838 | ||
| 872 | static inline u32 armv7_pmnc_disable_counter(unsigned int idx) | 839 | static inline int armv7_pmnc_disable_counter(int idx) |
| 873 | { | 840 | { |
| 874 | u32 val; | 841 | u32 counter; |
| 875 | |||
| 876 | 842 | ||
| 877 | if ((idx != ARMV7_CYCLE_COUNTER) && | 843 | if (!armv7_pmnc_counter_valid(idx)) { |
| 878 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 844 | pr_err("CPU%u disabling wrong PMNC counter %d\n", |
| 879 | pr_err("CPU%u disabling wrong PMNC counter" | 845 | smp_processor_id(), idx); |
| 880 | " %d\n", smp_processor_id(), idx); | 846 | return -EINVAL; |
| 881 | return -1; | ||
| 882 | } | 847 | } |
| 883 | 848 | ||
| 884 | if (idx == ARMV7_CYCLE_COUNTER) | 849 | counter = ARMV7_IDX_TO_COUNTER(idx); |
| 885 | val = ARMV7_CNTENC_C; | 850 | asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (BIT(counter))); |
| 886 | else | ||
| 887 | val = ARMV7_CNTENC_P(idx); | ||
| 888 | |||
| 889 | asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (val)); | ||
| 890 | |||
| 891 | return idx; | 851 | return idx; |
| 892 | } | 852 | } |
| 893 | 853 | ||
| 894 | static inline u32 armv7_pmnc_enable_intens(unsigned int idx) | 854 | static inline int armv7_pmnc_enable_intens(int idx) |
| 895 | { | 855 | { |
| 896 | u32 val; | 856 | u32 counter; |
| 897 | 857 | ||
| 898 | if ((idx != ARMV7_CYCLE_COUNTER) && | 858 | if (!armv7_pmnc_counter_valid(idx)) { |
| 899 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 859 | pr_err("CPU%u enabling wrong PMNC counter IRQ enable %d\n", |
| 900 | pr_err("CPU%u enabling wrong PMNC counter" | 860 | smp_processor_id(), idx); |
| 901 | " interrupt enable %d\n", smp_processor_id(), idx); | 861 | return -EINVAL; |
| 902 | return -1; | ||
| 903 | } | 862 | } |
| 904 | 863 | ||
| 905 | if (idx == ARMV7_CYCLE_COUNTER) | 864 | counter = ARMV7_IDX_TO_COUNTER(idx); |
| 906 | val = ARMV7_INTENS_C; | 865 | asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (BIT(counter))); |
| 907 | else | ||
| 908 | val = ARMV7_INTENS_P(idx); | ||
| 909 | |||
| 910 | asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (val)); | ||
| 911 | |||
| 912 | return idx; | 866 | return idx; |
| 913 | } | 867 | } |
| 914 | 868 | ||
| 915 | static inline u32 armv7_pmnc_disable_intens(unsigned int idx) | 869 | static inline int armv7_pmnc_disable_intens(int idx) |
| 916 | { | 870 | { |
| 917 | u32 val; | 871 | u32 counter; |
| 918 | 872 | ||
| 919 | if ((idx != ARMV7_CYCLE_COUNTER) && | 873 | if (!armv7_pmnc_counter_valid(idx)) { |
| 920 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 874 | pr_err("CPU%u disabling wrong PMNC counter IRQ enable %d\n", |
| 921 | pr_err("CPU%u disabling wrong PMNC counter" | 875 | smp_processor_id(), idx); |
| 922 | " interrupt enable %d\n", smp_processor_id(), idx); | 876 | return -EINVAL; |
| 923 | return -1; | ||
| 924 | } | 877 | } |
| 925 | 878 | ||
| 926 | if (idx == ARMV7_CYCLE_COUNTER) | 879 | counter = ARMV7_IDX_TO_COUNTER(idx); |
| 927 | val = ARMV7_INTENC_C; | 880 | asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (BIT(counter))); |
| 928 | else | ||
| 929 | val = ARMV7_INTENC_P(idx); | ||
| 930 | |||
| 931 | asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (val)); | ||
| 932 | |||
| 933 | return idx; | 881 | return idx; |
| 934 | } | 882 | } |
| 935 | 883 | ||
| @@ -973,14 +921,14 @@ static void armv7_pmnc_dump_regs(void) | |||
| 973 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val)); | 921 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val)); |
| 974 | printk(KERN_INFO "CCNT =0x%08x\n", val); | 922 | printk(KERN_INFO "CCNT =0x%08x\n", val); |
| 975 | 923 | ||
| 976 | for (cnt = ARMV7_COUNTER0; cnt < ARMV7_COUNTER_LAST; cnt++) { | 924 | for (cnt = ARMV7_IDX_COUNTER0; cnt <= ARMV7_IDX_COUNTER_LAST; cnt++) { |
| 977 | armv7_pmnc_select_counter(cnt); | 925 | armv7_pmnc_select_counter(cnt); |
| 978 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val)); | 926 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val)); |
| 979 | printk(KERN_INFO "CNT[%d] count =0x%08x\n", | 927 | printk(KERN_INFO "CNT[%d] count =0x%08x\n", |
| 980 | cnt-ARMV7_EVENT_CNT_TO_CNTx, val); | 928 | ARMV7_IDX_TO_COUNTER(cnt), val); |
| 981 | asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val)); | 929 | asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val)); |
| 982 | printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", | 930 | printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", |
| 983 | cnt-ARMV7_EVENT_CNT_TO_CNTx, val); | 931 | ARMV7_IDX_TO_COUNTER(cnt), val); |
| 984 | } | 932 | } |
| 985 | } | 933 | } |
| 986 | #endif | 934 | #endif |
| @@ -988,12 +936,13 @@ static void armv7_pmnc_dump_regs(void) | |||
| 988 | static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) | 936 | static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) |
| 989 | { | 937 | { |
| 990 | unsigned long flags; | 938 | unsigned long flags; |
| 939 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 991 | 940 | ||
| 992 | /* | 941 | /* |
| 993 | * Enable counter and interrupt, and set the counter to count | 942 | * Enable counter and interrupt, and set the counter to count |
| 994 | * the event that we're interested in. | 943 | * the event that we're interested in. |
| 995 | */ | 944 | */ |
| 996 | raw_spin_lock_irqsave(&pmu_lock, flags); | 945 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 997 | 946 | ||
| 998 | /* | 947 | /* |
| 999 | * Disable counter | 948 | * Disable counter |
| @@ -1002,9 +951,10 @@ static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
| 1002 | 951 | ||
| 1003 | /* | 952 | /* |
| 1004 | * Set event (if destined for PMNx counters) | 953 | * Set event (if destined for PMNx counters) |
| 1005 | * We don't need to set the event if it's a cycle count | 954 | * We only need to set the event for the cycle counter if we |
| 955 | * have the ability to perform event filtering. | ||
| 1006 | */ | 956 | */ |
| 1007 | if (idx != ARMV7_CYCLE_COUNTER) | 957 | if (armv7pmu.set_event_filter || idx != ARMV7_IDX_CYCLE_COUNTER) |
| 1008 | armv7_pmnc_write_evtsel(idx, hwc->config_base); | 958 | armv7_pmnc_write_evtsel(idx, hwc->config_base); |
| 1009 | 959 | ||
| 1010 | /* | 960 | /* |
| @@ -1017,17 +967,18 @@ static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
| 1017 | */ | 967 | */ |
| 1018 | armv7_pmnc_enable_counter(idx); | 968 | armv7_pmnc_enable_counter(idx); |
| 1019 | 969 | ||
| 1020 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 970 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 1021 | } | 971 | } |
| 1022 | 972 | ||
| 1023 | static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx) | 973 | static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx) |
| 1024 | { | 974 | { |
| 1025 | unsigned long flags; | 975 | unsigned long flags; |
| 976 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 1026 | 977 | ||
| 1027 | /* | 978 | /* |
| 1028 | * Disable counter and interrupt | 979 | * Disable counter and interrupt |
| 1029 | */ | 980 | */ |
| 1030 | raw_spin_lock_irqsave(&pmu_lock, flags); | 981 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 1031 | 982 | ||
| 1032 | /* | 983 | /* |
| 1033 | * Disable counter | 984 | * Disable counter |
| @@ -1039,14 +990,14 @@ static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx) | |||
| 1039 | */ | 990 | */ |
| 1040 | armv7_pmnc_disable_intens(idx); | 991 | armv7_pmnc_disable_intens(idx); |
| 1041 | 992 | ||
| 1042 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 993 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 1043 | } | 994 | } |
| 1044 | 995 | ||
| 1045 | static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | 996 | static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) |
| 1046 | { | 997 | { |
| 1047 | unsigned long pmnc; | 998 | u32 pmnc; |
| 1048 | struct perf_sample_data data; | 999 | struct perf_sample_data data; |
| 1049 | struct cpu_hw_events *cpuc; | 1000 | struct pmu_hw_events *cpuc; |
| 1050 | struct pt_regs *regs; | 1001 | struct pt_regs *regs; |
| 1051 | int idx; | 1002 | int idx; |
| 1052 | 1003 | ||
| @@ -1069,13 +1020,10 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
| 1069 | perf_sample_data_init(&data, 0); | 1020 | perf_sample_data_init(&data, 0); |
| 1070 | 1021 | ||
| 1071 | cpuc = &__get_cpu_var(cpu_hw_events); | 1022 | cpuc = &__get_cpu_var(cpu_hw_events); |
| 1072 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 1023 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
| 1073 | struct perf_event *event = cpuc->events[idx]; | 1024 | struct perf_event *event = cpuc->events[idx]; |
| 1074 | struct hw_perf_event *hwc; | 1025 | struct hw_perf_event *hwc; |
| 1075 | 1026 | ||
| 1076 | if (!test_bit(idx, cpuc->active_mask)) | ||
| 1077 | continue; | ||
| 1078 | |||
| 1079 | /* | 1027 | /* |
| 1080 | * We have a single interrupt for all counters. Check that | 1028 | * We have a single interrupt for all counters. Check that |
| 1081 | * each counter has overflowed before we process it. | 1029 | * each counter has overflowed before we process it. |
| @@ -1090,7 +1038,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
| 1090 | continue; | 1038 | continue; |
| 1091 | 1039 | ||
| 1092 | if (perf_event_overflow(event, &data, regs)) | 1040 | if (perf_event_overflow(event, &data, regs)) |
| 1093 | armpmu->disable(hwc, idx); | 1041 | cpu_pmu->disable(hwc, idx); |
| 1094 | } | 1042 | } |
| 1095 | 1043 | ||
| 1096 | /* | 1044 | /* |
| @@ -1108,61 +1056,114 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
| 1108 | static void armv7pmu_start(void) | 1056 | static void armv7pmu_start(void) |
| 1109 | { | 1057 | { |
| 1110 | unsigned long flags; | 1058 | unsigned long flags; |
| 1059 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 1111 | 1060 | ||
| 1112 | raw_spin_lock_irqsave(&pmu_lock, flags); | 1061 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 1113 | /* Enable all counters */ | 1062 | /* Enable all counters */ |
| 1114 | armv7_pmnc_write(armv7_pmnc_read() | ARMV7_PMNC_E); | 1063 | armv7_pmnc_write(armv7_pmnc_read() | ARMV7_PMNC_E); |
| 1115 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 1064 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 1116 | } | 1065 | } |
| 1117 | 1066 | ||
| 1118 | static void armv7pmu_stop(void) | 1067 | static void armv7pmu_stop(void) |
| 1119 | { | 1068 | { |
| 1120 | unsigned long flags; | 1069 | unsigned long flags; |
| 1070 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 1121 | 1071 | ||
| 1122 | raw_spin_lock_irqsave(&pmu_lock, flags); | 1072 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 1123 | /* Disable all counters */ | 1073 | /* Disable all counters */ |
| 1124 | armv7_pmnc_write(armv7_pmnc_read() & ~ARMV7_PMNC_E); | 1074 | armv7_pmnc_write(armv7_pmnc_read() & ~ARMV7_PMNC_E); |
| 1125 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 1075 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 1126 | } | 1076 | } |
| 1127 | 1077 | ||
| 1128 | static int armv7pmu_get_event_idx(struct cpu_hw_events *cpuc, | 1078 | static int armv7pmu_get_event_idx(struct pmu_hw_events *cpuc, |
| 1129 | struct hw_perf_event *event) | 1079 | struct hw_perf_event *event) |
| 1130 | { | 1080 | { |
| 1131 | int idx; | 1081 | int idx; |
| 1082 | unsigned long evtype = event->config_base & ARMV7_EVTYPE_EVENT; | ||
| 1132 | 1083 | ||
| 1133 | /* Always place a cycle counter into the cycle counter. */ | 1084 | /* Always place a cycle counter into the cycle counter. */ |
| 1134 | if (event->config_base == ARMV7_PERFCTR_CPU_CYCLES) { | 1085 | if (evtype == ARMV7_PERFCTR_CPU_CYCLES) { |
| 1135 | if (test_and_set_bit(ARMV7_CYCLE_COUNTER, cpuc->used_mask)) | 1086 | if (test_and_set_bit(ARMV7_IDX_CYCLE_COUNTER, cpuc->used_mask)) |
| 1136 | return -EAGAIN; | 1087 | return -EAGAIN; |
| 1137 | 1088 | ||
| 1138 | return ARMV7_CYCLE_COUNTER; | 1089 | return ARMV7_IDX_CYCLE_COUNTER; |
| 1139 | } else { | 1090 | } |
| 1140 | /* | ||
| 1141 | * For anything other than a cycle counter, try and use | ||
| 1142 | * the events counters | ||
| 1143 | */ | ||
| 1144 | for (idx = ARMV7_COUNTER0; idx <= armpmu->num_events; ++idx) { | ||
| 1145 | if (!test_and_set_bit(idx, cpuc->used_mask)) | ||
| 1146 | return idx; | ||
| 1147 | } | ||
| 1148 | 1091 | ||
| 1149 | /* The counters are all in use. */ | 1092 | /* |
| 1150 | return -EAGAIN; | 1093 | * For anything other than a cycle counter, try and use |
| 1094 | * the events counters | ||
| 1095 | */ | ||
| 1096 | for (idx = ARMV7_IDX_COUNTER0; idx < cpu_pmu->num_events; ++idx) { | ||
| 1097 | if (!test_and_set_bit(idx, cpuc->used_mask)) | ||
| 1098 | return idx; | ||
| 1151 | } | 1099 | } |
| 1100 | |||
| 1101 | /* The counters are all in use. */ | ||
| 1102 | return -EAGAIN; | ||
| 1103 | } | ||
| 1104 | |||
| 1105 | /* | ||
| 1106 | * Add an event filter to a given event. This will only work for PMUv2 PMUs. | ||
| 1107 | */ | ||
| 1108 | static int armv7pmu_set_event_filter(struct hw_perf_event *event, | ||
| 1109 | struct perf_event_attr *attr) | ||
| 1110 | { | ||
| 1111 | unsigned long config_base = 0; | ||
| 1112 | |||
| 1113 | if (attr->exclude_idle) | ||
| 1114 | return -EPERM; | ||
| 1115 | if (attr->exclude_user) | ||
| 1116 | config_base |= ARMV7_EXCLUDE_USER; | ||
| 1117 | if (attr->exclude_kernel) | ||
| 1118 | config_base |= ARMV7_EXCLUDE_PL1; | ||
| 1119 | if (!attr->exclude_hv) | ||
| 1120 | config_base |= ARMV7_INCLUDE_HYP; | ||
| 1121 | |||
| 1122 | /* | ||
| 1123 | * Install the filter into config_base as this is used to | ||
| 1124 | * construct the event type. | ||
| 1125 | */ | ||
| 1126 | event->config_base = config_base; | ||
| 1127 | |||
| 1128 | return 0; | ||
| 1152 | } | 1129 | } |
| 1153 | 1130 | ||
| 1154 | static void armv7pmu_reset(void *info) | 1131 | static void armv7pmu_reset(void *info) |
| 1155 | { | 1132 | { |
| 1156 | u32 idx, nb_cnt = armpmu->num_events; | 1133 | u32 idx, nb_cnt = cpu_pmu->num_events; |
| 1157 | 1134 | ||
| 1158 | /* The counter and interrupt enable registers are unknown at reset. */ | 1135 | /* The counter and interrupt enable registers are unknown at reset. */ |
| 1159 | for (idx = 1; idx < nb_cnt; ++idx) | 1136 | for (idx = ARMV7_IDX_CYCLE_COUNTER; idx < nb_cnt; ++idx) |
| 1160 | armv7pmu_disable_event(NULL, idx); | 1137 | armv7pmu_disable_event(NULL, idx); |
| 1161 | 1138 | ||
| 1162 | /* Initialize & Reset PMNC: C and P bits */ | 1139 | /* Initialize & Reset PMNC: C and P bits */ |
| 1163 | armv7_pmnc_write(ARMV7_PMNC_P | ARMV7_PMNC_C); | 1140 | armv7_pmnc_write(ARMV7_PMNC_P | ARMV7_PMNC_C); |
| 1164 | } | 1141 | } |
| 1165 | 1142 | ||
| 1143 | static int armv7_a8_map_event(struct perf_event *event) | ||
| 1144 | { | ||
| 1145 | return map_cpu_event(event, &armv7_a8_perf_map, | ||
| 1146 | &armv7_a8_perf_cache_map, 0xFF); | ||
| 1147 | } | ||
| 1148 | |||
| 1149 | static int armv7_a9_map_event(struct perf_event *event) | ||
| 1150 | { | ||
| 1151 | return map_cpu_event(event, &armv7_a9_perf_map, | ||
| 1152 | &armv7_a9_perf_cache_map, 0xFF); | ||
| 1153 | } | ||
| 1154 | |||
| 1155 | static int armv7_a5_map_event(struct perf_event *event) | ||
| 1156 | { | ||
| 1157 | return map_cpu_event(event, &armv7_a5_perf_map, | ||
| 1158 | &armv7_a5_perf_cache_map, 0xFF); | ||
| 1159 | } | ||
| 1160 | |||
| 1161 | static int armv7_a15_map_event(struct perf_event *event) | ||
| 1162 | { | ||
| 1163 | return map_cpu_event(event, &armv7_a15_perf_map, | ||
| 1164 | &armv7_a15_perf_cache_map, 0xFF); | ||
| 1165 | } | ||
| 1166 | |||
| 1166 | static struct arm_pmu armv7pmu = { | 1167 | static struct arm_pmu armv7pmu = { |
| 1167 | .handle_irq = armv7pmu_handle_irq, | 1168 | .handle_irq = armv7pmu_handle_irq, |
| 1168 | .enable = armv7pmu_enable_event, | 1169 | .enable = armv7pmu_enable_event, |
| @@ -1173,7 +1174,6 @@ static struct arm_pmu armv7pmu = { | |||
| 1173 | .start = armv7pmu_start, | 1174 | .start = armv7pmu_start, |
| 1174 | .stop = armv7pmu_stop, | 1175 | .stop = armv7pmu_stop, |
| 1175 | .reset = armv7pmu_reset, | 1176 | .reset = armv7pmu_reset, |
| 1176 | .raw_event_mask = 0xFF, | ||
| 1177 | .max_period = (1LLU << 32) - 1, | 1177 | .max_period = (1LLU << 32) - 1, |
| 1178 | }; | 1178 | }; |
| 1179 | 1179 | ||
| @@ -1188,62 +1188,59 @@ static u32 __init armv7_read_num_pmnc_events(void) | |||
| 1188 | return nb_cnt + 1; | 1188 | return nb_cnt + 1; |
| 1189 | } | 1189 | } |
| 1190 | 1190 | ||
| 1191 | static const struct arm_pmu *__init armv7_a8_pmu_init(void) | 1191 | static struct arm_pmu *__init armv7_a8_pmu_init(void) |
| 1192 | { | 1192 | { |
| 1193 | armv7pmu.id = ARM_PERF_PMU_ID_CA8; | 1193 | armv7pmu.id = ARM_PERF_PMU_ID_CA8; |
| 1194 | armv7pmu.name = "ARMv7 Cortex-A8"; | 1194 | armv7pmu.name = "ARMv7 Cortex-A8"; |
| 1195 | armv7pmu.cache_map = &armv7_a8_perf_cache_map; | 1195 | armv7pmu.map_event = armv7_a8_map_event; |
| 1196 | armv7pmu.event_map = &armv7_a8_perf_map; | ||
| 1197 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1196 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
| 1198 | return &armv7pmu; | 1197 | return &armv7pmu; |
| 1199 | } | 1198 | } |
| 1200 | 1199 | ||
| 1201 | static const struct arm_pmu *__init armv7_a9_pmu_init(void) | 1200 | static struct arm_pmu *__init armv7_a9_pmu_init(void) |
| 1202 | { | 1201 | { |
| 1203 | armv7pmu.id = ARM_PERF_PMU_ID_CA9; | 1202 | armv7pmu.id = ARM_PERF_PMU_ID_CA9; |
| 1204 | armv7pmu.name = "ARMv7 Cortex-A9"; | 1203 | armv7pmu.name = "ARMv7 Cortex-A9"; |
| 1205 | armv7pmu.cache_map = &armv7_a9_perf_cache_map; | 1204 | armv7pmu.map_event = armv7_a9_map_event; |
| 1206 | armv7pmu.event_map = &armv7_a9_perf_map; | ||
| 1207 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1205 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
| 1208 | return &armv7pmu; | 1206 | return &armv7pmu; |
| 1209 | } | 1207 | } |
| 1210 | 1208 | ||
| 1211 | static const struct arm_pmu *__init armv7_a5_pmu_init(void) | 1209 | static struct arm_pmu *__init armv7_a5_pmu_init(void) |
| 1212 | { | 1210 | { |
| 1213 | armv7pmu.id = ARM_PERF_PMU_ID_CA5; | 1211 | armv7pmu.id = ARM_PERF_PMU_ID_CA5; |
| 1214 | armv7pmu.name = "ARMv7 Cortex-A5"; | 1212 | armv7pmu.name = "ARMv7 Cortex-A5"; |
| 1215 | armv7pmu.cache_map = &armv7_a5_perf_cache_map; | 1213 | armv7pmu.map_event = armv7_a5_map_event; |
| 1216 | armv7pmu.event_map = &armv7_a5_perf_map; | ||
| 1217 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1214 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
| 1218 | return &armv7pmu; | 1215 | return &armv7pmu; |
| 1219 | } | 1216 | } |
| 1220 | 1217 | ||
| 1221 | static const struct arm_pmu *__init armv7_a15_pmu_init(void) | 1218 | static struct arm_pmu *__init armv7_a15_pmu_init(void) |
| 1222 | { | 1219 | { |
| 1223 | armv7pmu.id = ARM_PERF_PMU_ID_CA15; | 1220 | armv7pmu.id = ARM_PERF_PMU_ID_CA15; |
| 1224 | armv7pmu.name = "ARMv7 Cortex-A15"; | 1221 | armv7pmu.name = "ARMv7 Cortex-A15"; |
| 1225 | armv7pmu.cache_map = &armv7_a15_perf_cache_map; | 1222 | armv7pmu.map_event = armv7_a15_map_event; |
| 1226 | armv7pmu.event_map = &armv7_a15_perf_map; | ||
| 1227 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1223 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
| 1224 | armv7pmu.set_event_filter = armv7pmu_set_event_filter; | ||
| 1228 | return &armv7pmu; | 1225 | return &armv7pmu; |
| 1229 | } | 1226 | } |
| 1230 | #else | 1227 | #else |
| 1231 | static const struct arm_pmu *__init armv7_a8_pmu_init(void) | 1228 | static struct arm_pmu *__init armv7_a8_pmu_init(void) |
| 1232 | { | 1229 | { |
| 1233 | return NULL; | 1230 | return NULL; |
| 1234 | } | 1231 | } |
| 1235 | 1232 | ||
| 1236 | static const struct arm_pmu *__init armv7_a9_pmu_init(void) | 1233 | static struct arm_pmu *__init armv7_a9_pmu_init(void) |
| 1237 | { | 1234 | { |
| 1238 | return NULL; | 1235 | return NULL; |
| 1239 | } | 1236 | } |
| 1240 | 1237 | ||
| 1241 | static const struct arm_pmu *__init armv7_a5_pmu_init(void) | 1238 | static struct arm_pmu *__init armv7_a5_pmu_init(void) |
| 1242 | { | 1239 | { |
| 1243 | return NULL; | 1240 | return NULL; |
| 1244 | } | 1241 | } |
| 1245 | 1242 | ||
| 1246 | static const struct arm_pmu *__init armv7_a15_pmu_init(void) | 1243 | static struct arm_pmu *__init armv7_a15_pmu_init(void) |
| 1247 | { | 1244 | { |
| 1248 | return NULL; | 1245 | return NULL; |
| 1249 | } | 1246 | } |
diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c index 3c4397491d08..e0cca10a8411 100644 --- a/arch/arm/kernel/perf_event_xscale.c +++ b/arch/arm/kernel/perf_event_xscale.c | |||
| @@ -40,7 +40,7 @@ enum xscale_perf_types { | |||
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | enum xscale_counters { | 42 | enum xscale_counters { |
| 43 | XSCALE_CYCLE_COUNTER = 1, | 43 | XSCALE_CYCLE_COUNTER = 0, |
| 44 | XSCALE_COUNTER0, | 44 | XSCALE_COUNTER0, |
| 45 | XSCALE_COUNTER1, | 45 | XSCALE_COUNTER1, |
| 46 | XSCALE_COUNTER2, | 46 | XSCALE_COUNTER2, |
| @@ -222,7 +222,7 @@ xscale1pmu_handle_irq(int irq_num, void *dev) | |||
| 222 | { | 222 | { |
| 223 | unsigned long pmnc; | 223 | unsigned long pmnc; |
| 224 | struct perf_sample_data data; | 224 | struct perf_sample_data data; |
| 225 | struct cpu_hw_events *cpuc; | 225 | struct pmu_hw_events *cpuc; |
| 226 | struct pt_regs *regs; | 226 | struct pt_regs *regs; |
| 227 | int idx; | 227 | int idx; |
| 228 | 228 | ||
| @@ -249,13 +249,10 @@ xscale1pmu_handle_irq(int irq_num, void *dev) | |||
| 249 | perf_sample_data_init(&data, 0); | 249 | perf_sample_data_init(&data, 0); |
| 250 | 250 | ||
| 251 | cpuc = &__get_cpu_var(cpu_hw_events); | 251 | cpuc = &__get_cpu_var(cpu_hw_events); |
| 252 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 252 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
| 253 | struct perf_event *event = cpuc->events[idx]; | 253 | struct perf_event *event = cpuc->events[idx]; |
| 254 | struct hw_perf_event *hwc; | 254 | struct hw_perf_event *hwc; |
| 255 | 255 | ||
| 256 | if (!test_bit(idx, cpuc->active_mask)) | ||
| 257 | continue; | ||
| 258 | |||
| 259 | if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx)) | 256 | if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx)) |
| 260 | continue; | 257 | continue; |
| 261 | 258 | ||
| @@ -266,7 +263,7 @@ xscale1pmu_handle_irq(int irq_num, void *dev) | |||
| 266 | continue; | 263 | continue; |
| 267 | 264 | ||
| 268 | if (perf_event_overflow(event, &data, regs)) | 265 | if (perf_event_overflow(event, &data, regs)) |
| 269 | armpmu->disable(hwc, idx); | 266 | cpu_pmu->disable(hwc, idx); |
| 270 | } | 267 | } |
| 271 | 268 | ||
| 272 | irq_work_run(); | 269 | irq_work_run(); |
| @@ -284,6 +281,7 @@ static void | |||
| 284 | xscale1pmu_enable_event(struct hw_perf_event *hwc, int idx) | 281 | xscale1pmu_enable_event(struct hw_perf_event *hwc, int idx) |
| 285 | { | 282 | { |
| 286 | unsigned long val, mask, evt, flags; | 283 | unsigned long val, mask, evt, flags; |
| 284 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 287 | 285 | ||
| 288 | switch (idx) { | 286 | switch (idx) { |
| 289 | case XSCALE_CYCLE_COUNTER: | 287 | case XSCALE_CYCLE_COUNTER: |
| @@ -305,18 +303,19 @@ xscale1pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
| 305 | return; | 303 | return; |
| 306 | } | 304 | } |
| 307 | 305 | ||
| 308 | raw_spin_lock_irqsave(&pmu_lock, flags); | 306 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 309 | val = xscale1pmu_read_pmnc(); | 307 | val = xscale1pmu_read_pmnc(); |
| 310 | val &= ~mask; | 308 | val &= ~mask; |
| 311 | val |= evt; | 309 | val |= evt; |
| 312 | xscale1pmu_write_pmnc(val); | 310 | xscale1pmu_write_pmnc(val); |
| 313 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 311 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 314 | } | 312 | } |
| 315 | 313 | ||
| 316 | static void | 314 | static void |
| 317 | xscale1pmu_disable_event(struct hw_perf_event *hwc, int idx) | 315 | xscale1pmu_disable_event(struct hw_perf_event *hwc, int idx) |
| 318 | { | 316 | { |
| 319 | unsigned long val, mask, evt, flags; | 317 | unsigned long val, mask, evt, flags; |
| 318 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 320 | 319 | ||
| 321 | switch (idx) { | 320 | switch (idx) { |
| 322 | case XSCALE_CYCLE_COUNTER: | 321 | case XSCALE_CYCLE_COUNTER: |
| @@ -336,16 +335,16 @@ xscale1pmu_disable_event(struct hw_perf_event *hwc, int idx) | |||
| 336 | return; | 335 | return; |
| 337 | } | 336 | } |
| 338 | 337 | ||
| 339 | raw_spin_lock_irqsave(&pmu_lock, flags); | 338 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 340 | val = xscale1pmu_read_pmnc(); | 339 | val = xscale1pmu_read_pmnc(); |
| 341 | val &= ~mask; | 340 | val &= ~mask; |
| 342 | val |= evt; | 341 | val |= evt; |
| 343 | xscale1pmu_write_pmnc(val); | 342 | xscale1pmu_write_pmnc(val); |
| 344 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 343 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 345 | } | 344 | } |
| 346 | 345 | ||
| 347 | static int | 346 | static int |
| 348 | xscale1pmu_get_event_idx(struct cpu_hw_events *cpuc, | 347 | xscale1pmu_get_event_idx(struct pmu_hw_events *cpuc, |
| 349 | struct hw_perf_event *event) | 348 | struct hw_perf_event *event) |
| 350 | { | 349 | { |
| 351 | if (XSCALE_PERFCTR_CCNT == event->config_base) { | 350 | if (XSCALE_PERFCTR_CCNT == event->config_base) { |
| @@ -368,24 +367,26 @@ static void | |||
| 368 | xscale1pmu_start(void) | 367 | xscale1pmu_start(void) |
| 369 | { | 368 | { |
| 370 | unsigned long flags, val; | 369 | unsigned long flags, val; |
| 370 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 371 | 371 | ||
| 372 | raw_spin_lock_irqsave(&pmu_lock, flags); | 372 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 373 | val = xscale1pmu_read_pmnc(); | 373 | val = xscale1pmu_read_pmnc(); |
| 374 | val |= XSCALE_PMU_ENABLE; | 374 | val |= XSCALE_PMU_ENABLE; |
| 375 | xscale1pmu_write_pmnc(val); | 375 | xscale1pmu_write_pmnc(val); |
| 376 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 376 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 377 | } | 377 | } |
| 378 | 378 | ||
| 379 | static void | 379 | static void |
| 380 | xscale1pmu_stop(void) | 380 | xscale1pmu_stop(void) |
| 381 | { | 381 | { |
| 382 | unsigned long flags, val; | 382 | unsigned long flags, val; |
| 383 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 383 | 384 | ||
| 384 | raw_spin_lock_irqsave(&pmu_lock, flags); | 385 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 385 | val = xscale1pmu_read_pmnc(); | 386 | val = xscale1pmu_read_pmnc(); |
| 386 | val &= ~XSCALE_PMU_ENABLE; | 387 | val &= ~XSCALE_PMU_ENABLE; |
| 387 | xscale1pmu_write_pmnc(val); | 388 | xscale1pmu_write_pmnc(val); |
| 388 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 389 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 389 | } | 390 | } |
| 390 | 391 | ||
| 391 | static inline u32 | 392 | static inline u32 |
| @@ -424,7 +425,13 @@ xscale1pmu_write_counter(int counter, u32 val) | |||
| 424 | } | 425 | } |
| 425 | } | 426 | } |
| 426 | 427 | ||
| 427 | static const struct arm_pmu xscale1pmu = { | 428 | static int xscale_map_event(struct perf_event *event) |
| 429 | { | ||
| 430 | return map_cpu_event(event, &xscale_perf_map, | ||
| 431 | &xscale_perf_cache_map, 0xFF); | ||
| 432 | } | ||
| 433 | |||
| 434 | static struct arm_pmu xscale1pmu = { | ||
| 428 | .id = ARM_PERF_PMU_ID_XSCALE1, | 435 | .id = ARM_PERF_PMU_ID_XSCALE1, |
| 429 | .name = "xscale1", | 436 | .name = "xscale1", |
| 430 | .handle_irq = xscale1pmu_handle_irq, | 437 | .handle_irq = xscale1pmu_handle_irq, |
| @@ -435,14 +442,12 @@ static const struct arm_pmu xscale1pmu = { | |||
| 435 | .get_event_idx = xscale1pmu_get_event_idx, | 442 | .get_event_idx = xscale1pmu_get_event_idx, |
| 436 | .start = xscale1pmu_start, | 443 | .start = xscale1pmu_start, |
| 437 | .stop = xscale1pmu_stop, | 444 | .stop = xscale1pmu_stop, |
| 438 | .cache_map = &xscale_perf_cache_map, | 445 | .map_event = xscale_map_event, |
| 439 | .event_map = &xscale_perf_map, | ||
| 440 | .raw_event_mask = 0xFF, | ||
| 441 | .num_events = 3, | 446 | .num_events = 3, |
| 442 | .max_period = (1LLU << 32) - 1, | 447 | .max_period = (1LLU << 32) - 1, |
| 443 | }; | 448 | }; |
| 444 | 449 | ||
| 445 | static const struct arm_pmu *__init xscale1pmu_init(void) | 450 | static struct arm_pmu *__init xscale1pmu_init(void) |
| 446 | { | 451 | { |
| 447 | return &xscale1pmu; | 452 | return &xscale1pmu; |
| 448 | } | 453 | } |
| @@ -560,7 +565,7 @@ xscale2pmu_handle_irq(int irq_num, void *dev) | |||
| 560 | { | 565 | { |
| 561 | unsigned long pmnc, of_flags; | 566 | unsigned long pmnc, of_flags; |
| 562 | struct perf_sample_data data; | 567 | struct perf_sample_data data; |
| 563 | struct cpu_hw_events *cpuc; | 568 | struct pmu_hw_events *cpuc; |
| 564 | struct pt_regs *regs; | 569 | struct pt_regs *regs; |
| 565 | int idx; | 570 | int idx; |
| 566 | 571 | ||
| @@ -581,13 +586,10 @@ xscale2pmu_handle_irq(int irq_num, void *dev) | |||
| 581 | perf_sample_data_init(&data, 0); | 586 | perf_sample_data_init(&data, 0); |
| 582 | 587 | ||
| 583 | cpuc = &__get_cpu_var(cpu_hw_events); | 588 | cpuc = &__get_cpu_var(cpu_hw_events); |
| 584 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 589 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
| 585 | struct perf_event *event = cpuc->events[idx]; | 590 | struct perf_event *event = cpuc->events[idx]; |
| 586 | struct hw_perf_event *hwc; | 591 | struct hw_perf_event *hwc; |
| 587 | 592 | ||
| 588 | if (!test_bit(idx, cpuc->active_mask)) | ||
| 589 | continue; | ||
| 590 | |||
| 591 | if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx)) | 593 | if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx)) |
| 592 | continue; | 594 | continue; |
| 593 | 595 | ||
| @@ -598,7 +600,7 @@ xscale2pmu_handle_irq(int irq_num, void *dev) | |||
| 598 | continue; | 600 | continue; |
| 599 | 601 | ||
| 600 | if (perf_event_overflow(event, &data, regs)) | 602 | if (perf_event_overflow(event, &data, regs)) |
| 601 | armpmu->disable(hwc, idx); | 603 | cpu_pmu->disable(hwc, idx); |
| 602 | } | 604 | } |
| 603 | 605 | ||
| 604 | irq_work_run(); | 606 | irq_work_run(); |
| @@ -616,6 +618,7 @@ static void | |||
| 616 | xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) | 618 | xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) |
| 617 | { | 619 | { |
| 618 | unsigned long flags, ien, evtsel; | 620 | unsigned long flags, ien, evtsel; |
| 621 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 619 | 622 | ||
| 620 | ien = xscale2pmu_read_int_enable(); | 623 | ien = xscale2pmu_read_int_enable(); |
| 621 | evtsel = xscale2pmu_read_event_select(); | 624 | evtsel = xscale2pmu_read_event_select(); |
| @@ -649,16 +652,17 @@ xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
| 649 | return; | 652 | return; |
| 650 | } | 653 | } |
| 651 | 654 | ||
| 652 | raw_spin_lock_irqsave(&pmu_lock, flags); | 655 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 653 | xscale2pmu_write_event_select(evtsel); | 656 | xscale2pmu_write_event_select(evtsel); |
| 654 | xscale2pmu_write_int_enable(ien); | 657 | xscale2pmu_write_int_enable(ien); |
| 655 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 658 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 656 | } | 659 | } |
| 657 | 660 | ||
| 658 | static void | 661 | static void |
| 659 | xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) | 662 | xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) |
| 660 | { | 663 | { |
| 661 | unsigned long flags, ien, evtsel; | 664 | unsigned long flags, ien, evtsel; |
| 665 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 662 | 666 | ||
| 663 | ien = xscale2pmu_read_int_enable(); | 667 | ien = xscale2pmu_read_int_enable(); |
| 664 | evtsel = xscale2pmu_read_event_select(); | 668 | evtsel = xscale2pmu_read_event_select(); |
| @@ -692,14 +696,14 @@ xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) | |||
| 692 | return; | 696 | return; |
| 693 | } | 697 | } |
| 694 | 698 | ||
| 695 | raw_spin_lock_irqsave(&pmu_lock, flags); | 699 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 696 | xscale2pmu_write_event_select(evtsel); | 700 | xscale2pmu_write_event_select(evtsel); |
| 697 | xscale2pmu_write_int_enable(ien); | 701 | xscale2pmu_write_int_enable(ien); |
| 698 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 702 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 699 | } | 703 | } |
| 700 | 704 | ||
| 701 | static int | 705 | static int |
| 702 | xscale2pmu_get_event_idx(struct cpu_hw_events *cpuc, | 706 | xscale2pmu_get_event_idx(struct pmu_hw_events *cpuc, |
| 703 | struct hw_perf_event *event) | 707 | struct hw_perf_event *event) |
| 704 | { | 708 | { |
| 705 | int idx = xscale1pmu_get_event_idx(cpuc, event); | 709 | int idx = xscale1pmu_get_event_idx(cpuc, event); |
| @@ -718,24 +722,26 @@ static void | |||
| 718 | xscale2pmu_start(void) | 722 | xscale2pmu_start(void) |
| 719 | { | 723 | { |
| 720 | unsigned long flags, val; | 724 | unsigned long flags, val; |
| 725 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 721 | 726 | ||
| 722 | raw_spin_lock_irqsave(&pmu_lock, flags); | 727 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 723 | val = xscale2pmu_read_pmnc() & ~XSCALE_PMU_CNT64; | 728 | val = xscale2pmu_read_pmnc() & ~XSCALE_PMU_CNT64; |
| 724 | val |= XSCALE_PMU_ENABLE; | 729 | val |= XSCALE_PMU_ENABLE; |
| 725 | xscale2pmu_write_pmnc(val); | 730 | xscale2pmu_write_pmnc(val); |
| 726 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 731 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 727 | } | 732 | } |
| 728 | 733 | ||
| 729 | static void | 734 | static void |
| 730 | xscale2pmu_stop(void) | 735 | xscale2pmu_stop(void) |
| 731 | { | 736 | { |
| 732 | unsigned long flags, val; | 737 | unsigned long flags, val; |
| 738 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
| 733 | 739 | ||
| 734 | raw_spin_lock_irqsave(&pmu_lock, flags); | 740 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
| 735 | val = xscale2pmu_read_pmnc(); | 741 | val = xscale2pmu_read_pmnc(); |
| 736 | val &= ~XSCALE_PMU_ENABLE; | 742 | val &= ~XSCALE_PMU_ENABLE; |
| 737 | xscale2pmu_write_pmnc(val); | 743 | xscale2pmu_write_pmnc(val); |
| 738 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 744 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
| 739 | } | 745 | } |
| 740 | 746 | ||
| 741 | static inline u32 | 747 | static inline u32 |
| @@ -786,7 +792,7 @@ xscale2pmu_write_counter(int counter, u32 val) | |||
| 786 | } | 792 | } |
| 787 | } | 793 | } |
| 788 | 794 | ||
| 789 | static const struct arm_pmu xscale2pmu = { | 795 | static struct arm_pmu xscale2pmu = { |
| 790 | .id = ARM_PERF_PMU_ID_XSCALE2, | 796 | .id = ARM_PERF_PMU_ID_XSCALE2, |
| 791 | .name = "xscale2", | 797 | .name = "xscale2", |
| 792 | .handle_irq = xscale2pmu_handle_irq, | 798 | .handle_irq = xscale2pmu_handle_irq, |
| @@ -797,24 +803,22 @@ static const struct arm_pmu xscale2pmu = { | |||
| 797 | .get_event_idx = xscale2pmu_get_event_idx, | 803 | .get_event_idx = xscale2pmu_get_event_idx, |
| 798 | .start = xscale2pmu_start, | 804 | .start = xscale2pmu_start, |
| 799 | .stop = xscale2pmu_stop, | 805 | .stop = xscale2pmu_stop, |
| 800 | .cache_map = &xscale_perf_cache_map, | 806 | .map_event = xscale_map_event, |
| 801 | .event_map = &xscale_perf_map, | ||
| 802 | .raw_event_mask = 0xFF, | ||
| 803 | .num_events = 5, | 807 | .num_events = 5, |
| 804 | .max_period = (1LLU << 32) - 1, | 808 | .max_period = (1LLU << 32) - 1, |
| 805 | }; | 809 | }; |
| 806 | 810 | ||
| 807 | static const struct arm_pmu *__init xscale2pmu_init(void) | 811 | static struct arm_pmu *__init xscale2pmu_init(void) |
| 808 | { | 812 | { |
| 809 | return &xscale2pmu; | 813 | return &xscale2pmu; |
| 810 | } | 814 | } |
| 811 | #else | 815 | #else |
| 812 | static const struct arm_pmu *__init xscale1pmu_init(void) | 816 | static struct arm_pmu *__init xscale1pmu_init(void) |
| 813 | { | 817 | { |
| 814 | return NULL; | 818 | return NULL; |
| 815 | } | 819 | } |
| 816 | 820 | ||
| 817 | static const struct arm_pmu *__init xscale2pmu_init(void) | 821 | static struct arm_pmu *__init xscale2pmu_init(void) |
| 818 | { | 822 | { |
| 819 | return NULL; | 823 | return NULL; |
| 820 | } | 824 | } |
diff --git a/arch/arm/kernel/pmu.c b/arch/arm/kernel/pmu.c index c53474fe84df..2c3407ee8576 100644 --- a/arch/arm/kernel/pmu.c +++ b/arch/arm/kernel/pmu.c | |||
| @@ -10,192 +10,26 @@ | |||
| 10 | * | 10 | * |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #define pr_fmt(fmt) "PMU: " fmt | ||
| 14 | |||
| 15 | #include <linux/cpumask.h> | ||
| 16 | #include <linux/err.h> | 13 | #include <linux/err.h> |
| 17 | #include <linux/interrupt.h> | ||
| 18 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
| 19 | #include <linux/module.h> | 15 | #include <linux/module.h> |
| 20 | #include <linux/of_device.h> | ||
| 21 | #include <linux/platform_device.h> | ||
| 22 | 16 | ||
| 23 | #include <asm/pmu.h> | 17 | #include <asm/pmu.h> |
| 24 | 18 | ||
| 25 | static volatile long pmu_lock; | 19 | /* |
| 26 | 20 | * PMU locking to ensure mutual exclusion between different subsystems. | |
| 27 | static struct platform_device *pmu_devices[ARM_NUM_PMU_DEVICES]; | 21 | */ |
| 28 | 22 | static unsigned long pmu_lock[BITS_TO_LONGS(ARM_NUM_PMU_DEVICES)]; | |
| 29 | static int __devinit pmu_register(struct platform_device *pdev, | ||
| 30 | enum arm_pmu_type type) | ||
| 31 | { | ||
| 32 | if (type < 0 || type >= ARM_NUM_PMU_DEVICES) { | ||
| 33 | pr_warning("received registration request for unknown " | ||
| 34 | "PMU device type %d\n", type); | ||
| 35 | return -EINVAL; | ||
| 36 | } | ||
| 37 | |||
| 38 | if (pmu_devices[type]) { | ||
| 39 | pr_warning("rejecting duplicate registration of PMU device " | ||
| 40 | "type %d.", type); | ||
| 41 | return -ENOSPC; | ||
| 42 | } | ||
| 43 | |||
| 44 | pr_info("registered new PMU device of type %d\n", type); | ||
| 45 | pmu_devices[type] = pdev; | ||
| 46 | return 0; | ||
| 47 | } | ||
| 48 | |||
| 49 | #define OF_MATCH_PMU(_name, _type) { \ | ||
| 50 | .compatible = _name, \ | ||
| 51 | .data = (void *)_type, \ | ||
| 52 | } | ||
| 53 | |||
| 54 | #define OF_MATCH_CPU(name) OF_MATCH_PMU(name, ARM_PMU_DEVICE_CPU) | ||
| 55 | |||
| 56 | static struct of_device_id armpmu_of_device_ids[] = { | ||
| 57 | OF_MATCH_CPU("arm,cortex-a9-pmu"), | ||
| 58 | OF_MATCH_CPU("arm,cortex-a8-pmu"), | ||
| 59 | OF_MATCH_CPU("arm,arm1136-pmu"), | ||
| 60 | OF_MATCH_CPU("arm,arm1176-pmu"), | ||
| 61 | {}, | ||
| 62 | }; | ||
| 63 | |||
| 64 | #define PLAT_MATCH_PMU(_name, _type) { \ | ||
| 65 | .name = _name, \ | ||
| 66 | .driver_data = _type, \ | ||
| 67 | } | ||
| 68 | |||
| 69 | #define PLAT_MATCH_CPU(_name) PLAT_MATCH_PMU(_name, ARM_PMU_DEVICE_CPU) | ||
| 70 | |||
| 71 | static struct platform_device_id armpmu_plat_device_ids[] = { | ||
| 72 | PLAT_MATCH_CPU("arm-pmu"), | ||
| 73 | {}, | ||
| 74 | }; | ||
| 75 | |||
| 76 | enum arm_pmu_type armpmu_device_type(struct platform_device *pdev) | ||
| 77 | { | ||
| 78 | const struct of_device_id *of_id; | ||
| 79 | const struct platform_device_id *pdev_id; | ||
| 80 | |||
| 81 | /* provided by of_device_id table */ | ||
| 82 | if (pdev->dev.of_node) { | ||
| 83 | of_id = of_match_device(armpmu_of_device_ids, &pdev->dev); | ||
| 84 | BUG_ON(!of_id); | ||
| 85 | return (enum arm_pmu_type)of_id->data; | ||
| 86 | } | ||
| 87 | |||
| 88 | /* Provided by platform_device_id table */ | ||
| 89 | pdev_id = platform_get_device_id(pdev); | ||
| 90 | BUG_ON(!pdev_id); | ||
| 91 | return pdev_id->driver_data; | ||
| 92 | } | ||
| 93 | |||
| 94 | static int __devinit armpmu_device_probe(struct platform_device *pdev) | ||
| 95 | { | ||
| 96 | return pmu_register(pdev, armpmu_device_type(pdev)); | ||
| 97 | } | ||
| 98 | |||
| 99 | static struct platform_driver armpmu_driver = { | ||
| 100 | .driver = { | ||
| 101 | .name = "arm-pmu", | ||
| 102 | .of_match_table = armpmu_of_device_ids, | ||
| 103 | }, | ||
| 104 | .probe = armpmu_device_probe, | ||
| 105 | .id_table = armpmu_plat_device_ids, | ||
| 106 | }; | ||
| 107 | |||
| 108 | static int __init register_pmu_driver(void) | ||
| 109 | { | ||
| 110 | return platform_driver_register(&armpmu_driver); | ||
| 111 | } | ||
| 112 | device_initcall(register_pmu_driver); | ||
| 113 | 23 | ||
| 114 | struct platform_device * | 24 | int |
| 115 | reserve_pmu(enum arm_pmu_type type) | 25 | reserve_pmu(enum arm_pmu_type type) |
| 116 | { | 26 | { |
| 117 | struct platform_device *pdev; | 27 | return test_and_set_bit_lock(type, pmu_lock) ? -EBUSY : 0; |
| 118 | |||
| 119 | if (test_and_set_bit_lock(type, &pmu_lock)) { | ||
| 120 | pdev = ERR_PTR(-EBUSY); | ||
| 121 | } else if (pmu_devices[type] == NULL) { | ||
| 122 | clear_bit_unlock(type, &pmu_lock); | ||
| 123 | pdev = ERR_PTR(-ENODEV); | ||
| 124 | } else { | ||
| 125 | pdev = pmu_devices[type]; | ||
| 126 | } | ||
| 127 | |||
| 128 | return pdev; | ||
| 129 | } | 28 | } |
| 130 | EXPORT_SYMBOL_GPL(reserve_pmu); | 29 | EXPORT_SYMBOL_GPL(reserve_pmu); |
| 131 | 30 | ||
| 132 | int | 31 | void |
| 133 | release_pmu(enum arm_pmu_type type) | 32 | release_pmu(enum arm_pmu_type type) |
| 134 | { | 33 | { |
| 135 | if (WARN_ON(!pmu_devices[type])) | 34 | clear_bit_unlock(type, pmu_lock); |
| 136 | return -EINVAL; | ||
| 137 | clear_bit_unlock(type, &pmu_lock); | ||
| 138 | return 0; | ||
| 139 | } | ||
| 140 | EXPORT_SYMBOL_GPL(release_pmu); | ||
| 141 | |||
| 142 | static int | ||
| 143 | set_irq_affinity(int irq, | ||
| 144 | unsigned int cpu) | ||
| 145 | { | ||
| 146 | #ifdef CONFIG_SMP | ||
| 147 | int err = irq_set_affinity(irq, cpumask_of(cpu)); | ||
| 148 | if (err) | ||
| 149 | pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n", | ||
| 150 | irq, cpu); | ||
| 151 | return err; | ||
| 152 | #else | ||
| 153 | return -EINVAL; | ||
| 154 | #endif | ||
| 155 | } | ||
| 156 | |||
| 157 | static int | ||
| 158 | init_cpu_pmu(void) | ||
| 159 | { | ||
| 160 | int i, irqs, err = 0; | ||
| 161 | struct platform_device *pdev = pmu_devices[ARM_PMU_DEVICE_CPU]; | ||
| 162 | |||
| 163 | if (!pdev) | ||
| 164 | return -ENODEV; | ||
| 165 | |||
| 166 | irqs = pdev->num_resources; | ||
| 167 | |||
| 168 | /* | ||
| 169 | * If we have a single PMU interrupt that we can't shift, assume that | ||
| 170 | * we're running on a uniprocessor machine and continue. | ||
| 171 | */ | ||
| 172 | if (irqs == 1 && !irq_can_set_affinity(platform_get_irq(pdev, 0))) | ||
| 173 | return 0; | ||
| 174 | |||
| 175 | for (i = 0; i < irqs; ++i) { | ||
| 176 | err = set_irq_affinity(platform_get_irq(pdev, i), i); | ||
| 177 | if (err) | ||
| 178 | break; | ||
| 179 | } | ||
| 180 | |||
| 181 | return err; | ||
| 182 | } | ||
| 183 | |||
| 184 | int | ||
| 185 | init_pmu(enum arm_pmu_type type) | ||
| 186 | { | ||
| 187 | int err = 0; | ||
| 188 | |||
| 189 | switch (type) { | ||
| 190 | case ARM_PMU_DEVICE_CPU: | ||
| 191 | err = init_cpu_pmu(); | ||
| 192 | break; | ||
| 193 | default: | ||
| 194 | pr_warning("attempt to initialise PMU of unknown " | ||
| 195 | "type %d\n", type); | ||
| 196 | err = -EINVAL; | ||
| 197 | } | ||
| 198 | |||
| 199 | return err; | ||
| 200 | } | 35 | } |
| 201 | EXPORT_SYMBOL_GPL(init_pmu); | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index e514c76043b4..6136144f8f8d 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
| @@ -820,25 +820,8 @@ static struct machine_desc * __init setup_machine_tags(unsigned int nr) | |||
| 820 | 820 | ||
| 821 | if (__atags_pointer) | 821 | if (__atags_pointer) |
| 822 | tags = phys_to_virt(__atags_pointer); | 822 | tags = phys_to_virt(__atags_pointer); |
| 823 | else if (mdesc->boot_params) { | 823 | else if (mdesc->atag_offset) |
| 824 | #ifdef CONFIG_MMU | 824 | tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); |
| 825 | /* | ||
| 826 | * We still are executing with a minimal MMU mapping created | ||
| 827 | * with the presumption that the machine default for this | ||
| 828 | * is located in the first MB of RAM. Anything else will | ||
| 829 | * fault and silently hang the kernel at this point. | ||
| 830 | */ | ||
| 831 | if (mdesc->boot_params < PHYS_OFFSET || | ||
| 832 | mdesc->boot_params >= PHYS_OFFSET + SZ_1M) { | ||
| 833 | printk(KERN_WARNING | ||
| 834 | "Default boot params at physical 0x%08lx out of reach\n", | ||
| 835 | mdesc->boot_params); | ||
| 836 | } else | ||
| 837 | #endif | ||
| 838 | { | ||
| 839 | tags = phys_to_virt(mdesc->boot_params); | ||
| 840 | } | ||
| 841 | } | ||
| 842 | 825 | ||
| 843 | #if defined(CONFIG_DEPRECATED_PARAM_STRUCT) | 826 | #if defined(CONFIG_DEPRECATED_PARAM_STRUCT) |
| 844 | /* | 827 | /* |
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c index e04c5fb6f1ee..1532b508c814 100644 --- a/arch/arm/mach-at91/at91sam9g45.c +++ b/arch/arm/mach-at91/at91sam9g45.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | 12 | ||
| 13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
| 14 | #include <linux/pm.h> | 14 | #include <linux/pm.h> |
| 15 | #include <linux/dma-mapping.h> | ||
| 15 | 16 | ||
| 16 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
| 17 | #include <asm/mach/arch.h> | 18 | #include <asm/mach/arch.h> |
| @@ -319,6 +320,7 @@ static void at91sam9g45_poweroff(void) | |||
| 319 | static void __init at91sam9g45_map_io(void) | 320 | static void __init at91sam9g45_map_io(void) |
| 320 | { | 321 | { |
| 321 | at91_init_sram(0, AT91SAM9G45_SRAM_BASE, AT91SAM9G45_SRAM_SIZE); | 322 | at91_init_sram(0, AT91SAM9G45_SRAM_BASE, AT91SAM9G45_SRAM_SIZE); |
| 323 | init_consistent_dma_size(SZ_4M); | ||
| 322 | } | 324 | } |
| 323 | 325 | ||
| 324 | static void __init at91sam9g45_initialize(void) | 326 | static void __init at91sam9g45_initialize(void) |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h index 2c611b9a0138..406bb6496805 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9g45.h +++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h | |||
| @@ -128,8 +128,6 @@ | |||
| 128 | #define AT91SAM9G45_EHCI_BASE 0x00800000 /* USB Host controller (EHCI) */ | 128 | #define AT91SAM9G45_EHCI_BASE 0x00800000 /* USB Host controller (EHCI) */ |
| 129 | #define AT91SAM9G45_VDEC_BASE 0x00900000 /* Video Decoder Controller */ | 129 | #define AT91SAM9G45_VDEC_BASE 0x00900000 /* Video Decoder Controller */ |
| 130 | 130 | ||
| 131 | #define CONSISTENT_DMA_SIZE SZ_4M | ||
| 132 | |||
| 133 | /* | 131 | /* |
| 134 | * DMA peripheral identifiers | 132 | * DMA peripheral identifiers |
| 135 | * for hardware handshaking interface | 133 | * for hardware handshaking interface |
diff --git a/arch/arm/mach-bcmring/include/mach/memory.h b/arch/arm/mach-bcmring/include/mach/memory.h index 15162e4c75f9..8848a5bb3445 100644 --- a/arch/arm/mach-bcmring/include/mach/memory.h +++ b/arch/arm/mach-bcmring/include/mach/memory.h | |||
| @@ -25,9 +25,4 @@ | |||
| 25 | 25 | ||
| 26 | #define PLAT_PHYS_OFFSET CFG_GLOBAL_RAM_BASE | 26 | #define PLAT_PHYS_OFFSET CFG_GLOBAL_RAM_BASE |
| 27 | 27 | ||
| 28 | /* | ||
| 29 | * Maximum DMA memory allowed is 14M | ||
| 30 | */ | ||
| 31 | #define CONSISTENT_DMA_SIZE (SZ_16M - SZ_2M) | ||
| 32 | |||
| 33 | #endif | 28 | #endif |
diff --git a/arch/arm/mach-bcmring/mm.c b/arch/arm/mach-bcmring/mm.c index 0f1c37e4523a..8616876abb9f 100644 --- a/arch/arm/mach-bcmring/mm.c +++ b/arch/arm/mach-bcmring/mm.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | *****************************************************************************/ | 13 | *****************************************************************************/ |
| 14 | 14 | ||
| 15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
| 16 | #include <linux/dma-mapping.h> | ||
| 16 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
| 17 | 18 | ||
| 18 | #include <mach/hardware.h> | 19 | #include <mach/hardware.h> |
| @@ -53,4 +54,6 @@ void __init bcmring_map_io(void) | |||
| 53 | { | 54 | { |
| 54 | 55 | ||
| 55 | iotable_init(bcmring_io_desc, ARRAY_SIZE(bcmring_io_desc)); | 56 | iotable_init(bcmring_io_desc, ARRAY_SIZE(bcmring_io_desc)); |
| 57 | /* Maximum DMA memory allowed is 14M */ | ||
| 58 | init_consistent_dma_size(14 << 20); | ||
| 56 | } | 59 | } |
diff --git a/arch/arm/mach-clps711x/autcpu12.c b/arch/arm/mach-clps711x/autcpu12.c index 4a74b2c959bd..0276091b7f86 100644 --- a/arch/arm/mach-clps711x/autcpu12.c +++ b/arch/arm/mach-clps711x/autcpu12.c | |||
| @@ -64,7 +64,7 @@ void __init autcpu12_map_io(void) | |||
| 64 | 64 | ||
| 65 | MACHINE_START(AUTCPU12, "autronix autcpu12") | 65 | MACHINE_START(AUTCPU12, "autronix autcpu12") |
| 66 | /* Maintainer: Thomas Gleixner */ | 66 | /* Maintainer: Thomas Gleixner */ |
| 67 | .boot_params = 0xc0020000, | 67 | .atag_offset = 0x20000, |
| 68 | .map_io = autcpu12_map_io, | 68 | .map_io = autcpu12_map_io, |
| 69 | .init_irq = clps711x_init_irq, | 69 | .init_irq = clps711x_init_irq, |
| 70 | .timer = &clps711x_timer, | 70 | .timer = &clps711x_timer, |
diff --git a/arch/arm/mach-clps711x/cdb89712.c b/arch/arm/mach-clps711x/cdb89712.c index 5a1689d48793..25b3bfd0e85a 100644 --- a/arch/arm/mach-clps711x/cdb89712.c +++ b/arch/arm/mach-clps711x/cdb89712.c | |||
| @@ -55,7 +55,7 @@ static void __init cdb89712_map_io(void) | |||
| 55 | 55 | ||
| 56 | MACHINE_START(CDB89712, "Cirrus-CDB89712") | 56 | MACHINE_START(CDB89712, "Cirrus-CDB89712") |
| 57 | /* Maintainer: Ray Lehtiniemi */ | 57 | /* Maintainer: Ray Lehtiniemi */ |
| 58 | .boot_params = 0xc0000100, | 58 | .atag_offset = 0x100, |
| 59 | .map_io = cdb89712_map_io, | 59 | .map_io = cdb89712_map_io, |
| 60 | .init_irq = clps711x_init_irq, | 60 | .init_irq = clps711x_init_irq, |
| 61 | .timer = &clps711x_timer, | 61 | .timer = &clps711x_timer, |
diff --git a/arch/arm/mach-clps711x/ceiva.c b/arch/arm/mach-clps711x/ceiva.c index 16481cf3e931..1df9ec67aa92 100644 --- a/arch/arm/mach-clps711x/ceiva.c +++ b/arch/arm/mach-clps711x/ceiva.c | |||
| @@ -56,7 +56,7 @@ static void __init ceiva_map_io(void) | |||
| 56 | 56 | ||
| 57 | MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame") | 57 | MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame") |
| 58 | /* Maintainer: Rob Scott */ | 58 | /* Maintainer: Rob Scott */ |
| 59 | .boot_params = 0xc0000100, | 59 | .atag_offset = 0x100, |
| 60 | .map_io = ceiva_map_io, | 60 | .map_io = ceiva_map_io, |
| 61 | .init_irq = clps711x_init_irq, | 61 | .init_irq = clps711x_init_irq, |
| 62 | .timer = &clps711x_timer, | 62 | .timer = &clps711x_timer, |
diff --git a/arch/arm/mach-clps711x/clep7312.c b/arch/arm/mach-clps711x/clep7312.c index 67b5abb4a60a..06c8abd9371f 100644 --- a/arch/arm/mach-clps711x/clep7312.c +++ b/arch/arm/mach-clps711x/clep7312.c | |||
| @@ -37,7 +37,7 @@ fixup_clep7312(struct machine_desc *desc, struct tag *tags, | |||
| 37 | 37 | ||
| 38 | MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") | 38 | MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") |
| 39 | /* Maintainer: Nobody */ | 39 | /* Maintainer: Nobody */ |
| 40 | .boot_params = 0xc0000100, | 40 | .atag_offset = 0x0100, |
| 41 | .fixup = fixup_clep7312, | 41 | .fixup = fixup_clep7312, |
| 42 | .map_io = clps711x_map_io, | 42 | .map_io = clps711x_map_io, |
| 43 | .init_irq = clps711x_init_irq, | 43 | .init_irq = clps711x_init_irq, |
diff --git a/arch/arm/mach-clps711x/edb7211-arch.c b/arch/arm/mach-clps711x/edb7211-arch.c index 98ca5b2e940d..abf522d1ec9b 100644 --- a/arch/arm/mach-clps711x/edb7211-arch.c +++ b/arch/arm/mach-clps711x/edb7211-arch.c | |||
| @@ -57,7 +57,7 @@ fixup_edb7211(struct machine_desc *desc, struct tag *tags, | |||
| 57 | 57 | ||
| 58 | MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") | 58 | MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") |
| 59 | /* Maintainer: Jon McClintock */ | 59 | /* Maintainer: Jon McClintock */ |
| 60 | .boot_params = 0xc0020100, /* 0xc0000000 - 0xc001ffff can be video RAM */ | 60 | .atag_offset = 0x20100, /* 0xc0000000 - 0xc001ffff can be video RAM */ |
| 61 | .fixup = fixup_edb7211, | 61 | .fixup = fixup_edb7211, |
| 62 | .map_io = edb7211_map_io, | 62 | .map_io = edb7211_map_io, |
| 63 | .reserve = edb7211_reserve, | 63 | .reserve = edb7211_reserve, |
diff --git a/arch/arm/mach-clps711x/fortunet.c b/arch/arm/mach-clps711x/fortunet.c index b1cb479e71e9..b6f7d86bb1c9 100644 --- a/arch/arm/mach-clps711x/fortunet.c +++ b/arch/arm/mach-clps711x/fortunet.c | |||
| @@ -75,7 +75,6 @@ fortunet_fixup(struct machine_desc *desc, struct tag *tags, | |||
| 75 | 75 | ||
| 76 | MACHINE_START(FORTUNET, "ARM-FortuNet") | 76 | MACHINE_START(FORTUNET, "ARM-FortuNet") |
| 77 | /* Maintainer: FortuNet Inc. */ | 77 | /* Maintainer: FortuNet Inc. */ |
| 78 | .boot_params = 0x00000000, | ||
| 79 | .fixup = fortunet_fixup, | 78 | .fixup = fortunet_fixup, |
| 80 | .map_io = clps711x_map_io, | 79 | .map_io = clps711x_map_io, |
| 81 | .init_irq = clps711x_init_irq, | 80 | .init_irq = clps711x_init_irq, |
diff --git a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c index cefbce0480b9..e7f75aeb1e5b 100644 --- a/arch/arm/mach-clps711x/p720t.c +++ b/arch/arm/mach-clps711x/p720t.c | |||
| @@ -89,7 +89,7 @@ static void __init p720t_map_io(void) | |||
| 89 | 89 | ||
| 90 | MACHINE_START(P720T, "ARM-Prospector720T") | 90 | MACHINE_START(P720T, "ARM-Prospector720T") |
| 91 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 91 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 92 | .boot_params = 0xc0000100, | 92 | .atag_offset = 0x100, |
| 93 | .fixup = fixup_p720t, | 93 | .fixup = fixup_p720t, |
| 94 | .map_io = p720t_map_io, | 94 | .map_io = p720t_map_io, |
| 95 | .init_irq = clps711x_init_irq, | 95 | .init_irq = clps711x_init_irq, |
diff --git a/arch/arm/mach-cns3xxx/cns3420vb.c b/arch/arm/mach-cns3xxx/cns3420vb.c index 3e7d1496cb47..55f7b4b08ab9 100644 --- a/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/arch/arm/mach-cns3xxx/cns3420vb.c | |||
| @@ -197,7 +197,7 @@ static void __init cns3420_map_io(void) | |||
| 197 | } | 197 | } |
| 198 | 198 | ||
| 199 | MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") | 199 | MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") |
| 200 | .boot_params = 0x00000100, | 200 | .atag_offset = 0x100, |
| 201 | .map_io = cns3420_map_io, | 201 | .map_io = cns3420_map_io, |
| 202 | .init_irq = cns3xxx_init_irq, | 202 | .init_irq = cns3xxx_init_irq, |
| 203 | .timer = &cns3xxx_timer, | 203 | .timer = &cns3xxx_timer, |
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c index 84fd78684868..26d94c0b555c 100644 --- a/arch/arm/mach-davinci/board-da830-evm.c +++ b/arch/arm/mach-davinci/board-da830-evm.c | |||
| @@ -676,7 +676,7 @@ static void __init da830_evm_map_io(void) | |||
| 676 | } | 676 | } |
| 677 | 677 | ||
| 678 | MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") | 678 | MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") |
| 679 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 679 | .atag_offset = 0x100, |
| 680 | .map_io = da830_evm_map_io, | 680 | .map_io = da830_evm_map_io, |
| 681 | .init_irq = cp_intc_init, | 681 | .init_irq = cp_intc_init, |
| 682 | .timer = &davinci_timer, | 682 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 008d51407cd7..6e41cb5baeb4 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
| @@ -1291,7 +1291,7 @@ static void __init da850_evm_map_io(void) | |||
| 1291 | } | 1291 | } |
| 1292 | 1292 | ||
| 1293 | MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") | 1293 | MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") |
| 1294 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 1294 | .atag_offset = 0x100, |
| 1295 | .map_io = da850_evm_map_io, | 1295 | .map_io = da850_evm_map_io, |
| 1296 | .init_irq = cp_intc_init, | 1296 | .init_irq = cp_intc_init, |
| 1297 | .timer = &davinci_timer, | 1297 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index 241a6bd67408..65566280b7c9 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
| @@ -351,7 +351,7 @@ static __init void dm355_evm_init(void) | |||
| 351 | } | 351 | } |
| 352 | 352 | ||
| 353 | MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") | 353 | MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") |
| 354 | .boot_params = (0x80000100), | 354 | .atag_offset = 0x100, |
| 355 | .map_io = dm355_evm_map_io, | 355 | .map_io = dm355_evm_map_io, |
| 356 | .init_irq = davinci_irq_init, | 356 | .init_irq = davinci_irq_init, |
| 357 | .timer = &davinci_timer, | 357 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c index bee284ca7fd6..b307470b071d 100644 --- a/arch/arm/mach-davinci/board-dm355-leopard.c +++ b/arch/arm/mach-davinci/board-dm355-leopard.c | |||
| @@ -270,7 +270,7 @@ static __init void dm355_leopard_init(void) | |||
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") | 272 | MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") |
| 273 | .boot_params = (0x80000100), | 273 | .atag_offset = 0x100, |
| 274 | .map_io = dm355_leopard_map_io, | 274 | .map_io = dm355_leopard_map_io, |
| 275 | .init_irq = davinci_irq_init, | 275 | .init_irq = davinci_irq_init, |
| 276 | .timer = &davinci_timer, | 276 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index 9818f214d4f0..04c43abcca66 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
| @@ -612,7 +612,7 @@ static __init void dm365_evm_init(void) | |||
| 612 | } | 612 | } |
| 613 | 613 | ||
| 614 | MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") | 614 | MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") |
| 615 | .boot_params = (0x80000100), | 615 | .atag_offset = 0x100, |
| 616 | .map_io = dm365_evm_map_io, | 616 | .map_io = dm365_evm_map_io, |
| 617 | .init_irq = davinci_irq_init, | 617 | .init_irq = davinci_irq_init, |
| 618 | .timer = &davinci_timer, | 618 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index 95607a191e03..a005e7691ddd 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
| @@ -712,7 +712,7 @@ static __init void davinci_evm_init(void) | |||
| 712 | 712 | ||
| 713 | MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") | 713 | MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") |
| 714 | /* Maintainer: MontaVista Software <source@mvista.com> */ | 714 | /* Maintainer: MontaVista Software <source@mvista.com> */ |
| 715 | .boot_params = (DAVINCI_DDR_BASE + 0x100), | 715 | .atag_offset = 0x100, |
| 716 | .map_io = davinci_evm_map_io, | 716 | .map_io = davinci_evm_map_io, |
| 717 | .init_irq = davinci_irq_init, | 717 | .init_irq = davinci_irq_init, |
| 718 | .timer = &davinci_timer, | 718 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 993a3146fd35..337c45e3e44d 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
| @@ -792,7 +792,7 @@ static __init void evm_init(void) | |||
| 792 | } | 792 | } |
| 793 | 793 | ||
| 794 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | 794 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") |
| 795 | .boot_params = (0x80000100), | 795 | .atag_offset = 0x100, |
| 796 | .map_io = davinci_map_io, | 796 | .map_io = davinci_map_io, |
| 797 | .init_irq = davinci_irq_init, | 797 | .init_irq = davinci_irq_init, |
| 798 | .timer = &davinci_timer, | 798 | .timer = &davinci_timer, |
| @@ -801,7 +801,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | |||
| 801 | MACHINE_END | 801 | MACHINE_END |
| 802 | 802 | ||
| 803 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | 803 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") |
| 804 | .boot_params = (0x80000100), | 804 | .atag_offset = 0x100, |
| 805 | .map_io = davinci_map_io, | 805 | .map_io = davinci_map_io, |
| 806 | .init_irq = davinci_irq_init, | 806 | .init_irq = davinci_irq_init, |
| 807 | .timer = &davinci_timer, | 807 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-mityomapl138.c b/arch/arm/mach-davinci/board-mityomapl138.c index c278226627ad..6efc84cceca0 100644 --- a/arch/arm/mach-davinci/board-mityomapl138.c +++ b/arch/arm/mach-davinci/board-mityomapl138.c | |||
| @@ -566,7 +566,7 @@ static void __init mityomapl138_map_io(void) | |||
| 566 | } | 566 | } |
| 567 | 567 | ||
| 568 | MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") | 568 | MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") |
| 569 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 569 | .atag_offset = 0x100, |
| 570 | .map_io = mityomapl138_map_io, | 570 | .map_io = mityomapl138_map_io, |
| 571 | .init_irq = cp_intc_init, | 571 | .init_irq = cp_intc_init, |
| 572 | .timer = &davinci_timer, | 572 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c index d60a80028ba3..38d6f644d8b9 100644 --- a/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/arch/arm/mach-davinci/board-neuros-osd2.c | |||
| @@ -272,7 +272,7 @@ static __init void davinci_ntosd2_init(void) | |||
| 272 | 272 | ||
| 273 | MACHINE_START(NEUROS_OSD2, "Neuros OSD2") | 273 | MACHINE_START(NEUROS_OSD2, "Neuros OSD2") |
| 274 | /* Maintainer: Neuros Technologies <neuros@groups.google.com> */ | 274 | /* Maintainer: Neuros Technologies <neuros@groups.google.com> */ |
| 275 | .boot_params = (DAVINCI_DDR_BASE + 0x100), | 275 | .atag_offset = 0x100, |
| 276 | .map_io = davinci_ntosd2_map_io, | 276 | .map_io = davinci_ntosd2_map_io, |
| 277 | .init_irq = davinci_irq_init, | 277 | .init_irq = davinci_irq_init, |
| 278 | .timer = &davinci_timer, | 278 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index 237332a11421..c6701e4a795c 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c | |||
| @@ -338,7 +338,7 @@ static void __init omapl138_hawk_map_io(void) | |||
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") | 340 | MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") |
| 341 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 341 | .atag_offset = 0x100, |
| 342 | .map_io = omapl138_hawk_map_io, | 342 | .map_io = omapl138_hawk_map_io, |
| 343 | .init_irq = cp_intc_init, | 343 | .init_irq = cp_intc_init, |
| 344 | .timer = &davinci_timer, | 344 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c index 5f4385c0a089..5dd4da9d2308 100644 --- a/arch/arm/mach-davinci/board-sffsdr.c +++ b/arch/arm/mach-davinci/board-sffsdr.c | |||
| @@ -151,7 +151,7 @@ static __init void davinci_sffsdr_init(void) | |||
| 151 | 151 | ||
| 152 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") | 152 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") |
| 153 | /* Maintainer: Hugo Villeneuve hugo.villeneuve@lyrtech.com */ | 153 | /* Maintainer: Hugo Villeneuve hugo.villeneuve@lyrtech.com */ |
| 154 | .boot_params = (DAVINCI_DDR_BASE + 0x100), | 154 | .atag_offset = 0x100, |
| 155 | .map_io = davinci_sffsdr_map_io, | 155 | .map_io = davinci_sffsdr_map_io, |
| 156 | .init_irq = davinci_irq_init, | 156 | .init_irq = davinci_irq_init, |
| 157 | .timer = &davinci_timer, | 157 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-tnetv107x-evm.c b/arch/arm/mach-davinci/board-tnetv107x-evm.c index 782892065682..90ee7b5aabdc 100644 --- a/arch/arm/mach-davinci/board-tnetv107x-evm.c +++ b/arch/arm/mach-davinci/board-tnetv107x-evm.c | |||
| @@ -277,7 +277,7 @@ console_initcall(tnetv107x_evm_console_init); | |||
| 277 | #endif | 277 | #endif |
| 278 | 278 | ||
| 279 | MACHINE_START(TNETV107X, "TNETV107X EVM") | 279 | MACHINE_START(TNETV107X, "TNETV107X EVM") |
| 280 | .boot_params = (TNETV107X_DDR_BASE + 0x100), | 280 | .atag_offset = 0x100, |
| 281 | .map_io = tnetv107x_init, | 281 | .map_io = tnetv107x_init, |
| 282 | .init_irq = cp_intc_init, | 282 | .init_irq = cp_intc_init, |
| 283 | .timer = &davinci_timer, | 283 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/common.c b/arch/arm/mach-davinci/common.c index 1d2557394235..865ffe5899ac 100644 --- a/arch/arm/mach-davinci/common.c +++ b/arch/arm/mach-davinci/common.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
| 13 | #include <linux/etherdevice.h> | 13 | #include <linux/etherdevice.h> |
| 14 | #include <linux/davinci_emac.h> | 14 | #include <linux/davinci_emac.h> |
| 15 | #include <linux/dma-mapping.h> | ||
| 15 | 16 | ||
| 16 | #include <asm/tlb.h> | 17 | #include <asm/tlb.h> |
| 17 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
| @@ -86,6 +87,8 @@ void __init davinci_common_init(struct davinci_soc_info *soc_info) | |||
| 86 | iotable_init(davinci_soc_info.io_desc, | 87 | iotable_init(davinci_soc_info.io_desc, |
| 87 | davinci_soc_info.io_desc_num); | 88 | davinci_soc_info.io_desc_num); |
| 88 | 89 | ||
| 90 | init_consistent_dma_size(14 << 20); | ||
| 91 | |||
| 89 | /* | 92 | /* |
| 90 | * Normally devicemaps_init() would flush caches and tlb after | 93 | * Normally devicemaps_init() would flush caches and tlb after |
| 91 | * mdesc->map_io(), but we must also do it here because of the CPU | 94 | * mdesc->map_io(), but we must also do it here because of the CPU |
diff --git a/arch/arm/mach-davinci/include/mach/memory.h b/arch/arm/mach-davinci/include/mach/memory.h index 78731944a70c..885d23319668 100644 --- a/arch/arm/mach-davinci/include/mach/memory.h +++ b/arch/arm/mach-davinci/include/mach/memory.h | |||
| @@ -36,9 +36,4 @@ | |||
| 36 | #define DDR2_MCLKSTOPEN_BIT BIT(30) | 36 | #define DDR2_MCLKSTOPEN_BIT BIT(30) |
| 37 | #define DDR2_LPMODEN_BIT BIT(31) | 37 | #define DDR2_LPMODEN_BIT BIT(31) |
| 38 | 38 | ||
| 39 | /* | ||
| 40 | * Increase size of DMA-consistent memory region | ||
| 41 | */ | ||
| 42 | #define CONSISTENT_DMA_SIZE (14<<20) | ||
| 43 | |||
| 44 | #endif /* __ASM_ARCH_MEMORY_H */ | 39 | #endif /* __ASM_ARCH_MEMORY_H */ |
diff --git a/arch/arm/mach-dove/cm-a510.c b/arch/arm/mach-dove/cm-a510.c index 03e11f9dca97..c8a406f7e946 100644 --- a/arch/arm/mach-dove/cm-a510.c +++ b/arch/arm/mach-dove/cm-a510.c | |||
| @@ -87,7 +87,7 @@ static void __init cm_a510_init(void) | |||
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | MACHINE_START(CM_A510, "Compulab CM-A510 Board") | 89 | MACHINE_START(CM_A510, "Compulab CM-A510 Board") |
| 90 | .boot_params = 0x00000100, | 90 | .atag_offset = 0x100, |
| 91 | .init_machine = cm_a510_init, | 91 | .init_machine = cm_a510_init, |
| 92 | .map_io = dove_map_io, | 92 | .map_io = dove_map_io, |
| 93 | .init_early = dove_init_early, | 93 | .init_early = dove_init_early, |
diff --git a/arch/arm/mach-dove/dove-db-setup.c b/arch/arm/mach-dove/dove-db-setup.c index 2ac34ecfa745..11ea34e4fc76 100644 --- a/arch/arm/mach-dove/dove-db-setup.c +++ b/arch/arm/mach-dove/dove-db-setup.c | |||
| @@ -94,7 +94,7 @@ static void __init dove_db_init(void) | |||
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board") | 96 | MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board") |
| 97 | .boot_params = 0x00000100, | 97 | .atag_offset = 0x100, |
| 98 | .init_machine = dove_db_init, | 98 | .init_machine = dove_db_init, |
| 99 | .map_io = dove_map_io, | 99 | .map_io = dove_map_io, |
| 100 | .init_early = dove_init_early, | 100 | .init_early = dove_init_early, |
diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c index 087bc771ac23..d0ce8abdd4b6 100644 --- a/arch/arm/mach-ebsa110/core.c +++ b/arch/arm/mach-ebsa110/core.c | |||
| @@ -280,7 +280,7 @@ arch_initcall(ebsa110_init); | |||
| 280 | 280 | ||
| 281 | MACHINE_START(EBSA110, "EBSA110") | 281 | MACHINE_START(EBSA110, "EBSA110") |
| 282 | /* Maintainer: Russell King */ | 282 | /* Maintainer: Russell King */ |
| 283 | .boot_params = 0x00000400, | 283 | .atag_offset = 0x400, |
| 284 | .reserve_lp0 = 1, | 284 | .reserve_lp0 = 1, |
| 285 | .reserve_lp2 = 1, | 285 | .reserve_lp2 = 1, |
| 286 | .soft_reboot = 1, | 286 | .soft_reboot = 1, |
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c index 61b98ce4b673..0713448206a5 100644 --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c | |||
| @@ -33,7 +33,7 @@ static void __init adssphere_init_machine(void) | |||
| 33 | 33 | ||
| 34 | MACHINE_START(ADSSPHERE, "ADS Sphere board") | 34 | MACHINE_START(ADSSPHERE, "ADS Sphere board") |
| 35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 36 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 36 | .atag_offset = 0x100, |
| 37 | .map_io = ep93xx_map_io, | 37 | .map_io = ep93xx_map_io, |
| 38 | .init_irq = ep93xx_init_irq, | 38 | .init_irq = ep93xx_init_irq, |
| 39 | .timer = &ep93xx_timer, | 39 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c index 9969bb115f60..257175edc575 100644 --- a/arch/arm/mach-ep93xx/edb93xx.c +++ b/arch/arm/mach-ep93xx/edb93xx.c | |||
| @@ -240,7 +240,7 @@ static void __init edb93xx_init_machine(void) | |||
| 240 | #ifdef CONFIG_MACH_EDB9301 | 240 | #ifdef CONFIG_MACH_EDB9301 |
| 241 | MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") | 241 | MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") |
| 242 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ | 242 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ |
| 243 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 243 | .atag_offset = 0x100, |
| 244 | .map_io = ep93xx_map_io, | 244 | .map_io = ep93xx_map_io, |
| 245 | .init_irq = ep93xx_init_irq, | 245 | .init_irq = ep93xx_init_irq, |
| 246 | .timer = &ep93xx_timer, | 246 | .timer = &ep93xx_timer, |
| @@ -251,7 +251,7 @@ MACHINE_END | |||
| 251 | #ifdef CONFIG_MACH_EDB9302 | 251 | #ifdef CONFIG_MACH_EDB9302 |
| 252 | MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") | 252 | MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") |
| 253 | /* Maintainer: George Kashperko <george@chas.com.ua> */ | 253 | /* Maintainer: George Kashperko <george@chas.com.ua> */ |
| 254 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 254 | .atag_offset = 0x100, |
| 255 | .map_io = ep93xx_map_io, | 255 | .map_io = ep93xx_map_io, |
| 256 | .init_irq = ep93xx_init_irq, | 256 | .init_irq = ep93xx_init_irq, |
| 257 | .timer = &ep93xx_timer, | 257 | .timer = &ep93xx_timer, |
| @@ -262,7 +262,7 @@ MACHINE_END | |||
| 262 | #ifdef CONFIG_MACH_EDB9302A | 262 | #ifdef CONFIG_MACH_EDB9302A |
| 263 | MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") | 263 | MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") |
| 264 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 264 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 265 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 265 | .atag_offset = 0x100, |
| 266 | .map_io = ep93xx_map_io, | 266 | .map_io = ep93xx_map_io, |
| 267 | .init_irq = ep93xx_init_irq, | 267 | .init_irq = ep93xx_init_irq, |
| 268 | .timer = &ep93xx_timer, | 268 | .timer = &ep93xx_timer, |
| @@ -273,7 +273,7 @@ MACHINE_END | |||
| 273 | #ifdef CONFIG_MACH_EDB9307 | 273 | #ifdef CONFIG_MACH_EDB9307 |
| 274 | MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") | 274 | MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") |
| 275 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ | 275 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ |
| 276 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 276 | .atag_offset = 0x100, |
| 277 | .map_io = ep93xx_map_io, | 277 | .map_io = ep93xx_map_io, |
| 278 | .init_irq = ep93xx_init_irq, | 278 | .init_irq = ep93xx_init_irq, |
| 279 | .timer = &ep93xx_timer, | 279 | .timer = &ep93xx_timer, |
| @@ -284,7 +284,7 @@ MACHINE_END | |||
| 284 | #ifdef CONFIG_MACH_EDB9307A | 284 | #ifdef CONFIG_MACH_EDB9307A |
| 285 | MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") | 285 | MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") |
| 286 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ | 286 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ |
| 287 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 287 | .atag_offset = 0x100, |
| 288 | .map_io = ep93xx_map_io, | 288 | .map_io = ep93xx_map_io, |
| 289 | .init_irq = ep93xx_init_irq, | 289 | .init_irq = ep93xx_init_irq, |
| 290 | .timer = &ep93xx_timer, | 290 | .timer = &ep93xx_timer, |
| @@ -295,7 +295,7 @@ MACHINE_END | |||
| 295 | #ifdef CONFIG_MACH_EDB9312 | 295 | #ifdef CONFIG_MACH_EDB9312 |
| 296 | MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") | 296 | MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") |
| 297 | /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ | 297 | /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ |
| 298 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 298 | .atag_offset = 0x100, |
| 299 | .map_io = ep93xx_map_io, | 299 | .map_io = ep93xx_map_io, |
| 300 | .init_irq = ep93xx_init_irq, | 300 | .init_irq = ep93xx_init_irq, |
| 301 | .timer = &ep93xx_timer, | 301 | .timer = &ep93xx_timer, |
| @@ -306,7 +306,7 @@ MACHINE_END | |||
| 306 | #ifdef CONFIG_MACH_EDB9315 | 306 | #ifdef CONFIG_MACH_EDB9315 |
| 307 | MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") | 307 | MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") |
| 308 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 308 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 309 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 309 | .atag_offset = 0x100, |
| 310 | .map_io = ep93xx_map_io, | 310 | .map_io = ep93xx_map_io, |
| 311 | .init_irq = ep93xx_init_irq, | 311 | .init_irq = ep93xx_init_irq, |
| 312 | .timer = &ep93xx_timer, | 312 | .timer = &ep93xx_timer, |
| @@ -317,7 +317,7 @@ MACHINE_END | |||
| 317 | #ifdef CONFIG_MACH_EDB9315A | 317 | #ifdef CONFIG_MACH_EDB9315A |
| 318 | MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") | 318 | MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") |
| 319 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 319 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 320 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 320 | .atag_offset = 0x100, |
| 321 | .map_io = ep93xx_map_io, | 321 | .map_io = ep93xx_map_io, |
| 322 | .init_irq = ep93xx_init_irq, | 322 | .init_irq = ep93xx_init_irq, |
| 323 | .timer = &ep93xx_timer, | 323 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index 9bd3152bff9a..45ee205856f8 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c | |||
| @@ -33,7 +33,7 @@ static void __init gesbc9312_init_machine(void) | |||
| 33 | 33 | ||
| 34 | MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") | 34 | MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") |
| 35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 36 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 36 | .atag_offset = 0x100, |
| 37 | .map_io = ep93xx_map_io, | 37 | .map_io = ep93xx_map_io, |
| 38 | .init_irq = ep93xx_init_irq, | 38 | .init_irq = ep93xx_init_irq, |
| 39 | .timer = &ep93xx_timer, | 39 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index 7adea6258efe..e72f7368876e 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
| @@ -77,7 +77,7 @@ static void __init micro9_init_machine(void) | |||
| 77 | #ifdef CONFIG_MACH_MICRO9H | 77 | #ifdef CONFIG_MACH_MICRO9H |
| 78 | MACHINE_START(MICRO9, "Contec Micro9-High") | 78 | MACHINE_START(MICRO9, "Contec Micro9-High") |
| 79 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 79 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
| 80 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 80 | .atag_offset = 0x100, |
| 81 | .map_io = ep93xx_map_io, | 81 | .map_io = ep93xx_map_io, |
| 82 | .init_irq = ep93xx_init_irq, | 82 | .init_irq = ep93xx_init_irq, |
| 83 | .timer = &ep93xx_timer, | 83 | .timer = &ep93xx_timer, |
| @@ -88,7 +88,7 @@ MACHINE_END | |||
| 88 | #ifdef CONFIG_MACH_MICRO9M | 88 | #ifdef CONFIG_MACH_MICRO9M |
| 89 | MACHINE_START(MICRO9M, "Contec Micro9-Mid") | 89 | MACHINE_START(MICRO9M, "Contec Micro9-Mid") |
| 90 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 90 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
| 91 | .boot_params = EP93XX_SDCE3_PHYS_BASE_ASYNC + 0x100, | 91 | .atag_offset = 0x100, |
| 92 | .map_io = ep93xx_map_io, | 92 | .map_io = ep93xx_map_io, |
| 93 | .init_irq = ep93xx_init_irq, | 93 | .init_irq = ep93xx_init_irq, |
| 94 | .timer = &ep93xx_timer, | 94 | .timer = &ep93xx_timer, |
| @@ -99,7 +99,7 @@ MACHINE_END | |||
| 99 | #ifdef CONFIG_MACH_MICRO9L | 99 | #ifdef CONFIG_MACH_MICRO9L |
| 100 | MACHINE_START(MICRO9L, "Contec Micro9-Lite") | 100 | MACHINE_START(MICRO9L, "Contec Micro9-Lite") |
| 101 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 101 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
| 102 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 102 | .atag_offset = 0x100, |
| 103 | .map_io = ep93xx_map_io, | 103 | .map_io = ep93xx_map_io, |
| 104 | .init_irq = ep93xx_init_irq, | 104 | .init_irq = ep93xx_init_irq, |
| 105 | .timer = &ep93xx_timer, | 105 | .timer = &ep93xx_timer, |
| @@ -110,7 +110,7 @@ MACHINE_END | |||
| 110 | #ifdef CONFIG_MACH_MICRO9S | 110 | #ifdef CONFIG_MACH_MICRO9S |
| 111 | MACHINE_START(MICRO9S, "Contec Micro9-Slim") | 111 | MACHINE_START(MICRO9S, "Contec Micro9-Slim") |
| 112 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 112 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
| 113 | .boot_params = EP93XX_SDCE3_PHYS_BASE_ASYNC + 0x100, | 113 | .atag_offset = 0x100, |
| 114 | .map_io = ep93xx_map_io, | 114 | .map_io = ep93xx_map_io, |
| 115 | .init_irq = ep93xx_init_irq, | 115 | .init_irq = ep93xx_init_irq, |
| 116 | .timer = &ep93xx_timer, | 116 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/simone.c b/arch/arm/mach-ep93xx/simone.c index 8392e95d7cea..238bc603da86 100644 --- a/arch/arm/mach-ep93xx/simone.c +++ b/arch/arm/mach-ep93xx/simone.c | |||
| @@ -65,8 +65,8 @@ static void __init simone_init_machine(void) | |||
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") | 67 | MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") |
| 68 | /* Maintainer: Ryan Mallon */ | 68 | /* Maintainer: Ryan Mallon */ |
| 69 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 69 | .atag_offset = 0x100, |
| 70 | .map_io = ep93xx_map_io, | 70 | .map_io = ep93xx_map_io, |
| 71 | .init_irq = ep93xx_init_irq, | 71 | .init_irq = ep93xx_init_irq, |
| 72 | .timer = &ep93xx_timer, | 72 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/snappercl15.c b/arch/arm/mach-ep93xx/snappercl15.c index 2e9c614757e4..3bdf3a2e5ad0 100644 --- a/arch/arm/mach-ep93xx/snappercl15.c +++ b/arch/arm/mach-ep93xx/snappercl15.c | |||
| @@ -163,7 +163,7 @@ static void __init snappercl15_init_machine(void) | |||
| 163 | 163 | ||
| 164 | MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") | 164 | MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") |
| 165 | /* Maintainer: Ryan Mallon */ | 165 | /* Maintainer: Ryan Mallon */ |
| 166 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 166 | .atag_offset = 0x100, |
| 167 | .map_io = ep93xx_map_io, | 167 | .map_io = ep93xx_map_io, |
| 168 | .init_irq = ep93xx_init_irq, | 168 | .init_irq = ep93xx_init_irq, |
| 169 | .timer = &ep93xx_timer, | 169 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index c2d2cf40ead9..1ade3c340507 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
| @@ -257,7 +257,7 @@ static void __init ts72xx_init_machine(void) | |||
| 257 | 257 | ||
| 258 | MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") | 258 | MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") |
| 259 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 259 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 260 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 260 | .atag_offset = 0x100, |
| 261 | .map_io = ts72xx_map_io, | 261 | .map_io = ts72xx_map_io, |
| 262 | .init_irq = ep93xx_init_irq, | 262 | .init_irq = ep93xx_init_irq, |
| 263 | .timer = &ep93xx_timer, | 263 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-exynos4/mach-armlex4210.c b/arch/arm/mach-exynos4/mach-armlex4210.c index b482c6285fc4..f0ca6c157d29 100644 --- a/arch/arm/mach-exynos4/mach-armlex4210.c +++ b/arch/arm/mach-exynos4/mach-armlex4210.c | |||
| @@ -207,7 +207,7 @@ static void __init armlex4210_machine_init(void) | |||
| 207 | 207 | ||
| 208 | MACHINE_START(ARMLEX4210, "ARMLEX4210") | 208 | MACHINE_START(ARMLEX4210, "ARMLEX4210") |
| 209 | /* Maintainer: Alim Akhtar <alim.akhtar@samsung.com> */ | 209 | /* Maintainer: Alim Akhtar <alim.akhtar@samsung.com> */ |
| 210 | .boot_params = S5P_PA_SDRAM + 0x100, | 210 | .atag_offset = 0x100, |
| 211 | .init_irq = exynos4_init_irq, | 211 | .init_irq = exynos4_init_irq, |
| 212 | .map_io = armlex4210_map_io, | 212 | .map_io = armlex4210_map_io, |
| 213 | .init_machine = armlex4210_machine_init, | 213 | .init_machine = armlex4210_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-nuri.c b/arch/arm/mach-exynos4/mach-nuri.c index 43be71b799cb..6e0536818bf5 100644 --- a/arch/arm/mach-exynos4/mach-nuri.c +++ b/arch/arm/mach-exynos4/mach-nuri.c | |||
| @@ -1152,7 +1152,7 @@ static void __init nuri_machine_init(void) | |||
| 1152 | 1152 | ||
| 1153 | MACHINE_START(NURI, "NURI") | 1153 | MACHINE_START(NURI, "NURI") |
| 1154 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 1154 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
| 1155 | .boot_params = S5P_PA_SDRAM + 0x100, | 1155 | .atag_offset = 0x100, |
| 1156 | .init_irq = exynos4_init_irq, | 1156 | .init_irq = exynos4_init_irq, |
| 1157 | .map_io = nuri_map_io, | 1157 | .map_io = nuri_map_io, |
| 1158 | .init_machine = nuri_machine_init, | 1158 | .init_machine = nuri_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-smdkc210.c b/arch/arm/mach-exynos4/mach-smdkc210.c index a7c65e05c1eb..b24ddd7ad8fe 100644 --- a/arch/arm/mach-exynos4/mach-smdkc210.c +++ b/arch/arm/mach-exynos4/mach-smdkc210.c | |||
| @@ -301,7 +301,7 @@ static void __init smdkc210_machine_init(void) | |||
| 301 | 301 | ||
| 302 | MACHINE_START(SMDKC210, "SMDKC210") | 302 | MACHINE_START(SMDKC210, "SMDKC210") |
| 303 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 303 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 304 | .boot_params = S5P_PA_SDRAM + 0x100, | 304 | .atag_offset = 0x100, |
| 305 | .init_irq = exynos4_init_irq, | 305 | .init_irq = exynos4_init_irq, |
| 306 | .map_io = smdkc210_map_io, | 306 | .map_io = smdkc210_map_io, |
| 307 | .init_machine = smdkc210_machine_init, | 307 | .init_machine = smdkc210_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-smdkv310.c b/arch/arm/mach-exynos4/mach-smdkv310.c index ea4149556860..d90fcddbee1f 100644 --- a/arch/arm/mach-exynos4/mach-smdkv310.c +++ b/arch/arm/mach-exynos4/mach-smdkv310.c | |||
| @@ -255,7 +255,7 @@ static void __init smdkv310_machine_init(void) | |||
| 255 | MACHINE_START(SMDKV310, "SMDKV310") | 255 | MACHINE_START(SMDKV310, "SMDKV310") |
| 256 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 256 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 257 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ | 257 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ |
| 258 | .boot_params = S5P_PA_SDRAM + 0x100, | 258 | .atag_offset = 0x100, |
| 259 | .init_irq = exynos4_init_irq, | 259 | .init_irq = exynos4_init_irq, |
| 260 | .map_io = smdkv310_map_io, | 260 | .map_io = smdkv310_map_io, |
| 261 | .init_machine = smdkv310_machine_init, | 261 | .init_machine = smdkv310_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-universal_c210.c b/arch/arm/mach-exynos4/mach-universal_c210.c index b3b5d8911004..2aac6f755c8e 100644 --- a/arch/arm/mach-exynos4/mach-universal_c210.c +++ b/arch/arm/mach-exynos4/mach-universal_c210.c | |||
| @@ -762,7 +762,7 @@ static void __init universal_machine_init(void) | |||
| 762 | 762 | ||
| 763 | MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") | 763 | MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") |
| 764 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 764 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
| 765 | .boot_params = S5P_PA_SDRAM + 0x100, | 765 | .atag_offset = 0x100, |
| 766 | .init_irq = exynos4_init_irq, | 766 | .init_irq = exynos4_init_irq, |
| 767 | .map_io = universal_map_io, | 767 | .map_io = universal_map_io, |
| 768 | .init_machine = universal_machine_init, | 768 | .init_machine = universal_machine_init, |
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c index 5b1a8db779be..a3da5d1106c2 100644 --- a/arch/arm/mach-footbridge/cats-hw.c +++ b/arch/arm/mach-footbridge/cats-hw.c | |||
| @@ -86,7 +86,7 @@ fixup_cats(struct machine_desc *desc, struct tag *tags, | |||
| 86 | 86 | ||
| 87 | MACHINE_START(CATS, "Chalice-CATS") | 87 | MACHINE_START(CATS, "Chalice-CATS") |
| 88 | /* Maintainer: Philip Blundell */ | 88 | /* Maintainer: Philip Blundell */ |
| 89 | .boot_params = 0x00000100, | 89 | .atag_offset = 0x100, |
| 90 | .soft_reboot = 1, | 90 | .soft_reboot = 1, |
| 91 | .fixup = fixup_cats, | 91 | .fixup = fixup_cats, |
| 92 | .map_io = footbridge_map_io, | 92 | .map_io = footbridge_map_io, |
diff --git a/arch/arm/mach-footbridge/ebsa285.c b/arch/arm/mach-footbridge/ebsa285.c index 2ef69ff44ba8..012210cf7d16 100644 --- a/arch/arm/mach-footbridge/ebsa285.c +++ b/arch/arm/mach-footbridge/ebsa285.c | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | MACHINE_START(EBSA285, "EBSA285") | 16 | MACHINE_START(EBSA285, "EBSA285") |
| 17 | /* Maintainer: Russell King */ | 17 | /* Maintainer: Russell King */ |
| 18 | .boot_params = 0x00000100, | 18 | .atag_offset = 0x100, |
| 19 | .video_start = 0x000a0000, | 19 | .video_start = 0x000a0000, |
| 20 | .video_end = 0x000bffff, | 20 | .video_end = 0x000bffff, |
| 21 | .map_io = footbridge_map_io, | 21 | .map_io = footbridge_map_io, |
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c index 06e514f372d0..d8c1c922e24c 100644 --- a/arch/arm/mach-footbridge/netwinder-hw.c +++ b/arch/arm/mach-footbridge/netwinder-hw.c | |||
| @@ -648,7 +648,7 @@ fixup_netwinder(struct machine_desc *desc, struct tag *tags, | |||
| 648 | 648 | ||
| 649 | MACHINE_START(NETWINDER, "Rebel-NetWinder") | 649 | MACHINE_START(NETWINDER, "Rebel-NetWinder") |
| 650 | /* Maintainer: Russell King/Rebel.com */ | 650 | /* Maintainer: Russell King/Rebel.com */ |
| 651 | .boot_params = 0x00000100, | 651 | .atag_offset = 0x100, |
| 652 | .video_start = 0x000a0000, | 652 | .video_start = 0x000a0000, |
| 653 | .video_end = 0x000bffff, | 653 | .video_end = 0x000bffff, |
| 654 | .reserve_lp0 = 1, | 654 | .reserve_lp0 = 1, |
diff --git a/arch/arm/mach-footbridge/personal.c b/arch/arm/mach-footbridge/personal.c index 3285e91ca8c1..f41dba39b327 100644 --- a/arch/arm/mach-footbridge/personal.c +++ b/arch/arm/mach-footbridge/personal.c | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer") | 16 | MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer") |
| 17 | /* Maintainer: Jamey Hicks / George France */ | 17 | /* Maintainer: Jamey Hicks / George France */ |
| 18 | .boot_params = 0x00000100, | 18 | .atag_offset = 0x100, |
| 19 | .map_io = footbridge_map_io, | 19 | .map_io = footbridge_map_io, |
| 20 | .init_irq = footbridge_init_irq, | 20 | .init_irq = footbridge_init_irq, |
| 21 | .timer = &footbridge_timer, | 21 | .timer = &footbridge_timer, |
diff --git a/arch/arm/mach-gemini/board-nas4220b.c b/arch/arm/mach-gemini/board-nas4220b.c index 0cf7a07c3f3f..5927d3c253aa 100644 --- a/arch/arm/mach-gemini/board-nas4220b.c +++ b/arch/arm/mach-gemini/board-nas4220b.c | |||
| @@ -102,7 +102,7 @@ static void __init ib4220b_init(void) | |||
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B") | 104 | MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B") |
| 105 | .boot_params = 0x100, | 105 | .atag_offset = 0x100, |
| 106 | .map_io = gemini_map_io, | 106 | .map_io = gemini_map_io, |
| 107 | .init_irq = gemini_init_irq, | 107 | .init_irq = gemini_init_irq, |
| 108 | .timer = &ib4220b_timer, | 108 | .timer = &ib4220b_timer, |
diff --git a/arch/arm/mach-gemini/board-rut1xx.c b/arch/arm/mach-gemini/board-rut1xx.c index 4fa09af99495..cd7437a1cea0 100644 --- a/arch/arm/mach-gemini/board-rut1xx.c +++ b/arch/arm/mach-gemini/board-rut1xx.c | |||
| @@ -86,7 +86,7 @@ static void __init rut1xx_init(void) | |||
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | MACHINE_START(RUT100, "Teltonika RUT100") | 88 | MACHINE_START(RUT100, "Teltonika RUT100") |
| 89 | .boot_params = 0x100, | 89 | .atag_offset = 0x100, |
| 90 | .map_io = gemini_map_io, | 90 | .map_io = gemini_map_io, |
| 91 | .init_irq = gemini_init_irq, | 91 | .init_irq = gemini_init_irq, |
| 92 | .timer = &rut1xx_timer, | 92 | .timer = &rut1xx_timer, |
diff --git a/arch/arm/mach-gemini/board-wbd111.c b/arch/arm/mach-gemini/board-wbd111.c index 88cc422ee444..a367880368f1 100644 --- a/arch/arm/mach-gemini/board-wbd111.c +++ b/arch/arm/mach-gemini/board-wbd111.c | |||
| @@ -129,7 +129,7 @@ static void __init wbd111_init(void) | |||
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | MACHINE_START(WBD111, "Wiliboard WBD-111") | 131 | MACHINE_START(WBD111, "Wiliboard WBD-111") |
| 132 | .boot_params = 0x100, | 132 | .atag_offset = 0x100, |
| 133 | .map_io = gemini_map_io, | 133 | .map_io = gemini_map_io, |
| 134 | .init_irq = gemini_init_irq, | 134 | .init_irq = gemini_init_irq, |
| 135 | .timer = &wbd111_timer, | 135 | .timer = &wbd111_timer, |
diff --git a/arch/arm/mach-gemini/board-wbd222.c b/arch/arm/mach-gemini/board-wbd222.c index 3a220347bc88..f382811c1319 100644 --- a/arch/arm/mach-gemini/board-wbd222.c +++ b/arch/arm/mach-gemini/board-wbd222.c | |||
| @@ -129,7 +129,7 @@ static void __init wbd222_init(void) | |||
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | MACHINE_START(WBD222, "Wiliboard WBD-222") | 131 | MACHINE_START(WBD222, "Wiliboard WBD-222") |
| 132 | .boot_params = 0x100, | 132 | .atag_offset = 0x100, |
| 133 | .map_io = gemini_map_io, | 133 | .map_io = gemini_map_io, |
| 134 | .init_irq = gemini_init_irq, | 134 | .init_irq = gemini_init_irq, |
| 135 | .timer = &wbd222_timer, | 135 | .timer = &wbd222_timer, |
diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c index 65f1bea958e5..9886f19805f4 100644 --- a/arch/arm/mach-h720x/h7201-eval.c +++ b/arch/arm/mach-h720x/h7201-eval.c | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | 29 | ||
| 30 | MACHINE_START(H7201, "Hynix GMS30C7201") | 30 | MACHINE_START(H7201, "Hynix GMS30C7201") |
| 31 | /* Maintainer: Robert Schwebel, Pengutronix */ | 31 | /* Maintainer: Robert Schwebel, Pengutronix */ |
| 32 | .boot_params = 0xc0001000, | 32 | .atag_offset = 0x1000, |
| 33 | .map_io = h720x_map_io, | 33 | .map_io = h720x_map_io, |
| 34 | .init_irq = h720x_init_irq, | 34 | .init_irq = h720x_init_irq, |
| 35 | .timer = &h7201_timer, | 35 | .timer = &h7201_timer, |
diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c index 884584a09752..284a134819e1 100644 --- a/arch/arm/mach-h720x/h7202-eval.c +++ b/arch/arm/mach-h720x/h7202-eval.c | |||
| @@ -71,7 +71,7 @@ static void __init init_eval_h7202(void) | |||
| 71 | 71 | ||
| 72 | MACHINE_START(H7202, "Hynix HMS30C7202") | 72 | MACHINE_START(H7202, "Hynix HMS30C7202") |
| 73 | /* Maintainer: Robert Schwebel, Pengutronix */ | 73 | /* Maintainer: Robert Schwebel, Pengutronix */ |
| 74 | .boot_params = 0x40000100, | 74 | .atag_offset = 0x100, |
| 75 | .map_io = h720x_map_io, | 75 | .map_io = h720x_map_io, |
| 76 | .init_irq = h7202_init_irq, | 76 | .init_irq = h7202_init_irq, |
| 77 | .timer = &h7202_timer, | 77 | .timer = &h7202_timer, |
diff --git a/arch/arm/mach-imx/mach-armadillo5x0.c b/arch/arm/mach-imx/mach-armadillo5x0.c index ede2710f8b76..215259083945 100644 --- a/arch/arm/mach-imx/mach-armadillo5x0.c +++ b/arch/arm/mach-imx/mach-armadillo5x0.c | |||
| @@ -558,7 +558,7 @@ static struct sys_timer armadillo5x0_timer = { | |||
| 558 | 558 | ||
| 559 | MACHINE_START(ARMADILLO5X0, "Armadillo-500") | 559 | MACHINE_START(ARMADILLO5X0, "Armadillo-500") |
| 560 | /* Maintainer: Alberto Panizzo */ | 560 | /* Maintainer: Alberto Panizzo */ |
| 561 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 561 | .atag_offset = 0x100, |
| 562 | .map_io = mx31_map_io, | 562 | .map_io = mx31_map_io, |
| 563 | .init_early = imx31_init_early, | 563 | .init_early = imx31_init_early, |
| 564 | .init_irq = mx31_init_irq, | 564 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-cpuimx27.c b/arch/arm/mach-imx/mach-cpuimx27.c index f851fe903687..b1ec2cf53bb0 100644 --- a/arch/arm/mach-imx/mach-cpuimx27.c +++ b/arch/arm/mach-imx/mach-cpuimx27.c | |||
| @@ -311,7 +311,7 @@ static struct sys_timer eukrea_cpuimx27_timer = { | |||
| 311 | }; | 311 | }; |
| 312 | 312 | ||
| 313 | MACHINE_START(EUKREA_CPUIMX27, "EUKREA CPUIMX27") | 313 | MACHINE_START(EUKREA_CPUIMX27, "EUKREA CPUIMX27") |
| 314 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 314 | .atag_offset = 0x100, |
| 315 | .map_io = mx27_map_io, | 315 | .map_io = mx27_map_io, |
| 316 | .init_early = imx27_init_early, | 316 | .init_early = imx27_init_early, |
| 317 | .init_irq = mx27_init_irq, | 317 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-cpuimx35.c b/arch/arm/mach-imx/mach-cpuimx35.c index 4bd083ba9af2..470b654b0e6e 100644 --- a/arch/arm/mach-imx/mach-cpuimx35.c +++ b/arch/arm/mach-imx/mach-cpuimx35.c | |||
| @@ -194,7 +194,7 @@ struct sys_timer eukrea_cpuimx35_timer = { | |||
| 194 | 194 | ||
| 195 | MACHINE_START(EUKREA_CPUIMX35SD, "Eukrea CPUIMX35") | 195 | MACHINE_START(EUKREA_CPUIMX35SD, "Eukrea CPUIMX35") |
| 196 | /* Maintainer: Eukrea Electromatique */ | 196 | /* Maintainer: Eukrea Electromatique */ |
| 197 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 197 | .atag_offset = 0x100, |
| 198 | .map_io = mx35_map_io, | 198 | .map_io = mx35_map_io, |
| 199 | .init_early = imx35_init_early, | 199 | .init_early = imx35_init_early, |
| 200 | .init_irq = mx35_init_irq, | 200 | .init_irq = mx35_init_irq, |
diff --git a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c index 2442d5da883d..9163318e95a2 100644 --- a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c +++ b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c | |||
| @@ -163,7 +163,7 @@ static struct sys_timer eukrea_cpuimx25_timer = { | |||
| 163 | 163 | ||
| 164 | MACHINE_START(EUKREA_CPUIMX25SD, "Eukrea CPUIMX25") | 164 | MACHINE_START(EUKREA_CPUIMX25SD, "Eukrea CPUIMX25") |
| 165 | /* Maintainer: Eukrea Electromatique */ | 165 | /* Maintainer: Eukrea Electromatique */ |
| 166 | .boot_params = MX25_PHYS_OFFSET + 0x100, | 166 | .atag_offset = 0x100, |
| 167 | .map_io = mx25_map_io, | 167 | .map_io = mx25_map_io, |
| 168 | .init_early = imx25_init_early, | 168 | .init_early = imx25_init_early, |
| 169 | .init_irq = mx25_init_irq, | 169 | .init_irq = mx25_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 6778f8193bc6..22306ce28658 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
| @@ -275,7 +275,7 @@ static struct sys_timer visstrim_m10_timer = { | |||
| 275 | }; | 275 | }; |
| 276 | 276 | ||
| 277 | MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10") | 277 | MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10") |
| 278 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 278 | .atag_offset = 0x100, |
| 279 | .map_io = mx27_map_io, | 279 | .map_io = mx27_map_io, |
| 280 | .init_early = imx27_init_early, | 280 | .init_early = imx27_init_early, |
| 281 | .init_irq = mx27_init_irq, | 281 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx27ipcam.c b/arch/arm/mach-imx/mach-imx27ipcam.c index 272f793e9247..8da48b33fc53 100644 --- a/arch/arm/mach-imx/mach-imx27ipcam.c +++ b/arch/arm/mach-imx/mach-imx27ipcam.c | |||
| @@ -71,7 +71,7 @@ static struct sys_timer mx27ipcam_timer = { | |||
| 71 | 71 | ||
| 72 | MACHINE_START(IMX27IPCAM, "Freescale IMX27IPCAM") | 72 | MACHINE_START(IMX27IPCAM, "Freescale IMX27IPCAM") |
| 73 | /* maintainer: Freescale Semiconductor, Inc. */ | 73 | /* maintainer: Freescale Semiconductor, Inc. */ |
| 74 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 74 | .atag_offset = 0x100, |
| 75 | .map_io = mx27_map_io, | 75 | .map_io = mx27_map_io, |
| 76 | .init_early = imx27_init_early, | 76 | .init_early = imx27_init_early, |
| 77 | .init_irq = mx27_init_irq, | 77 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx27lite.c b/arch/arm/mach-imx/mach-imx27lite.c index d81a769fe895..21a14a20e2c3 100644 --- a/arch/arm/mach-imx/mach-imx27lite.c +++ b/arch/arm/mach-imx/mach-imx27lite.c | |||
| @@ -77,7 +77,7 @@ static struct sys_timer mx27lite_timer = { | |||
| 77 | }; | 77 | }; |
| 78 | 78 | ||
| 79 | MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE") | 79 | MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE") |
| 80 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 80 | .atag_offset = 0x100, |
| 81 | .map_io = mx27_map_io, | 81 | .map_io = mx27_map_io, |
| 82 | .init_early = imx27_init_early, | 82 | .init_early = imx27_init_early, |
| 83 | .init_irq = mx27_init_irq, | 83 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-kzm_arm11_01.c b/arch/arm/mach-imx/mach-kzm_arm11_01.c index e472a1d88058..7c20e9e58006 100644 --- a/arch/arm/mach-imx/mach-kzm_arm11_01.c +++ b/arch/arm/mach-imx/mach-kzm_arm11_01.c | |||
| @@ -271,7 +271,7 @@ static struct sys_timer kzm_timer = { | |||
| 271 | }; | 271 | }; |
| 272 | 272 | ||
| 273 | MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01") | 273 | MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01") |
| 274 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 274 | .atag_offset = 0x100, |
| 275 | .map_io = kzm_map_io, | 275 | .map_io = kzm_map_io, |
| 276 | .init_early = imx31_init_early, | 276 | .init_early = imx31_init_early, |
| 277 | .init_irq = mx31_init_irq, | 277 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx1ads.c b/arch/arm/mach-imx/mach-mx1ads.c index 5cd8bee46960..530ea08dbafd 100644 --- a/arch/arm/mach-imx/mach-mx1ads.c +++ b/arch/arm/mach-imx/mach-mx1ads.c | |||
| @@ -145,7 +145,7 @@ struct sys_timer mx1ads_timer = { | |||
| 145 | 145 | ||
| 146 | MACHINE_START(MX1ADS, "Freescale MX1ADS") | 146 | MACHINE_START(MX1ADS, "Freescale MX1ADS") |
| 147 | /* Maintainer: Sascha Hauer, Pengutronix */ | 147 | /* Maintainer: Sascha Hauer, Pengutronix */ |
| 148 | .boot_params = MX1_PHYS_OFFSET + 0x100, | 148 | .atag_offset = 0x100, |
| 149 | .map_io = mx1_map_io, | 149 | .map_io = mx1_map_io, |
| 150 | .init_early = imx1_init_early, | 150 | .init_early = imx1_init_early, |
| 151 | .init_irq = mx1_init_irq, | 151 | .init_irq = mx1_init_irq, |
| @@ -154,7 +154,7 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS") | |||
| 154 | MACHINE_END | 154 | MACHINE_END |
| 155 | 155 | ||
| 156 | MACHINE_START(MXLADS, "Freescale MXLADS") | 156 | MACHINE_START(MXLADS, "Freescale MXLADS") |
| 157 | .boot_params = MX1_PHYS_OFFSET + 0x100, | 157 | .atag_offset = 0x100, |
| 158 | .map_io = mx1_map_io, | 158 | .map_io = mx1_map_io, |
| 159 | .init_early = imx1_init_early, | 159 | .init_early = imx1_init_early, |
| 160 | .init_irq = mx1_init_irq, | 160 | .init_irq = mx1_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c index d389ecf9b5a8..e56828da26b2 100644 --- a/arch/arm/mach-imx/mach-mx21ads.c +++ b/arch/arm/mach-imx/mach-mx21ads.c | |||
| @@ -305,7 +305,7 @@ static struct sys_timer mx21ads_timer = { | |||
| 305 | 305 | ||
| 306 | MACHINE_START(MX21ADS, "Freescale i.MX21ADS") | 306 | MACHINE_START(MX21ADS, "Freescale i.MX21ADS") |
| 307 | /* maintainer: Freescale Semiconductor, Inc. */ | 307 | /* maintainer: Freescale Semiconductor, Inc. */ |
| 308 | .boot_params = MX21_PHYS_OFFSET + 0x100, | 308 | .atag_offset = 0x100, |
| 309 | .map_io = mx21ads_map_io, | 309 | .map_io = mx21ads_map_io, |
| 310 | .init_early = imx21_init_early, | 310 | .init_early = imx21_init_early, |
| 311 | .init_irq = mx21_init_irq, | 311 | .init_irq = mx21_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx25_3ds.c b/arch/arm/mach-imx/mach-mx25_3ds.c index 7f66a91df361..dd25ee82e70a 100644 --- a/arch/arm/mach-imx/mach-mx25_3ds.c +++ b/arch/arm/mach-imx/mach-mx25_3ds.c | |||
| @@ -253,7 +253,7 @@ static struct sys_timer mx25pdk_timer = { | |||
| 253 | 253 | ||
| 254 | MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)") | 254 | MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)") |
| 255 | /* Maintainer: Freescale Semiconductor, Inc. */ | 255 | /* Maintainer: Freescale Semiconductor, Inc. */ |
| 256 | .boot_params = MX25_PHYS_OFFSET + 0x100, | 256 | .atag_offset = 0x100, |
| 257 | .map_io = mx25_map_io, | 257 | .map_io = mx25_map_io, |
| 258 | .init_early = imx25_init_early, | 258 | .init_early = imx25_init_early, |
| 259 | .init_irq = mx25_init_irq, | 259 | .init_irq = mx25_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c index 6fa6934ab150..2eafbac2c763 100644 --- a/arch/arm/mach-imx/mach-mx27_3ds.c +++ b/arch/arm/mach-imx/mach-mx27_3ds.c | |||
| @@ -421,7 +421,7 @@ static struct sys_timer mx27pdk_timer = { | |||
| 421 | 421 | ||
| 422 | MACHINE_START(MX27_3DS, "Freescale MX27PDK") | 422 | MACHINE_START(MX27_3DS, "Freescale MX27PDK") |
| 423 | /* maintainer: Freescale Semiconductor, Inc. */ | 423 | /* maintainer: Freescale Semiconductor, Inc. */ |
| 424 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 424 | .atag_offset = 0x100, |
| 425 | .map_io = mx27_map_io, | 425 | .map_io = mx27_map_io, |
| 426 | .init_early = imx27_init_early, | 426 | .init_early = imx27_init_early, |
| 427 | .init_irq = mx27_init_irq, | 427 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index fc26ed71b9ed..efe6109099fd 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c | |||
| @@ -345,7 +345,7 @@ static void __init mx27ads_map_io(void) | |||
| 345 | 345 | ||
| 346 | MACHINE_START(MX27ADS, "Freescale i.MX27ADS") | 346 | MACHINE_START(MX27ADS, "Freescale i.MX27ADS") |
| 347 | /* maintainer: Freescale Semiconductor, Inc. */ | 347 | /* maintainer: Freescale Semiconductor, Inc. */ |
| 348 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 348 | .atag_offset = 0x100, |
| 349 | .map_io = mx27ads_map_io, | 349 | .map_io = mx27ads_map_io, |
| 350 | .init_early = imx27_init_early, | 350 | .init_early = imx27_init_early, |
| 351 | .init_irq = mx27_init_irq, | 351 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31_3ds.c b/arch/arm/mach-imx/mach-mx31_3ds.c index c20be7530927..589066fb3316 100644 --- a/arch/arm/mach-imx/mach-mx31_3ds.c +++ b/arch/arm/mach-imx/mach-mx31_3ds.c | |||
| @@ -764,7 +764,7 @@ static void __init mx31_3ds_reserve(void) | |||
| 764 | 764 | ||
| 765 | MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)") | 765 | MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)") |
| 766 | /* Maintainer: Freescale Semiconductor, Inc. */ | 766 | /* Maintainer: Freescale Semiconductor, Inc. */ |
| 767 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 767 | .atag_offset = 0x100, |
| 768 | .map_io = mx31_map_io, | 768 | .map_io = mx31_map_io, |
| 769 | .init_early = imx31_init_early, | 769 | .init_early = imx31_init_early, |
| 770 | .init_irq = mx31_init_irq, | 770 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c index 29ca8907a780..910c4561d35f 100644 --- a/arch/arm/mach-imx/mach-mx31ads.c +++ b/arch/arm/mach-imx/mach-mx31ads.c | |||
| @@ -535,7 +535,7 @@ static struct sys_timer mx31ads_timer = { | |||
| 535 | 535 | ||
| 536 | MACHINE_START(MX31ADS, "Freescale MX31ADS") | 536 | MACHINE_START(MX31ADS, "Freescale MX31ADS") |
| 537 | /* Maintainer: Freescale Semiconductor, Inc. */ | 537 | /* Maintainer: Freescale Semiconductor, Inc. */ |
| 538 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 538 | .atag_offset = 0x100, |
| 539 | .map_io = mx31ads_map_io, | 539 | .map_io = mx31ads_map_io, |
| 540 | .init_early = imx31_init_early, | 540 | .init_early = imx31_init_early, |
| 541 | .init_irq = mx31ads_init_irq, | 541 | .init_irq = mx31ads_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31lilly.c b/arch/arm/mach-imx/mach-mx31lilly.c index 126913ad106a..e92eaf91a7be 100644 --- a/arch/arm/mach-imx/mach-mx31lilly.c +++ b/arch/arm/mach-imx/mach-mx31lilly.c | |||
| @@ -295,7 +295,7 @@ static struct sys_timer mx31lilly_timer = { | |||
| 295 | }; | 295 | }; |
| 296 | 296 | ||
| 297 | MACHINE_START(LILLY1131, "INCO startec LILLY-1131") | 297 | MACHINE_START(LILLY1131, "INCO startec LILLY-1131") |
| 298 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 298 | .atag_offset = 0x100, |
| 299 | .map_io = mx31_map_io, | 299 | .map_io = mx31_map_io, |
| 300 | .init_early = imx31_init_early, | 300 | .init_early = imx31_init_early, |
| 301 | .init_irq = mx31_init_irq, | 301 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31lite.c b/arch/arm/mach-imx/mach-mx31lite.c index 4b47fd9fdd89..5242cb78b563 100644 --- a/arch/arm/mach-imx/mach-mx31lite.c +++ b/arch/arm/mach-imx/mach-mx31lite.c | |||
| @@ -280,7 +280,7 @@ struct sys_timer mx31lite_timer = { | |||
| 280 | 280 | ||
| 281 | MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM") | 281 | MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM") |
| 282 | /* Maintainer: Freescale Semiconductor, Inc. */ | 282 | /* Maintainer: Freescale Semiconductor, Inc. */ |
| 283 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 283 | .atag_offset = 0x100, |
| 284 | .map_io = mx31lite_map_io, | 284 | .map_io = mx31lite_map_io, |
| 285 | .init_early = imx31_init_early, | 285 | .init_early = imx31_init_early, |
| 286 | .init_irq = mx31_init_irq, | 286 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31moboard.c b/arch/arm/mach-imx/mach-mx31moboard.c index b358383120e7..1d01ef28f25d 100644 --- a/arch/arm/mach-imx/mach-mx31moboard.c +++ b/arch/arm/mach-imx/mach-mx31moboard.c | |||
| @@ -567,7 +567,7 @@ static void __init mx31moboard_reserve(void) | |||
| 567 | 567 | ||
| 568 | MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard") | 568 | MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard") |
| 569 | /* Maintainer: Valentin Longchamp, EPFL Mobots group */ | 569 | /* Maintainer: Valentin Longchamp, EPFL Mobots group */ |
| 570 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 570 | .atag_offset = 0x100, |
| 571 | .reserve = mx31moboard_reserve, | 571 | .reserve = mx31moboard_reserve, |
| 572 | .map_io = mx31_map_io, | 572 | .map_io = mx31_map_io, |
| 573 | .init_early = imx31_init_early, | 573 | .init_early = imx31_init_early, |
diff --git a/arch/arm/mach-imx/mach-mx35_3ds.c b/arch/arm/mach-imx/mach-mx35_3ds.c index b3b9bd8ac2a3..f2a873dc08ce 100644 --- a/arch/arm/mach-imx/mach-mx35_3ds.c +++ b/arch/arm/mach-imx/mach-mx35_3ds.c | |||
| @@ -217,7 +217,7 @@ struct sys_timer mx35pdk_timer = { | |||
| 217 | 217 | ||
| 218 | MACHINE_START(MX35_3DS, "Freescale MX35PDK") | 218 | MACHINE_START(MX35_3DS, "Freescale MX35PDK") |
| 219 | /* Maintainer: Freescale Semiconductor, Inc */ | 219 | /* Maintainer: Freescale Semiconductor, Inc */ |
| 220 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 220 | .atag_offset = 0x100, |
| 221 | .map_io = mx35_map_io, | 221 | .map_io = mx35_map_io, |
| 222 | .init_early = imx35_init_early, | 222 | .init_early = imx35_init_early, |
| 223 | .init_irq = mx35_init_irq, | 223 | .init_irq = mx35_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mxt_td60.c b/arch/arm/mach-imx/mach-mxt_td60.c index c85876fed663..5ec3989704fd 100644 --- a/arch/arm/mach-imx/mach-mxt_td60.c +++ b/arch/arm/mach-imx/mach-mxt_td60.c | |||
| @@ -267,7 +267,7 @@ static struct sys_timer mxt_td60_timer = { | |||
| 267 | 267 | ||
| 268 | MACHINE_START(MXT_TD60, "Maxtrack i-MXT TD60") | 268 | MACHINE_START(MXT_TD60, "Maxtrack i-MXT TD60") |
| 269 | /* maintainer: Maxtrack Industrial */ | 269 | /* maintainer: Maxtrack Industrial */ |
| 270 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 270 | .atag_offset = 0x100, |
| 271 | .map_io = mx27_map_io, | 271 | .map_io = mx27_map_io, |
| 272 | .init_early = imx27_init_early, | 272 | .init_early = imx27_init_early, |
| 273 | .init_irq = mx27_init_irq, | 273 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-pca100.c b/arch/arm/mach-imx/mach-pca100.c index 71083aa16038..0f6bd1199038 100644 --- a/arch/arm/mach-imx/mach-pca100.c +++ b/arch/arm/mach-imx/mach-pca100.c | |||
| @@ -435,7 +435,7 @@ static struct sys_timer pca100_timer = { | |||
| 435 | }; | 435 | }; |
| 436 | 436 | ||
| 437 | MACHINE_START(PCA100, "phyCARD-i.MX27") | 437 | MACHINE_START(PCA100, "phyCARD-i.MX27") |
| 438 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 438 | .atag_offset = 0x100, |
| 439 | .map_io = mx27_map_io, | 439 | .map_io = mx27_map_io, |
| 440 | .init_early = imx27_init_early, | 440 | .init_early = imx27_init_early, |
| 441 | .init_irq = mx27_init_irq, | 441 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-pcm037.c b/arch/arm/mach-imx/mach-pcm037.c index f45b7cd72c8a..186d4eb90796 100644 --- a/arch/arm/mach-imx/mach-pcm037.c +++ b/arch/arm/mach-imx/mach-pcm037.c | |||
| @@ -688,7 +688,7 @@ static void __init pcm037_reserve(void) | |||
| 688 | 688 | ||
| 689 | MACHINE_START(PCM037, "Phytec Phycore pcm037") | 689 | MACHINE_START(PCM037, "Phytec Phycore pcm037") |
| 690 | /* Maintainer: Pengutronix */ | 690 | /* Maintainer: Pengutronix */ |
| 691 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 691 | .atag_offset = 0x100, |
| 692 | .reserve = pcm037_reserve, | 692 | .reserve = pcm037_reserve, |
| 693 | .map_io = mx31_map_io, | 693 | .map_io = mx31_map_io, |
| 694 | .init_early = imx31_init_early, | 694 | .init_early = imx31_init_early, |
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c index 2d6a64bbac44..091bcf87e1a0 100644 --- a/arch/arm/mach-imx/mach-pcm038.c +++ b/arch/arm/mach-imx/mach-pcm038.c | |||
| @@ -349,7 +349,7 @@ static struct sys_timer pcm038_timer = { | |||
| 349 | }; | 349 | }; |
| 350 | 350 | ||
| 351 | MACHINE_START(PCM038, "phyCORE-i.MX27") | 351 | MACHINE_START(PCM038, "phyCORE-i.MX27") |
| 352 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 352 | .atag_offset = 0x100, |
| 353 | .map_io = mx27_map_io, | 353 | .map_io = mx27_map_io, |
| 354 | .init_early = imx27_init_early, | 354 | .init_early = imx27_init_early, |
| 355 | .init_irq = mx27_init_irq, | 355 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-pcm043.c b/arch/arm/mach-imx/mach-pcm043.c index 660ec3e80cf8..0a4d31de7738 100644 --- a/arch/arm/mach-imx/mach-pcm043.c +++ b/arch/arm/mach-imx/mach-pcm043.c | |||
| @@ -418,7 +418,7 @@ struct sys_timer pcm043_timer = { | |||
| 418 | 418 | ||
| 419 | MACHINE_START(PCM043, "Phytec Phycore pcm043") | 419 | MACHINE_START(PCM043, "Phytec Phycore pcm043") |
| 420 | /* Maintainer: Pengutronix */ | 420 | /* Maintainer: Pengutronix */ |
| 421 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 421 | .atag_offset = 0x100, |
| 422 | .map_io = mx35_map_io, | 422 | .map_io = mx35_map_io, |
| 423 | .init_early = imx35_init_early, | 423 | .init_early = imx35_init_early, |
| 424 | .init_irq = mx35_init_irq, | 424 | .init_irq = mx35_init_irq, |
diff --git a/arch/arm/mach-imx/mach-qong.c b/arch/arm/mach-imx/mach-qong.c index 3626f486498a..9e11359c324c 100644 --- a/arch/arm/mach-imx/mach-qong.c +++ b/arch/arm/mach-imx/mach-qong.c | |||
| @@ -262,7 +262,7 @@ static struct sys_timer qong_timer = { | |||
| 262 | 262 | ||
| 263 | MACHINE_START(QONG, "Dave/DENX QongEVB-LITE") | 263 | MACHINE_START(QONG, "Dave/DENX QongEVB-LITE") |
| 264 | /* Maintainer: DENX Software Engineering GmbH */ | 264 | /* Maintainer: DENX Software Engineering GmbH */ |
| 265 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 265 | .atag_offset = 0x100, |
| 266 | .map_io = mx31_map_io, | 266 | .map_io = mx31_map_io, |
| 267 | .init_early = imx31_init_early, | 267 | .init_early = imx31_init_early, |
| 268 | .init_irq = mx31_init_irq, | 268 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-scb9328.c b/arch/arm/mach-imx/mach-scb9328.c index db2d60470e15..85d32845ee1e 100644 --- a/arch/arm/mach-imx/mach-scb9328.c +++ b/arch/arm/mach-imx/mach-scb9328.c | |||
| @@ -137,7 +137,7 @@ static struct sys_timer scb9328_timer = { | |||
| 137 | 137 | ||
| 138 | MACHINE_START(SCB9328, "Synertronixx scb9328") | 138 | MACHINE_START(SCB9328, "Synertronixx scb9328") |
| 139 | /* Sascha Hauer */ | 139 | /* Sascha Hauer */ |
| 140 | .boot_params = 0x08000100, | 140 | .atag_offset = 100, |
| 141 | .map_io = mx1_map_io, | 141 | .map_io = mx1_map_io, |
| 142 | .init_early = imx1_init_early, | 142 | .init_early = imx1_init_early, |
| 143 | .init_irq = mx1_init_irq, | 143 | .init_irq = mx1_init_irq, |
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c index fcf0ae95651f..b19ae1805569 100644 --- a/arch/arm/mach-integrator/integrator_ap.c +++ b/arch/arm/mach-integrator/integrator_ap.c | |||
| @@ -457,7 +457,7 @@ static struct sys_timer ap_timer = { | |||
| 457 | 457 | ||
| 458 | MACHINE_START(INTEGRATOR, "ARM-Integrator") | 458 | MACHINE_START(INTEGRATOR, "ARM-Integrator") |
| 459 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 459 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 460 | .boot_params = 0x00000100, | 460 | .atag_offset = 0x100, |
| 461 | .reserve = integrator_reserve, | 461 | .reserve = integrator_reserve, |
| 462 | .map_io = ap_map_io, | 462 | .map_io = ap_map_io, |
| 463 | .init_early = integrator_init_early, | 463 | .init_early = integrator_init_early, |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 4eb03ab5cb46..5de49c33e4d4 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
| @@ -492,7 +492,7 @@ static struct sys_timer cp_timer = { | |||
| 492 | 492 | ||
| 493 | MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP") | 493 | MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP") |
| 494 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 494 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 495 | .boot_params = 0x00000100, | 495 | .atag_offset = 0x100, |
| 496 | .reserve = integrator_reserve, | 496 | .reserve = integrator_reserve, |
| 497 | .map_io = intcp_map_io, | 497 | .map_io = intcp_map_io, |
| 498 | .init_early = intcp_init_early, | 498 | .init_early = intcp_init_early, |
diff --git a/arch/arm/mach-iop13xx/iq81340mc.c b/arch/arm/mach-iop13xx/iq81340mc.c index 23dfaffc586c..4cf2cc477eae 100644 --- a/arch/arm/mach-iop13xx/iq81340mc.c +++ b/arch/arm/mach-iop13xx/iq81340mc.c | |||
| @@ -91,7 +91,7 @@ static struct sys_timer iq81340mc_timer = { | |||
| 91 | 91 | ||
| 92 | MACHINE_START(IQ81340MC, "Intel IQ81340MC") | 92 | MACHINE_START(IQ81340MC, "Intel IQ81340MC") |
| 93 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ | 93 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ |
| 94 | .boot_params = 0x00000100, | 94 | .atag_offset = 0x100, |
| 95 | .map_io = iop13xx_map_io, | 95 | .map_io = iop13xx_map_io, |
| 96 | .init_irq = iop13xx_init_irq, | 96 | .init_irq = iop13xx_init_irq, |
| 97 | .timer = &iq81340mc_timer, | 97 | .timer = &iq81340mc_timer, |
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c index df3492a9c280..cd9e27499a1e 100644 --- a/arch/arm/mach-iop13xx/iq81340sc.c +++ b/arch/arm/mach-iop13xx/iq81340sc.c | |||
| @@ -93,7 +93,7 @@ static struct sys_timer iq81340sc_timer = { | |||
| 93 | 93 | ||
| 94 | MACHINE_START(IQ81340SC, "Intel IQ81340SC") | 94 | MACHINE_START(IQ81340SC, "Intel IQ81340SC") |
| 95 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ | 95 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ |
| 96 | .boot_params = 0x00000100, | 96 | .atag_offset = 0x100, |
| 97 | .map_io = iop13xx_map_io, | 97 | .map_io = iop13xx_map_io, |
| 98 | .init_irq = iop13xx_init_irq, | 98 | .init_irq = iop13xx_init_irq, |
| 99 | .timer = &iq81340sc_timer, | 99 | .timer = &iq81340sc_timer, |
diff --git a/arch/arm/mach-iop32x/em7210.c b/arch/arm/mach-iop32x/em7210.c index 6cbffbfc2bba..4325055d4e19 100644 --- a/arch/arm/mach-iop32x/em7210.c +++ b/arch/arm/mach-iop32x/em7210.c | |||
| @@ -203,7 +203,7 @@ static void __init em7210_init_machine(void) | |||
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | MACHINE_START(EM7210, "Lanner EM7210") | 205 | MACHINE_START(EM7210, "Lanner EM7210") |
| 206 | .boot_params = 0xa0000100, | 206 | .atag_offset = 0x100, |
| 207 | .map_io = em7210_map_io, | 207 | .map_io = em7210_map_io, |
| 208 | .init_irq = iop32x_init_irq, | 208 | .init_irq = iop32x_init_irq, |
| 209 | .timer = &em7210_timer, | 209 | .timer = &em7210_timer, |
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c index ceef5d4dce1a..0edc88020577 100644 --- a/arch/arm/mach-iop32x/glantank.c +++ b/arch/arm/mach-iop32x/glantank.c | |||
| @@ -207,7 +207,7 @@ static void __init glantank_init_machine(void) | |||
| 207 | 207 | ||
| 208 | MACHINE_START(GLANTANK, "GLAN Tank") | 208 | MACHINE_START(GLANTANK, "GLAN Tank") |
| 209 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 209 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 210 | .boot_params = 0xa0000100, | 210 | .atag_offset = 0x100, |
| 211 | .map_io = glantank_map_io, | 211 | .map_io = glantank_map_io, |
| 212 | .init_irq = iop32x_init_irq, | 212 | .init_irq = iop32x_init_irq, |
| 213 | .timer = &glantank_timer, | 213 | .timer = &glantank_timer, |
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c index 3a62514dae7c..9e7aaccfeba0 100644 --- a/arch/arm/mach-iop32x/iq31244.c +++ b/arch/arm/mach-iop32x/iq31244.c | |||
| @@ -313,7 +313,7 @@ __setup("force_ep80219", force_ep80219_setup); | |||
| 313 | 313 | ||
| 314 | MACHINE_START(IQ31244, "Intel IQ31244") | 314 | MACHINE_START(IQ31244, "Intel IQ31244") |
| 315 | /* Maintainer: Intel Corp. */ | 315 | /* Maintainer: Intel Corp. */ |
| 316 | .boot_params = 0xa0000100, | 316 | .atag_offset = 0x100, |
| 317 | .map_io = iq31244_map_io, | 317 | .map_io = iq31244_map_io, |
| 318 | .init_irq = iop32x_init_irq, | 318 | .init_irq = iop32x_init_irq, |
| 319 | .timer = &iq31244_timer, | 319 | .timer = &iq31244_timer, |
| @@ -327,7 +327,7 @@ MACHINE_END | |||
| 327 | */ | 327 | */ |
| 328 | MACHINE_START(EP80219, "Intel EP80219") | 328 | MACHINE_START(EP80219, "Intel EP80219") |
| 329 | /* Maintainer: Intel Corp. */ | 329 | /* Maintainer: Intel Corp. */ |
| 330 | .boot_params = 0xa0000100, | 330 | .atag_offset = 0x100, |
| 331 | .map_io = iq31244_map_io, | 331 | .map_io = iq31244_map_io, |
| 332 | .init_irq = iop32x_init_irq, | 332 | .init_irq = iop32x_init_irq, |
| 333 | .timer = &iq31244_timer, | 333 | .timer = &iq31244_timer, |
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c index 35b7e6914d3b..53ea86f649dd 100644 --- a/arch/arm/mach-iop32x/iq80321.c +++ b/arch/arm/mach-iop32x/iq80321.c | |||
| @@ -186,7 +186,7 @@ static void __init iq80321_init_machine(void) | |||
| 186 | 186 | ||
| 187 | MACHINE_START(IQ80321, "Intel IQ80321") | 187 | MACHINE_START(IQ80321, "Intel IQ80321") |
| 188 | /* Maintainer: Intel Corp. */ | 188 | /* Maintainer: Intel Corp. */ |
| 189 | .boot_params = 0xa0000100, | 189 | .atag_offset = 0x100, |
| 190 | .map_io = iq80321_map_io, | 190 | .map_io = iq80321_map_io, |
| 191 | .init_irq = iop32x_init_irq, | 191 | .init_irq = iop32x_init_irq, |
| 192 | .timer = &iq80321_timer, | 192 | .timer = &iq80321_timer, |
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c index 1a374eab6007..d7269279968c 100644 --- a/arch/arm/mach-iop32x/n2100.c +++ b/arch/arm/mach-iop32x/n2100.c | |||
| @@ -327,7 +327,7 @@ static void __init n2100_init_machine(void) | |||
| 327 | 327 | ||
| 328 | MACHINE_START(N2100, "Thecus N2100") | 328 | MACHINE_START(N2100, "Thecus N2100") |
| 329 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 329 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 330 | .boot_params = 0xa0000100, | 330 | .atag_offset = 0x100, |
| 331 | .map_io = n2100_map_io, | 331 | .map_io = n2100_map_io, |
| 332 | .init_irq = iop32x_init_irq, | 332 | .init_irq = iop32x_init_irq, |
| 333 | .timer = &n2100_timer, | 333 | .timer = &n2100_timer, |
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c index 637c0272d5e0..9e14ccc56f8e 100644 --- a/arch/arm/mach-iop33x/iq80331.c +++ b/arch/arm/mach-iop33x/iq80331.c | |||
| @@ -141,7 +141,7 @@ static void __init iq80331_init_machine(void) | |||
| 141 | 141 | ||
| 142 | MACHINE_START(IQ80331, "Intel IQ80331") | 142 | MACHINE_START(IQ80331, "Intel IQ80331") |
| 143 | /* Maintainer: Intel Corp. */ | 143 | /* Maintainer: Intel Corp. */ |
| 144 | .boot_params = 0x00000100, | 144 | .atag_offset = 0x100, |
| 145 | .map_io = iop3xx_map_io, | 145 | .map_io = iop3xx_map_io, |
| 146 | .init_irq = iop33x_init_irq, | 146 | .init_irq = iop33x_init_irq, |
| 147 | .timer = &iq80331_timer, | 147 | .timer = &iq80331_timer, |
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c index 90a0436d7255..09c899a2523f 100644 --- a/arch/arm/mach-iop33x/iq80332.c +++ b/arch/arm/mach-iop33x/iq80332.c | |||
| @@ -141,7 +141,7 @@ static void __init iq80332_init_machine(void) | |||
| 141 | 141 | ||
| 142 | MACHINE_START(IQ80332, "Intel IQ80332") | 142 | MACHINE_START(IQ80332, "Intel IQ80332") |
| 143 | /* Maintainer: Intel Corp. */ | 143 | /* Maintainer: Intel Corp. */ |
| 144 | .boot_params = 0x00000100, | 144 | .atag_offset = 0x100, |
| 145 | .map_io = iop3xx_map_io, | 145 | .map_io = iop3xx_map_io, |
| 146 | .init_irq = iop33x_init_irq, | 146 | .init_irq = iop33x_init_irq, |
| 147 | .timer = &iq80332_timer, | 147 | .timer = &iq80332_timer, |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index 62c60ade5274..af9994537e01 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
| @@ -254,7 +254,7 @@ static void __init enp2611_init_machine(void) | |||
| 254 | 254 | ||
| 255 | MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board") | 255 | MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board") |
| 256 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 256 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
| 257 | .boot_params = 0x00000100, | 257 | .atag_offset = 0x100, |
| 258 | .map_io = enp2611_map_io, | 258 | .map_io = enp2611_map_io, |
| 259 | .init_irq = ixp2000_init_irq, | 259 | .init_irq = ixp2000_init_irq, |
| 260 | .timer = &enp2611_timer, | 260 | .timer = &enp2611_timer, |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index 5bad1a8419b7..f7dfd9700141 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
| @@ -171,7 +171,7 @@ void __init ixdp2400_init_irq(void) | |||
| 171 | 171 | ||
| 172 | MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform") | 172 | MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform") |
| 173 | /* Maintainer: MontaVista Software, Inc. */ | 173 | /* Maintainer: MontaVista Software, Inc. */ |
| 174 | .boot_params = 0x00000100, | 174 | .atag_offset = 0x100, |
| 175 | .map_io = ixdp2x00_map_io, | 175 | .map_io = ixdp2x00_map_io, |
| 176 | .init_irq = ixdp2400_init_irq, | 176 | .init_irq = ixdp2400_init_irq, |
| 177 | .timer = &ixdp2400_timer, | 177 | .timer = &ixdp2400_timer, |
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c index 3d3cef876467..d33bcac1ec92 100644 --- a/arch/arm/mach-ixp2000/ixdp2800.c +++ b/arch/arm/mach-ixp2000/ixdp2800.c | |||
| @@ -286,7 +286,7 @@ void __init ixdp2800_init_irq(void) | |||
| 286 | 286 | ||
| 287 | MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform") | 287 | MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform") |
| 288 | /* Maintainer: MontaVista Software, Inc. */ | 288 | /* Maintainer: MontaVista Software, Inc. */ |
| 289 | .boot_params = 0x00000100, | 289 | .atag_offset = 0x100, |
| 290 | .map_io = ixdp2x00_map_io, | 290 | .map_io = ixdp2x00_map_io, |
| 291 | .init_irq = ixdp2800_init_irq, | 291 | .init_irq = ixdp2800_init_irq, |
| 292 | .timer = &ixdp2800_timer, | 292 | .timer = &ixdp2800_timer, |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index be2a254f1374..61a28676b5be 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
| @@ -417,7 +417,7 @@ static void __init ixdp2x01_init_machine(void) | |||
| 417 | #ifdef CONFIG_ARCH_IXDP2401 | 417 | #ifdef CONFIG_ARCH_IXDP2401 |
| 418 | MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform") | 418 | MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform") |
| 419 | /* Maintainer: MontaVista Software, Inc. */ | 419 | /* Maintainer: MontaVista Software, Inc. */ |
| 420 | .boot_params = 0x00000100, | 420 | .atag_offset = 0x100, |
| 421 | .map_io = ixdp2x01_map_io, | 421 | .map_io = ixdp2x01_map_io, |
| 422 | .init_irq = ixdp2x01_init_irq, | 422 | .init_irq = ixdp2x01_init_irq, |
| 423 | .timer = &ixdp2x01_timer, | 423 | .timer = &ixdp2x01_timer, |
| @@ -428,7 +428,7 @@ MACHINE_END | |||
| 428 | #ifdef CONFIG_ARCH_IXDP2801 | 428 | #ifdef CONFIG_ARCH_IXDP2801 |
| 429 | MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform") | 429 | MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform") |
| 430 | /* Maintainer: MontaVista Software, Inc. */ | 430 | /* Maintainer: MontaVista Software, Inc. */ |
| 431 | .boot_params = 0x00000100, | 431 | .atag_offset = 0x100, |
| 432 | .map_io = ixdp2x01_map_io, | 432 | .map_io = ixdp2x01_map_io, |
| 433 | .init_irq = ixdp2x01_init_irq, | 433 | .init_irq = ixdp2x01_init_irq, |
| 434 | .timer = &ixdp2x01_timer, | 434 | .timer = &ixdp2x01_timer, |
| @@ -441,7 +441,7 @@ MACHINE_END | |||
| 441 | */ | 441 | */ |
| 442 | MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform") | 442 | MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform") |
| 443 | /* Maintainer: MontaVista Software, Inc. */ | 443 | /* Maintainer: MontaVista Software, Inc. */ |
| 444 | .boot_params = 0x00000100, | 444 | .atag_offset = 0x100, |
| 445 | .map_io = ixdp2x01_map_io, | 445 | .map_io = ixdp2x01_map_io, |
| 446 | .init_irq = ixdp2x01_init_irq, | 446 | .init_irq = ixdp2x01_init_irq, |
| 447 | .timer = &ixdp2x01_timer, | 447 | .timer = &ixdp2x01_timer, |
diff --git a/arch/arm/mach-ixp23xx/espresso.c b/arch/arm/mach-ixp23xx/espresso.c index e25e5fe183ba..30dd31652e9d 100644 --- a/arch/arm/mach-ixp23xx/espresso.c +++ b/arch/arm/mach-ixp23xx/espresso.c | |||
| @@ -88,6 +88,6 @@ MACHINE_START(ESPRESSO, "IP Fabrics Double Espresso") | |||
| 88 | .map_io = ixp23xx_map_io, | 88 | .map_io = ixp23xx_map_io, |
| 89 | .init_irq = ixp23xx_init_irq, | 89 | .init_irq = ixp23xx_init_irq, |
| 90 | .timer = &ixp23xx_timer, | 90 | .timer = &ixp23xx_timer, |
| 91 | .boot_params = 0x00000100, | 91 | .atag_offset = 0x100, |
| 92 | .init_machine = espresso_init, | 92 | .init_machine = espresso_init, |
| 93 | MACHINE_END | 93 | MACHINE_END |
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c index ec028e35f401..b3a57e0f3419 100644 --- a/arch/arm/mach-ixp23xx/ixdp2351.c +++ b/arch/arm/mach-ixp23xx/ixdp2351.c | |||
| @@ -331,6 +331,6 @@ MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform") | |||
| 331 | .map_io = ixdp2351_map_io, | 331 | .map_io = ixdp2351_map_io, |
| 332 | .init_irq = ixdp2351_init_irq, | 332 | .init_irq = ixdp2351_init_irq, |
| 333 | .timer = &ixp23xx_timer, | 333 | .timer = &ixp23xx_timer, |
| 334 | .boot_params = 0x00000100, | 334 | .atag_offset = 0x100, |
| 335 | .init_machine = ixdp2351_init, | 335 | .init_machine = ixdp2351_init, |
| 336 | MACHINE_END | 336 | MACHINE_END |
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c index 844551d2368b..8f4dcbba9025 100644 --- a/arch/arm/mach-ixp23xx/roadrunner.c +++ b/arch/arm/mach-ixp23xx/roadrunner.c | |||
| @@ -175,6 +175,6 @@ MACHINE_START(ROADRUNNER, "ADI Engineering RoadRunner Development Platform") | |||
| 175 | .map_io = ixp23xx_map_io, | 175 | .map_io = ixp23xx_map_io, |
| 176 | .init_irq = ixp23xx_init_irq, | 176 | .init_irq = ixp23xx_init_irq, |
| 177 | .timer = &ixp23xx_timer, | 177 | .timer = &ixp23xx_timer, |
| 178 | .boot_params = 0x00000100, | 178 | .atag_offset = 0x100, |
| 179 | .init_machine = roadrunner_init, | 179 | .init_machine = roadrunner_init, |
| 180 | MACHINE_END | 180 | MACHINE_END |
diff --git a/arch/arm/mach-ixp4xx/avila-setup.c b/arch/arm/mach-ixp4xx/avila-setup.c index ee19c1d383aa..37609a22c450 100644 --- a/arch/arm/mach-ixp4xx/avila-setup.c +++ b/arch/arm/mach-ixp4xx/avila-setup.c | |||
| @@ -167,7 +167,7 @@ MACHINE_START(AVILA, "Gateworks Avila Network Platform") | |||
| 167 | .map_io = ixp4xx_map_io, | 167 | .map_io = ixp4xx_map_io, |
| 168 | .init_irq = ixp4xx_init_irq, | 168 | .init_irq = ixp4xx_init_irq, |
| 169 | .timer = &ixp4xx_timer, | 169 | .timer = &ixp4xx_timer, |
| 170 | .boot_params = 0x0100, | 170 | .atag_offset = 0x100, |
| 171 | .init_machine = avila_init, | 171 | .init_machine = avila_init, |
| 172 | #if defined(CONFIG_PCI) | 172 | #if defined(CONFIG_PCI) |
| 173 | .dma_zone_size = SZ_64M, | 173 | .dma_zone_size = SZ_64M, |
| @@ -185,7 +185,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc Loft board") | |||
| 185 | .map_io = ixp4xx_map_io, | 185 | .map_io = ixp4xx_map_io, |
| 186 | .init_irq = ixp4xx_init_irq, | 186 | .init_irq = ixp4xx_init_irq, |
| 187 | .timer = &ixp4xx_timer, | 187 | .timer = &ixp4xx_timer, |
| 188 | .boot_params = 0x0100, | 188 | .atag_offset = 0x100, |
| 189 | .init_machine = avila_init, | 189 | .init_machine = avila_init, |
| 190 | #if defined(CONFIG_PCI) | 190 | #if defined(CONFIG_PCI) |
| 191 | .dma_zone_size = SZ_64M, | 191 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/coyote-setup.c b/arch/arm/mach-ixp4xx/coyote-setup.c index e24564b5d935..81dfec31842b 100644 --- a/arch/arm/mach-ixp4xx/coyote-setup.c +++ b/arch/arm/mach-ixp4xx/coyote-setup.c | |||
| @@ -112,7 +112,7 @@ MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote") | |||
| 112 | .map_io = ixp4xx_map_io, | 112 | .map_io = ixp4xx_map_io, |
| 113 | .init_irq = ixp4xx_init_irq, | 113 | .init_irq = ixp4xx_init_irq, |
| 114 | .timer = &ixp4xx_timer, | 114 | .timer = &ixp4xx_timer, |
| 115 | .boot_params = 0x0100, | 115 | .atag_offset = 0x100, |
| 116 | .init_machine = coyote_init, | 116 | .init_machine = coyote_init, |
| 117 | #if defined(CONFIG_PCI) | 117 | #if defined(CONFIG_PCI) |
| 118 | .dma_zone_size = SZ_64M, | 118 | .dma_zone_size = SZ_64M, |
| @@ -130,7 +130,7 @@ MACHINE_START(IXDPG425, "Intel IXDPG425") | |||
| 130 | .map_io = ixp4xx_map_io, | 130 | .map_io = ixp4xx_map_io, |
| 131 | .init_irq = ixp4xx_init_irq, | 131 | .init_irq = ixp4xx_init_irq, |
| 132 | .timer = &ixp4xx_timer, | 132 | .timer = &ixp4xx_timer, |
| 133 | .boot_params = 0x0100, | 133 | .atag_offset = 0x100, |
| 134 | .init_machine = coyote_init, | 134 | .init_machine = coyote_init, |
| 135 | MACHINE_END | 135 | MACHINE_END |
| 136 | #endif | 136 | #endif |
diff --git a/arch/arm/mach-ixp4xx/dsmg600-setup.c b/arch/arm/mach-ixp4xx/dsmg600-setup.c index 03e54515e8b3..71607a7ecc7e 100644 --- a/arch/arm/mach-ixp4xx/dsmg600-setup.c +++ b/arch/arm/mach-ixp4xx/dsmg600-setup.c | |||
| @@ -279,7 +279,7 @@ static void __init dsmg600_init(void) | |||
| 279 | 279 | ||
| 280 | MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") | 280 | MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") |
| 281 | /* Maintainer: www.nslu2-linux.org */ | 281 | /* Maintainer: www.nslu2-linux.org */ |
| 282 | .boot_params = 0x00000100, | 282 | .atag_offset = 0x100, |
| 283 | .map_io = ixp4xx_map_io, | 283 | .map_io = ixp4xx_map_io, |
| 284 | .init_irq = ixp4xx_init_irq, | 284 | .init_irq = ixp4xx_init_irq, |
| 285 | .timer = &dsmg600_timer, | 285 | .timer = &dsmg600_timer, |
diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c index 23a8b3614568..a9540cd90375 100644 --- a/arch/arm/mach-ixp4xx/fsg-setup.c +++ b/arch/arm/mach-ixp4xx/fsg-setup.c | |||
| @@ -273,7 +273,7 @@ MACHINE_START(FSG, "Freecom FSG-3") | |||
| 273 | .map_io = ixp4xx_map_io, | 273 | .map_io = ixp4xx_map_io, |
| 274 | .init_irq = ixp4xx_init_irq, | 274 | .init_irq = ixp4xx_init_irq, |
| 275 | .timer = &ixp4xx_timer, | 275 | .timer = &ixp4xx_timer, |
| 276 | .boot_params = 0x0100, | 276 | .atag_offset = 0x100, |
| 277 | .init_machine = fsg_init, | 277 | .init_machine = fsg_init, |
| 278 | #if defined(CONFIG_PCI) | 278 | #if defined(CONFIG_PCI) |
| 279 | .dma_zone_size = SZ_64M, | 279 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/gateway7001-setup.c b/arch/arm/mach-ixp4xx/gateway7001-setup.c index d4f851bdd9a4..d69d1b053bb7 100644 --- a/arch/arm/mach-ixp4xx/gateway7001-setup.c +++ b/arch/arm/mach-ixp4xx/gateway7001-setup.c | |||
| @@ -99,7 +99,7 @@ MACHINE_START(GATEWAY7001, "Gateway 7001 AP") | |||
| 99 | .map_io = ixp4xx_map_io, | 99 | .map_io = ixp4xx_map_io, |
| 100 | .init_irq = ixp4xx_init_irq, | 100 | .init_irq = ixp4xx_init_irq, |
| 101 | .timer = &ixp4xx_timer, | 101 | .timer = &ixp4xx_timer, |
| 102 | .boot_params = 0x0100, | 102 | .atag_offset = 0x100, |
| 103 | .init_machine = gateway7001_init, | 103 | .init_machine = gateway7001_init, |
| 104 | #if defined(CONFIG_PCI) | 104 | #if defined(CONFIG_PCI) |
| 105 | .dma_zone_size = SZ_64M, | 105 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/goramo_mlr.c b/arch/arm/mach-ixp4xx/goramo_mlr.c index 7548d9a2efe2..bf6678d1a929 100644 --- a/arch/arm/mach-ixp4xx/goramo_mlr.c +++ b/arch/arm/mach-ixp4xx/goramo_mlr.c | |||
| @@ -499,7 +499,7 @@ MACHINE_START(GORAMO_MLR, "MultiLink") | |||
| 499 | .map_io = ixp4xx_map_io, | 499 | .map_io = ixp4xx_map_io, |
| 500 | .init_irq = ixp4xx_init_irq, | 500 | .init_irq = ixp4xx_init_irq, |
| 501 | .timer = &ixp4xx_timer, | 501 | .timer = &ixp4xx_timer, |
| 502 | .boot_params = 0x0100, | 502 | .atag_offset = 0x100, |
| 503 | .init_machine = gmlr_init, | 503 | .init_machine = gmlr_init, |
| 504 | #if defined(CONFIG_PCI) | 504 | #if defined(CONFIG_PCI) |
| 505 | .dma_zone_size = SZ_64M, | 505 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/arch/arm/mach-ixp4xx/gtwx5715-setup.c index 3790dffd3c30..aa029fc19140 100644 --- a/arch/arm/mach-ixp4xx/gtwx5715-setup.c +++ b/arch/arm/mach-ixp4xx/gtwx5715-setup.c | |||
| @@ -167,7 +167,7 @@ MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)") | |||
| 167 | .map_io = ixp4xx_map_io, | 167 | .map_io = ixp4xx_map_io, |
| 168 | .init_irq = ixp4xx_init_irq, | 168 | .init_irq = ixp4xx_init_irq, |
| 169 | .timer = &ixp4xx_timer, | 169 | .timer = &ixp4xx_timer, |
| 170 | .boot_params = 0x0100, | 170 | .atag_offset = 0x100, |
| 171 | .init_machine = gtwx5715_init, | 171 | .init_machine = gtwx5715_init, |
| 172 | #if defined(CONFIG_PCI) | 172 | #if defined(CONFIG_PCI) |
| 173 | .dma_zone_size = SZ_64M, | 173 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c index 6a2927956bf6..f235f829dfa6 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c | |||
| @@ -256,7 +256,7 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") | |||
| 256 | .map_io = ixp4xx_map_io, | 256 | .map_io = ixp4xx_map_io, |
| 257 | .init_irq = ixp4xx_init_irq, | 257 | .init_irq = ixp4xx_init_irq, |
| 258 | .timer = &ixp4xx_timer, | 258 | .timer = &ixp4xx_timer, |
| 259 | .boot_params = 0x0100, | 259 | .atag_offset = 0x100, |
| 260 | .init_machine = ixdp425_init, | 260 | .init_machine = ixdp425_init, |
| 261 | #if defined(CONFIG_PCI) | 261 | #if defined(CONFIG_PCI) |
| 262 | .dma_zone_size = SZ_64M, | 262 | .dma_zone_size = SZ_64M, |
| @@ -270,7 +270,7 @@ MACHINE_START(IXDP465, "Intel IXDP465 Development Platform") | |||
| 270 | .map_io = ixp4xx_map_io, | 270 | .map_io = ixp4xx_map_io, |
| 271 | .init_irq = ixp4xx_init_irq, | 271 | .init_irq = ixp4xx_init_irq, |
| 272 | .timer = &ixp4xx_timer, | 272 | .timer = &ixp4xx_timer, |
| 273 | .boot_params = 0x0100, | 273 | .atag_offset = 0x100, |
| 274 | .init_machine = ixdp425_init, | 274 | .init_machine = ixdp425_init, |
| 275 | #if defined(CONFIG_PCI) | 275 | #if defined(CONFIG_PCI) |
| 276 | .dma_zone_size = SZ_64M, | 276 | .dma_zone_size = SZ_64M, |
| @@ -284,7 +284,7 @@ MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") | |||
| 284 | .map_io = ixp4xx_map_io, | 284 | .map_io = ixp4xx_map_io, |
| 285 | .init_irq = ixp4xx_init_irq, | 285 | .init_irq = ixp4xx_init_irq, |
| 286 | .timer = &ixp4xx_timer, | 286 | .timer = &ixp4xx_timer, |
| 287 | .boot_params = 0x0100, | 287 | .atag_offset = 0x100, |
| 288 | .init_machine = ixdp425_init, | 288 | .init_machine = ixdp425_init, |
| 289 | #if defined(CONFIG_PCI) | 289 | #if defined(CONFIG_PCI) |
| 290 | .dma_zone_size = SZ_64M, | 290 | .dma_zone_size = SZ_64M, |
| @@ -298,7 +298,7 @@ MACHINE_START(KIXRP435, "Intel KIXRP435 Reference Platform") | |||
| 298 | .map_io = ixp4xx_map_io, | 298 | .map_io = ixp4xx_map_io, |
| 299 | .init_irq = ixp4xx_init_irq, | 299 | .init_irq = ixp4xx_init_irq, |
| 300 | .timer = &ixp4xx_timer, | 300 | .timer = &ixp4xx_timer, |
| 301 | .boot_params = 0x0100, | 301 | .atag_offset = 0x100, |
| 302 | .init_machine = ixdp425_init, | 302 | .init_machine = ixdp425_init, |
| 303 | #if defined(CONFIG_PCI) | 303 | #if defined(CONFIG_PCI) |
| 304 | .dma_zone_size = SZ_64M, | 304 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c index afb51879d9a4..9f4669260d4c 100644 --- a/arch/arm/mach-ixp4xx/nas100d-setup.c +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c | |||
| @@ -314,7 +314,7 @@ static void __init nas100d_init(void) | |||
| 314 | 314 | ||
| 315 | MACHINE_START(NAS100D, "Iomega NAS 100d") | 315 | MACHINE_START(NAS100D, "Iomega NAS 100d") |
| 316 | /* Maintainer: www.nslu2-linux.org */ | 316 | /* Maintainer: www.nslu2-linux.org */ |
| 317 | .boot_params = 0x00000100, | 317 | .atag_offset = 0x100, |
| 318 | .map_io = ixp4xx_map_io, | 318 | .map_io = ixp4xx_map_io, |
| 319 | .init_irq = ixp4xx_init_irq, | 319 | .init_irq = ixp4xx_init_irq, |
| 320 | .timer = &ixp4xx_timer, | 320 | .timer = &ixp4xx_timer, |
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c index 69e40f2cf092..3676fbf6ef9c 100644 --- a/arch/arm/mach-ixp4xx/nslu2-setup.c +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c | |||
| @@ -300,7 +300,7 @@ static void __init nslu2_init(void) | |||
| 300 | 300 | ||
| 301 | MACHINE_START(NSLU2, "Linksys NSLU2") | 301 | MACHINE_START(NSLU2, "Linksys NSLU2") |
| 302 | /* Maintainer: www.nslu2-linux.org */ | 302 | /* Maintainer: www.nslu2-linux.org */ |
| 303 | .boot_params = 0x00000100, | 303 | .atag_offset = 0x100, |
| 304 | .map_io = ixp4xx_map_io, | 304 | .map_io = ixp4xx_map_io, |
| 305 | .init_irq = ixp4xx_init_irq, | 305 | .init_irq = ixp4xx_init_irq, |
| 306 | .timer = &nslu2_timer, | 306 | .timer = &nslu2_timer, |
diff --git a/arch/arm/mach-ixp4xx/vulcan-setup.c b/arch/arm/mach-ixp4xx/vulcan-setup.c index 045336c833af..27e469ef4523 100644 --- a/arch/arm/mach-ixp4xx/vulcan-setup.c +++ b/arch/arm/mach-ixp4xx/vulcan-setup.c | |||
| @@ -239,7 +239,7 @@ MACHINE_START(ARCOM_VULCAN, "Arcom/Eurotech Vulcan") | |||
| 239 | .map_io = ixp4xx_map_io, | 239 | .map_io = ixp4xx_map_io, |
| 240 | .init_irq = ixp4xx_init_irq, | 240 | .init_irq = ixp4xx_init_irq, |
| 241 | .timer = &ixp4xx_timer, | 241 | .timer = &ixp4xx_timer, |
| 242 | .boot_params = 0x0100, | 242 | .atag_offset = 0x100, |
| 243 | .init_machine = vulcan_init, | 243 | .init_machine = vulcan_init, |
| 244 | #if defined(CONFIG_PCI) | 244 | #if defined(CONFIG_PCI) |
| 245 | .dma_zone_size = SZ_64M, | 245 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/wg302v2-setup.c b/arch/arm/mach-ixp4xx/wg302v2-setup.c index 40b9fad800b8..b14144b967a7 100644 --- a/arch/arm/mach-ixp4xx/wg302v2-setup.c +++ b/arch/arm/mach-ixp4xx/wg302v2-setup.c | |||
| @@ -100,7 +100,7 @@ MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2") | |||
| 100 | .map_io = ixp4xx_map_io, | 100 | .map_io = ixp4xx_map_io, |
| 101 | .init_irq = ixp4xx_init_irq, | 101 | .init_irq = ixp4xx_init_irq, |
| 102 | .timer = &ixp4xx_timer, | 102 | .timer = &ixp4xx_timer, |
| 103 | .boot_params = 0x0100, | 103 | .atag_offset = 0x100, |
| 104 | .init_machine = wg302v2_init, | 104 | .init_machine = wg302v2_init, |
| 105 | #if defined(CONFIG_PCI) | 105 | #if defined(CONFIG_PCI) |
| 106 | .dma_zone_size = SZ_64M, | 106 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-kirkwood/d2net_v2-setup.c b/arch/arm/mach-kirkwood/d2net_v2-setup.c index 043cfd5e140b..f457e07a65f0 100644 --- a/arch/arm/mach-kirkwood/d2net_v2-setup.c +++ b/arch/arm/mach-kirkwood/d2net_v2-setup.c | |||
| @@ -221,7 +221,7 @@ static void __init d2net_v2_init(void) | |||
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | MACHINE_START(D2NET_V2, "LaCie d2 Network v2") | 223 | MACHINE_START(D2NET_V2, "LaCie d2 Network v2") |
| 224 | .boot_params = 0x00000100, | 224 | .atag_offset = 0x100, |
| 225 | .init_machine = d2net_v2_init, | 225 | .init_machine = d2net_v2_init, |
| 226 | .map_io = kirkwood_map_io, | 226 | .map_io = kirkwood_map_io, |
| 227 | .init_early = kirkwood_init_early, | 227 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c index bff04e04d679..ff4c21c1f923 100644 --- a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c +++ b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c | |||
| @@ -97,7 +97,7 @@ subsys_initcall(db88f6281_pci_init); | |||
| 97 | 97 | ||
| 98 | MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board") | 98 | MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board") |
| 99 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | 99 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ |
| 100 | .boot_params = 0x00000100, | 100 | .atag_offset = 0x100, |
| 101 | .init_machine = db88f6281_init, | 101 | .init_machine = db88f6281_init, |
| 102 | .map_io = kirkwood_map_io, | 102 | .map_io = kirkwood_map_io, |
| 103 | .init_early = kirkwood_init_early, | 103 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/dockstar-setup.c b/arch/arm/mach-kirkwood/dockstar-setup.c index f14dfb8508c5..e4d199b2b1e8 100644 --- a/arch/arm/mach-kirkwood/dockstar-setup.c +++ b/arch/arm/mach-kirkwood/dockstar-setup.c | |||
| @@ -102,7 +102,7 @@ static void __init dockstar_init(void) | |||
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | MACHINE_START(DOCKSTAR, "Seagate FreeAgent DockStar") | 104 | MACHINE_START(DOCKSTAR, "Seagate FreeAgent DockStar") |
| 105 | .boot_params = 0x00000100, | 105 | .atag_offset = 0x100, |
| 106 | .init_machine = dockstar_init, | 106 | .init_machine = dockstar_init, |
| 107 | .map_io = kirkwood_map_io, | 107 | .map_io = kirkwood_map_io, |
| 108 | .init_early = kirkwood_init_early, | 108 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/guruplug-setup.c b/arch/arm/mach-kirkwood/guruplug-setup.c index 41d1b40696a3..6c40f784b516 100644 --- a/arch/arm/mach-kirkwood/guruplug-setup.c +++ b/arch/arm/mach-kirkwood/guruplug-setup.c | |||
| @@ -121,7 +121,7 @@ static void __init guruplug_init(void) | |||
| 121 | 121 | ||
| 122 | MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") | 122 | MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") |
| 123 | /* Maintainer: Siddarth Gore <gores@marvell.com> */ | 123 | /* Maintainer: Siddarth Gore <gores@marvell.com> */ |
| 124 | .boot_params = 0x00000100, | 124 | .atag_offset = 0x100, |
| 125 | .init_machine = guruplug_init, | 125 | .init_machine = guruplug_init, |
| 126 | .map_io = kirkwood_map_io, | 126 | .map_io = kirkwood_map_io, |
| 127 | .init_early = kirkwood_init_early, | 127 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c b/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c index 00cca22eca6f..9a1e917352f7 100644 --- a/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c +++ b/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c | |||
| @@ -163,7 +163,7 @@ subsys_initcall(mv88f6281gtw_ge_pci_init); | |||
| 163 | 163 | ||
| 164 | MACHINE_START(MV88F6281GTW_GE, "Marvell 88F6281 GTW GE Board") | 164 | MACHINE_START(MV88F6281GTW_GE, "Marvell 88F6281 GTW GE Board") |
| 165 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 165 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
| 166 | .boot_params = 0x00000100, | 166 | .atag_offset = 0x100, |
| 167 | .init_machine = mv88f6281gtw_ge_init, | 167 | .init_machine = mv88f6281gtw_ge_init, |
| 168 | .map_io = kirkwood_map_io, | 168 | .map_io = kirkwood_map_io, |
| 169 | .init_early = kirkwood_init_early, | 169 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/netspace_v2-setup.c b/arch/arm/mach-kirkwood/netspace_v2-setup.c index 7cdab5776452..8849bcc7328e 100644 --- a/arch/arm/mach-kirkwood/netspace_v2-setup.c +++ b/arch/arm/mach-kirkwood/netspace_v2-setup.c | |||
| @@ -258,7 +258,7 @@ static void __init netspace_v2_init(void) | |||
| 258 | 258 | ||
| 259 | #ifdef CONFIG_MACH_NETSPACE_V2 | 259 | #ifdef CONFIG_MACH_NETSPACE_V2 |
| 260 | MACHINE_START(NETSPACE_V2, "LaCie Network Space v2") | 260 | MACHINE_START(NETSPACE_V2, "LaCie Network Space v2") |
| 261 | .boot_params = 0x00000100, | 261 | .atag_offset = 0x100, |
| 262 | .init_machine = netspace_v2_init, | 262 | .init_machine = netspace_v2_init, |
| 263 | .map_io = kirkwood_map_io, | 263 | .map_io = kirkwood_map_io, |
| 264 | .init_early = kirkwood_init_early, | 264 | .init_early = kirkwood_init_early, |
| @@ -269,7 +269,7 @@ MACHINE_END | |||
| 269 | 269 | ||
| 270 | #ifdef CONFIG_MACH_INETSPACE_V2 | 270 | #ifdef CONFIG_MACH_INETSPACE_V2 |
| 271 | MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2") | 271 | MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2") |
| 272 | .boot_params = 0x00000100, | 272 | .atag_offset = 0x100, |
| 273 | .init_machine = netspace_v2_init, | 273 | .init_machine = netspace_v2_init, |
| 274 | .map_io = kirkwood_map_io, | 274 | .map_io = kirkwood_map_io, |
| 275 | .init_early = kirkwood_init_early, | 275 | .init_early = kirkwood_init_early, |
| @@ -280,7 +280,7 @@ MACHINE_END | |||
| 280 | 280 | ||
| 281 | #ifdef CONFIG_MACH_NETSPACE_MAX_V2 | 281 | #ifdef CONFIG_MACH_NETSPACE_MAX_V2 |
| 282 | MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2") | 282 | MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2") |
| 283 | .boot_params = 0x00000100, | 283 | .atag_offset = 0x100, |
| 284 | .init_machine = netspace_v2_init, | 284 | .init_machine = netspace_v2_init, |
| 285 | .map_io = kirkwood_map_io, | 285 | .map_io = kirkwood_map_io, |
| 286 | .init_early = kirkwood_init_early, | 286 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/netxbig_v2-setup.c b/arch/arm/mach-kirkwood/netxbig_v2-setup.c index 6be627deb0fc..1ba12c4dff8f 100644 --- a/arch/arm/mach-kirkwood/netxbig_v2-setup.c +++ b/arch/arm/mach-kirkwood/netxbig_v2-setup.c | |||
| @@ -399,7 +399,7 @@ static void __init netxbig_v2_init(void) | |||
| 399 | 399 | ||
| 400 | #ifdef CONFIG_MACH_NET2BIG_V2 | 400 | #ifdef CONFIG_MACH_NET2BIG_V2 |
| 401 | MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2") | 401 | MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2") |
| 402 | .boot_params = 0x00000100, | 402 | .atag_offset = 0x100, |
| 403 | .init_machine = netxbig_v2_init, | 403 | .init_machine = netxbig_v2_init, |
| 404 | .map_io = kirkwood_map_io, | 404 | .map_io = kirkwood_map_io, |
| 405 | .init_early = kirkwood_init_early, | 405 | .init_early = kirkwood_init_early, |
| @@ -410,7 +410,7 @@ MACHINE_END | |||
| 410 | 410 | ||
| 411 | #ifdef CONFIG_MACH_NET5BIG_V2 | 411 | #ifdef CONFIG_MACH_NET5BIG_V2 |
| 412 | MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2") | 412 | MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2") |
| 413 | .boot_params = 0x00000100, | 413 | .atag_offset = 0x100, |
| 414 | .init_machine = netxbig_v2_init, | 414 | .init_machine = netxbig_v2_init, |
| 415 | .map_io = kirkwood_map_io, | 415 | .map_io = kirkwood_map_io, |
| 416 | .init_early = kirkwood_init_early, | 416 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c index f69beeff4450..5660ca6c3d88 100644 --- a/arch/arm/mach-kirkwood/openrd-setup.c +++ b/arch/arm/mach-kirkwood/openrd-setup.c | |||
| @@ -214,7 +214,7 @@ subsys_initcall(openrd_pci_init); | |||
| 214 | #ifdef CONFIG_MACH_OPENRD_BASE | 214 | #ifdef CONFIG_MACH_OPENRD_BASE |
| 215 | MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") | 215 | MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") |
| 216 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 216 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
| 217 | .boot_params = 0x00000100, | 217 | .atag_offset = 0x100, |
| 218 | .init_machine = openrd_init, | 218 | .init_machine = openrd_init, |
| 219 | .map_io = kirkwood_map_io, | 219 | .map_io = kirkwood_map_io, |
| 220 | .init_early = kirkwood_init_early, | 220 | .init_early = kirkwood_init_early, |
| @@ -226,7 +226,7 @@ MACHINE_END | |||
| 226 | #ifdef CONFIG_MACH_OPENRD_CLIENT | 226 | #ifdef CONFIG_MACH_OPENRD_CLIENT |
| 227 | MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") | 227 | MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") |
| 228 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 228 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
| 229 | .boot_params = 0x00000100, | 229 | .atag_offset = 0x100, |
| 230 | .init_machine = openrd_init, | 230 | .init_machine = openrd_init, |
| 231 | .map_io = kirkwood_map_io, | 231 | .map_io = kirkwood_map_io, |
| 232 | .init_early = kirkwood_init_early, | 232 | .init_early = kirkwood_init_early, |
| @@ -238,7 +238,7 @@ MACHINE_END | |||
| 238 | #ifdef CONFIG_MACH_OPENRD_ULTIMATE | 238 | #ifdef CONFIG_MACH_OPENRD_ULTIMATE |
| 239 | MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board") | 239 | MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board") |
| 240 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 240 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
| 241 | .boot_params = 0x00000100, | 241 | .atag_offset = 0x100, |
| 242 | .init_machine = openrd_init, | 242 | .init_machine = openrd_init, |
| 243 | .map_io = kirkwood_map_io, | 243 | .map_io = kirkwood_map_io, |
| 244 | .init_early = kirkwood_init_early, | 244 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index 75c6601b8d87..6663869773ab 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | |||
| @@ -79,7 +79,7 @@ subsys_initcall(rd88f6192_pci_init); | |||
| 79 | 79 | ||
| 80 | MACHINE_START(RD88F6192_NAS, "Marvell RD-88F6192-NAS Development Board") | 80 | MACHINE_START(RD88F6192_NAS, "Marvell RD-88F6192-NAS Development Board") |
| 81 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | 81 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ |
| 82 | .boot_params = 0x00000100, | 82 | .atag_offset = 0x100, |
| 83 | .init_machine = rd88f6192_init, | 83 | .init_machine = rd88f6192_init, |
| 84 | .map_io = kirkwood_map_io, | 84 | .map_io = kirkwood_map_io, |
| 85 | .init_early = kirkwood_init_early, | 85 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index 0f75494d5902..66b3c05e37a6 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
| @@ -115,7 +115,7 @@ subsys_initcall(rd88f6281_pci_init); | |||
| 115 | 115 | ||
| 116 | MACHINE_START(RD88F6281, "Marvell RD-88F6281 Reference Board") | 116 | MACHINE_START(RD88F6281, "Marvell RD-88F6281 Reference Board") |
| 117 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | 117 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ |
| 118 | .boot_params = 0x00000100, | 118 | .atag_offset = 0x100, |
| 119 | .init_machine = rd88f6281_init, | 119 | .init_machine = rd88f6281_init, |
| 120 | .map_io = kirkwood_map_io, | 120 | .map_io = kirkwood_map_io, |
| 121 | .init_early = kirkwood_init_early, | 121 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/sheevaplug-setup.c b/arch/arm/mach-kirkwood/sheevaplug-setup.c index 17de0bf53c08..8b102d62e82c 100644 --- a/arch/arm/mach-kirkwood/sheevaplug-setup.c +++ b/arch/arm/mach-kirkwood/sheevaplug-setup.c | |||
| @@ -138,7 +138,7 @@ static void __init sheevaplug_init(void) | |||
| 138 | #ifdef CONFIG_MACH_SHEEVAPLUG | 138 | #ifdef CONFIG_MACH_SHEEVAPLUG |
| 139 | MACHINE_START(SHEEVAPLUG, "Marvell SheevaPlug Reference Board") | 139 | MACHINE_START(SHEEVAPLUG, "Marvell SheevaPlug Reference Board") |
| 140 | /* Maintainer: shadi Ammouri <shadi@marvell.com> */ | 140 | /* Maintainer: shadi Ammouri <shadi@marvell.com> */ |
| 141 | .boot_params = 0x00000100, | 141 | .atag_offset = 0x100, |
| 142 | .init_machine = sheevaplug_init, | 142 | .init_machine = sheevaplug_init, |
| 143 | .map_io = kirkwood_map_io, | 143 | .map_io = kirkwood_map_io, |
| 144 | .init_early = kirkwood_init_early, | 144 | .init_early = kirkwood_init_early, |
| @@ -149,7 +149,7 @@ MACHINE_END | |||
| 149 | 149 | ||
| 150 | #ifdef CONFIG_MACH_ESATA_SHEEVAPLUG | 150 | #ifdef CONFIG_MACH_ESATA_SHEEVAPLUG |
| 151 | MACHINE_START(ESATA_SHEEVAPLUG, "Marvell eSATA SheevaPlug Reference Board") | 151 | MACHINE_START(ESATA_SHEEVAPLUG, "Marvell eSATA SheevaPlug Reference Board") |
| 152 | .boot_params = 0x00000100, | 152 | .atag_offset = 0x100, |
| 153 | .init_machine = sheevaplug_init, | 153 | .init_machine = sheevaplug_init, |
| 154 | .map_io = kirkwood_map_io, | 154 | .map_io = kirkwood_map_io, |
| 155 | .init_early = kirkwood_init_early, | 155 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/t5325-setup.c b/arch/arm/mach-kirkwood/t5325-setup.c index e6b9b1b22a35..ea104fb5ec3d 100644 --- a/arch/arm/mach-kirkwood/t5325-setup.c +++ b/arch/arm/mach-kirkwood/t5325-setup.c | |||
| @@ -201,7 +201,7 @@ subsys_initcall(hp_t5325_pci_init); | |||
| 201 | 201 | ||
| 202 | MACHINE_START(T5325, "HP t5325 Thin Client") | 202 | MACHINE_START(T5325, "HP t5325 Thin Client") |
| 203 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 203 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
| 204 | .boot_params = 0x00000100, | 204 | .atag_offset = 0x100, |
| 205 | .init_machine = hp_t5325_init, | 205 | .init_machine = hp_t5325_init, |
| 206 | .map_io = kirkwood_map_io, | 206 | .map_io = kirkwood_map_io, |
| 207 | .init_early = kirkwood_init_early, | 207 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/ts219-setup.c b/arch/arm/mach-kirkwood/ts219-setup.c index 68f32f2bf552..262c034836d4 100644 --- a/arch/arm/mach-kirkwood/ts219-setup.c +++ b/arch/arm/mach-kirkwood/ts219-setup.c | |||
| @@ -132,7 +132,7 @@ subsys_initcall(ts219_pci_init); | |||
| 132 | 132 | ||
| 133 | MACHINE_START(TS219, "QNAP TS-119/TS-219") | 133 | MACHINE_START(TS219, "QNAP TS-119/TS-219") |
| 134 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 134 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
| 135 | .boot_params = 0x00000100, | 135 | .atag_offset = 0x100, |
| 136 | .init_machine = qnap_ts219_init, | 136 | .init_machine = qnap_ts219_init, |
| 137 | .map_io = kirkwood_map_io, | 137 | .map_io = kirkwood_map_io, |
| 138 | .init_early = kirkwood_init_early, | 138 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/ts41x-setup.c b/arch/arm/mach-kirkwood/ts41x-setup.c index d5d009970705..b68f5b4a9ec8 100644 --- a/arch/arm/mach-kirkwood/ts41x-setup.c +++ b/arch/arm/mach-kirkwood/ts41x-setup.c | |||
| @@ -176,7 +176,7 @@ subsys_initcall(ts41x_pci_init); | |||
| 176 | 176 | ||
| 177 | MACHINE_START(TS41X, "QNAP TS-41x") | 177 | MACHINE_START(TS41X, "QNAP TS-41x") |
| 178 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 178 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
| 179 | .boot_params = 0x00000100, | 179 | .atag_offset = 0x100, |
| 180 | .init_machine = qnap_ts41x_init, | 180 | .init_machine = qnap_ts41x_init, |
| 181 | .map_io = kirkwood_map_io, | 181 | .map_io = kirkwood_map_io, |
| 182 | .init_early = kirkwood_init_early, | 182 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-ks8695/board-acs5k.c b/arch/arm/mach-ks8695/board-acs5k.c index 3ca4f8e6f54f..a5fcc7c7fe18 100644 --- a/arch/arm/mach-ks8695/board-acs5k.c +++ b/arch/arm/mach-ks8695/board-acs5k.c | |||
| @@ -223,7 +223,7 @@ static void __init acs5k_init(void) | |||
| 223 | 223 | ||
| 224 | MACHINE_START(ACS5K, "Brivo Systems LLC ACS-5000 Master board") | 224 | MACHINE_START(ACS5K, "Brivo Systems LLC ACS-5000 Master board") |
| 225 | /* Maintainer: Simtec Electronics. */ | 225 | /* Maintainer: Simtec Electronics. */ |
| 226 | .boot_params = KS8695_SDRAM_PA + 0x100, | 226 | .atag_offset = 0x100, |
| 227 | .map_io = ks8695_map_io, | 227 | .map_io = ks8695_map_io, |
| 228 | .init_irq = ks8695_init_irq, | 228 | .init_irq = ks8695_init_irq, |
| 229 | .init_machine = acs5k_init, | 229 | .init_machine = acs5k_init, |
diff --git a/arch/arm/mach-ks8695/board-dsm320.c b/arch/arm/mach-ks8695/board-dsm320.c index 1338cb3e9827..fb91a716a7db 100644 --- a/arch/arm/mach-ks8695/board-dsm320.c +++ b/arch/arm/mach-ks8695/board-dsm320.c | |||
| @@ -121,7 +121,7 @@ static void __init dsm320_init(void) | |||
| 121 | 121 | ||
| 122 | MACHINE_START(DSM320, "D-Link DSM-320 Wireless Media Player") | 122 | MACHINE_START(DSM320, "D-Link DSM-320 Wireless Media Player") |
| 123 | /* Maintainer: Simtec Electronics. */ | 123 | /* Maintainer: Simtec Electronics. */ |
| 124 | .boot_params = KS8695_SDRAM_PA + 0x100, | 124 | .atag_offset = 0x100, |
| 125 | .map_io = ks8695_map_io, | 125 | .map_io = ks8695_map_io, |
| 126 | .init_irq = ks8695_init_irq, | 126 | .init_irq = ks8695_init_irq, |
| 127 | .init_machine = dsm320_init, | 127 | .init_machine = dsm320_init, |
diff --git a/arch/arm/mach-ks8695/board-micrel.c b/arch/arm/mach-ks8695/board-micrel.c index e2e3cba8dcdb..8f67a750b6c7 100644 --- a/arch/arm/mach-ks8695/board-micrel.c +++ b/arch/arm/mach-ks8695/board-micrel.c | |||
| @@ -53,7 +53,7 @@ static void __init micrel_init(void) | |||
| 53 | 53 | ||
| 54 | MACHINE_START(KS8695, "KS8695 Centaur Development Board") | 54 | MACHINE_START(KS8695, "KS8695 Centaur Development Board") |
| 55 | /* Maintainer: Micrel Semiconductor Inc. */ | 55 | /* Maintainer: Micrel Semiconductor Inc. */ |
| 56 | .boot_params = KS8695_SDRAM_PA + 0x100, | 56 | .atag_offset = 0x100, |
| 57 | .map_io = ks8695_map_io, | 57 | .map_io = ks8695_map_io, |
| 58 | .init_irq = ks8695_init_irq, | 58 | .init_irq = ks8695_init_irq, |
| 59 | .init_machine = micrel_init, | 59 | .init_machine = micrel_init, |
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c index 7993b096778e..9b621e14d16a 100644 --- a/arch/arm/mach-lpc32xx/phy3250.c +++ b/arch/arm/mach-lpc32xx/phy3250.c | |||
| @@ -382,7 +382,7 @@ arch_initcall(lpc32xx_display_uid); | |||
| 382 | 382 | ||
| 383 | MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller") | 383 | MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller") |
| 384 | /* Maintainer: Kevin Wells, NXP Semiconductors */ | 384 | /* Maintainer: Kevin Wells, NXP Semiconductors */ |
| 385 | .boot_params = 0x80000100, | 385 | .atag_offset = 0x100, |
| 386 | .map_io = lpc32xx_map_io, | 386 | .map_io = lpc32xx_map_io, |
| 387 | .init_irq = lpc32xx_init_irq, | 387 | .init_irq = lpc32xx_init_irq, |
| 388 | .timer = &lpc32xx_timer, | 388 | .timer = &lpc32xx_timer, |
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c index 18a3c97bc863..16c86f8b4f3f 100644 --- a/arch/arm/mach-msm/board-halibut.c +++ b/arch/arm/mach-msm/board-halibut.c | |||
| @@ -93,7 +93,7 @@ static void __init halibut_map_io(void) | |||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") | 95 | MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") |
| 96 | .boot_params = 0x10000100, | 96 | .atag_offset = 0x100, |
| 97 | .fixup = halibut_fixup, | 97 | .fixup = halibut_fixup, |
| 98 | .map_io = halibut_map_io, | 98 | .map_io = halibut_map_io, |
| 99 | .init_irq = halibut_init_irq, | 99 | .init_irq = halibut_init_irq, |
diff --git a/arch/arm/mach-msm/board-mahimahi.c b/arch/arm/mach-msm/board-mahimahi.c index 7a9a03eb189c..8a1672ee4e4a 100644 --- a/arch/arm/mach-msm/board-mahimahi.c +++ b/arch/arm/mach-msm/board-mahimahi.c | |||
| @@ -74,7 +74,7 @@ static void __init mahimahi_map_io(void) | |||
| 74 | extern struct sys_timer msm_timer; | 74 | extern struct sys_timer msm_timer; |
| 75 | 75 | ||
| 76 | MACHINE_START(MAHIMAHI, "mahimahi") | 76 | MACHINE_START(MAHIMAHI, "mahimahi") |
| 77 | .boot_params = 0x20000100, | 77 | .atag_offset = 0x100, |
| 78 | .fixup = mahimahi_fixup, | 78 | .fixup = mahimahi_fixup, |
| 79 | .map_io = mahimahi_map_io, | 79 | .map_io = mahimahi_map_io, |
| 80 | .init_irq = msm_init_irq, | 80 | .init_irq = msm_init_irq, |
diff --git a/arch/arm/mach-msm/board-msm7x27.c b/arch/arm/mach-msm/board-msm7x27.c index c03f269e2e4b..a80765533f13 100644 --- a/arch/arm/mach-msm/board-msm7x27.c +++ b/arch/arm/mach-msm/board-msm7x27.c | |||
| @@ -130,7 +130,7 @@ static void __init msm7x2x_map_io(void) | |||
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") | 132 | MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") |
| 133 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 133 | .atag_offset = 0x100, |
| 134 | .map_io = msm7x2x_map_io, | 134 | .map_io = msm7x2x_map_io, |
| 135 | .init_irq = msm7x2x_init_irq, | 135 | .init_irq = msm7x2x_init_irq, |
| 136 | .init_machine = msm7x2x_init, | 136 | .init_machine = msm7x2x_init, |
| @@ -138,7 +138,7 @@ MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") | |||
| 138 | MACHINE_END | 138 | MACHINE_END |
| 139 | 139 | ||
| 140 | MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") | 140 | MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") |
| 141 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 141 | .atag_offset = 0x100, |
| 142 | .map_io = msm7x2x_map_io, | 142 | .map_io = msm7x2x_map_io, |
| 143 | .init_irq = msm7x2x_init_irq, | 143 | .init_irq = msm7x2x_init_irq, |
| 144 | .init_machine = msm7x2x_init, | 144 | .init_machine = msm7x2x_init, |
| @@ -146,7 +146,7 @@ MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") | |||
| 146 | MACHINE_END | 146 | MACHINE_END |
| 147 | 147 | ||
| 148 | MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") | 148 | MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") |
| 149 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 149 | .atag_offset = 0x100, |
| 150 | .map_io = msm7x2x_map_io, | 150 | .map_io = msm7x2x_map_io, |
| 151 | .init_irq = msm7x2x_init_irq, | 151 | .init_irq = msm7x2x_init_irq, |
| 152 | .init_machine = msm7x2x_init, | 152 | .init_machine = msm7x2x_init, |
| @@ -154,7 +154,7 @@ MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") | |||
| 154 | MACHINE_END | 154 | MACHINE_END |
| 155 | 155 | ||
| 156 | MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA") | 156 | MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA") |
| 157 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 157 | .atag_offset = 0x100, |
| 158 | .map_io = msm7x2x_map_io, | 158 | .map_io = msm7x2x_map_io, |
| 159 | .init_irq = msm7x2x_init_irq, | 159 | .init_irq = msm7x2x_init_irq, |
| 160 | .init_machine = msm7x2x_init, | 160 | .init_machine = msm7x2x_init, |
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c index b7a84966b711..5a2ab6855183 100644 --- a/arch/arm/mach-msm/board-msm7x30.c +++ b/arch/arm/mach-msm/board-msm7x30.c | |||
| @@ -106,7 +106,7 @@ static void __init msm7x30_map_io(void) | |||
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") | 108 | MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") |
| 109 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 109 | .atag_offset = 0x100, |
| 110 | .map_io = msm7x30_map_io, | 110 | .map_io = msm7x30_map_io, |
| 111 | .init_irq = msm7x30_init_irq, | 111 | .init_irq = msm7x30_init_irq, |
| 112 | .init_machine = msm7x30_init, | 112 | .init_machine = msm7x30_init, |
| @@ -114,7 +114,7 @@ MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") | |||
| 114 | MACHINE_END | 114 | MACHINE_END |
| 115 | 115 | ||
| 116 | MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") | 116 | MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") |
| 117 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 117 | .atag_offset = 0x100, |
| 118 | .map_io = msm7x30_map_io, | 118 | .map_io = msm7x30_map_io, |
| 119 | .init_irq = msm7x30_init_irq, | 119 | .init_irq = msm7x30_init_irq, |
| 120 | .init_machine = msm7x30_init, | 120 | .init_machine = msm7x30_init, |
| @@ -122,7 +122,7 @@ MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") | |||
| 122 | MACHINE_END | 122 | MACHINE_END |
| 123 | 123 | ||
| 124 | MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") | 124 | MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") |
| 125 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 125 | .atag_offset = 0x100, |
| 126 | .map_io = msm7x30_map_io, | 126 | .map_io = msm7x30_map_io, |
| 127 | .init_irq = msm7x30_init_irq, | 127 | .init_irq = msm7x30_init_irq, |
| 128 | .init_machine = msm7x30_init, | 128 | .init_machine = msm7x30_init, |
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c index 6a96911b0ad5..51109b1f4342 100644 --- a/arch/arm/mach-msm/board-qsd8x50.c +++ b/arch/arm/mach-msm/board-qsd8x50.c | |||
| @@ -193,7 +193,7 @@ static void __init qsd8x50_init(void) | |||
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") | 195 | MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") |
| 196 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 196 | .atag_offset = 0x100, |
| 197 | .map_io = qsd8x50_map_io, | 197 | .map_io = qsd8x50_map_io, |
| 198 | .init_irq = qsd8x50_init_irq, | 198 | .init_irq = qsd8x50_init_irq, |
| 199 | .init_machine = qsd8x50_init, | 199 | .init_machine = qsd8x50_init, |
| @@ -201,7 +201,7 @@ MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") | |||
| 201 | MACHINE_END | 201 | MACHINE_END |
| 202 | 202 | ||
| 203 | MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") | 203 | MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") |
| 204 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 204 | .atag_offset = 0x100, |
| 205 | .map_io = qsd8x50_map_io, | 205 | .map_io = qsd8x50_map_io, |
| 206 | .init_irq = qsd8x50_init_irq, | 206 | .init_irq = qsd8x50_init_irq, |
| 207 | .init_machine = qsd8x50_init, | 207 | .init_machine = qsd8x50_init, |
diff --git a/arch/arm/mach-msm/board-sapphire.c b/arch/arm/mach-msm/board-sapphire.c index 68f930f07d77..dc0bcb5a6b9a 100644 --- a/arch/arm/mach-msm/board-sapphire.c +++ b/arch/arm/mach-msm/board-sapphire.c | |||
| @@ -105,7 +105,7 @@ static void __init sapphire_map_io(void) | |||
| 105 | 105 | ||
| 106 | MACHINE_START(SAPPHIRE, "sapphire") | 106 | MACHINE_START(SAPPHIRE, "sapphire") |
| 107 | /* Maintainer: Brian Swetland <swetland@google.com> */ | 107 | /* Maintainer: Brian Swetland <swetland@google.com> */ |
| 108 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 108 | .atag_offset = 0x100, |
| 109 | .fixup = sapphire_fixup, | 109 | .fixup = sapphire_fixup, |
| 110 | .map_io = sapphire_map_io, | 110 | .map_io = sapphire_map_io, |
| 111 | .init_irq = sapphire_init_irq, | 111 | .init_irq = sapphire_init_irq, |
diff --git a/arch/arm/mach-msm/board-trout.c b/arch/arm/mach-msm/board-trout.c index 814386772c66..22d5694f5fea 100644 --- a/arch/arm/mach-msm/board-trout.c +++ b/arch/arm/mach-msm/board-trout.c | |||
| @@ -93,7 +93,7 @@ static void __init trout_map_io(void) | |||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | MACHINE_START(TROUT, "HTC Dream") | 95 | MACHINE_START(TROUT, "HTC Dream") |
| 96 | .boot_params = 0x10000100, | 96 | .atag_offset = 0x100, |
| 97 | .fixup = trout_fixup, | 97 | .fixup = trout_fixup, |
| 98 | .map_io = trout_map_io, | 98 | .map_io = trout_map_io, |
| 99 | .init_irq = trout_init_irq, | 99 | .init_irq = trout_init_irq, |
diff --git a/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c b/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c index 20f3f125ed2b..0e94268d6e6f 100644 --- a/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c +++ b/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | |||
| @@ -145,7 +145,7 @@ subsys_initcall(wxl_pci_init); | |||
| 145 | 145 | ||
| 146 | MACHINE_START(TERASTATION_WXL, "Buffalo Nas WXL") | 146 | MACHINE_START(TERASTATION_WXL, "Buffalo Nas WXL") |
| 147 | /* Maintainer: Sebastien Requiem <sebastien@requiem.fr> */ | 147 | /* Maintainer: Sebastien Requiem <sebastien@requiem.fr> */ |
| 148 | .boot_params = 0x00000100, | 148 | .atag_offset = 0x100, |
| 149 | .init_machine = wxl_init, | 149 | .init_machine = wxl_init, |
| 150 | .map_io = mv78xx0_map_io, | 150 | .map_io = mv78xx0_map_io, |
| 151 | .init_early = mv78xx0_init_early, | 151 | .init_early = mv78xx0_init_early, |
diff --git a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c index df5aebe5b0fa..50b85ae2da52 100644 --- a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c +++ b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c | |||
| @@ -93,7 +93,7 @@ subsys_initcall(db78x00_pci_init); | |||
| 93 | 93 | ||
| 94 | MACHINE_START(DB78X00_BP, "Marvell DB-78x00-BP Development Board") | 94 | MACHINE_START(DB78X00_BP, "Marvell DB-78x00-BP Development Board") |
| 95 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 95 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
| 96 | .boot_params = 0x00000100, | 96 | .atag_offset = 0x100, |
| 97 | .init_machine = db78x00_init, | 97 | .init_machine = db78x00_init, |
| 98 | .map_io = mv78xx0_map_io, | 98 | .map_io = mv78xx0_map_io, |
| 99 | .init_early = mv78xx0_init_early, | 99 | .init_early = mv78xx0_init_early, |
diff --git a/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c b/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c index d927f14c6810..e85222e53578 100644 --- a/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c +++ b/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | |||
| @@ -78,7 +78,7 @@ subsys_initcall(rd78x00_pci_init); | |||
| 78 | 78 | ||
| 79 | MACHINE_START(RD78X00_MASA, "Marvell RD-78x00-MASA Development Board") | 79 | MACHINE_START(RD78X00_MASA, "Marvell RD-78x00-MASA Development Board") |
| 80 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 80 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
| 81 | .boot_params = 0x00000100, | 81 | .atag_offset = 0x100, |
| 82 | .init_machine = rd78x00_masa_init, | 82 | .init_machine = rd78x00_masa_init, |
| 83 | .map_io = mv78xx0_map_io, | 83 | .map_io = mv78xx0_map_io, |
| 84 | .init_early = mv78xx0_init_early, | 84 | .init_early = mv78xx0_init_early, |
diff --git a/arch/arm/mach-mx5/board-cpuimx51.c b/arch/arm/mach-mx5/board-cpuimx51.c index 68934ea8725a..e01af948e043 100644 --- a/arch/arm/mach-mx5/board-cpuimx51.c +++ b/arch/arm/mach-mx5/board-cpuimx51.c | |||
| @@ -293,7 +293,7 @@ static struct sys_timer mxc_timer = { | |||
| 293 | 293 | ||
| 294 | MACHINE_START(EUKREA_CPUIMX51, "Eukrea CPUIMX51 Module") | 294 | MACHINE_START(EUKREA_CPUIMX51, "Eukrea CPUIMX51 Module") |
| 295 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ | 295 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ |
| 296 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 296 | .atag_offset = 0x100, |
| 297 | .map_io = mx51_map_io, | 297 | .map_io = mx51_map_io, |
| 298 | .init_early = imx51_init_early, | 298 | .init_early = imx51_init_early, |
| 299 | .init_irq = mx51_init_irq, | 299 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-cpuimx51sd.c b/arch/arm/mach-mx5/board-cpuimx51sd.c index ff096d587299..b41fc274a425 100644 --- a/arch/arm/mach-mx5/board-cpuimx51sd.c +++ b/arch/arm/mach-mx5/board-cpuimx51sd.c | |||
| @@ -331,7 +331,7 @@ static struct sys_timer mxc_timer = { | |||
| 331 | 331 | ||
| 332 | MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") | 332 | MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") |
| 333 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ | 333 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ |
| 334 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 334 | .atag_offset = 0x100, |
| 335 | .map_io = mx51_map_io, | 335 | .map_io = mx51_map_io, |
| 336 | .init_early = imx51_init_early, | 336 | .init_early = imx51_init_early, |
| 337 | .init_irq = mx51_init_irq, | 337 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_3ds.c b/arch/arm/mach-mx5/board-mx51_3ds.c index 07a38154da21..a50174e69e2f 100644 --- a/arch/arm/mach-mx5/board-mx51_3ds.c +++ b/arch/arm/mach-mx5/board-mx51_3ds.c | |||
| @@ -169,7 +169,7 @@ static struct sys_timer mx51_3ds_timer = { | |||
| 169 | 169 | ||
| 170 | MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") | 170 | MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") |
| 171 | /* Maintainer: Freescale Semiconductor, Inc. */ | 171 | /* Maintainer: Freescale Semiconductor, Inc. */ |
| 172 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 172 | .atag_offset = 0x100, |
| 173 | .map_io = mx51_map_io, | 173 | .map_io = mx51_map_io, |
| 174 | .init_early = imx51_init_early, | 174 | .init_early = imx51_init_early, |
| 175 | .init_irq = mx51_init_irq, | 175 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c index 11b0ff67f89d..468926a48fe0 100644 --- a/arch/arm/mach-mx5/board-mx51_babbage.c +++ b/arch/arm/mach-mx5/board-mx51_babbage.c | |||
| @@ -416,7 +416,7 @@ static struct sys_timer mx51_babbage_timer = { | |||
| 416 | 416 | ||
| 417 | MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") | 417 | MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") |
| 418 | /* Maintainer: Amit Kucheria <amit.kucheria@canonical.com> */ | 418 | /* Maintainer: Amit Kucheria <amit.kucheria@canonical.com> */ |
| 419 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 419 | .atag_offset = 0x100, |
| 420 | .map_io = mx51_map_io, | 420 | .map_io = mx51_map_io, |
| 421 | .init_early = imx51_init_early, | 421 | .init_early = imx51_init_early, |
| 422 | .init_irq = mx51_init_irq, | 422 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_efikamx.c b/arch/arm/mach-mx5/board-mx51_efikamx.c index 551daf85ff8c..c36880da03f0 100644 --- a/arch/arm/mach-mx5/board-mx51_efikamx.c +++ b/arch/arm/mach-mx5/board-mx51_efikamx.c | |||
| @@ -280,7 +280,7 @@ static struct sys_timer mx51_efikamx_timer = { | |||
| 280 | 280 | ||
| 281 | MACHINE_START(MX51_EFIKAMX, "Genesi EfikaMX nettop") | 281 | MACHINE_START(MX51_EFIKAMX, "Genesi EfikaMX nettop") |
| 282 | /* Maintainer: Amit Kucheria <amit.kucheria@linaro.org> */ | 282 | /* Maintainer: Amit Kucheria <amit.kucheria@linaro.org> */ |
| 283 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 283 | .atag_offset = 0x100, |
| 284 | .map_io = mx51_map_io, | 284 | .map_io = mx51_map_io, |
| 285 | .init_early = imx51_init_early, | 285 | .init_early = imx51_init_early, |
| 286 | .init_irq = mx51_init_irq, | 286 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_efikasb.c b/arch/arm/mach-mx5/board-mx51_efikasb.c index 8a9bca22beb5..ba5436a9fb1a 100644 --- a/arch/arm/mach-mx5/board-mx51_efikasb.c +++ b/arch/arm/mach-mx5/board-mx51_efikasb.c | |||
| @@ -266,7 +266,7 @@ static struct sys_timer mx51_efikasb_timer = { | |||
| 266 | }; | 266 | }; |
| 267 | 267 | ||
| 268 | MACHINE_START(MX51_EFIKASB, "Genesi Efika Smartbook") | 268 | MACHINE_START(MX51_EFIKASB, "Genesi Efika Smartbook") |
| 269 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 269 | .atag_offset = 0x100, |
| 270 | .map_io = mx51_map_io, | 270 | .map_io = mx51_map_io, |
| 271 | .init_early = imx51_init_early, | 271 | .init_early = imx51_init_early, |
| 272 | .init_irq = mx51_init_irq, | 272 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-netx/nxdb500.c b/arch/arm/mach-netx/nxdb500.c index ca8b203a3c99..90903dd44cbc 100644 --- a/arch/arm/mach-netx/nxdb500.c +++ b/arch/arm/mach-netx/nxdb500.c | |||
| @@ -200,7 +200,7 @@ static void __init nxdb500_init(void) | |||
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | MACHINE_START(NXDB500, "Hilscher nxdb500") | 202 | MACHINE_START(NXDB500, "Hilscher nxdb500") |
| 203 | .boot_params = 0x80000100, | 203 | .atag_offset = 0x100, |
| 204 | .map_io = netx_map_io, | 204 | .map_io = netx_map_io, |
| 205 | .init_irq = netx_init_irq, | 205 | .init_irq = netx_init_irq, |
| 206 | .timer = &netx_timer, | 206 | .timer = &netx_timer, |
diff --git a/arch/arm/mach-netx/nxdkn.c b/arch/arm/mach-netx/nxdkn.c index d775cbe07278..c63384aba500 100644 --- a/arch/arm/mach-netx/nxdkn.c +++ b/arch/arm/mach-netx/nxdkn.c | |||
| @@ -93,7 +93,7 @@ static void __init nxdkn_init(void) | |||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | MACHINE_START(NXDKN, "Hilscher nxdkn") | 95 | MACHINE_START(NXDKN, "Hilscher nxdkn") |
| 96 | .boot_params = 0x80000100, | 96 | .atag_offset = 0x100, |
| 97 | .map_io = netx_map_io, | 97 | .map_io = netx_map_io, |
| 98 | .init_irq = netx_init_irq, | 98 | .init_irq = netx_init_irq, |
| 99 | .timer = &netx_timer, | 99 | .timer = &netx_timer, |
diff --git a/arch/arm/mach-netx/nxeb500hmi.c b/arch/arm/mach-netx/nxeb500hmi.c index de369cd1dcbe..8f548ec83ad2 100644 --- a/arch/arm/mach-netx/nxeb500hmi.c +++ b/arch/arm/mach-netx/nxeb500hmi.c | |||
| @@ -177,7 +177,7 @@ static void __init nxeb500hmi_init(void) | |||
| 177 | } | 177 | } |
| 178 | 178 | ||
| 179 | MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi") | 179 | MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi") |
| 180 | .boot_params = 0x80000100, | 180 | .atag_offset = 0x100, |
| 181 | .map_io = netx_map_io, | 181 | .map_io = netx_map_io, |
| 182 | .init_irq = netx_init_irq, | 182 | .init_irq = netx_init_irq, |
| 183 | .timer = &netx_timer, | 183 | .timer = &netx_timer, |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 139930350d93..398a75f62bee 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
| @@ -276,7 +276,7 @@ static void __init nhk8815_platform_init(void) | |||
| 276 | 276 | ||
| 277 | MACHINE_START(NOMADIK, "NHK8815") | 277 | MACHINE_START(NOMADIK, "NHK8815") |
| 278 | /* Maintainer: ST MicroElectronics */ | 278 | /* Maintainer: ST MicroElectronics */ |
| 279 | .boot_params = 0x100, | 279 | .atag_offset = 0x100, |
| 280 | .map_io = cpu8815_map_io, | 280 | .map_io = cpu8815_map_io, |
| 281 | .init_irq = cpu8815_init_irq, | 281 | .init_irq = cpu8815_init_irq, |
| 282 | .timer = &nomadik_timer, | 282 | .timer = &nomadik_timer, |
diff --git a/arch/arm/mach-nuc93x/mach-nuc932evb.c b/arch/arm/mach-nuc93x/mach-nuc932evb.c index d70257042480..1f741b1c1604 100644 --- a/arch/arm/mach-nuc93x/mach-nuc932evb.c +++ b/arch/arm/mach-nuc93x/mach-nuc932evb.c | |||
| @@ -35,7 +35,6 @@ static void __init nuc932evb_init(void) | |||
| 35 | 35 | ||
| 36 | MACHINE_START(NUC932EVB, "NUC932EVB") | 36 | MACHINE_START(NUC932EVB, "NUC932EVB") |
| 37 | /* Maintainer: Wan ZongShun */ | 37 | /* Maintainer: Wan ZongShun */ |
| 38 | .boot_params = 0, | ||
| 39 | .map_io = nuc932evb_map_io, | 38 | .map_io = nuc932evb_map_io, |
| 40 | .init_irq = nuc93x_init_irq, | 39 | .init_irq = nuc93x_init_irq, |
| 41 | .init_machine = nuc932evb_init, | 40 | .init_machine = nuc932evb_init, |
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 312ea6b0409d..eb36b25450a0 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
| @@ -386,7 +386,7 @@ static void __init ams_delta_map_io(void) | |||
| 386 | 386 | ||
| 387 | MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)") | 387 | MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)") |
| 388 | /* Maintainer: Jonathan McDowell <noodles@earth.li> */ | 388 | /* Maintainer: Jonathan McDowell <noodles@earth.li> */ |
| 389 | .boot_params = 0x10000100, | 389 | .atag_offset = 0x100, |
| 390 | .map_io = ams_delta_map_io, | 390 | .map_io = ams_delta_map_io, |
| 391 | .reserve = omap_reserve, | 391 | .reserve = omap_reserve, |
| 392 | .init_irq = ams_delta_init_irq, | 392 | .init_irq = ams_delta_init_irq, |
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c index a6b1bea50371..999789c4811d 100644 --- a/arch/arm/mach-omap1/board-fsample.c +++ b/arch/arm/mach-omap1/board-fsample.c | |||
| @@ -389,7 +389,7 @@ static void __init omap_fsample_map_io(void) | |||
| 389 | 389 | ||
| 390 | MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample") | 390 | MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample") |
| 391 | /* Maintainer: Brian Swetland <swetland@google.com> */ | 391 | /* Maintainer: Brian Swetland <swetland@google.com> */ |
| 392 | .boot_params = 0x10000100, | 392 | .atag_offset = 0x100, |
| 393 | .map_io = omap_fsample_map_io, | 393 | .map_io = omap_fsample_map_io, |
| 394 | .reserve = omap_reserve, | 394 | .reserve = omap_reserve, |
| 395 | .init_irq = omap_fsample_init_irq, | 395 | .init_irq = omap_fsample_init_irq, |
diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index 04fc356c40fa..23cc9e4ad50d 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c | |||
| @@ -94,7 +94,7 @@ static void __init omap_generic_map_io(void) | |||
| 94 | 94 | ||
| 95 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") | 95 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") |
| 96 | /* Maintainer: Tony Lindgren <tony@atomide.com> */ | 96 | /* Maintainer: Tony Lindgren <tony@atomide.com> */ |
| 97 | .boot_params = 0x10000100, | 97 | .atag_offset = 0x100, |
| 98 | .map_io = omap_generic_map_io, | 98 | .map_io = omap_generic_map_io, |
| 99 | .reserve = omap_reserve, | 99 | .reserve = omap_reserve, |
| 100 | .init_irq = omap_generic_init_irq, | 100 | .init_irq = omap_generic_init_irq, |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index cb7fb1aa3dca..6c70c28d055c 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
| @@ -461,7 +461,7 @@ static void __init h2_map_io(void) | |||
| 461 | 461 | ||
| 462 | MACHINE_START(OMAP_H2, "TI-H2") | 462 | MACHINE_START(OMAP_H2, "TI-H2") |
| 463 | /* Maintainer: Imre Deak <imre.deak@nokia.com> */ | 463 | /* Maintainer: Imre Deak <imre.deak@nokia.com> */ |
| 464 | .boot_params = 0x10000100, | 464 | .atag_offset = 0x100, |
| 465 | .map_io = h2_map_io, | 465 | .map_io = h2_map_io, |
| 466 | .reserve = omap_reserve, | 466 | .reserve = omap_reserve, |
| 467 | .init_irq = h2_init_irq, | 467 | .init_irq = h2_init_irq, |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 31f34875ffad..8e2b64a46929 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
| @@ -449,7 +449,7 @@ static void __init h3_map_io(void) | |||
| 449 | 449 | ||
| 450 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") | 450 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") |
| 451 | /* Maintainer: Texas Instruments, Inc. */ | 451 | /* Maintainer: Texas Instruments, Inc. */ |
| 452 | .boot_params = 0x10000100, | 452 | .atag_offset = 0x100, |
| 453 | .map_io = h3_map_io, | 453 | .map_io = h3_map_io, |
| 454 | .reserve = omap_reserve, | 454 | .reserve = omap_reserve, |
| 455 | .init_irq = h3_init_irq, | 455 | .init_irq = h3_init_irq, |
diff --git a/arch/arm/mach-omap1/board-htcherald.c b/arch/arm/mach-omap1/board-htcherald.c index 36e06ea7ec65..e81ead1c89ea 100644 --- a/arch/arm/mach-omap1/board-htcherald.c +++ b/arch/arm/mach-omap1/board-htcherald.c | |||
| @@ -611,7 +611,7 @@ static void __init htcherald_init_irq(void) | |||
| 611 | MACHINE_START(HERALD, "HTC Herald") | 611 | MACHINE_START(HERALD, "HTC Herald") |
| 612 | /* Maintainer: Cory Maccarrone <darkstar6262@gmail.com> */ | 612 | /* Maintainer: Cory Maccarrone <darkstar6262@gmail.com> */ |
| 613 | /* Maintainer: wing-linux.sourceforge.net */ | 613 | /* Maintainer: wing-linux.sourceforge.net */ |
| 614 | .boot_params = 0x10000100, | 614 | .atag_offset = 0x100, |
| 615 | .map_io = htcherald_map_io, | 615 | .map_io = htcherald_map_io, |
| 616 | .reserve = omap_reserve, | 616 | .reserve = omap_reserve, |
| 617 | .init_irq = htcherald_init_irq, | 617 | .init_irq = htcherald_init_irq, |
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index 0b1ba462d388..8b034594fbc7 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c | |||
| @@ -459,7 +459,7 @@ static void __init innovator_map_io(void) | |||
| 459 | 459 | ||
| 460 | MACHINE_START(OMAP_INNOVATOR, "TI-Innovator") | 460 | MACHINE_START(OMAP_INNOVATOR, "TI-Innovator") |
| 461 | /* Maintainer: MontaVista Software, Inc. */ | 461 | /* Maintainer: MontaVista Software, Inc. */ |
| 462 | .boot_params = 0x10000100, | 462 | .atag_offset = 0x100, |
| 463 | .map_io = innovator_map_io, | 463 | .map_io = innovator_map_io, |
| 464 | .reserve = omap_reserve, | 464 | .reserve = omap_reserve, |
| 465 | .init_irq = innovator_init_irq, | 465 | .init_irq = innovator_init_irq, |
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index 5469ce247ffe..6825635ac681 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c | |||
| @@ -264,7 +264,7 @@ static void __init omap_nokia770_map_io(void) | |||
| 264 | } | 264 | } |
| 265 | 265 | ||
| 266 | MACHINE_START(NOKIA770, "Nokia 770") | 266 | MACHINE_START(NOKIA770, "Nokia 770") |
| 267 | .boot_params = 0x10000100, | 267 | .atag_offset = 0x100, |
| 268 | .map_io = omap_nokia770_map_io, | 268 | .map_io = omap_nokia770_map_io, |
| 269 | .reserve = omap_reserve, | 269 | .reserve = omap_reserve, |
| 270 | .init_irq = omap_nokia770_init_irq, | 270 | .init_irq = omap_nokia770_init_irq, |
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index b08a21380772..44b8e9362bf4 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
| @@ -583,7 +583,7 @@ static void __init osk_map_io(void) | |||
| 583 | 583 | ||
| 584 | MACHINE_START(OMAP_OSK, "TI-OSK") | 584 | MACHINE_START(OMAP_OSK, "TI-OSK") |
| 585 | /* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */ | 585 | /* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */ |
| 586 | .boot_params = 0x10000100, | 586 | .atag_offset = 0x100, |
| 587 | .map_io = osk_map_io, | 587 | .map_io = osk_map_io, |
| 588 | .reserve = omap_reserve, | 588 | .reserve = omap_reserve, |
| 589 | .init_irq = osk_init_irq, | 589 | .init_irq = osk_init_irq, |
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 459cb6bfed55..3d8cd90b1dbb 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c | |||
| @@ -275,7 +275,7 @@ static void __init omap_palmte_map_io(void) | |||
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") | 277 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") |
| 278 | .boot_params = 0x10000100, | 278 | .atag_offset = 0x100, |
| 279 | .map_io = omap_palmte_map_io, | 279 | .map_io = omap_palmte_map_io, |
| 280 | .reserve = omap_reserve, | 280 | .reserve = omap_reserve, |
| 281 | .init_irq = omap_palmte_init_irq, | 281 | .init_irq = omap_palmte_init_irq, |
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c index b214f45f646c..d0eefe81cd1b 100644 --- a/arch/arm/mach-omap1/board-palmtt.c +++ b/arch/arm/mach-omap1/board-palmtt.c | |||
| @@ -321,7 +321,7 @@ static void __init omap_palmtt_map_io(void) | |||
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T") | 323 | MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T") |
| 324 | .boot_params = 0x10000100, | 324 | .atag_offset = 0x100, |
| 325 | .map_io = omap_palmtt_map_io, | 325 | .map_io = omap_palmtt_map_io, |
| 326 | .reserve = omap_reserve, | 326 | .reserve = omap_reserve, |
| 327 | .init_irq = omap_palmtt_init_irq, | 327 | .init_irq = omap_palmtt_init_irq, |
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c index 9b0ea48d35fd..98e79bc09213 100644 --- a/arch/arm/mach-omap1/board-palmz71.c +++ b/arch/arm/mach-omap1/board-palmz71.c | |||
| @@ -341,7 +341,7 @@ omap_palmz71_map_io(void) | |||
| 341 | } | 341 | } |
| 342 | 342 | ||
| 343 | MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71") | 343 | MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71") |
| 344 | .boot_params = 0x10000100, | 344 | .atag_offset = 0x100, |
| 345 | .map_io = omap_palmz71_map_io, | 345 | .map_io = omap_palmz71_map_io, |
| 346 | .reserve = omap_reserve, | 346 | .reserve = omap_reserve, |
| 347 | .init_irq = omap_palmz71_init_irq, | 347 | .init_irq = omap_palmz71_init_irq, |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 67acd4142639..ad3a1567604e 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
| @@ -350,7 +350,7 @@ static void __init omap_perseus2_map_io(void) | |||
| 350 | 350 | ||
| 351 | MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") | 351 | MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") |
| 352 | /* Maintainer: Kevin Hilman <kjh@hilman.org> */ | 352 | /* Maintainer: Kevin Hilman <kjh@hilman.org> */ |
| 353 | .boot_params = 0x10000100, | 353 | .atag_offset = 0x100, |
| 354 | .map_io = omap_perseus2_map_io, | 354 | .map_io = omap_perseus2_map_io, |
| 355 | .reserve = omap_reserve, | 355 | .reserve = omap_reserve, |
| 356 | .init_irq = omap_perseus2_init_irq, | 356 | .init_irq = omap_perseus2_init_irq, |
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c index 9c3b7c52d9cf..602b55c39d3d 100644 --- a/arch/arm/mach-omap1/board-sx1.c +++ b/arch/arm/mach-omap1/board-sx1.c | |||
| @@ -421,7 +421,7 @@ static void __init omap_sx1_map_io(void) | |||
| 421 | } | 421 | } |
| 422 | 422 | ||
| 423 | MACHINE_START(SX1, "OMAP310 based Siemens SX1") | 423 | MACHINE_START(SX1, "OMAP310 based Siemens SX1") |
| 424 | .boot_params = 0x10000100, | 424 | .atag_offset = 0x100, |
| 425 | .map_io = omap_sx1_map_io, | 425 | .map_io = omap_sx1_map_io, |
| 426 | .reserve = omap_reserve, | 426 | .reserve = omap_reserve, |
| 427 | .init_irq = omap_sx1_init_irq, | 427 | .init_irq = omap_sx1_init_irq, |
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index 036edc0ee9b6..80165154617a 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c | |||
| @@ -301,7 +301,7 @@ static void __init voiceblue_init(void) | |||
| 301 | 301 | ||
| 302 | MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") | 302 | MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") |
| 303 | /* Maintainer: Ladislav Michl <michl@2n.cz> */ | 303 | /* Maintainer: Ladislav Michl <michl@2n.cz> */ |
| 304 | .boot_params = 0x10000100, | 304 | .atag_offset = 0x100, |
| 305 | .map_io = voiceblue_map_io, | 305 | .map_io = voiceblue_map_io, |
| 306 | .reserve = omap_reserve, | 306 | .reserve = omap_reserve, |
| 307 | .init_irq = voiceblue_init_irq, | 307 | .init_irq = voiceblue_init_irq, |
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index 870886a29594..1cfa1b6bb62b 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
| @@ -121,6 +121,7 @@ void __init omap1_map_common_io(void) | |||
| 121 | #endif | 121 | #endif |
| 122 | 122 | ||
| 123 | omap_sram_init(); | 123 | omap_sram_init(); |
| 124 | omap_init_consistent_dma_size(); | ||
| 124 | } | 125 | } |
| 125 | 126 | ||
| 126 | /* | 127 | /* |
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index 2028464cf5b9..195157da21e6 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c | |||
| @@ -256,7 +256,7 @@ static void __init omap_2430sdp_map_io(void) | |||
| 256 | 256 | ||
| 257 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") | 257 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") |
| 258 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ | 258 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ |
| 259 | .boot_params = 0x80000100, | 259 | .atag_offset = 0x100, |
| 260 | .reserve = omap_reserve, | 260 | .reserve = omap_reserve, |
| 261 | .map_io = omap_2430sdp_map_io, | 261 | .map_io = omap_2430sdp_map_io, |
| 262 | .init_early = omap_2430sdp_init_early, | 262 | .init_early = omap_2430sdp_init_early, |
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index bd600cfb7f80..2430531b2239 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c | |||
| @@ -729,7 +729,7 @@ static void __init omap_3430sdp_init(void) | |||
| 729 | 729 | ||
| 730 | MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") | 730 | MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") |
| 731 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ | 731 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ |
| 732 | .boot_params = 0x80000100, | 732 | .atag_offset = 0x100, |
| 733 | .reserve = omap_reserve, | 733 | .reserve = omap_reserve, |
| 734 | .map_io = omap3_map_io, | 734 | .map_io = omap3_map_io, |
| 735 | .init_early = omap_3430sdp_init_early, | 735 | .init_early = omap_3430sdp_init_early, |
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index e4f37b57a0c4..8b5b5aa751ed 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c | |||
| @@ -215,7 +215,7 @@ static void __init omap_sdp_init(void) | |||
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") | 217 | MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") |
| 218 | .boot_params = 0x80000100, | 218 | .atag_offset = 0x100, |
| 219 | .reserve = omap_reserve, | 219 | .reserve = omap_reserve, |
| 220 | .map_io = omap3_map_io, | 220 | .map_io = omap3_map_io, |
| 221 | .init_early = omap_sdp_init_early, | 221 | .init_early = omap_sdp_init_early, |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index c7cef44c75d4..be931105d681 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
| @@ -838,7 +838,7 @@ static void __init omap_4430sdp_map_io(void) | |||
| 838 | 838 | ||
| 839 | MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") | 839 | MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") |
| 840 | /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */ | 840 | /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */ |
| 841 | .boot_params = 0x80000100, | 841 | .atag_offset = 0x100, |
| 842 | .reserve = omap_reserve, | 842 | .reserve = omap_reserve, |
| 843 | .map_io = omap_4430sdp_map_io, | 843 | .map_io = omap_4430sdp_map_io, |
| 844 | .init_early = omap_4430sdp_init_early, | 844 | .init_early = omap_4430sdp_init_early, |
diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c index 933e9353cb37..db110fdb8b2c 100644 --- a/arch/arm/mach-omap2/board-am3517crane.c +++ b/arch/arm/mach-omap2/board-am3517crane.c | |||
| @@ -98,7 +98,7 @@ static void __init am3517_crane_init(void) | |||
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") | 100 | MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") |
| 101 | .boot_params = 0x80000100, | 101 | .atag_offset = 0x100, |
| 102 | .reserve = omap_reserve, | 102 | .reserve = omap_reserve, |
| 103 | .map_io = omap3_map_io, | 103 | .map_io = omap3_map_io, |
| 104 | .init_early = am3517_crane_init_early, | 104 | .init_early = am3517_crane_init_early, |
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index f3006c304150..1325085e453d 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c | |||
| @@ -490,7 +490,7 @@ static void __init am3517_evm_init(void) | |||
| 490 | } | 490 | } |
| 491 | 491 | ||
| 492 | MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") | 492 | MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") |
| 493 | .boot_params = 0x80000100, | 493 | .atag_offset = 0x100, |
| 494 | .reserve = omap_reserve, | 494 | .reserve = omap_reserve, |
| 495 | .map_io = omap3_map_io, | 495 | .map_io = omap3_map_io, |
| 496 | .init_early = am3517_evm_init_early, | 496 | .init_early = am3517_evm_init_early, |
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c index 70211703ff9f..67800e647d7a 100644 --- a/arch/arm/mach-omap2/board-apollon.c +++ b/arch/arm/mach-omap2/board-apollon.c | |||
| @@ -350,7 +350,7 @@ static void __init omap_apollon_map_io(void) | |||
| 350 | 350 | ||
| 351 | MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") | 351 | MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") |
| 352 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 352 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
| 353 | .boot_params = 0x80000100, | 353 | .atag_offset = 0x100, |
| 354 | .reserve = omap_reserve, | 354 | .reserve = omap_reserve, |
| 355 | .map_io = omap_apollon_map_io, | 355 | .map_io = omap_apollon_map_io, |
| 356 | .init_early = omap_apollon_init_early, | 356 | .init_early = omap_apollon_init_early, |
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 3af8aab435b5..38179c175503 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
| @@ -634,7 +634,7 @@ static void __init cm_t3730_init(void) | |||
| 634 | } | 634 | } |
| 635 | 635 | ||
| 636 | MACHINE_START(CM_T35, "Compulab CM-T35") | 636 | MACHINE_START(CM_T35, "Compulab CM-T35") |
| 637 | .boot_params = 0x80000100, | 637 | .atag_offset = 0x100, |
| 638 | .reserve = omap_reserve, | 638 | .reserve = omap_reserve, |
| 639 | .map_io = omap3_map_io, | 639 | .map_io = omap3_map_io, |
| 640 | .init_early = cm_t35_init_early, | 640 | .init_early = cm_t35_init_early, |
| @@ -644,7 +644,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35") | |||
| 644 | MACHINE_END | 644 | MACHINE_END |
| 645 | 645 | ||
| 646 | MACHINE_START(CM_T3730, "Compulab CM-T3730") | 646 | MACHINE_START(CM_T3730, "Compulab CM-T3730") |
| 647 | .boot_params = 0x80000100, | 647 | .atag_offset = 0x100, |
| 648 | .reserve = omap_reserve, | 648 | .reserve = omap_reserve, |
| 649 | .map_io = omap3_map_io, | 649 | .map_io = omap3_map_io, |
| 650 | .init_early = cm_t35_init_early, | 650 | .init_early = cm_t35_init_early, |
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c index 05c72f4c1b57..aed9c29f9fae 100644 --- a/arch/arm/mach-omap2/board-cm-t3517.c +++ b/arch/arm/mach-omap2/board-cm-t3517.c | |||
| @@ -299,7 +299,7 @@ static void __init cm_t3517_init(void) | |||
| 299 | } | 299 | } |
| 300 | 300 | ||
| 301 | MACHINE_START(CM_T3517, "Compulab CM-T3517") | 301 | MACHINE_START(CM_T3517, "Compulab CM-T3517") |
| 302 | .boot_params = 0x80000100, | 302 | .atag_offset = 0x100, |
| 303 | .reserve = omap_reserve, | 303 | .reserve = omap_reserve, |
| 304 | .map_io = omap3_map_io, | 304 | .map_io = omap3_map_io, |
| 305 | .init_early = cm_t3517_init_early, | 305 | .init_early = cm_t3517_init_early, |
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index b6002ec31c6a..99a42432ac93 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
| @@ -667,7 +667,7 @@ static void __init devkit8000_init(void) | |||
| 667 | } | 667 | } |
| 668 | 668 | ||
| 669 | MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") | 669 | MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") |
| 670 | .boot_params = 0x80000100, | 670 | .atag_offset = 0x100, |
| 671 | .reserve = omap_reserve, | 671 | .reserve = omap_reserve, |
| 672 | .map_io = omap3_map_io, | 672 | .map_io = omap3_map_io, |
| 673 | .init_early = devkit8000_init_early, | 673 | .init_early = devkit8000_init_early, |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 54db41a84a9b..25642697281b 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
| @@ -66,7 +66,7 @@ static void __init omap_generic_map_io(void) | |||
| 66 | /* XXX This machine entry name should be updated */ | 66 | /* XXX This machine entry name should be updated */ |
| 67 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") | 67 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") |
| 68 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ | 68 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ |
| 69 | .boot_params = 0x80000100, | 69 | .atag_offset = 0x100, |
| 70 | .reserve = omap_reserve, | 70 | .reserve = omap_reserve, |
| 71 | .map_io = omap_generic_map_io, | 71 | .map_io = omap_generic_map_io, |
| 72 | .init_early = omap_generic_init_early, | 72 | .init_early = omap_generic_init_early, |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 45de2b319ec9..a58c6ba06f7f 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
| @@ -382,7 +382,7 @@ static void __init omap_h4_map_io(void) | |||
| 382 | 382 | ||
| 383 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") | 383 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") |
| 384 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ | 384 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ |
| 385 | .boot_params = 0x80000100, | 385 | .atag_offset = 0x100, |
| 386 | .reserve = omap_reserve, | 386 | .reserve = omap_reserve, |
| 387 | .map_io = omap_h4_map_io, | 387 | .map_io = omap_h4_map_io, |
| 388 | .init_early = omap_h4_init_early, | 388 | .init_early = omap_h4_init_early, |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 35be778caf1b..7040352b16b4 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
| @@ -672,7 +672,7 @@ static void __init igep_init(void) | |||
| 672 | } | 672 | } |
| 673 | 673 | ||
| 674 | MACHINE_START(IGEP0020, "IGEP v2 board") | 674 | MACHINE_START(IGEP0020, "IGEP v2 board") |
| 675 | .boot_params = 0x80000100, | 675 | .atag_offset = 0x100, |
| 676 | .reserve = omap_reserve, | 676 | .reserve = omap_reserve, |
| 677 | .map_io = omap3_map_io, | 677 | .map_io = omap3_map_io, |
| 678 | .init_early = igep_init_early, | 678 | .init_early = igep_init_early, |
| @@ -682,7 +682,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board") | |||
| 682 | MACHINE_END | 682 | MACHINE_END |
| 683 | 683 | ||
| 684 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") | 684 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") |
| 685 | .boot_params = 0x80000100, | 685 | .atag_offset = 0x100, |
| 686 | .reserve = omap_reserve, | 686 | .reserve = omap_reserve, |
| 687 | .map_io = omap3_map_io, | 687 | .map_io = omap3_map_io, |
| 688 | .init_early = igep_init_early, | 688 | .init_early = igep_init_early, |
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index 218764c9377e..edf752bb24b1 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c | |||
| @@ -333,7 +333,7 @@ static void __init omap_ldp_init(void) | |||
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | MACHINE_START(OMAP_LDP, "OMAP LDP board") | 335 | MACHINE_START(OMAP_LDP, "OMAP LDP board") |
| 336 | .boot_params = 0x80000100, | 336 | .atag_offset = 0x100, |
| 337 | .reserve = omap_reserve, | 337 | .reserve = omap_reserve, |
| 338 | .map_io = omap3_map_io, | 338 | .map_io = omap3_map_io, |
| 339 | .init_early = omap_ldp_init_early, | 339 | .init_early = omap_ldp_init_early, |
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c index e11f0c5d608a..6ce748154f24 100644 --- a/arch/arm/mach-omap2/board-n8x0.c +++ b/arch/arm/mach-omap2/board-n8x0.c | |||
| @@ -695,7 +695,7 @@ static void __init n8x0_init_machine(void) | |||
| 695 | } | 695 | } |
| 696 | 696 | ||
| 697 | MACHINE_START(NOKIA_N800, "Nokia N800") | 697 | MACHINE_START(NOKIA_N800, "Nokia N800") |
| 698 | .boot_params = 0x80000100, | 698 | .atag_offset = 0x100, |
| 699 | .reserve = omap_reserve, | 699 | .reserve = omap_reserve, |
| 700 | .map_io = n8x0_map_io, | 700 | .map_io = n8x0_map_io, |
| 701 | .init_early = n8x0_init_early, | 701 | .init_early = n8x0_init_early, |
| @@ -705,7 +705,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800") | |||
| 705 | MACHINE_END | 705 | MACHINE_END |
| 706 | 706 | ||
| 707 | MACHINE_START(NOKIA_N810, "Nokia N810") | 707 | MACHINE_START(NOKIA_N810, "Nokia N810") |
| 708 | .boot_params = 0x80000100, | 708 | .atag_offset = 0x100, |
| 709 | .reserve = omap_reserve, | 709 | .reserve = omap_reserve, |
| 710 | .map_io = n8x0_map_io, | 710 | .map_io = n8x0_map_io, |
| 711 | .init_early = n8x0_init_early, | 711 | .init_early = n8x0_init_early, |
| @@ -715,7 +715,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810") | |||
| 715 | MACHINE_END | 715 | MACHINE_END |
| 716 | 716 | ||
| 717 | MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") | 717 | MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") |
| 718 | .boot_params = 0x80000100, | 718 | .atag_offset = 0x100, |
| 719 | .reserve = omap_reserve, | 719 | .reserve = omap_reserve, |
| 720 | .map_io = n8x0_map_io, | 720 | .map_io = n8x0_map_io, |
| 721 | .init_early = n8x0_init_early, | 721 | .init_early = n8x0_init_early, |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 3ae16b4e3f52..1fde8a0474bb 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
| @@ -557,7 +557,7 @@ static void __init omap3_beagle_init(void) | |||
| 557 | 557 | ||
| 558 | MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") | 558 | MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") |
| 559 | /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ | 559 | /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ |
| 560 | .boot_params = 0x80000100, | 560 | .atag_offset = 0x100, |
| 561 | .reserve = omap_reserve, | 561 | .reserve = omap_reserve, |
| 562 | .map_io = omap3_map_io, | 562 | .map_io = omap3_map_io, |
| 563 | .init_early = omap3_beagle_init_early, | 563 | .init_early = omap3_beagle_init_early, |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index c452b3f3331a..15c69a0c1ce5 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
| @@ -681,7 +681,7 @@ static void __init omap3_evm_init(void) | |||
| 681 | 681 | ||
| 682 | MACHINE_START(OMAP3EVM, "OMAP3 EVM") | 682 | MACHINE_START(OMAP3EVM, "OMAP3 EVM") |
| 683 | /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ | 683 | /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ |
| 684 | .boot_params = 0x80000100, | 684 | .atag_offset = 0x100, |
| 685 | .reserve = omap_reserve, | 685 | .reserve = omap_reserve, |
| 686 | .map_io = omap3_map_io, | 686 | .map_io = omap3_map_io, |
| 687 | .init_early = omap3_evm_init_early, | 687 | .init_early = omap3_evm_init_early, |
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c index 703aeb5b8fd4..01354a214caf 100644 --- a/arch/arm/mach-omap2/board-omap3logic.c +++ b/arch/arm/mach-omap2/board-omap3logic.c | |||
| @@ -209,7 +209,7 @@ static void __init omap3logic_init(void) | |||
| 209 | } | 209 | } |
| 210 | 210 | ||
| 211 | MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") | 211 | MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") |
| 212 | .boot_params = 0x80000100, | 212 | .atag_offset = 0x100, |
| 213 | .map_io = omap3_map_io, | 213 | .map_io = omap3_map_io, |
| 214 | .init_early = omap3logic_init_early, | 214 | .init_early = omap3logic_init_early, |
| 215 | .init_irq = omap3_init_irq, | 215 | .init_irq = omap3_init_irq, |
| @@ -218,7 +218,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") | |||
| 218 | MACHINE_END | 218 | MACHINE_END |
| 219 | 219 | ||
| 220 | MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") | 220 | MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") |
| 221 | .boot_params = 0x80000100, | 221 | .atag_offset = 0x100, |
| 222 | .map_io = omap3_map_io, | 222 | .map_io = omap3_map_io, |
| 223 | .init_early = omap3logic_init_early, | 223 | .init_early = omap3logic_init_early, |
| 224 | .init_irq = omap3_init_irq, | 224 | .init_irq = omap3_init_irq, |
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 080d7bd6795e..ace56938dd3b 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c | |||
| @@ -606,7 +606,7 @@ static void __init omap3pandora_init(void) | |||
| 606 | } | 606 | } |
| 607 | 607 | ||
| 608 | MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") | 608 | MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") |
| 609 | .boot_params = 0x80000100, | 609 | .atag_offset = 0x100, |
| 610 | .reserve = omap_reserve, | 610 | .reserve = omap_reserve, |
| 611 | .map_io = omap3_map_io, | 611 | .map_io = omap3_map_io, |
| 612 | .init_early = omap3pandora_init_early, | 612 | .init_early = omap3pandora_init_early, |
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index 8e104980ea26..ba13e1d5d0ab 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
| @@ -494,7 +494,7 @@ static void __init omap3_stalker_init(void) | |||
| 494 | 494 | ||
| 495 | MACHINE_START(SBC3530, "OMAP3 STALKER") | 495 | MACHINE_START(SBC3530, "OMAP3 STALKER") |
| 496 | /* Maintainer: Jason Lam -lzg@ema-tech.com */ | 496 | /* Maintainer: Jason Lam -lzg@ema-tech.com */ |
| 497 | .boot_params = 0x80000100, | 497 | .atag_offset = 0x100, |
| 498 | .map_io = omap3_map_io, | 498 | .map_io = omap3_map_io, |
| 499 | .init_early = omap3_stalker_init_early, | 499 | .init_early = omap3_stalker_init_early, |
| 500 | .init_irq = omap3_stalker_init_irq, | 500 | .init_irq = omap3_stalker_init_irq, |
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index 852ea0464057..49e4bd207cb6 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c | |||
| @@ -404,7 +404,7 @@ static void __init omap3_touchbook_init(void) | |||
| 404 | 404 | ||
| 405 | MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board") | 405 | MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board") |
| 406 | /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */ | 406 | /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */ |
| 407 | .boot_params = 0x80000100, | 407 | .atag_offset = 0x100, |
| 408 | .reserve = omap_reserve, | 408 | .reserve = omap_reserve, |
| 409 | .map_io = omap3_map_io, | 409 | .map_io = omap3_map_io, |
| 410 | .init_early = omap3_touchbook_init_early, | 410 | .init_early = omap3_touchbook_init_early, |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 9aaa96057666..683bede73d54 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
| @@ -583,7 +583,7 @@ static void __init omap4_panda_map_io(void) | |||
| 583 | 583 | ||
| 584 | MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") | 584 | MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") |
| 585 | /* Maintainer: David Anders - Texas Instruments Inc */ | 585 | /* Maintainer: David Anders - Texas Instruments Inc */ |
| 586 | .boot_params = 0x80000100, | 586 | .atag_offset = 0x100, |
| 587 | .reserve = omap_reserve, | 587 | .reserve = omap_reserve, |
| 588 | .map_io = omap4_panda_map_io, | 588 | .map_io = omap4_panda_map_io, |
| 589 | .init_early = omap4_panda_init_early, | 589 | .init_early = omap4_panda_init_early, |
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index f949a9954d76..e592fb134c4e 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c | |||
| @@ -561,7 +561,7 @@ static void __init overo_init(void) | |||
| 561 | } | 561 | } |
| 562 | 562 | ||
| 563 | MACHINE_START(OVERO, "Gumstix Overo") | 563 | MACHINE_START(OVERO, "Gumstix Overo") |
| 564 | .boot_params = 0x80000100, | 564 | .atag_offset = 0x100, |
| 565 | .reserve = omap_reserve, | 565 | .reserve = omap_reserve, |
| 566 | .map_io = omap3_map_io, | 566 | .map_io = omap3_map_io, |
| 567 | .init_early = overo_init_early, | 567 | .init_early = overo_init_early, |
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index 7dfed24ee12e..9a8ce239ba9e 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c | |||
| @@ -153,7 +153,7 @@ static void __init rm680_map_io(void) | |||
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") | 155 | MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") |
| 156 | .boot_params = 0x80000100, | 156 | .atag_offset = 0x100, |
| 157 | .reserve = omap_reserve, | 157 | .reserve = omap_reserve, |
| 158 | .map_io = rm680_map_io, | 158 | .map_io = rm680_map_io, |
| 159 | .init_early = rm680_init_early, | 159 | .init_early = rm680_init_early, |
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index 5ea142f9bc97..a6c473bbb3d6 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c | |||
| @@ -156,7 +156,7 @@ static void __init rx51_reserve(void) | |||
| 156 | 156 | ||
| 157 | MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") | 157 | MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") |
| 158 | /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */ | 158 | /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */ |
| 159 | .boot_params = 0x80000100, | 159 | .atag_offset = 0x100, |
| 160 | .reserve = rx51_reserve, | 160 | .reserve = rx51_reserve, |
| 161 | .map_io = rx51_map_io, | 161 | .map_io = rx51_map_io, |
| 162 | .init_early = rx51_init_early, | 162 | .init_early = rx51_init_early, |
diff --git a/arch/arm/mach-omap2/board-ti8168evm.c b/arch/arm/mach-omap2/board-ti8168evm.c index a85d5b0b11da..e41958acb6b6 100644 --- a/arch/arm/mach-omap2/board-ti8168evm.c +++ b/arch/arm/mach-omap2/board-ti8168evm.c | |||
| @@ -48,7 +48,7 @@ static void __init ti8168_evm_map_io(void) | |||
| 48 | 48 | ||
| 49 | MACHINE_START(TI8168EVM, "ti8168evm") | 49 | MACHINE_START(TI8168EVM, "ti8168evm") |
| 50 | /* Maintainer: Texas Instruments */ | 50 | /* Maintainer: Texas Instruments */ |
| 51 | .boot_params = 0x80000100, | 51 | .atag_offset = 0x100, |
| 52 | .map_io = ti8168_evm_map_io, | 52 | .map_io = ti8168_evm_map_io, |
| 53 | .init_early = ti8168_init_early, | 53 | .init_early = ti8168_init_early, |
| 54 | .init_irq = ti816x_init_irq, | 54 | .init_irq = ti816x_init_irq, |
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c index 8a98c3c303fc..72f1db4863e5 100644 --- a/arch/arm/mach-omap2/board-zoom.c +++ b/arch/arm/mach-omap2/board-zoom.c | |||
| @@ -133,7 +133,7 @@ static void __init omap_zoom_init(void) | |||
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") | 135 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") |
| 136 | .boot_params = 0x80000100, | 136 | .atag_offset = 0x100, |
| 137 | .reserve = omap_reserve, | 137 | .reserve = omap_reserve, |
| 138 | .map_io = omap3_map_io, | 138 | .map_io = omap3_map_io, |
| 139 | .init_early = omap_zoom_init_early, | 139 | .init_early = omap_zoom_init_early, |
| @@ -143,7 +143,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") | |||
| 143 | MACHINE_END | 143 | MACHINE_END |
| 144 | 144 | ||
| 145 | MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") | 145 | MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") |
| 146 | .boot_params = 0x80000100, | 146 | .atag_offset = 0x100, |
| 147 | .reserve = omap_reserve, | 147 | .reserve = omap_reserve, |
| 148 | .map_io = omap3_map_io, | 148 | .map_io = omap3_map_io, |
| 149 | .init_early = omap_zoom_init_early, | 149 | .init_early = omap_zoom_init_early, |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 2ce1ce6fb4db..d6d01cb7f28a 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | * it under the terms of the GNU General Public License version 2 as | 16 | * it under the terms of the GNU General Public License version 2 as |
| 17 | * published by the Free Software Foundation. | 17 | * published by the Free Software Foundation. |
| 18 | */ | 18 | */ |
| 19 | |||
| 20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
| 21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
| 22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
| @@ -250,6 +249,7 @@ static void __init _omap2_map_common_io(void) | |||
| 250 | 249 | ||
| 251 | omap2_check_revision(); | 250 | omap2_check_revision(); |
| 252 | omap_sram_init(); | 251 | omap_sram_init(); |
| 252 | omap_init_consistent_dma_size(); | ||
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | #ifdef CONFIG_SOC_OMAP2420 | 255 | #ifdef CONFIG_SOC_OMAP2420 |
diff --git a/arch/arm/mach-orion5x/d2net-setup.c b/arch/arm/mach-orion5x/d2net-setup.c index 19cf5bf99f1b..8c8300951f46 100644 --- a/arch/arm/mach-orion5x/d2net-setup.c +++ b/arch/arm/mach-orion5x/d2net-setup.c | |||
| @@ -336,7 +336,7 @@ static void __init d2net_init(void) | |||
| 336 | 336 | ||
| 337 | #ifdef CONFIG_MACH_D2NET | 337 | #ifdef CONFIG_MACH_D2NET |
| 338 | MACHINE_START(D2NET, "LaCie d2 Network") | 338 | MACHINE_START(D2NET, "LaCie d2 Network") |
| 339 | .boot_params = 0x00000100, | 339 | .atag_offset = 0x100, |
| 340 | .init_machine = d2net_init, | 340 | .init_machine = d2net_init, |
| 341 | .map_io = orion5x_map_io, | 341 | .map_io = orion5x_map_io, |
| 342 | .init_early = orion5x_init_early, | 342 | .init_early = orion5x_init_early, |
| @@ -348,7 +348,7 @@ MACHINE_END | |||
| 348 | 348 | ||
| 349 | #ifdef CONFIG_MACH_BIGDISK | 349 | #ifdef CONFIG_MACH_BIGDISK |
| 350 | MACHINE_START(BIGDISK, "LaCie Big Disk Network") | 350 | MACHINE_START(BIGDISK, "LaCie Big Disk Network") |
| 351 | .boot_params = 0x00000100, | 351 | .atag_offset = 0x100, |
| 352 | .init_machine = d2net_init, | 352 | .init_machine = d2net_init, |
| 353 | .map_io = orion5x_map_io, | 353 | .map_io = orion5x_map_io, |
| 354 | .init_early = orion5x_init_early, | 354 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c index a3e3e9e5e328..88432aba972c 100644 --- a/arch/arm/mach-orion5x/db88f5281-setup.c +++ b/arch/arm/mach-orion5x/db88f5281-setup.c | |||
| @@ -359,7 +359,7 @@ static void __init db88f5281_init(void) | |||
| 359 | 359 | ||
| 360 | MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") | 360 | MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") |
| 361 | /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ | 361 | /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ |
| 362 | .boot_params = 0x00000100, | 362 | .atag_offset = 0x100, |
| 363 | .init_machine = db88f5281_init, | 363 | .init_machine = db88f5281_init, |
| 364 | .map_io = orion5x_map_io, | 364 | .map_io = orion5x_map_io, |
| 365 | .init_early = orion5x_init_early, | 365 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index c105556a0ee1..9e5c1663fc4f 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c | |||
| @@ -730,7 +730,7 @@ static void __init dns323_init(void) | |||
| 730 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ | 730 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ |
| 731 | MACHINE_START(DNS323, "D-Link DNS-323") | 731 | MACHINE_START(DNS323, "D-Link DNS-323") |
| 732 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ | 732 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ |
| 733 | .boot_params = 0x00000100, | 733 | .atag_offset = 0x100, |
| 734 | .init_machine = dns323_init, | 734 | .init_machine = dns323_init, |
| 735 | .map_io = orion5x_map_io, | 735 | .map_io = orion5x_map_io, |
| 736 | .init_early = orion5x_init_early, | 736 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c index b67cff0d4cfe..70a4e9265f06 100644 --- a/arch/arm/mach-orion5x/edmini_v2-setup.c +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c | |||
| @@ -251,7 +251,7 @@ static void __init edmini_v2_init(void) | |||
| 251 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ | 251 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ |
| 252 | MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2") | 252 | MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2") |
| 253 | /* Maintainer: Christopher Moore <moore@free.fr> */ | 253 | /* Maintainer: Christopher Moore <moore@free.fr> */ |
| 254 | .boot_params = 0x00000100, | 254 | .atag_offset = 0x100, |
| 255 | .init_machine = edmini_v2_init, | 255 | .init_machine = edmini_v2_init, |
| 256 | .map_io = orion5x_map_io, | 256 | .map_io = orion5x_map_io, |
| 257 | .init_early = orion5x_init_early, | 257 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c index 00381249d766..9115511dc035 100644 --- a/arch/arm/mach-orion5x/kurobox_pro-setup.c +++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c | |||
| @@ -380,7 +380,7 @@ static void __init kurobox_pro_init(void) | |||
| 380 | #ifdef CONFIG_MACH_KUROBOX_PRO | 380 | #ifdef CONFIG_MACH_KUROBOX_PRO |
| 381 | MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") | 381 | MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") |
| 382 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ | 382 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ |
| 383 | .boot_params = 0x00000100, | 383 | .atag_offset = 0x100, |
| 384 | .init_machine = kurobox_pro_init, | 384 | .init_machine = kurobox_pro_init, |
| 385 | .map_io = orion5x_map_io, | 385 | .map_io = orion5x_map_io, |
| 386 | .init_early = orion5x_init_early, | 386 | .init_early = orion5x_init_early, |
| @@ -393,7 +393,7 @@ MACHINE_END | |||
| 393 | #ifdef CONFIG_MACH_LINKSTATION_PRO | 393 | #ifdef CONFIG_MACH_LINKSTATION_PRO |
| 394 | MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live") | 394 | MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live") |
| 395 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ | 395 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ |
| 396 | .boot_params = 0x00000100, | 396 | .atag_offset = 0x100, |
| 397 | .init_machine = kurobox_pro_init, | 397 | .init_machine = kurobox_pro_init, |
| 398 | .map_io = orion5x_map_io, | 398 | .map_io = orion5x_map_io, |
| 399 | .init_early = orion5x_init_early, | 399 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ls-chl-setup.c b/arch/arm/mach-orion5x/ls-chl-setup.c index 5065803ca82a..9503fff404e3 100644 --- a/arch/arm/mach-orion5x/ls-chl-setup.c +++ b/arch/arm/mach-orion5x/ls-chl-setup.c | |||
| @@ -318,7 +318,7 @@ static void __init lschl_init(void) | |||
| 318 | 318 | ||
| 319 | MACHINE_START(LINKSTATION_LSCHL, "Buffalo Linkstation LiveV3 (LS-CHL)") | 319 | MACHINE_START(LINKSTATION_LSCHL, "Buffalo Linkstation LiveV3 (LS-CHL)") |
| 320 | /* Maintainer: Ash Hughes <ashley.hughes@blueyonder.co.uk> */ | 320 | /* Maintainer: Ash Hughes <ashley.hughes@blueyonder.co.uk> */ |
| 321 | .boot_params = 0x00000100, | 321 | .atag_offset = 0x100, |
| 322 | .init_machine = lschl_init, | 322 | .init_machine = lschl_init, |
| 323 | .map_io = orion5x_map_io, | 323 | .map_io = orion5x_map_io, |
| 324 | .init_early = orion5x_init_early, | 324 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ls_hgl-setup.c b/arch/arm/mach-orion5x/ls_hgl-setup.c index 8503d0a42d41..ed6d772f4a24 100644 --- a/arch/arm/mach-orion5x/ls_hgl-setup.c +++ b/arch/arm/mach-orion5x/ls_hgl-setup.c | |||
| @@ -265,7 +265,7 @@ static void __init ls_hgl_init(void) | |||
| 265 | 265 | ||
| 266 | MACHINE_START(LINKSTATION_LS_HGL, "Buffalo Linkstation LS-HGL") | 266 | MACHINE_START(LINKSTATION_LS_HGL, "Buffalo Linkstation LS-HGL") |
| 267 | /* Maintainer: Zhu Qingsen <zhuqs@cn.fujistu.com> */ | 267 | /* Maintainer: Zhu Qingsen <zhuqs@cn.fujistu.com> */ |
| 268 | .boot_params = 0x00000100, | 268 | .atag_offset = 0x100, |
| 269 | .init_machine = ls_hgl_init, | 269 | .init_machine = ls_hgl_init, |
| 270 | .map_io = orion5x_map_io, | 270 | .map_io = orion5x_map_io, |
| 271 | .init_early = orion5x_init_early, | 271 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/lsmini-setup.c b/arch/arm/mach-orion5x/lsmini-setup.c index 9c82723c05c0..743f7f1db181 100644 --- a/arch/arm/mach-orion5x/lsmini-setup.c +++ b/arch/arm/mach-orion5x/lsmini-setup.c | |||
| @@ -267,7 +267,7 @@ static void __init lsmini_init(void) | |||
| 267 | #ifdef CONFIG_MACH_LINKSTATION_MINI | 267 | #ifdef CONFIG_MACH_LINKSTATION_MINI |
| 268 | MACHINE_START(LINKSTATION_MINI, "Buffalo Linkstation Mini") | 268 | MACHINE_START(LINKSTATION_MINI, "Buffalo Linkstation Mini") |
| 269 | /* Maintainer: Alexey Kopytko <alexey@kopytko.ru> */ | 269 | /* Maintainer: Alexey Kopytko <alexey@kopytko.ru> */ |
| 270 | .boot_params = 0x00000100, | 270 | .atag_offset = 0x100, |
| 271 | .init_machine = lsmini_init, | 271 | .init_machine = lsmini_init, |
| 272 | .map_io = orion5x_map_io, | 272 | .map_io = orion5x_map_io, |
| 273 | .init_early = orion5x_init_early, | 273 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/mss2-setup.c b/arch/arm/mach-orion5x/mss2-setup.c index ef3bb8e9a4c2..6020e26b1c71 100644 --- a/arch/arm/mach-orion5x/mss2-setup.c +++ b/arch/arm/mach-orion5x/mss2-setup.c | |||
| @@ -261,7 +261,7 @@ static void __init mss2_init(void) | |||
| 261 | 261 | ||
| 262 | MACHINE_START(MSS2, "Maxtor Shared Storage II") | 262 | MACHINE_START(MSS2, "Maxtor Shared Storage II") |
| 263 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ | 263 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ |
| 264 | .boot_params = 0x00000100, | 264 | .atag_offset = 0x100, |
| 265 | .init_machine = mss2_init, | 265 | .init_machine = mss2_init, |
| 266 | .map_io = orion5x_map_io, | 266 | .map_io = orion5x_map_io, |
| 267 | .init_early = orion5x_init_early, | 267 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/mv2120-setup.c b/arch/arm/mach-orion5x/mv2120-setup.c index 63ff10c3c464..b3356ada64b9 100644 --- a/arch/arm/mach-orion5x/mv2120-setup.c +++ b/arch/arm/mach-orion5x/mv2120-setup.c | |||
| @@ -229,7 +229,7 @@ static void __init mv2120_init(void) | |||
| 229 | /* Warning: HP uses a wrong mach-type (=526) in their bootloader */ | 229 | /* Warning: HP uses a wrong mach-type (=526) in their bootloader */ |
| 230 | MACHINE_START(MV2120, "HP Media Vault mv2120") | 230 | MACHINE_START(MV2120, "HP Media Vault mv2120") |
| 231 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 231 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
| 232 | .boot_params = 0x00000100, | 232 | .atag_offset = 0x100, |
| 233 | .init_machine = mv2120_init, | 233 | .init_machine = mv2120_init, |
| 234 | .map_io = orion5x_map_io, | 234 | .map_io = orion5x_map_io, |
| 235 | .init_early = orion5x_init_early, | 235 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c index e43b39cc7fe9..6197c79a2ecb 100644 --- a/arch/arm/mach-orion5x/net2big-setup.c +++ b/arch/arm/mach-orion5x/net2big-setup.c | |||
| @@ -419,7 +419,7 @@ static void __init net2big_init(void) | |||
| 419 | 419 | ||
| 420 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ | 420 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ |
| 421 | MACHINE_START(NET2BIG, "LaCie 2Big Network") | 421 | MACHINE_START(NET2BIG, "LaCie 2Big Network") |
| 422 | .boot_params = 0x00000100, | 422 | .atag_offset = 0x100, |
| 423 | .init_machine = net2big_init, | 423 | .init_machine = net2big_init, |
| 424 | .map_io = orion5x_map_io, | 424 | .map_io = orion5x_map_io, |
| 425 | .init_early = orion5x_init_early, | 425 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c index 291d22bf44c9..8c876664f494 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | |||
| @@ -169,7 +169,7 @@ subsys_initcall(rd88f5181l_fxo_pci_init); | |||
| 169 | 169 | ||
| 170 | MACHINE_START(RD88F5181L_FXO, "Marvell Orion-VoIP FXO Reference Design") | 170 | MACHINE_START(RD88F5181L_FXO, "Marvell Orion-VoIP FXO Reference Design") |
| 171 | /* Maintainer: Nicolas Pitre <nico@marvell.com> */ | 171 | /* Maintainer: Nicolas Pitre <nico@marvell.com> */ |
| 172 | .boot_params = 0x00000100, | 172 | .atag_offset = 0x100, |
| 173 | .init_machine = rd88f5181l_fxo_init, | 173 | .init_machine = rd88f5181l_fxo_init, |
| 174 | .map_io = orion5x_map_io, | 174 | .map_io = orion5x_map_io, |
| 175 | .init_early = orion5x_init_early, | 175 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c index 3f02362e1632..994644f59d8d 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | |||
| @@ -181,7 +181,7 @@ subsys_initcall(rd88f5181l_ge_pci_init); | |||
| 181 | 181 | ||
| 182 | MACHINE_START(RD88F5181L_GE, "Marvell Orion-VoIP GE Reference Design") | 182 | MACHINE_START(RD88F5181L_GE, "Marvell Orion-VoIP GE Reference Design") |
| 183 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 183 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
| 184 | .boot_params = 0x00000100, | 184 | .atag_offset = 0x100, |
| 185 | .init_machine = rd88f5181l_ge_init, | 185 | .init_machine = rd88f5181l_ge_init, |
| 186 | .map_io = orion5x_map_io, | 186 | .map_io = orion5x_map_io, |
| 187 | .init_early = orion5x_init_early, | 187 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f5182-setup.c b/arch/arm/mach-orion5x/rd88f5182-setup.c index 27fd38e658bd..1903d25ecae9 100644 --- a/arch/arm/mach-orion5x/rd88f5182-setup.c +++ b/arch/arm/mach-orion5x/rd88f5182-setup.c | |||
| @@ -306,7 +306,7 @@ static void __init rd88f5182_init(void) | |||
| 306 | 306 | ||
| 307 | MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") | 307 | MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") |
| 308 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ | 308 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ |
| 309 | .boot_params = 0x00000100, | 309 | .atag_offset = 0x100, |
| 310 | .init_machine = rd88f5182_init, | 310 | .init_machine = rd88f5182_init, |
| 311 | .map_io = orion5x_map_io, | 311 | .map_io = orion5x_map_io, |
| 312 | .init_early = orion5x_init_early, | 312 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c index ad2eba9286ad..e06fdae77f0a 100644 --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | |||
| @@ -122,7 +122,7 @@ subsys_initcall(rd88f6183ap_ge_pci_init); | |||
| 122 | 122 | ||
| 123 | MACHINE_START(RD88F6183AP_GE, "Marvell Orion-1-90 AP GE Reference Design") | 123 | MACHINE_START(RD88F6183AP_GE, "Marvell Orion-1-90 AP GE Reference Design") |
| 124 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 124 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
| 125 | .boot_params = 0x00000100, | 125 | .atag_offset = 0x100, |
| 126 | .init_machine = rd88f6183ap_ge_init, | 126 | .init_machine = rd88f6183ap_ge_init, |
| 127 | .map_io = orion5x_map_io, | 127 | .map_io = orion5x_map_io, |
| 128 | .init_early = orion5x_init_early, | 128 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/terastation_pro2-setup.c b/arch/arm/mach-orion5x/terastation_pro2-setup.c index a34e4fac72b0..306183273eb9 100644 --- a/arch/arm/mach-orion5x/terastation_pro2-setup.c +++ b/arch/arm/mach-orion5x/terastation_pro2-setup.c | |||
| @@ -358,7 +358,7 @@ static void __init tsp2_init(void) | |||
| 358 | 358 | ||
| 359 | MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live") | 359 | MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live") |
| 360 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ | 360 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ |
| 361 | .boot_params = 0x00000100, | 361 | .atag_offset = 0x100, |
| 362 | .init_machine = tsp2_init, | 362 | .init_machine = tsp2_init, |
| 363 | .map_io = orion5x_map_io, | 363 | .map_io = orion5x_map_io, |
| 364 | .init_early = orion5x_init_early, | 364 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c index c9831614e355..3dbcd5ed77ef 100644 --- a/arch/arm/mach-orion5x/ts209-setup.c +++ b/arch/arm/mach-orion5x/ts209-setup.c | |||
| @@ -323,7 +323,7 @@ static void __init qnap_ts209_init(void) | |||
| 323 | 323 | ||
| 324 | MACHINE_START(TS209, "QNAP TS-109/TS-209") | 324 | MACHINE_START(TS209, "QNAP TS-109/TS-209") |
| 325 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ | 325 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ |
| 326 | .boot_params = 0x00000100, | 326 | .atag_offset = 0x100, |
| 327 | .init_machine = qnap_ts209_init, | 327 | .init_machine = qnap_ts209_init, |
| 328 | .map_io = orion5x_map_io, | 328 | .map_io = orion5x_map_io, |
| 329 | .init_early = orion5x_init_early, | 329 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c index cc33b2222bad..23c9e2e5e550 100644 --- a/arch/arm/mach-orion5x/ts409-setup.c +++ b/arch/arm/mach-orion5x/ts409-setup.c | |||
| @@ -312,7 +312,7 @@ static void __init qnap_ts409_init(void) | |||
| 312 | 312 | ||
| 313 | MACHINE_START(TS409, "QNAP TS-409") | 313 | MACHINE_START(TS409, "QNAP TS-409") |
| 314 | /* Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> */ | 314 | /* Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> */ |
| 315 | .boot_params = 0x00000100, | 315 | .atag_offset = 0x100, |
| 316 | .init_machine = qnap_ts409_init, | 316 | .init_machine = qnap_ts409_init, |
| 317 | .map_io = orion5x_map_io, | 317 | .map_io = orion5x_map_io, |
| 318 | .init_early = orion5x_init_early, | 318 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c index 6b7b54116f30..6c75cd35c4c8 100644 --- a/arch/arm/mach-orion5x/ts78xx-setup.c +++ b/arch/arm/mach-orion5x/ts78xx-setup.c | |||
| @@ -621,7 +621,7 @@ static void __init ts78xx_init(void) | |||
| 621 | 621 | ||
| 622 | MACHINE_START(TS78XX, "Technologic Systems TS-78xx SBC") | 622 | MACHINE_START(TS78XX, "Technologic Systems TS-78xx SBC") |
| 623 | /* Maintainer: Alexander Clouter <alex@digriz.org.uk> */ | 623 | /* Maintainer: Alexander Clouter <alex@digriz.org.uk> */ |
| 624 | .boot_params = 0x00000100, | 624 | .atag_offset = 0x100, |
| 625 | .init_machine = ts78xx_init, | 625 | .init_machine = ts78xx_init, |
| 626 | .map_io = ts78xx_map_io, | 626 | .map_io = ts78xx_map_io, |
| 627 | .init_early = orion5x_init_early, | 627 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/wnr854t-setup.c b/arch/arm/mach-orion5x/wnr854t-setup.c index 2653595f901c..1c63a76f3ca3 100644 --- a/arch/arm/mach-orion5x/wnr854t-setup.c +++ b/arch/arm/mach-orion5x/wnr854t-setup.c | |||
| @@ -173,7 +173,7 @@ subsys_initcall(wnr854t_pci_init); | |||
| 173 | 173 | ||
| 174 | MACHINE_START(WNR854T, "Netgear WNR854T") | 174 | MACHINE_START(WNR854T, "Netgear WNR854T") |
| 175 | /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */ | 175 | /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */ |
| 176 | .boot_params = 0x00000100, | 176 | .atag_offset = 0x100, |
| 177 | .init_machine = wnr854t_init, | 177 | .init_machine = wnr854t_init, |
| 178 | .map_io = orion5x_map_io, | 178 | .map_io = orion5x_map_io, |
| 179 | .init_early = orion5x_init_early, | 179 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index 251ef1543e53..4fd9f18c9d5d 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
| @@ -261,7 +261,7 @@ subsys_initcall(wrt350n_v2_pci_init); | |||
| 261 | 261 | ||
| 262 | MACHINE_START(WRT350N_V2, "Linksys WRT350N v2") | 262 | MACHINE_START(WRT350N_V2, "Linksys WRT350N v2") |
| 263 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 263 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
| 264 | .boot_params = 0x00000100, | 264 | .atag_offset = 0x100, |
| 265 | .init_machine = wrt350n_v2_init, | 265 | .init_machine = wrt350n_v2_init, |
| 266 | .map_io = orion5x_map_io, | 266 | .map_io = orion5x_map_io, |
| 267 | .init_early = orion5x_init_early, | 267 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-pnx4008/core.c b/arch/arm/mach-pnx4008/core.c index 63399755f199..cdb95e726f5c 100644 --- a/arch/arm/mach-pnx4008/core.c +++ b/arch/arm/mach-pnx4008/core.c | |||
| @@ -264,7 +264,7 @@ extern struct sys_timer pnx4008_timer; | |||
| 264 | 264 | ||
| 265 | MACHINE_START(PNX4008, "Philips PNX4008") | 265 | MACHINE_START(PNX4008, "Philips PNX4008") |
| 266 | /* Maintainer: MontaVista Software Inc. */ | 266 | /* Maintainer: MontaVista Software Inc. */ |
| 267 | .boot_params = 0x80000100, | 267 | .atag_offset = 0x100, |
| 268 | .map_io = pnx4008_map_io, | 268 | .map_io = pnx4008_map_io, |
| 269 | .init_irq = pnx4008_init_irq, | 269 | .init_irq = pnx4008_init_irq, |
| 270 | .init_machine = pnx4008_init, | 270 | .init_machine = pnx4008_init, |
diff --git a/arch/arm/mach-prima2/prima2.c b/arch/arm/mach-prima2/prima2.c index f57124bdd143..5654a04319fd 100644 --- a/arch/arm/mach-prima2/prima2.c +++ b/arch/arm/mach-prima2/prima2.c | |||
| @@ -31,7 +31,7 @@ static const char *prima2cb_dt_match[] __initdata = { | |||
| 31 | 31 | ||
| 32 | MACHINE_START(PRIMA2_EVB, "prima2cb") | 32 | MACHINE_START(PRIMA2_EVB, "prima2cb") |
| 33 | /* Maintainer: Barry Song <baohua.song@csr.com> */ | 33 | /* Maintainer: Barry Song <baohua.song@csr.com> */ |
| 34 | .boot_params = 0x00000100, | 34 | .atag_offset = 0x100, |
| 35 | .init_early = sirfsoc_of_clk_init, | 35 | .init_early = sirfsoc_of_clk_init, |
| 36 | .map_io = sirfsoc_map_lluart, | 36 | .map_io = sirfsoc_map_lluart, |
| 37 | .init_irq = sirfsoc_of_irq_init, | 37 | .init_irq = sirfsoc_of_irq_init, |
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c index ef3e8b1e06c1..7765d677adbb 100644 --- a/arch/arm/mach-pxa/balloon3.c +++ b/arch/arm/mach-pxa/balloon3.c | |||
| @@ -828,5 +828,5 @@ MACHINE_START(BALLOON3, "Balloon3") | |||
| 828 | .handle_irq = pxa27x_handle_irq, | 828 | .handle_irq = pxa27x_handle_irq, |
| 829 | .timer = &pxa_timer, | 829 | .timer = &pxa_timer, |
| 830 | .init_machine = balloon3_init, | 830 | .init_machine = balloon3_init, |
| 831 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 831 | .atag_offset = 0x100, |
| 832 | MACHINE_END | 832 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/capc7117.c b/arch/arm/mach-pxa/capc7117.c index 648b0ab2bf77..4efc16d39c79 100644 --- a/arch/arm/mach-pxa/capc7117.c +++ b/arch/arm/mach-pxa/capc7117.c | |||
| @@ -148,7 +148,7 @@ static void __init capc7117_init(void) | |||
| 148 | 148 | ||
| 149 | MACHINE_START(CAPC7117, | 149 | MACHINE_START(CAPC7117, |
| 150 | "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM") | 150 | "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM") |
| 151 | .boot_params = 0xa0000100, | 151 | .atag_offset = 0x100, |
| 152 | .map_io = pxa3xx_map_io, | 152 | .map_io = pxa3xx_map_io, |
| 153 | .init_irq = pxa3xx_init_irq, | 153 | .init_irq = pxa3xx_init_irq, |
| 154 | .handle_irq = pxa3xx_handle_irq, | 154 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c index 13cf518bbbf8..349896c53abd 100644 --- a/arch/arm/mach-pxa/cm-x2xx.c +++ b/arch/arm/mach-pxa/cm-x2xx.c | |||
| @@ -513,7 +513,7 @@ static void __init cmx2xx_map_io(void) | |||
| 513 | #endif | 513 | #endif |
| 514 | 514 | ||
| 515 | MACHINE_START(ARMCORE, "Compulab CM-X2XX") | 515 | MACHINE_START(ARMCORE, "Compulab CM-X2XX") |
| 516 | .boot_params = 0xa0000100, | 516 | .atag_offset = 0x100, |
| 517 | .map_io = cmx2xx_map_io, | 517 | .map_io = cmx2xx_map_io, |
| 518 | .nr_irqs = CMX2XX_NR_IRQS, | 518 | .nr_irqs = CMX2XX_NR_IRQS, |
| 519 | .init_irq = cmx2xx_init_irq, | 519 | .init_irq = cmx2xx_init_irq, |
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c index b6a51340270b..9ac0225cd51b 100644 --- a/arch/arm/mach-pxa/cm-x300.c +++ b/arch/arm/mach-pxa/cm-x300.c | |||
| @@ -852,7 +852,7 @@ static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags, | |||
| 852 | } | 852 | } |
| 853 | 853 | ||
| 854 | MACHINE_START(CM_X300, "CM-X300 module") | 854 | MACHINE_START(CM_X300, "CM-X300 module") |
| 855 | .boot_params = 0xa0000100, | 855 | .atag_offset = 0x100, |
| 856 | .map_io = pxa3xx_map_io, | 856 | .map_io = pxa3xx_map_io, |
| 857 | .init_irq = pxa3xx_init_irq, | 857 | .init_irq = pxa3xx_init_irq, |
| 858 | .handle_irq = pxa3xx_handle_irq, | 858 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c index 870920934ecf..7db66465716f 100644 --- a/arch/arm/mach-pxa/colibri-pxa270.c +++ b/arch/arm/mach-pxa/colibri-pxa270.c | |||
| @@ -306,7 +306,7 @@ static void __init colibri_pxa270_income_init(void) | |||
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | MACHINE_START(COLIBRI, "Toradex Colibri PXA270") | 308 | MACHINE_START(COLIBRI, "Toradex Colibri PXA270") |
| 309 | .boot_params = COLIBRI_SDRAM_BASE + 0x100, | 309 | .atag_offset = 0x100, |
| 310 | .init_machine = colibri_pxa270_init, | 310 | .init_machine = colibri_pxa270_init, |
| 311 | .map_io = pxa27x_map_io, | 311 | .map_io = pxa27x_map_io, |
| 312 | .init_irq = pxa27x_init_irq, | 312 | .init_irq = pxa27x_init_irq, |
| @@ -315,7 +315,7 @@ MACHINE_START(COLIBRI, "Toradex Colibri PXA270") | |||
| 315 | MACHINE_END | 315 | MACHINE_END |
| 316 | 316 | ||
| 317 | MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") | 317 | MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") |
| 318 | .boot_params = 0xa0000100, | 318 | .atag_offset = 0x100, |
| 319 | .init_machine = colibri_pxa270_income_init, | 319 | .init_machine = colibri_pxa270_income_init, |
| 320 | .map_io = pxa27x_map_io, | 320 | .map_io = pxa27x_map_io, |
| 321 | .init_irq = pxa27x_init_irq, | 321 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c index 60a6781e7a8e..c825e8bf2db1 100644 --- a/arch/arm/mach-pxa/colibri-pxa300.c +++ b/arch/arm/mach-pxa/colibri-pxa300.c | |||
| @@ -183,7 +183,7 @@ void __init colibri_pxa300_init(void) | |||
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") | 185 | MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") |
| 186 | .boot_params = COLIBRI_SDRAM_BASE + 0x100, | 186 | .atag_offset = 0x100, |
| 187 | .init_machine = colibri_pxa300_init, | 187 | .init_machine = colibri_pxa300_init, |
| 188 | .map_io = pxa3xx_map_io, | 188 | .map_io = pxa3xx_map_io, |
| 189 | .init_irq = pxa3xx_init_irq, | 189 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c index d2c6631915d4..692e1ffc5586 100644 --- a/arch/arm/mach-pxa/colibri-pxa320.c +++ b/arch/arm/mach-pxa/colibri-pxa320.c | |||
| @@ -253,7 +253,7 @@ void __init colibri_pxa320_init(void) | |||
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") | 255 | MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") |
| 256 | .boot_params = COLIBRI_SDRAM_BASE + 0x100, | 256 | .atag_offset = 0x100, |
| 257 | .init_machine = colibri_pxa320_init, | 257 | .init_machine = colibri_pxa320_init, |
| 258 | .map_io = pxa3xx_map_io, | 258 | .map_io = pxa3xx_map_io, |
| 259 | .init_irq = pxa3xx_init_irq, | 259 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c index fe812eafb1f1..5e2cf39e9e4c 100644 --- a/arch/arm/mach-pxa/csb726.c +++ b/arch/arm/mach-pxa/csb726.c | |||
| @@ -272,7 +272,7 @@ static void __init csb726_init(void) | |||
| 272 | } | 272 | } |
| 273 | 273 | ||
| 274 | MACHINE_START(CSB726, "Cogent CSB726") | 274 | MACHINE_START(CSB726, "Cogent CSB726") |
| 275 | .boot_params = 0xa0000100, | 275 | .atag_offset = 0x100, |
| 276 | .map_io = pxa27x_map_io, | 276 | .map_io = pxa27x_map_io, |
| 277 | .init_irq = pxa27x_init_irq, | 277 | .init_irq = pxa27x_init_irq, |
| 278 | .handle_irq = pxa27x_handle_irq, | 278 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index 2e37ea52b372..94acc0b01dd6 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
| @@ -1299,7 +1299,7 @@ static void __init em_x270_init(void) | |||
| 1299 | } | 1299 | } |
| 1300 | 1300 | ||
| 1301 | MACHINE_START(EM_X270, "Compulab EM-X270") | 1301 | MACHINE_START(EM_X270, "Compulab EM-X270") |
| 1302 | .boot_params = 0xa0000100, | 1302 | .atag_offset = 0x100, |
| 1303 | .map_io = pxa27x_map_io, | 1303 | .map_io = pxa27x_map_io, |
| 1304 | .init_irq = pxa27x_init_irq, | 1304 | .init_irq = pxa27x_init_irq, |
| 1305 | .handle_irq = pxa27x_handle_irq, | 1305 | .handle_irq = pxa27x_handle_irq, |
| @@ -1308,7 +1308,7 @@ MACHINE_START(EM_X270, "Compulab EM-X270") | |||
| 1308 | MACHINE_END | 1308 | MACHINE_END |
| 1309 | 1309 | ||
| 1310 | MACHINE_START(EXEDA, "Compulab eXeda") | 1310 | MACHINE_START(EXEDA, "Compulab eXeda") |
| 1311 | .boot_params = 0xa0000100, | 1311 | .atag_offset = 0x100, |
| 1312 | .map_io = pxa27x_map_io, | 1312 | .map_io = pxa27x_map_io, |
| 1313 | .init_irq = pxa27x_init_irq, | 1313 | .init_irq = pxa27x_init_irq, |
| 1314 | .handle_irq = pxa27x_handle_irq, | 1314 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/eseries.c b/arch/arm/mach-pxa/eseries.c index b4599ec9d619..e823c54057f3 100644 --- a/arch/arm/mach-pxa/eseries.c +++ b/arch/arm/mach-pxa/eseries.c | |||
| @@ -189,7 +189,7 @@ static void __init e330_init(void) | |||
| 189 | 189 | ||
| 190 | MACHINE_START(E330, "Toshiba e330") | 190 | MACHINE_START(E330, "Toshiba e330") |
| 191 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 191 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
| 192 | .boot_params = 0xa0000100, | 192 | .atag_offset = 0x100, |
| 193 | .map_io = pxa25x_map_io, | 193 | .map_io = pxa25x_map_io, |
| 194 | .nr_irqs = ESERIES_NR_IRQS, | 194 | .nr_irqs = ESERIES_NR_IRQS, |
| 195 | .init_irq = pxa25x_init_irq, | 195 | .init_irq = pxa25x_init_irq, |
| @@ -239,7 +239,7 @@ static void __init e350_init(void) | |||
| 239 | 239 | ||
| 240 | MACHINE_START(E350, "Toshiba e350") | 240 | MACHINE_START(E350, "Toshiba e350") |
| 241 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 241 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
| 242 | .boot_params = 0xa0000100, | 242 | .atag_offset = 0x100, |
| 243 | .map_io = pxa25x_map_io, | 243 | .map_io = pxa25x_map_io, |
| 244 | .nr_irqs = ESERIES_NR_IRQS, | 244 | .nr_irqs = ESERIES_NR_IRQS, |
| 245 | .init_irq = pxa25x_init_irq, | 245 | .init_irq = pxa25x_init_irq, |
| @@ -362,7 +362,7 @@ static void __init e400_init(void) | |||
| 362 | 362 | ||
| 363 | MACHINE_START(E400, "Toshiba e400") | 363 | MACHINE_START(E400, "Toshiba e400") |
| 364 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 364 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
| 365 | .boot_params = 0xa0000100, | 365 | .atag_offset = 0x100, |
| 366 | .map_io = pxa25x_map_io, | 366 | .map_io = pxa25x_map_io, |
| 367 | .nr_irqs = ESERIES_NR_IRQS, | 367 | .nr_irqs = ESERIES_NR_IRQS, |
| 368 | .init_irq = pxa25x_init_irq, | 368 | .init_irq = pxa25x_init_irq, |
| @@ -551,7 +551,7 @@ static void __init e740_init(void) | |||
| 551 | 551 | ||
| 552 | MACHINE_START(E740, "Toshiba e740") | 552 | MACHINE_START(E740, "Toshiba e740") |
| 553 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 553 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
| 554 | .boot_params = 0xa0000100, | 554 | .atag_offset = 0x100, |
| 555 | .map_io = pxa25x_map_io, | 555 | .map_io = pxa25x_map_io, |
| 556 | .nr_irqs = ESERIES_NR_IRQS, | 556 | .nr_irqs = ESERIES_NR_IRQS, |
| 557 | .init_irq = pxa25x_init_irq, | 557 | .init_irq = pxa25x_init_irq, |
| @@ -743,7 +743,7 @@ static void __init e750_init(void) | |||
| 743 | 743 | ||
| 744 | MACHINE_START(E750, "Toshiba e750") | 744 | MACHINE_START(E750, "Toshiba e750") |
| 745 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 745 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
| 746 | .boot_params = 0xa0000100, | 746 | .atag_offset = 0x100, |
| 747 | .map_io = pxa25x_map_io, | 747 | .map_io = pxa25x_map_io, |
| 748 | .nr_irqs = ESERIES_NR_IRQS, | 748 | .nr_irqs = ESERIES_NR_IRQS, |
| 749 | .init_irq = pxa25x_init_irq, | 749 | .init_irq = pxa25x_init_irq, |
| @@ -948,7 +948,7 @@ static void __init e800_init(void) | |||
| 948 | 948 | ||
| 949 | MACHINE_START(E800, "Toshiba e800") | 949 | MACHINE_START(E800, "Toshiba e800") |
| 950 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 950 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
| 951 | .boot_params = 0xa0000100, | 951 | .atag_offset = 0x100, |
| 952 | .map_io = pxa25x_map_io, | 952 | .map_io = pxa25x_map_io, |
| 953 | .nr_irqs = ESERIES_NR_IRQS, | 953 | .nr_irqs = ESERIES_NR_IRQS, |
| 954 | .init_irq = pxa25x_init_irq, | 954 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c index b73eadb9f5dc..8308eee5a924 100644 --- a/arch/arm/mach-pxa/ezx.c +++ b/arch/arm/mach-pxa/ezx.c | |||
| @@ -797,7 +797,7 @@ static void __init a780_init(void) | |||
| 797 | } | 797 | } |
| 798 | 798 | ||
| 799 | MACHINE_START(EZX_A780, "Motorola EZX A780") | 799 | MACHINE_START(EZX_A780, "Motorola EZX A780") |
| 800 | .boot_params = 0xa0000100, | 800 | .atag_offset = 0x100, |
| 801 | .map_io = pxa27x_map_io, | 801 | .map_io = pxa27x_map_io, |
| 802 | .nr_irqs = EZX_NR_IRQS, | 802 | .nr_irqs = EZX_NR_IRQS, |
| 803 | .init_irq = pxa27x_init_irq, | 803 | .init_irq = pxa27x_init_irq, |
| @@ -863,7 +863,7 @@ static void __init e680_init(void) | |||
| 863 | } | 863 | } |
| 864 | 864 | ||
| 865 | MACHINE_START(EZX_E680, "Motorola EZX E680") | 865 | MACHINE_START(EZX_E680, "Motorola EZX E680") |
| 866 | .boot_params = 0xa0000100, | 866 | .atag_offset = 0x100, |
| 867 | .map_io = pxa27x_map_io, | 867 | .map_io = pxa27x_map_io, |
| 868 | .nr_irqs = EZX_NR_IRQS, | 868 | .nr_irqs = EZX_NR_IRQS, |
| 869 | .init_irq = pxa27x_init_irq, | 869 | .init_irq = pxa27x_init_irq, |
| @@ -929,7 +929,7 @@ static void __init a1200_init(void) | |||
| 929 | } | 929 | } |
| 930 | 930 | ||
| 931 | MACHINE_START(EZX_A1200, "Motorola EZX A1200") | 931 | MACHINE_START(EZX_A1200, "Motorola EZX A1200") |
| 932 | .boot_params = 0xa0000100, | 932 | .atag_offset = 0x100, |
| 933 | .map_io = pxa27x_map_io, | 933 | .map_io = pxa27x_map_io, |
| 934 | .nr_irqs = EZX_NR_IRQS, | 934 | .nr_irqs = EZX_NR_IRQS, |
| 935 | .init_irq = pxa27x_init_irq, | 935 | .init_irq = pxa27x_init_irq, |
| @@ -1120,7 +1120,7 @@ static void __init a910_init(void) | |||
| 1120 | } | 1120 | } |
| 1121 | 1121 | ||
| 1122 | MACHINE_START(EZX_A910, "Motorola EZX A910") | 1122 | MACHINE_START(EZX_A910, "Motorola EZX A910") |
| 1123 | .boot_params = 0xa0000100, | 1123 | .atag_offset = 0x100, |
| 1124 | .map_io = pxa27x_map_io, | 1124 | .map_io = pxa27x_map_io, |
| 1125 | .nr_irqs = EZX_NR_IRQS, | 1125 | .nr_irqs = EZX_NR_IRQS, |
| 1126 | .init_irq = pxa27x_init_irq, | 1126 | .init_irq = pxa27x_init_irq, |
| @@ -1186,7 +1186,7 @@ static void __init e6_init(void) | |||
| 1186 | } | 1186 | } |
| 1187 | 1187 | ||
| 1188 | MACHINE_START(EZX_E6, "Motorola EZX E6") | 1188 | MACHINE_START(EZX_E6, "Motorola EZX E6") |
| 1189 | .boot_params = 0xa0000100, | 1189 | .atag_offset = 0x100, |
| 1190 | .map_io = pxa27x_map_io, | 1190 | .map_io = pxa27x_map_io, |
| 1191 | .nr_irqs = EZX_NR_IRQS, | 1191 | .nr_irqs = EZX_NR_IRQS, |
| 1192 | .init_irq = pxa27x_init_irq, | 1192 | .init_irq = pxa27x_init_irq, |
| @@ -1226,7 +1226,7 @@ static void __init e2_init(void) | |||
| 1226 | } | 1226 | } |
| 1227 | 1227 | ||
| 1228 | MACHINE_START(EZX_E2, "Motorola EZX E2") | 1228 | MACHINE_START(EZX_E2, "Motorola EZX E2") |
| 1229 | .boot_params = 0xa0000100, | 1229 | .atag_offset = 0x100, |
| 1230 | .map_io = pxa27x_map_io, | 1230 | .map_io = pxa27x_map_io, |
| 1231 | .nr_irqs = EZX_NR_IRQS, | 1231 | .nr_irqs = EZX_NR_IRQS, |
| 1232 | .init_irq = pxa27x_init_irq, | 1232 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c index deaa111c91f9..9c8208ca0415 100644 --- a/arch/arm/mach-pxa/gumstix.c +++ b/arch/arm/mach-pxa/gumstix.c | |||
| @@ -233,7 +233,7 @@ static void __init gumstix_init(void) | |||
| 233 | } | 233 | } |
| 234 | 234 | ||
| 235 | MACHINE_START(GUMSTIX, "Gumstix") | 235 | MACHINE_START(GUMSTIX, "Gumstix") |
| 236 | .boot_params = 0xa0000100, /* match u-boot bi_boot_params */ | 236 | .atag_offset = 0x100, /* match u-boot bi_boot_params */ |
| 237 | .map_io = pxa25x_map_io, | 237 | .map_io = pxa25x_map_io, |
| 238 | .init_irq = pxa25x_init_irq, | 238 | .init_irq = pxa25x_init_irq, |
| 239 | .handle_irq = pxa25x_handle_irq, | 239 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/h5000.c b/arch/arm/mach-pxa/h5000.c index 0a235128914d..4b5e110640b1 100644 --- a/arch/arm/mach-pxa/h5000.c +++ b/arch/arm/mach-pxa/h5000.c | |||
| @@ -203,7 +203,7 @@ static void __init h5000_init(void) | |||
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | MACHINE_START(H5400, "HP iPAQ H5000") | 205 | MACHINE_START(H5400, "HP iPAQ H5000") |
| 206 | .boot_params = 0xa0000100, | 206 | .atag_offset = 0x100, |
| 207 | .map_io = pxa25x_map_io, | 207 | .map_io = pxa25x_map_io, |
| 208 | .init_irq = pxa25x_init_irq, | 208 | .init_irq = pxa25x_init_irq, |
| 209 | .handle_irq = pxa25x_handle_irq, | 209 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/himalaya.c b/arch/arm/mach-pxa/himalaya.c index a997d0ab2872..f2c324570844 100644 --- a/arch/arm/mach-pxa/himalaya.c +++ b/arch/arm/mach-pxa/himalaya.c | |||
| @@ -158,7 +158,7 @@ static void __init himalaya_init(void) | |||
| 158 | 158 | ||
| 159 | 159 | ||
| 160 | MACHINE_START(HIMALAYA, "HTC Himalaya") | 160 | MACHINE_START(HIMALAYA, "HTC Himalaya") |
| 161 | .boot_params = 0xa0000100, | 161 | .atag_offset = 0x100, |
| 162 | .map_io = pxa25x_map_io, | 162 | .map_io = pxa25x_map_io, |
| 163 | .init_irq = pxa25x_init_irq, | 163 | .init_irq = pxa25x_init_irq, |
| 164 | .handle_irq = pxa25x_handle_irq, | 164 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index c748a473a2ff..6f6368ece9bd 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
| @@ -838,7 +838,7 @@ static void __init hx4700_init(void) | |||
| 838 | } | 838 | } |
| 839 | 839 | ||
| 840 | MACHINE_START(H4700, "HP iPAQ HX4700") | 840 | MACHINE_START(H4700, "HP iPAQ HX4700") |
| 841 | .boot_params = 0xa0000100, | 841 | .atag_offset = 0x100, |
| 842 | .map_io = pxa27x_map_io, | 842 | .map_io = pxa27x_map_io, |
| 843 | .nr_irqs = HX4700_NR_IRQS, | 843 | .nr_irqs = HX4700_NR_IRQS, |
| 844 | .init_irq = pxa27x_init_irq, | 844 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c index d427429f1f34..f78d5db758da 100644 --- a/arch/arm/mach-pxa/icontrol.c +++ b/arch/arm/mach-pxa/icontrol.c | |||
| @@ -191,7 +191,7 @@ static void __init icontrol_init(void) | |||
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") | 193 | MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") |
| 194 | .boot_params = 0xa0000100, | 194 | .atag_offset = 0x100, |
| 195 | .map_io = pxa3xx_map_io, | 195 | .map_io = pxa3xx_map_io, |
| 196 | .init_irq = pxa3xx_init_irq, | 196 | .init_irq = pxa3xx_init_irq, |
| 197 | .handle_irq = pxa3xx_handle_irq, | 197 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c index 8f97e15e86e5..0037e57e0cec 100644 --- a/arch/arm/mach-pxa/littleton.c +++ b/arch/arm/mach-pxa/littleton.c | |||
| @@ -437,7 +437,7 @@ static void __init littleton_init(void) | |||
| 437 | } | 437 | } |
| 438 | 438 | ||
| 439 | MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") | 439 | MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") |
| 440 | .boot_params = 0xa0000100, | 440 | .atag_offset = 0x100, |
| 441 | .map_io = pxa3xx_map_io, | 441 | .map_io = pxa3xx_map_io, |
| 442 | .nr_irqs = LITTLETON_NR_IRQS, | 442 | .nr_irqs = LITTLETON_NR_IRQS, |
| 443 | .init_irq = pxa3xx_init_irq, | 443 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index c171d6ebee49..16df0fc0879a 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c | |||
| @@ -499,7 +499,7 @@ static void __init lpd270_map_io(void) | |||
| 499 | 499 | ||
| 500 | MACHINE_START(LOGICPD_PXA270, "LogicPD PXA270 Card Engine") | 500 | MACHINE_START(LOGICPD_PXA270, "LogicPD PXA270 Card Engine") |
| 501 | /* Maintainer: Peter Barada */ | 501 | /* Maintainer: Peter Barada */ |
| 502 | .boot_params = 0xa0000100, | 502 | .atag_offset = 0x100, |
| 503 | .map_io = lpd270_map_io, | 503 | .map_io = lpd270_map_io, |
| 504 | .nr_irqs = LPD270_NR_IRQS, | 504 | .nr_irqs = LPD270_NR_IRQS, |
| 505 | .init_irq = lpd270_init_irq, | 505 | .init_irq = lpd270_init_irq, |
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 5fe5bcd7c0a1..4b796c37af3e 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
| @@ -753,7 +753,7 @@ static void __init magician_init(void) | |||
| 753 | 753 | ||
| 754 | 754 | ||
| 755 | MACHINE_START(MAGICIAN, "HTC Magician") | 755 | MACHINE_START(MAGICIAN, "HTC Magician") |
| 756 | .boot_params = 0xa0000100, | 756 | .atag_offset = 0x100, |
| 757 | .map_io = pxa27x_map_io, | 757 | .map_io = pxa27x_map_io, |
| 758 | .nr_irqs = MAGICIAN_NR_IRQS, | 758 | .nr_irqs = MAGICIAN_NR_IRQS, |
| 759 | .init_irq = pxa27x_init_irq, | 759 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index 4622eb78ef25..cc6e14f6d114 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c | |||
| @@ -616,7 +616,7 @@ static void __init mainstone_map_io(void) | |||
| 616 | 616 | ||
| 617 | MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") | 617 | MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") |
| 618 | /* Maintainer: MontaVista Software Inc. */ | 618 | /* Maintainer: MontaVista Software Inc. */ |
| 619 | .boot_params = 0xa0000100, /* BLOB boot parameter setting */ | 619 | .atag_offset = 0x100, /* BLOB boot parameter setting */ |
| 620 | .map_io = mainstone_map_io, | 620 | .map_io = mainstone_map_io, |
| 621 | .nr_irqs = MAINSTONE_NR_IRQS, | 621 | .nr_irqs = MAINSTONE_NR_IRQS, |
| 622 | .init_irq = mainstone_init_irq, | 622 | .init_irq = mainstone_init_irq, |
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index 64810f908e5b..b938fc2c316a 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c | |||
| @@ -751,7 +751,7 @@ static void mioa701_machine_exit(void) | |||
| 751 | } | 751 | } |
| 752 | 752 | ||
| 753 | MACHINE_START(MIOA701, "MIO A701") | 753 | MACHINE_START(MIOA701, "MIO A701") |
| 754 | .boot_params = 0xa0000100, | 754 | .atag_offset = 0x100, |
| 755 | .map_io = &pxa27x_map_io, | 755 | .map_io = &pxa27x_map_io, |
| 756 | .init_irq = &pxa27x_init_irq, | 756 | .init_irq = &pxa27x_init_irq, |
| 757 | .handle_irq = &pxa27x_handle_irq, | 757 | .handle_irq = &pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/mp900.c b/arch/arm/mach-pxa/mp900.c index fb408861dbcf..4af5d513c380 100644 --- a/arch/arm/mach-pxa/mp900.c +++ b/arch/arm/mach-pxa/mp900.c | |||
| @@ -92,7 +92,7 @@ static void __init mp900c_init(void) | |||
| 92 | 92 | ||
| 93 | /* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */ | 93 | /* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */ |
| 94 | MACHINE_START(NEC_MP900, "MobilePro900/C") | 94 | MACHINE_START(NEC_MP900, "MobilePro900/C") |
| 95 | .boot_params = 0xa0220100, | 95 | .atag_offset = 0x220100, |
| 96 | .timer = &pxa_timer, | 96 | .timer = &pxa_timer, |
| 97 | .map_io = pxa25x_map_io, | 97 | .map_io = pxa25x_map_io, |
| 98 | .init_irq = pxa25x_init_irq, | 98 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c index 6b77365ed938..3d4a2819cae1 100644 --- a/arch/arm/mach-pxa/palmld.c +++ b/arch/arm/mach-pxa/palmld.c | |||
| @@ -342,7 +342,7 @@ static void __init palmld_init(void) | |||
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | MACHINE_START(PALMLD, "Palm LifeDrive") | 344 | MACHINE_START(PALMLD, "Palm LifeDrive") |
| 345 | .boot_params = 0xa0000100, | 345 | .atag_offset = 0x100, |
| 346 | .map_io = palmld_map_io, | 346 | .map_io = palmld_map_io, |
| 347 | .init_irq = pxa27x_init_irq, | 347 | .init_irq = pxa27x_init_irq, |
| 348 | .handle_irq = pxa27x_handle_irq, | 348 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c index 9bd3e47486fb..99d6bcf1f974 100644 --- a/arch/arm/mach-pxa/palmt5.c +++ b/arch/arm/mach-pxa/palmt5.c | |||
| @@ -202,7 +202,7 @@ static void __init palmt5_init(void) | |||
| 202 | } | 202 | } |
| 203 | 203 | ||
| 204 | MACHINE_START(PALMT5, "Palm Tungsten|T5") | 204 | MACHINE_START(PALMT5, "Palm Tungsten|T5") |
| 205 | .boot_params = 0xa0000100, | 205 | .atag_offset = 0x100, |
| 206 | .map_io = pxa27x_map_io, | 206 | .map_io = pxa27x_map_io, |
| 207 | .reserve = palmt5_reserve, | 207 | .reserve = palmt5_reserve, |
| 208 | .init_irq = pxa27x_init_irq, | 208 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index 6ad4a6c7bc96..6ec7caefb37c 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c | |||
| @@ -537,7 +537,7 @@ static void __init palmtc_init(void) | |||
| 537 | }; | 537 | }; |
| 538 | 538 | ||
| 539 | MACHINE_START(PALMTC, "Palm Tungsten|C") | 539 | MACHINE_START(PALMTC, "Palm Tungsten|C") |
| 540 | .boot_params = 0xa0000100, | 540 | .atag_offset = 0x100, |
| 541 | .map_io = pxa25x_map_io, | 541 | .map_io = pxa25x_map_io, |
| 542 | .init_irq = pxa25x_init_irq, | 542 | .init_irq = pxa25x_init_irq, |
| 543 | .handle_irq = pxa25x_handle_irq, | 543 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c index 664232f3e62c..9376da06404c 100644 --- a/arch/arm/mach-pxa/palmte2.c +++ b/arch/arm/mach-pxa/palmte2.c | |||
| @@ -356,7 +356,7 @@ static void __init palmte2_init(void) | |||
| 356 | } | 356 | } |
| 357 | 357 | ||
| 358 | MACHINE_START(PALMTE2, "Palm Tungsten|E2") | 358 | MACHINE_START(PALMTE2, "Palm Tungsten|E2") |
| 359 | .boot_params = 0xa0000100, | 359 | .atag_offset = 0x100, |
| 360 | .map_io = pxa25x_map_io, | 360 | .map_io = pxa25x_map_io, |
| 361 | .init_irq = pxa25x_init_irq, | 361 | .init_irq = pxa25x_init_irq, |
| 362 | .handle_irq = pxa25x_handle_irq, | 362 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c index bb27d4b688d8..7346fbfa8101 100644 --- a/arch/arm/mach-pxa/palmtreo.c +++ b/arch/arm/mach-pxa/palmtreo.c | |||
| @@ -440,7 +440,7 @@ static void __init centro_init(void) | |||
| 440 | } | 440 | } |
| 441 | 441 | ||
| 442 | MACHINE_START(TREO680, "Palm Treo 680") | 442 | MACHINE_START(TREO680, "Palm Treo 680") |
| 443 | .boot_params = 0xa0000100, | 443 | .atag_offset = 0x100, |
| 444 | .map_io = pxa27x_map_io, | 444 | .map_io = pxa27x_map_io, |
| 445 | .reserve = treo_reserve, | 445 | .reserve = treo_reserve, |
| 446 | .init_irq = pxa27x_init_irq, | 446 | .init_irq = pxa27x_init_irq, |
| @@ -450,7 +450,7 @@ MACHINE_START(TREO680, "Palm Treo 680") | |||
| 450 | MACHINE_END | 450 | MACHINE_END |
| 451 | 451 | ||
| 452 | MACHINE_START(CENTRO, "Palm Centro 685") | 452 | MACHINE_START(CENTRO, "Palm Centro 685") |
| 453 | .boot_params = 0xa0000100, | 453 | .atag_offset = 0x100, |
| 454 | .map_io = pxa27x_map_io, | 454 | .map_io = pxa27x_map_io, |
| 455 | .reserve = treo_reserve, | 455 | .reserve = treo_reserve, |
| 456 | .init_irq = pxa27x_init_irq, | 456 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c index fc4285589c1f..2b9e76fc2c90 100644 --- a/arch/arm/mach-pxa/palmtx.c +++ b/arch/arm/mach-pxa/palmtx.c | |||
| @@ -364,7 +364,7 @@ static void __init palmtx_init(void) | |||
| 364 | } | 364 | } |
| 365 | 365 | ||
| 366 | MACHINE_START(PALMTX, "Palm T|X") | 366 | MACHINE_START(PALMTX, "Palm T|X") |
| 367 | .boot_params = 0xa0000100, | 367 | .atag_offset = 0x100, |
| 368 | .map_io = palmtx_map_io, | 368 | .map_io = palmtx_map_io, |
| 369 | .init_irq = pxa27x_init_irq, | 369 | .init_irq = pxa27x_init_irq, |
| 370 | .handle_irq = pxa27x_handle_irq, | 370 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c index e61c1cc05519..68e18baf8e07 100644 --- a/arch/arm/mach-pxa/palmz72.c +++ b/arch/arm/mach-pxa/palmz72.c | |||
| @@ -399,7 +399,7 @@ static void __init palmz72_init(void) | |||
| 399 | } | 399 | } |
| 400 | 400 | ||
| 401 | MACHINE_START(PALMZ72, "Palm Zire72") | 401 | MACHINE_START(PALMZ72, "Palm Zire72") |
| 402 | .boot_params = 0xa0000100, | 402 | .atag_offset = 0x100, |
| 403 | .map_io = pxa27x_map_io, | 403 | .map_io = pxa27x_map_io, |
| 404 | .init_irq = pxa27x_init_irq, | 404 | .init_irq = pxa27x_init_irq, |
| 405 | .handle_irq = pxa27x_handle_irq, | 405 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c index ffa65dfb8c6f..0b825a353537 100644 --- a/arch/arm/mach-pxa/pcm027.c +++ b/arch/arm/mach-pxa/pcm027.c | |||
| @@ -258,7 +258,7 @@ static void __init pcm027_map_io(void) | |||
| 258 | 258 | ||
| 259 | MACHINE_START(PCM027, "Phytec Messtechnik GmbH phyCORE-PXA270") | 259 | MACHINE_START(PCM027, "Phytec Messtechnik GmbH phyCORE-PXA270") |
| 260 | /* Maintainer: Pengutronix */ | 260 | /* Maintainer: Pengutronix */ |
| 261 | .boot_params = 0xa0000100, | 261 | .atag_offset = 0x100, |
| 262 | .map_io = pcm027_map_io, | 262 | .map_io = pcm027_map_io, |
| 263 | .nr_irqs = PCM027_NR_IRQS, | 263 | .nr_irqs = PCM027_NR_IRQS, |
| 264 | .init_irq = pxa27x_init_irq, | 264 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c index bbcd90562ebe..6810cddec927 100644 --- a/arch/arm/mach-pxa/raumfeld.c +++ b/arch/arm/mach-pxa/raumfeld.c | |||
| @@ -1086,7 +1086,7 @@ static void __init raumfeld_speaker_init(void) | |||
| 1086 | 1086 | ||
| 1087 | #ifdef CONFIG_MACH_RAUMFELD_RC | 1087 | #ifdef CONFIG_MACH_RAUMFELD_RC |
| 1088 | MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") | 1088 | MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") |
| 1089 | .boot_params = RAUMFELD_SDRAM_BASE + 0x100, | 1089 | .atag_offset = 0x100, |
| 1090 | .init_machine = raumfeld_controller_init, | 1090 | .init_machine = raumfeld_controller_init, |
| 1091 | .map_io = pxa3xx_map_io, | 1091 | .map_io = pxa3xx_map_io, |
| 1092 | .init_irq = pxa3xx_init_irq, | 1092 | .init_irq = pxa3xx_init_irq, |
| @@ -1097,7 +1097,7 @@ MACHINE_END | |||
| 1097 | 1097 | ||
| 1098 | #ifdef CONFIG_MACH_RAUMFELD_CONNECTOR | 1098 | #ifdef CONFIG_MACH_RAUMFELD_CONNECTOR |
| 1099 | MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") | 1099 | MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") |
| 1100 | .boot_params = RAUMFELD_SDRAM_BASE + 0x100, | 1100 | .atag_offset = 0x100, |
| 1101 | .init_machine = raumfeld_connector_init, | 1101 | .init_machine = raumfeld_connector_init, |
| 1102 | .map_io = pxa3xx_map_io, | 1102 | .map_io = pxa3xx_map_io, |
| 1103 | .init_irq = pxa3xx_init_irq, | 1103 | .init_irq = pxa3xx_init_irq, |
| @@ -1108,7 +1108,7 @@ MACHINE_END | |||
| 1108 | 1108 | ||
| 1109 | #ifdef CONFIG_MACH_RAUMFELD_SPEAKER | 1109 | #ifdef CONFIG_MACH_RAUMFELD_SPEAKER |
| 1110 | MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") | 1110 | MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") |
| 1111 | .boot_params = RAUMFELD_SDRAM_BASE + 0x100, | 1111 | .atag_offset = 0x100, |
| 1112 | .init_machine = raumfeld_speaker_init, | 1112 | .init_machine = raumfeld_speaker_init, |
| 1113 | .map_io = pxa3xx_map_io, | 1113 | .map_io = pxa3xx_map_io, |
| 1114 | .init_irq = pxa3xx_init_irq, | 1114 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/saar.c b/arch/arm/mach-pxa/saar.c index df4356e8acae..602d70b50f81 100644 --- a/arch/arm/mach-pxa/saar.c +++ b/arch/arm/mach-pxa/saar.c | |||
| @@ -596,7 +596,7 @@ static void __init saar_init(void) | |||
| 596 | 596 | ||
| 597 | MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") | 597 | MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") |
| 598 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ | 598 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ |
| 599 | .boot_params = 0xa0000100, | 599 | .atag_offset = 0x100, |
| 600 | .map_io = pxa3xx_map_io, | 600 | .map_io = pxa3xx_map_io, |
| 601 | .init_irq = pxa3xx_init_irq, | 601 | .init_irq = pxa3xx_init_irq, |
| 602 | .handle_irq = pxa3xx_handle_irq, | 602 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/saarb.c b/arch/arm/mach-pxa/saarb.c index ebd6379c4969..5ce340320ab9 100644 --- a/arch/arm/mach-pxa/saarb.c +++ b/arch/arm/mach-pxa/saarb.c | |||
| @@ -103,7 +103,7 @@ static void __init saarb_init(void) | |||
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | MACHINE_START(SAARB, "PXA955 Handheld Platform (aka SAARB)") | 105 | MACHINE_START(SAARB, "PXA955 Handheld Platform (aka SAARB)") |
| 106 | .boot_params = 0xa0000100, | 106 | .atag_offset = 0x100, |
| 107 | .map_io = pxa3xx_map_io, | 107 | .map_io = pxa3xx_map_io, |
| 108 | .nr_irqs = SAARB_NR_IRQS, | 108 | .nr_irqs = SAARB_NR_IRQS, |
| 109 | .init_irq = pxa95x_init_irq, | 109 | .init_irq = pxa95x_init_irq, |
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c index 3f8d0af9e2f7..4c9a48bef569 100644 --- a/arch/arm/mach-pxa/stargate2.c +++ b/arch/arm/mach-pxa/stargate2.c | |||
| @@ -1004,7 +1004,7 @@ MACHINE_START(INTELMOTE2, "IMOTE 2") | |||
| 1004 | .handle_irq = pxa27x_handle_irq, | 1004 | .handle_irq = pxa27x_handle_irq, |
| 1005 | .timer = &pxa_timer, | 1005 | .timer = &pxa_timer, |
| 1006 | .init_machine = imote2_init, | 1006 | .init_machine = imote2_init, |
| 1007 | .boot_params = 0xA0000100, | 1007 | .atag_offset = 0x100, |
| 1008 | MACHINE_END | 1008 | MACHINE_END |
| 1009 | #endif | 1009 | #endif |
| 1010 | 1010 | ||
| @@ -1016,6 +1016,6 @@ MACHINE_START(STARGATE2, "Stargate 2") | |||
| 1016 | .handle_irq = pxa27x_handle_irq, | 1016 | .handle_irq = pxa27x_handle_irq, |
| 1017 | .timer = &pxa_timer, | 1017 | .timer = &pxa_timer, |
| 1018 | .init_machine = stargate2_init, | 1018 | .init_machine = stargate2_init, |
| 1019 | .boot_params = 0xA0000100, | 1019 | .atag_offset = 0x100, |
| 1020 | MACHINE_END | 1020 | MACHINE_END |
| 1021 | #endif | 1021 | #endif |
diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c index 32fb58e01b10..ad47bb98f30d 100644 --- a/arch/arm/mach-pxa/tavorevb.c +++ b/arch/arm/mach-pxa/tavorevb.c | |||
| @@ -489,7 +489,7 @@ static void __init tavorevb_init(void) | |||
| 489 | 489 | ||
| 490 | MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") | 490 | MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") |
| 491 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ | 491 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ |
| 492 | .boot_params = 0xa0000100, | 492 | .atag_offset = 0x100, |
| 493 | .map_io = pxa3xx_map_io, | 493 | .map_io = pxa3xx_map_io, |
| 494 | .init_irq = pxa3xx_init_irq, | 494 | .init_irq = pxa3xx_init_irq, |
| 495 | .handle_irq = pxa3xx_handle_irq, | 495 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/tavorevb3.c b/arch/arm/mach-pxa/tavorevb3.c index fd5a8eae0a87..fd569167302a 100644 --- a/arch/arm/mach-pxa/tavorevb3.c +++ b/arch/arm/mach-pxa/tavorevb3.c | |||
| @@ -125,7 +125,7 @@ static void __init evb3_init(void) | |||
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | MACHINE_START(TAVOREVB3, "PXA950 Evaluation Board (aka TavorEVB3)") | 127 | MACHINE_START(TAVOREVB3, "PXA950 Evaluation Board (aka TavorEVB3)") |
| 128 | .boot_params = 0xa0000100, | 128 | .atag_offset = 0x100, |
| 129 | .map_io = pxa3xx_map_io, | 129 | .map_io = pxa3xx_map_io, |
| 130 | .nr_irqs = TAVOREVB3_NR_IRQS, | 130 | .nr_irqs = TAVOREVB3_NR_IRQS, |
| 131 | .init_irq = pxa3xx_init_irq, | 131 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index c0417508f39d..35bbf13724b9 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
| @@ -554,7 +554,7 @@ static void __init trizeps4_map_io(void) | |||
| 554 | 554 | ||
| 555 | MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") | 555 | MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") |
| 556 | /* MAINTAINER("Jürgen Schindele") */ | 556 | /* MAINTAINER("Jürgen Schindele") */ |
| 557 | .boot_params = TRIZEPS4_SDRAM_BASE + 0x100, | 557 | .atag_offset = 0x100, |
| 558 | .init_machine = trizeps4_init, | 558 | .init_machine = trizeps4_init, |
| 559 | .map_io = trizeps4_map_io, | 559 | .map_io = trizeps4_map_io, |
| 560 | .init_irq = pxa27x_init_irq, | 560 | .init_irq = pxa27x_init_irq, |
| @@ -564,7 +564,7 @@ MACHINE_END | |||
| 564 | 564 | ||
| 565 | MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module") | 565 | MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module") |
| 566 | /* MAINTAINER("Jürgen Schindele") */ | 566 | /* MAINTAINER("Jürgen Schindele") */ |
| 567 | .boot_params = TRIZEPS4_SDRAM_BASE + 0x100, | 567 | .atag_offset = 0x100, |
| 568 | .init_machine = trizeps4_init, | 568 | .init_machine = trizeps4_init, |
| 569 | .map_io = trizeps4_map_io, | 569 | .map_io = trizeps4_map_io, |
| 570 | .init_irq = pxa27x_init_irq, | 570 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index d4a3dc74e84a..242ddae332d3 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c | |||
| @@ -992,7 +992,7 @@ static void __init viper_map_io(void) | |||
| 992 | 992 | ||
| 993 | MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") | 993 | MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") |
| 994 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ | 994 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ |
| 995 | .boot_params = 0xa0000100, | 995 | .atag_offset = 0x100, |
| 996 | .map_io = viper_map_io, | 996 | .map_io = viper_map_io, |
| 997 | .init_irq = viper_init_irq, | 997 | .init_irq = viper_init_irq, |
| 998 | .handle_irq = pxa25x_handle_irq, | 998 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c index 5f8490ab07cb..a7539a6ed1ff 100644 --- a/arch/arm/mach-pxa/vpac270.c +++ b/arch/arm/mach-pxa/vpac270.c | |||
| @@ -716,7 +716,7 @@ static void __init vpac270_init(void) | |||
| 716 | } | 716 | } |
| 717 | 717 | ||
| 718 | MACHINE_START(VPAC270, "Voipac PXA270") | 718 | MACHINE_START(VPAC270, "Voipac PXA270") |
| 719 | .boot_params = 0xa0000100, | 719 | .atag_offset = 0x100, |
| 720 | .map_io = pxa27x_map_io, | 720 | .map_io = pxa27x_map_io, |
| 721 | .init_irq = pxa27x_init_irq, | 721 | .init_irq = pxa27x_init_irq, |
| 722 | .handle_irq = pxa27x_handle_irq, | 722 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c index acc600f5e72f..54930cccbe54 100644 --- a/arch/arm/mach-pxa/xcep.c +++ b/arch/arm/mach-pxa/xcep.c | |||
| @@ -180,7 +180,7 @@ static void __init xcep_init(void) | |||
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | MACHINE_START(XCEP, "Iskratel XCEP") | 182 | MACHINE_START(XCEP, "Iskratel XCEP") |
| 183 | .boot_params = 0xa0000100, | 183 | .atag_offset = 0x100, |
| 184 | .init_machine = xcep_init, | 184 | .init_machine = xcep_init, |
| 185 | .map_io = pxa25x_map_io, | 185 | .map_io = pxa25x_map_io, |
| 186 | .init_irq = pxa25x_init_irq, | 186 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c index 6c9275a20c91..65fed3753fa2 100644 --- a/arch/arm/mach-pxa/z2.c +++ b/arch/arm/mach-pxa/z2.c | |||
| @@ -718,7 +718,7 @@ static void __init z2_init(void) | |||
| 718 | } | 718 | } |
| 719 | 719 | ||
| 720 | MACHINE_START(ZIPIT2, "Zipit Z2") | 720 | MACHINE_START(ZIPIT2, "Zipit Z2") |
| 721 | .boot_params = 0xa0000100, | 721 | .atag_offset = 0x100, |
| 722 | .map_io = pxa27x_map_io, | 722 | .map_io = pxa27x_map_io, |
| 723 | .init_irq = pxa27x_init_irq, | 723 | .init_irq = pxa27x_init_irq, |
| 724 | .handle_irq = pxa27x_handle_irq, | 724 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c index 99c49bcd9f70..c424e7d85ce3 100644 --- a/arch/arm/mach-pxa/zeus.c +++ b/arch/arm/mach-pxa/zeus.c | |||
| @@ -904,7 +904,7 @@ static void __init zeus_map_io(void) | |||
| 904 | 904 | ||
| 905 | MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS") | 905 | MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS") |
| 906 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ | 906 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ |
| 907 | .boot_params = 0xa0000100, | 907 | .atag_offset = 0x100, |
| 908 | .map_io = zeus_map_io, | 908 | .map_io = zeus_map_io, |
| 909 | .nr_irqs = ZEUS_NR_IRQS, | 909 | .nr_irqs = ZEUS_NR_IRQS, |
| 910 | .init_irq = zeus_init_irq, | 910 | .init_irq = zeus_init_irq, |
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c index 15ec66b3471a..31d496891891 100644 --- a/arch/arm/mach-pxa/zylonite.c +++ b/arch/arm/mach-pxa/zylonite.c | |||
| @@ -422,7 +422,7 @@ static void __init zylonite_init(void) | |||
| 422 | } | 422 | } |
| 423 | 423 | ||
| 424 | MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") | 424 | MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") |
| 425 | .boot_params = 0xa0000100, | 425 | .atag_offset = 0x100, |
| 426 | .map_io = pxa3xx_map_io, | 426 | .map_io = pxa3xx_map_io, |
| 427 | .nr_irqs = ZYLONITE_NR_IRQS, | 427 | .nr_irqs = ZYLONITE_NR_IRQS, |
| 428 | .init_irq = pxa3xx_init_irq, | 428 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 7a4e3b18cb3e..026c66ad7ec2 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
| @@ -463,7 +463,7 @@ static void __init realview_eb_init(void) | |||
| 463 | 463 | ||
| 464 | MACHINE_START(REALVIEW_EB, "ARM-RealView EB") | 464 | MACHINE_START(REALVIEW_EB, "ARM-RealView EB") |
| 465 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 465 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 466 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 466 | .atag_offset = 0x100, |
| 467 | .fixup = realview_fixup, | 467 | .fixup = realview_fixup, |
| 468 | .map_io = realview_eb_map_io, | 468 | .map_io = realview_eb_map_io, |
| 469 | .init_early = realview_init_early, | 469 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index ad5671acb66a..7263dea77779 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
| @@ -358,7 +358,7 @@ static void __init realview_pb1176_init(void) | |||
| 358 | 358 | ||
| 359 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | 359 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") |
| 360 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 360 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 361 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 361 | .atag_offset = 0x100, |
| 362 | .fixup = realview_pb1176_fixup, | 362 | .fixup = realview_pb1176_fixup, |
| 363 | .map_io = realview_pb1176_map_io, | 363 | .map_io = realview_pb1176_map_io, |
| 364 | .init_early = realview_init_early, | 364 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index b43644b3685e..671ad6d6ff00 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c | |||
| @@ -360,7 +360,7 @@ static void __init realview_pb11mp_init(void) | |||
| 360 | 360 | ||
| 361 | MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") | 361 | MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") |
| 362 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 362 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 363 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 363 | .atag_offset = 0x100, |
| 364 | .fixup = realview_fixup, | 364 | .fixup = realview_fixup, |
| 365 | .map_io = realview_pb11mp_map_io, | 365 | .map_io = realview_pb11mp_map_io, |
| 366 | .init_early = realview_init_early, | 366 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index 763e8f38c15d..cbf22df4ad5b 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c | |||
| @@ -310,7 +310,7 @@ static void __init realview_pba8_init(void) | |||
| 310 | 310 | ||
| 311 | MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") | 311 | MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") |
| 312 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 312 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 313 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 313 | .atag_offset = 0x100, |
| 314 | .fixup = realview_fixup, | 314 | .fixup = realview_fixup, |
| 315 | .map_io = realview_pba8_map_io, | 315 | .map_io = realview_pba8_map_io, |
| 316 | .init_early = realview_init_early, | 316 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index 363b0ab56150..8ec7e52618b4 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
| @@ -393,7 +393,7 @@ static void __init realview_pbx_init(void) | |||
| 393 | 393 | ||
| 394 | MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") | 394 | MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") |
| 395 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 395 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 396 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 396 | .atag_offset = 0x100, |
| 397 | .fixup = realview_pbx_fixup, | 397 | .fixup = realview_pbx_fixup, |
| 398 | .map_io = realview_pbx_map_io, | 398 | .map_io = realview_pbx_map_io, |
| 399 | .init_early = realview_init_early, | 399 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index 580b3c73d2c7..a9241eb87724 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c | |||
| @@ -218,7 +218,7 @@ extern struct sys_timer ioc_timer; | |||
| 218 | 218 | ||
| 219 | MACHINE_START(RISCPC, "Acorn-RiscPC") | 219 | MACHINE_START(RISCPC, "Acorn-RiscPC") |
| 220 | /* Maintainer: Russell King */ | 220 | /* Maintainer: Russell King */ |
| 221 | .boot_params = 0x10000100, | 221 | .atag_offset = 0x100, |
| 222 | .reserve_lp0 = 1, | 222 | .reserve_lp0 = 1, |
| 223 | .reserve_lp1 = 1, | 223 | .reserve_lp1 = 1, |
| 224 | .map_io = rpc_map_io, | 224 | .map_io = rpc_map_io, |
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index dabc141243f3..79838942b0ac 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c | |||
| @@ -236,7 +236,7 @@ static void __init amlm5900_init(void) | |||
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | MACHINE_START(AML_M5900, "AML_M5900") | 238 | MACHINE_START(AML_M5900, "AML_M5900") |
| 239 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 239 | .atag_offset = 0x100, |
| 240 | .map_io = amlm5900_map_io, | 240 | .map_io = amlm5900_map_io, |
| 241 | .init_irq = s3c24xx_init_irq, | 241 | .init_irq = s3c24xx_init_irq, |
| 242 | .init_machine = amlm5900_init, | 242 | .init_machine = amlm5900_init, |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 1e2d536adda9..a20ae1ad4062 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
| @@ -657,7 +657,7 @@ static void __init bast_init(void) | |||
| 657 | 657 | ||
| 658 | MACHINE_START(BAST, "Simtec-BAST") | 658 | MACHINE_START(BAST, "Simtec-BAST") |
| 659 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 659 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
| 660 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 660 | .atag_offset = 0x100, |
| 661 | .map_io = bast_map_io, | 661 | .map_io = bast_map_io, |
| 662 | .init_irq = s3c24xx_init_irq, | 662 | .init_irq = s3c24xx_init_irq, |
| 663 | .init_machine = bast_init, | 663 | .init_machine = bast_init, |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 2a2fa0620133..556c535829f0 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
| @@ -744,7 +744,7 @@ static void __init h1940_init(void) | |||
| 744 | 744 | ||
| 745 | MACHINE_START(H1940, "IPAQ-H1940") | 745 | MACHINE_START(H1940, "IPAQ-H1940") |
| 746 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 746 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 747 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 747 | .atag_offset = 0x100, |
| 748 | .map_io = h1940_map_io, | 748 | .map_io = h1940_map_io, |
| 749 | .reserve = h1940_reserve, | 749 | .reserve = h1940_reserve, |
| 750 | .init_irq = h1940_init_irq, | 750 | .init_irq = h1940_init_irq, |
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 079dcaa602d3..1dc3e3234417 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
| @@ -586,7 +586,7 @@ MACHINE_START(N30, "Acer-N30") | |||
| 586 | /* Maintainer: Christer Weinigel <christer@weinigel.se>, | 586 | /* Maintainer: Christer Weinigel <christer@weinigel.se>, |
| 587 | Ben Dooks <ben-linux@fluff.org> | 587 | Ben Dooks <ben-linux@fluff.org> |
| 588 | */ | 588 | */ |
| 589 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 589 | .atag_offset = 0x100, |
| 590 | .timer = &s3c24xx_timer, | 590 | .timer = &s3c24xx_timer, |
| 591 | .init_machine = n30_init, | 591 | .init_machine = n30_init, |
| 592 | .init_irq = s3c24xx_init_irq, | 592 | .init_irq = s3c24xx_init_irq, |
| @@ -596,7 +596,7 @@ MACHINE_END | |||
| 596 | MACHINE_START(N35, "Acer-N35") | 596 | MACHINE_START(N35, "Acer-N35") |
| 597 | /* Maintainer: Christer Weinigel <christer@weinigel.se> | 597 | /* Maintainer: Christer Weinigel <christer@weinigel.se> |
| 598 | */ | 598 | */ |
| 599 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 599 | .atag_offset = 0x100, |
| 600 | .timer = &s3c24xx_timer, | 600 | .timer = &s3c24xx_timer, |
| 601 | .init_machine = n30_init, | 601 | .init_machine = n30_init, |
| 602 | .init_irq = s3c24xx_init_irq, | 602 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c index 0aa16cd5acbc..f03f3fd9cec9 100644 --- a/arch/arm/mach-s3c2410/mach-otom.c +++ b/arch/arm/mach-s3c2410/mach-otom.c | |||
| @@ -116,7 +116,7 @@ static void __init otom11_init(void) | |||
| 116 | 116 | ||
| 117 | MACHINE_START(OTOM, "Nex Vision - Otom 1.1") | 117 | MACHINE_START(OTOM, "Nex Vision - Otom 1.1") |
| 118 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ | 118 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ |
| 119 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 119 | .atag_offset = 0x100, |
| 120 | .map_io = otom11_map_io, | 120 | .map_io = otom11_map_io, |
| 121 | .init_machine = otom11_init, | 121 | .init_machine = otom11_init, |
| 122 | .init_irq = s3c24xx_init_irq, | 122 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index f44f77531b1e..367d376deb96 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c | |||
| @@ -344,7 +344,7 @@ static void __init qt2410_machine_init(void) | |||
| 344 | } | 344 | } |
| 345 | 345 | ||
| 346 | MACHINE_START(QT2410, "QT2410") | 346 | MACHINE_START(QT2410, "QT2410") |
| 347 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 347 | .atag_offset = 0x100, |
| 348 | .map_io = qt2410_map_io, | 348 | .map_io = qt2410_map_io, |
| 349 | .init_irq = s3c24xx_init_irq, | 349 | .init_irq = s3c24xx_init_irq, |
| 350 | .init_machine = qt2410_machine_init, | 350 | .init_machine = qt2410_machine_init, |
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c index e17f03387aba..99c9dfdb71c7 100644 --- a/arch/arm/mach-s3c2410/mach-smdk2410.c +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c | |||
| @@ -111,7 +111,7 @@ static void __init smdk2410_init(void) | |||
| 111 | MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch | 111 | MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch |
| 112 | * to SMDK2410 */ | 112 | * to SMDK2410 */ |
| 113 | /* Maintainer: Jonas Dietsche */ | 113 | /* Maintainer: Jonas Dietsche */ |
| 114 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 114 | .atag_offset = 0x100, |
| 115 | .map_io = smdk2410_map_io, | 115 | .map_io = smdk2410_map_io, |
| 116 | .init_irq = s3c24xx_init_irq, | 116 | .init_irq = s3c24xx_init_irq, |
| 117 | .init_machine = smdk2410_init, | 117 | .init_machine = smdk2410_init, |
diff --git a/arch/arm/mach-s3c2410/mach-tct_hammer.c b/arch/arm/mach-s3c2410/mach-tct_hammer.c index 43c2b831b9e8..e0d0b6fb2800 100644 --- a/arch/arm/mach-s3c2410/mach-tct_hammer.c +++ b/arch/arm/mach-s3c2410/mach-tct_hammer.c | |||
| @@ -146,7 +146,7 @@ static void __init tct_hammer_init(void) | |||
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | MACHINE_START(TCT_HAMMER, "TCT_HAMMER") | 148 | MACHINE_START(TCT_HAMMER, "TCT_HAMMER") |
| 149 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 149 | .atag_offset = 0x100, |
| 150 | .map_io = tct_hammer_map_io, | 150 | .map_io = tct_hammer_map_io, |
| 151 | .init_irq = s3c24xx_init_irq, | 151 | .init_irq = s3c24xx_init_irq, |
| 152 | .init_machine = tct_hammer_init, | 152 | .init_machine = tct_hammer_init, |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 6ccce5a761b4..df47e8e90065 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
| @@ -400,7 +400,7 @@ static void __init vr1000_init(void) | |||
| 400 | 400 | ||
| 401 | MACHINE_START(VR1000, "Thorcom-VR1000") | 401 | MACHINE_START(VR1000, "Thorcom-VR1000") |
| 402 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 402 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
| 403 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 403 | .atag_offset = 0x100, |
| 404 | .map_io = vr1000_map_io, | 404 | .map_io = vr1000_map_io, |
| 405 | .init_machine = vr1000_init, | 405 | .init_machine = vr1000_init, |
| 406 | .init_irq = s3c24xx_init_irq, | 406 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c index 5eeb47580b0c..286ef1738c61 100644 --- a/arch/arm/mach-s3c2412/mach-jive.c +++ b/arch/arm/mach-s3c2412/mach-jive.c | |||
| @@ -655,7 +655,7 @@ static void __init jive_machine_init(void) | |||
| 655 | 655 | ||
| 656 | MACHINE_START(JIVE, "JIVE") | 656 | MACHINE_START(JIVE, "JIVE") |
| 657 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 657 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 658 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 658 | .atag_offset = 0x100, |
| 659 | 659 | ||
| 660 | .init_irq = s3c24xx_init_irq, | 660 | .init_irq = s3c24xx_init_irq, |
| 661 | .map_io = jive_map_io, | 661 | .map_io = jive_map_io, |
diff --git a/arch/arm/mach-s3c2412/mach-smdk2413.c b/arch/arm/mach-s3c2412/mach-smdk2413.c index 834cfb61bcfe..d6325ede9f29 100644 --- a/arch/arm/mach-s3c2412/mach-smdk2413.c +++ b/arch/arm/mach-s3c2412/mach-smdk2413.c | |||
| @@ -128,7 +128,7 @@ static void __init smdk2413_machine_init(void) | |||
| 128 | 128 | ||
| 129 | MACHINE_START(S3C2413, "S3C2413") | 129 | MACHINE_START(S3C2413, "S3C2413") |
| 130 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 130 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 131 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 131 | .atag_offset = 0x100, |
| 132 | 132 | ||
| 133 | .fixup = smdk2413_fixup, | 133 | .fixup = smdk2413_fixup, |
| 134 | .init_irq = s3c24xx_init_irq, | 134 | .init_irq = s3c24xx_init_irq, |
| @@ -139,7 +139,7 @@ MACHINE_END | |||
| 139 | 139 | ||
| 140 | MACHINE_START(SMDK2412, "SMDK2412") | 140 | MACHINE_START(SMDK2412, "SMDK2412") |
| 141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 142 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 142 | .atag_offset = 0x100, |
| 143 | 143 | ||
| 144 | .fixup = smdk2413_fixup, | 144 | .fixup = smdk2413_fixup, |
| 145 | .init_irq = s3c24xx_init_irq, | 145 | .init_irq = s3c24xx_init_irq, |
| @@ -150,7 +150,7 @@ MACHINE_END | |||
| 150 | 150 | ||
| 151 | MACHINE_START(SMDK2413, "SMDK2413") | 151 | MACHINE_START(SMDK2413, "SMDK2413") |
| 152 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 152 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 153 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 153 | .atag_offset = 0x100, |
| 154 | 154 | ||
| 155 | .fixup = smdk2413_fixup, | 155 | .fixup = smdk2413_fixup, |
| 156 | .init_irq = s3c24xx_init_irq, | 156 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2412/mach-vstms.c b/arch/arm/mach-s3c2412/mach-vstms.c index 83544ebe20ac..5955c15018b4 100644 --- a/arch/arm/mach-s3c2412/mach-vstms.c +++ b/arch/arm/mach-s3c2412/mach-vstms.c | |||
| @@ -156,7 +156,7 @@ static void __init vstms_init(void) | |||
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | MACHINE_START(VSTMS, "VSTMS") | 158 | MACHINE_START(VSTMS, "VSTMS") |
| 159 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 159 | .atag_offset = 0x100, |
| 160 | 160 | ||
| 161 | .fixup = vstms_fixup, | 161 | .fixup = vstms_fixup, |
| 162 | .init_irq = s3c24xx_init_irq, | 162 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2416/mach-smdk2416.c b/arch/arm/mach-s3c2416/mach-smdk2416.c index ac27ebb31c9b..a9eee531ca76 100644 --- a/arch/arm/mach-s3c2416/mach-smdk2416.c +++ b/arch/arm/mach-s3c2416/mach-smdk2416.c | |||
| @@ -245,7 +245,7 @@ static void __init smdk2416_machine_init(void) | |||
| 245 | 245 | ||
| 246 | MACHINE_START(SMDK2416, "SMDK2416") | 246 | MACHINE_START(SMDK2416, "SMDK2416") |
| 247 | /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ | 247 | /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ |
| 248 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 248 | .atag_offset = 0x100, |
| 249 | 249 | ||
| 250 | .init_irq = s3c24xx_init_irq, | 250 | .init_irq = s3c24xx_init_irq, |
| 251 | .map_io = smdk2416_map_io, | 251 | .map_io = smdk2416_map_io, |
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index d7086788b1ff..74f92fc3fd04 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
| @@ -498,7 +498,7 @@ static void __init anubis_init(void) | |||
| 498 | 498 | ||
| 499 | MACHINE_START(ANUBIS, "Simtec-Anubis") | 499 | MACHINE_START(ANUBIS, "Simtec-Anubis") |
| 500 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 500 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
| 501 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 501 | .atag_offset = 0x100, |
| 502 | .map_io = anubis_map_io, | 502 | .map_io = anubis_map_io, |
| 503 | .init_machine = anubis_init, | 503 | .init_machine = anubis_init, |
| 504 | .init_irq = s3c24xx_init_irq, | 504 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index 6c98b789b8c6..38887ee0c784 100644 --- a/arch/arm/mach-s3c2440/mach-at2440evb.c +++ b/arch/arm/mach-s3c2440/mach-at2440evb.c | |||
| @@ -233,7 +233,7 @@ static void __init at2440evb_init(void) | |||
| 233 | 233 | ||
| 234 | 234 | ||
| 235 | MACHINE_START(AT2440EVB, "AT2440EVB") | 235 | MACHINE_START(AT2440EVB, "AT2440EVB") |
| 236 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 236 | .atag_offset = 0x100, |
| 237 | .map_io = at2440evb_map_io, | 237 | .map_io = at2440evb_map_io, |
| 238 | .init_machine = at2440evb_init, | 238 | .init_machine = at2440evb_init, |
| 239 | .init_irq = s3c24xx_init_irq, | 239 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c index c10ddf4ed7f1..de1e0ff46cec 100644 --- a/arch/arm/mach-s3c2440/mach-gta02.c +++ b/arch/arm/mach-s3c2440/mach-gta02.c | |||
| @@ -595,7 +595,7 @@ static void __init gta02_machine_init(void) | |||
| 595 | 595 | ||
| 596 | MACHINE_START(NEO1973_GTA02, "GTA02") | 596 | MACHINE_START(NEO1973_GTA02, "GTA02") |
| 597 | /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */ | 597 | /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */ |
| 598 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 598 | .atag_offset = 0x100, |
| 599 | .map_io = gta02_map_io, | 599 | .map_io = gta02_map_io, |
| 600 | .init_irq = s3c24xx_init_irq, | 600 | .init_irq = s3c24xx_init_irq, |
| 601 | .init_machine = gta02_machine_init, | 601 | .init_machine = gta02_machine_init, |
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c index fc2dc0b3d4fe..91fe0b4c95f1 100644 --- a/arch/arm/mach-s3c2440/mach-mini2440.c +++ b/arch/arm/mach-s3c2440/mach-mini2440.c | |||
| @@ -676,7 +676,7 @@ static void __init mini2440_init(void) | |||
| 676 | 676 | ||
| 677 | MACHINE_START(MINI2440, "MINI2440") | 677 | MACHINE_START(MINI2440, "MINI2440") |
| 678 | /* Maintainer: Michel Pollet <buserror@gmail.com> */ | 678 | /* Maintainer: Michel Pollet <buserror@gmail.com> */ |
| 679 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 679 | .atag_offset = 0x100, |
| 680 | .map_io = mini2440_map_io, | 680 | .map_io = mini2440_map_io, |
| 681 | .init_machine = mini2440_init, | 681 | .init_machine = mini2440_init, |
| 682 | .init_irq = s3c24xx_init_irq, | 682 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-nexcoder.c b/arch/arm/mach-s3c2440/mach-nexcoder.c index 37dd306fb7dc..61c0bf148165 100644 --- a/arch/arm/mach-s3c2440/mach-nexcoder.c +++ b/arch/arm/mach-s3c2440/mach-nexcoder.c | |||
| @@ -151,7 +151,7 @@ static void __init nexcoder_init(void) | |||
| 151 | 151 | ||
| 152 | MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") | 152 | MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") |
| 153 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ | 153 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ |
| 154 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 154 | .atag_offset = 0x100, |
| 155 | .map_io = nexcoder_map_io, | 155 | .map_io = nexcoder_map_io, |
| 156 | .init_machine = nexcoder_init, | 156 | .init_machine = nexcoder_init, |
| 157 | .init_irq = s3c24xx_init_irq, | 157 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index d88536393310..dc142ebf8cba 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
| @@ -447,7 +447,7 @@ static void __init osiris_init(void) | |||
| 447 | 447 | ||
| 448 | MACHINE_START(OSIRIS, "Simtec-OSIRIS") | 448 | MACHINE_START(OSIRIS, "Simtec-OSIRIS") |
| 449 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 449 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
| 450 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 450 | .atag_offset = 0x100, |
| 451 | .map_io = osiris_map_io, | 451 | .map_io = osiris_map_io, |
| 452 | .init_irq = s3c24xx_init_irq, | 452 | .init_irq = s3c24xx_init_irq, |
| 453 | .init_machine = osiris_init, | 453 | .init_machine = osiris_init, |
diff --git a/arch/arm/mach-s3c2440/mach-rx1950.c b/arch/arm/mach-s3c2440/mach-rx1950.c index 27ea95096fe1..684dbb3567f5 100644 --- a/arch/arm/mach-s3c2440/mach-rx1950.c +++ b/arch/arm/mach-s3c2440/mach-rx1950.c | |||
| @@ -825,7 +825,7 @@ static void __init rx1950_reserve(void) | |||
| 825 | 825 | ||
| 826 | MACHINE_START(RX1950, "HP iPAQ RX1950") | 826 | MACHINE_START(RX1950, "HP iPAQ RX1950") |
| 827 | /* Maintainers: Vasily Khoruzhick */ | 827 | /* Maintainers: Vasily Khoruzhick */ |
| 828 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 828 | .atag_offset = 0x100, |
| 829 | .map_io = rx1950_map_io, | 829 | .map_io = rx1950_map_io, |
| 830 | .reserve = rx1950_reserve, | 830 | .reserve = rx1950_reserve, |
| 831 | .init_irq = s3c24xx_init_irq, | 831 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c index 1472b1a5b2fb..e19499c2f909 100644 --- a/arch/arm/mach-s3c2440/mach-rx3715.c +++ b/arch/arm/mach-s3c2440/mach-rx3715.c | |||
| @@ -218,7 +218,7 @@ static void __init rx3715_init_machine(void) | |||
| 218 | 218 | ||
| 219 | MACHINE_START(RX3715, "IPAQ-RX3715") | 219 | MACHINE_START(RX3715, "IPAQ-RX3715") |
| 220 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 220 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 221 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 221 | .atag_offset = 0x100, |
| 222 | .map_io = rx3715_map_io, | 222 | .map_io = rx3715_map_io, |
| 223 | .reserve = rx3715_reserve, | 223 | .reserve = rx3715_reserve, |
| 224 | .init_irq = rx3715_init_irq, | 224 | .init_irq = rx3715_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c index eedfe0f11643..36eeb4197a84 100644 --- a/arch/arm/mach-s3c2440/mach-smdk2440.c +++ b/arch/arm/mach-s3c2440/mach-smdk2440.c | |||
| @@ -175,7 +175,7 @@ static void __init smdk2440_machine_init(void) | |||
| 175 | 175 | ||
| 176 | MACHINE_START(S3C2440, "SMDK2440") | 176 | MACHINE_START(S3C2440, "SMDK2440") |
| 177 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 177 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 178 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 178 | .atag_offset = 0x100, |
| 179 | 179 | ||
| 180 | .init_irq = s3c24xx_init_irq, | 180 | .init_irq = s3c24xx_init_irq, |
| 181 | .map_io = smdk2440_map_io, | 181 | .map_io = smdk2440_map_io, |
diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c index 514275e43ca0..bec107e00441 100644 --- a/arch/arm/mach-s3c2443/mach-smdk2443.c +++ b/arch/arm/mach-s3c2443/mach-smdk2443.c | |||
| @@ -139,7 +139,7 @@ static void __init smdk2443_machine_init(void) | |||
| 139 | 139 | ||
| 140 | MACHINE_START(SMDK2443, "SMDK2443") | 140 | MACHINE_START(SMDK2443, "SMDK2443") |
| 141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 142 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 142 | .atag_offset = 0x100, |
| 143 | 143 | ||
| 144 | .init_irq = s3c24xx_init_irq, | 144 | .init_irq = s3c24xx_init_irq, |
| 145 | .map_io = smdk2443_map_io, | 145 | .map_io = smdk2443_map_io, |
diff --git a/arch/arm/mach-s3c64xx/cpu.c b/arch/arm/mach-s3c64xx/cpu.c index 374e45e566b8..8dc05763a7eb 100644 --- a/arch/arm/mach-s3c64xx/cpu.c +++ b/arch/arm/mach-s3c64xx/cpu.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
| 21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
| 22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
| 23 | #include <linux/dma-mapping.h> | ||
| 23 | 24 | ||
| 24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
| 25 | #include <mach/map.h> | 26 | #include <mach/map.h> |
| @@ -145,6 +146,7 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) | |||
| 145 | /* initialise the io descriptors we need for initialisation */ | 146 | /* initialise the io descriptors we need for initialisation */ |
| 146 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); | 147 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); |
| 147 | iotable_init(mach_desc, size); | 148 | iotable_init(mach_desc, size); |
| 149 | init_consistent_dma_size(SZ_8M); | ||
| 148 | 150 | ||
| 149 | idcode = __raw_readl(S3C_VA_SYS + 0x118); | 151 | idcode = __raw_readl(S3C_VA_SYS + 0x118); |
| 150 | if (!idcode) { | 152 | if (!idcode) { |
diff --git a/arch/arm/mach-s3c64xx/include/mach/memory.h b/arch/arm/mach-s3c64xx/include/mach/memory.h index 4760cdae1eb6..b704669f95ff 100644 --- a/arch/arm/mach-s3c64xx/include/mach/memory.h +++ b/arch/arm/mach-s3c64xx/include/mach/memory.h | |||
| @@ -15,6 +15,4 @@ | |||
| 15 | 15 | ||
| 16 | #define PLAT_PHYS_OFFSET UL(0x50000000) | 16 | #define PLAT_PHYS_OFFSET UL(0x50000000) |
| 17 | 17 | ||
| 18 | #define CONSISTENT_DMA_SIZE SZ_8M | ||
| 19 | |||
| 20 | #endif | 18 | #endif |
diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c index cb8864327ac4..d164a282bfb4 100644 --- a/arch/arm/mach-s3c64xx/mach-anw6410.c +++ b/arch/arm/mach-s3c64xx/mach-anw6410.c | |||
| @@ -233,7 +233,7 @@ static void __init anw6410_machine_init(void) | |||
| 233 | 233 | ||
| 234 | MACHINE_START(ANW6410, "A&W6410") | 234 | MACHINE_START(ANW6410, "A&W6410") |
| 235 | /* Maintainer: Kwangwoo Lee <kwangwoo.lee@gmail.com> */ | 235 | /* Maintainer: Kwangwoo Lee <kwangwoo.lee@gmail.com> */ |
| 236 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 236 | .atag_offset = 0x100, |
| 237 | 237 | ||
| 238 | .init_irq = s3c6410_init_irq, | 238 | .init_irq = s3c6410_init_irq, |
| 239 | .map_io = anw6410_map_io, | 239 | .map_io = anw6410_map_io, |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index af0c2fe1ea37..4c76e08423fb 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
| @@ -766,7 +766,7 @@ static void __init crag6410_machine_init(void) | |||
| 766 | 766 | ||
| 767 | MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") | 767 | MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") |
| 768 | /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */ | 768 | /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */ |
| 769 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 769 | .atag_offset = 0x100, |
| 770 | .init_irq = s3c6410_init_irq, | 770 | .init_irq = s3c6410_init_irq, |
| 771 | .map_io = crag6410_map_io, | 771 | .map_io = crag6410_map_io, |
| 772 | .init_machine = crag6410_machine_init, | 772 | .init_machine = crag6410_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c index b3d93cc8dde0..19a0887e1c1e 100644 --- a/arch/arm/mach-s3c64xx/mach-hmt.c +++ b/arch/arm/mach-s3c64xx/mach-hmt.c | |||
| @@ -265,7 +265,7 @@ static void __init hmt_machine_init(void) | |||
| 265 | 265 | ||
| 266 | MACHINE_START(HMT, "Airgoo-HMT") | 266 | MACHINE_START(HMT, "Airgoo-HMT") |
| 267 | /* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */ | 267 | /* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */ |
| 268 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 268 | .atag_offset = 0x100, |
| 269 | .init_irq = s3c6410_init_irq, | 269 | .init_irq = s3c6410_init_irq, |
| 270 | .map_io = hmt_map_io, | 270 | .map_io = hmt_map_io, |
| 271 | .init_machine = hmt_machine_init, | 271 | .init_machine = hmt_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c index 527f49bd1b57..e91f63f7a490 100644 --- a/arch/arm/mach-s3c64xx/mach-mini6410.c +++ b/arch/arm/mach-s3c64xx/mach-mini6410.c | |||
| @@ -349,7 +349,7 @@ static void __init mini6410_machine_init(void) | |||
| 349 | 349 | ||
| 350 | MACHINE_START(MINI6410, "MINI6410") | 350 | MACHINE_START(MINI6410, "MINI6410") |
| 351 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ | 351 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ |
| 352 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 352 | .atag_offset = 0x100, |
| 353 | .init_irq = s3c6410_init_irq, | 353 | .init_irq = s3c6410_init_irq, |
| 354 | .map_io = mini6410_map_io, | 354 | .map_io = mini6410_map_io, |
| 355 | .init_machine = mini6410_machine_init, | 355 | .init_machine = mini6410_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-ncp.c b/arch/arm/mach-s3c64xx/mach-ncp.c index 01c6857c5b63..c30f2e5e0d85 100644 --- a/arch/arm/mach-s3c64xx/mach-ncp.c +++ b/arch/arm/mach-s3c64xx/mach-ncp.c | |||
| @@ -97,7 +97,7 @@ static void __init ncp_machine_init(void) | |||
| 97 | 97 | ||
| 98 | MACHINE_START(NCP, "NCP") | 98 | MACHINE_START(NCP, "NCP") |
| 99 | /* Maintainer: Samsung Electronics */ | 99 | /* Maintainer: Samsung Electronics */ |
| 100 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 100 | .atag_offset = 0x100, |
| 101 | .init_irq = s3c6410_init_irq, | 101 | .init_irq = s3c6410_init_irq, |
| 102 | .map_io = ncp_map_io, | 102 | .map_io = ncp_map_io, |
| 103 | .init_machine = ncp_machine_init, | 103 | .init_machine = ncp_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-real6410.c b/arch/arm/mach-s3c64xx/mach-real6410.c index 95b04b1729e3..10870cb5b39e 100644 --- a/arch/arm/mach-s3c64xx/mach-real6410.c +++ b/arch/arm/mach-s3c64xx/mach-real6410.c | |||
| @@ -329,7 +329,7 @@ static void __init real6410_machine_init(void) | |||
| 329 | 329 | ||
| 330 | MACHINE_START(REAL6410, "REAL6410") | 330 | MACHINE_START(REAL6410, "REAL6410") |
| 331 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ | 331 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ |
| 332 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 332 | .atag_offset = 0x100, |
| 333 | 333 | ||
| 334 | .init_irq = s3c6410_init_irq, | 334 | .init_irq = s3c6410_init_irq, |
| 335 | .map_io = real6410_map_io, | 335 | .map_io = real6410_map_io, |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq5.c b/arch/arm/mach-s3c64xx/mach-smartq5.c index 342e8dfddf8b..cbb57ded3d95 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq5.c +++ b/arch/arm/mach-s3c64xx/mach-smartq5.c | |||
| @@ -146,7 +146,7 @@ static void __init smartq5_machine_init(void) | |||
| 146 | 146 | ||
| 147 | MACHINE_START(SMARTQ5, "SmartQ 5") | 147 | MACHINE_START(SMARTQ5, "SmartQ 5") |
| 148 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ | 148 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ |
| 149 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 149 | .atag_offset = 0x100, |
| 150 | .init_irq = s3c6410_init_irq, | 150 | .init_irq = s3c6410_init_irq, |
| 151 | .map_io = smartq_map_io, | 151 | .map_io = smartq_map_io, |
| 152 | .init_machine = smartq5_machine_init, | 152 | .init_machine = smartq5_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq7.c b/arch/arm/mach-s3c64xx/mach-smartq7.c index 57963977da8e..04f914b85fdf 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq7.c +++ b/arch/arm/mach-s3c64xx/mach-smartq7.c | |||
| @@ -162,7 +162,7 @@ static void __init smartq7_machine_init(void) | |||
| 162 | 162 | ||
| 163 | MACHINE_START(SMARTQ7, "SmartQ 7") | 163 | MACHINE_START(SMARTQ7, "SmartQ 7") |
| 164 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ | 164 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ |
| 165 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 165 | .atag_offset = 0x100, |
| 166 | .init_irq = s3c6410_init_irq, | 166 | .init_irq = s3c6410_init_irq, |
| 167 | .map_io = smartq_map_io, | 167 | .map_io = smartq_map_io, |
| 168 | .init_machine = smartq7_machine_init, | 168 | .init_machine = smartq7_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6400.c b/arch/arm/mach-s3c64xx/mach-smdk6400.c index 3cca642f1e6d..6fd5e95f8f75 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6400.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6400.c | |||
| @@ -85,7 +85,7 @@ static void __init smdk6400_machine_init(void) | |||
| 85 | 85 | ||
| 86 | MACHINE_START(SMDK6400, "SMDK6400") | 86 | MACHINE_START(SMDK6400, "SMDK6400") |
| 87 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 87 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 88 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 88 | .atag_offset = 0x100, |
| 89 | 89 | ||
| 90 | .init_irq = s3c6400_init_irq, | 90 | .init_irq = s3c6400_init_irq, |
| 91 | .map_io = smdk6400_map_io, | 91 | .map_io = smdk6400_map_io, |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index ecbea92bf83b..dcf2d73b4783 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c | |||
| @@ -742,7 +742,7 @@ static void __init smdk6410_machine_init(void) | |||
| 742 | 742 | ||
| 743 | MACHINE_START(SMDK6410, "SMDK6410") | 743 | MACHINE_START(SMDK6410, "SMDK6410") |
| 744 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 744 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
| 745 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 745 | .atag_offset = 0x100, |
| 746 | 746 | ||
| 747 | .init_irq = s3c6410_init_irq, | 747 | .init_irq = s3c6410_init_irq, |
| 748 | .map_io = smdk6410_map_io, | 748 | .map_io = smdk6410_map_io, |
diff --git a/arch/arm/mach-s5p64x0/cpu.c b/arch/arm/mach-s5p64x0/cpu.c index a5c00952ea35..8a938542c54d 100644 --- a/arch/arm/mach-s5p64x0/cpu.c +++ b/arch/arm/mach-s5p64x0/cpu.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
| 21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
| 22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
| 23 | #include <linux/dma-mapping.h> | ||
| 23 | 24 | ||
| 24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
| 25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
| @@ -111,6 +112,7 @@ void __init s5p6440_map_io(void) | |||
| 111 | 112 | ||
| 112 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); | 113 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); |
| 113 | iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc)); | 114 | iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc)); |
| 115 | init_consistent_dma_size(SZ_8M); | ||
| 114 | } | 116 | } |
| 115 | 117 | ||
| 116 | void __init s5p6450_map_io(void) | 118 | void __init s5p6450_map_io(void) |
| @@ -120,6 +122,7 @@ void __init s5p6450_map_io(void) | |||
| 120 | 122 | ||
| 121 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); | 123 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); |
| 122 | iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc)); | 124 | iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc)); |
| 125 | init_consistent_dma_size(SZ_8M); | ||
| 123 | } | 126 | } |
| 124 | 127 | ||
| 125 | /* | 128 | /* |
diff --git a/arch/arm/mach-s5p64x0/include/mach/memory.h b/arch/arm/mach-s5p64x0/include/mach/memory.h index 365a6eb4b88f..b14cbc3f521b 100644 --- a/arch/arm/mach-s5p64x0/include/mach/memory.h +++ b/arch/arm/mach-s5p64x0/include/mach/memory.h | |||
| @@ -14,6 +14,5 @@ | |||
| 14 | #define __ASM_ARCH_MEMORY_H __FILE__ | 14 | #define __ASM_ARCH_MEMORY_H __FILE__ |
| 15 | 15 | ||
| 16 | #define PLAT_PHYS_OFFSET UL(0x20000000) | 16 | #define PLAT_PHYS_OFFSET UL(0x20000000) |
| 17 | #define CONSISTENT_DMA_SIZE SZ_8M | ||
| 18 | 17 | ||
| 19 | #endif /* __ASM_ARCH_MEMORY_H */ | 18 | #endif /* __ASM_ARCH_MEMORY_H */ |
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c index 346f8dfa6f35..3b84e9bfd073 100644 --- a/arch/arm/mach-s5p64x0/mach-smdk6440.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c | |||
| @@ -171,7 +171,7 @@ static void __init smdk6440_machine_init(void) | |||
| 171 | 171 | ||
| 172 | MACHINE_START(SMDK6440, "SMDK6440") | 172 | MACHINE_START(SMDK6440, "SMDK6440") |
| 173 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 173 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 174 | .boot_params = S5P64X0_PA_SDRAM + 0x100, | 174 | .atag_offset = 0x100, |
| 175 | 175 | ||
| 176 | .init_irq = s5p6440_init_irq, | 176 | .init_irq = s5p6440_init_irq, |
| 177 | .map_io = smdk6440_map_io, | 177 | .map_io = smdk6440_map_io, |
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c b/arch/arm/mach-s5p64x0/mach-smdk6450.c index 33f2adf8f3fe..d99d29b5558e 100644 --- a/arch/arm/mach-s5p64x0/mach-smdk6450.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c | |||
| @@ -190,7 +190,7 @@ static void __init smdk6450_machine_init(void) | |||
| 190 | 190 | ||
| 191 | MACHINE_START(SMDK6450, "SMDK6450") | 191 | MACHINE_START(SMDK6450, "SMDK6450") |
| 192 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 192 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 193 | .boot_params = S5P64X0_PA_SDRAM + 0x100, | 193 | .atag_offset = 0x100, |
| 194 | 194 | ||
| 195 | .init_irq = s5p6450_init_irq, | 195 | .init_irq = s5p6450_init_irq, |
| 196 | .map_io = smdk6450_map_io, | 196 | .map_io = smdk6450_map_io, |
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index 227d8908aab6..688f45b7cd00 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c | |||
| @@ -254,7 +254,7 @@ static void __init smdkc100_machine_init(void) | |||
| 254 | 254 | ||
| 255 | MACHINE_START(SMDKC100, "SMDKC100") | 255 | MACHINE_START(SMDKC100, "SMDKC100") |
| 256 | /* Maintainer: Byungho Min <bhmin@samsung.com> */ | 256 | /* Maintainer: Byungho Min <bhmin@samsung.com> */ |
| 257 | .boot_params = S5P_PA_SDRAM + 0x100, | 257 | .atag_offset = 0x100, |
| 258 | .init_irq = s5pc100_init_irq, | 258 | .init_irq = s5pc100_init_irq, |
| 259 | .map_io = smdkc100_map_io, | 259 | .map_io = smdkc100_map_io, |
| 260 | .init_machine = smdkc100_machine_init, | 260 | .init_machine = smdkc100_machine_init, |
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c index 79907ec78d43..91145720822c 100644 --- a/arch/arm/mach-s5pv210/cpu.c +++ b/arch/arm/mach-s5pv210/cpu.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/sysdev.h> | 20 | #include <linux/sysdev.h> |
| 21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
| 22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
| 23 | #include <linux/dma-mapping.h> | ||
| 23 | 24 | ||
| 24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
| 25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
| @@ -119,6 +120,7 @@ static void s5pv210_sw_reset(void) | |||
| 119 | void __init s5pv210_map_io(void) | 120 | void __init s5pv210_map_io(void) |
| 120 | { | 121 | { |
| 121 | iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); | 122 | iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); |
| 123 | init_consistent_dma_size(14 << 20); | ||
| 122 | 124 | ||
| 123 | /* initialise device information early */ | 125 | /* initialise device information early */ |
| 124 | s5pv210_default_sdhci0(); | 126 | s5pv210_default_sdhci0(); |
diff --git a/arch/arm/mach-s5pv210/include/mach/memory.h b/arch/arm/mach-s5pv210/include/mach/memory.h index 7b5fcf0da0c4..2d3cfa221d5f 100644 --- a/arch/arm/mach-s5pv210/include/mach/memory.h +++ b/arch/arm/mach-s5pv210/include/mach/memory.h | |||
| @@ -14,7 +14,6 @@ | |||
| 14 | #define __ASM_ARCH_MEMORY_H | 14 | #define __ASM_ARCH_MEMORY_H |
| 15 | 15 | ||
| 16 | #define PLAT_PHYS_OFFSET UL(0x20000000) | 16 | #define PLAT_PHYS_OFFSET UL(0x20000000) |
| 17 | #define CONSISTENT_DMA_SIZE (SZ_8M + SZ_4M + SZ_2M) | ||
| 18 | 17 | ||
| 19 | /* | 18 | /* |
| 20 | * Sparsemem support | 19 | * Sparsemem support |
diff --git a/arch/arm/mach-s5pv210/mach-aquila.c b/arch/arm/mach-s5pv210/mach-aquila.c index 509627f25111..5811a96125f0 100644 --- a/arch/arm/mach-s5pv210/mach-aquila.c +++ b/arch/arm/mach-s5pv210/mach-aquila.c | |||
| @@ -678,7 +678,7 @@ MACHINE_START(AQUILA, "Aquila") | |||
| 678 | /* Maintainers: | 678 | /* Maintainers: |
| 679 | Marek Szyprowski <m.szyprowski@samsung.com> | 679 | Marek Szyprowski <m.szyprowski@samsung.com> |
| 680 | Kyungmin Park <kyungmin.park@samsung.com> */ | 680 | Kyungmin Park <kyungmin.park@samsung.com> */ |
| 681 | .boot_params = S5P_PA_SDRAM + 0x100, | 681 | .atag_offset = 0x100, |
| 682 | .init_irq = s5pv210_init_irq, | 682 | .init_irq = s5pv210_init_irq, |
| 683 | .map_io = aquila_map_io, | 683 | .map_io = aquila_map_io, |
| 684 | .init_machine = aquila_machine_init, | 684 | .init_machine = aquila_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index 85c2d51a0956..061cc7e4f48c 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
| @@ -897,7 +897,7 @@ static void __init goni_machine_init(void) | |||
| 897 | 897 | ||
| 898 | MACHINE_START(GONI, "GONI") | 898 | MACHINE_START(GONI, "GONI") |
| 899 | /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ | 899 | /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ |
| 900 | .boot_params = S5P_PA_SDRAM + 0x100, | 900 | .atag_offset = 0x100, |
| 901 | .init_irq = s5pv210_init_irq, | 901 | .init_irq = s5pv210_init_irq, |
| 902 | .map_io = goni_map_io, | 902 | .map_io = goni_map_io, |
| 903 | .init_machine = goni_machine_init, | 903 | .init_machine = goni_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-smdkc110.c b/arch/arm/mach-s5pv210/mach-smdkc110.c index 6c412c8ceccc..f7266bb0cac8 100644 --- a/arch/arm/mach-s5pv210/mach-smdkc110.c +++ b/arch/arm/mach-s5pv210/mach-smdkc110.c | |||
| @@ -136,7 +136,7 @@ static void __init smdkc110_machine_init(void) | |||
| 136 | 136 | ||
| 137 | MACHINE_START(SMDKC110, "SMDKC110") | 137 | MACHINE_START(SMDKC110, "SMDKC110") |
| 138 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 138 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 139 | .boot_params = S5P_PA_SDRAM + 0x100, | 139 | .atag_offset = 0x100, |
| 140 | .init_irq = s5pv210_init_irq, | 140 | .init_irq = s5pv210_init_irq, |
| 141 | .map_io = smdkc110_map_io, | 141 | .map_io = smdkc110_map_io, |
| 142 | .init_machine = smdkc110_machine_init, | 142 | .init_machine = smdkc110_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c index 5e011fc6720d..e73e3b6d41b5 100644 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c | |||
| @@ -319,7 +319,7 @@ static void __init smdkv210_machine_init(void) | |||
| 319 | 319 | ||
| 320 | MACHINE_START(SMDKV210, "SMDKV210") | 320 | MACHINE_START(SMDKV210, "SMDKV210") |
| 321 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 321 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 322 | .boot_params = S5P_PA_SDRAM + 0x100, | 322 | .atag_offset = 0x100, |
| 323 | .init_irq = s5pv210_init_irq, | 323 | .init_irq = s5pv210_init_irq, |
| 324 | .map_io = smdkv210_map_io, | 324 | .map_io = smdkv210_map_io, |
| 325 | .init_machine = smdkv210_machine_init, | 325 | .init_machine = smdkv210_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-torbreck.c b/arch/arm/mach-s5pv210/mach-torbreck.c index 925fc0dc6252..97cc066c5369 100644 --- a/arch/arm/mach-s5pv210/mach-torbreck.c +++ b/arch/arm/mach-s5pv210/mach-torbreck.c | |||
| @@ -125,7 +125,7 @@ static void __init torbreck_machine_init(void) | |||
| 125 | 125 | ||
| 126 | MACHINE_START(TORBRECK, "TORBRECK") | 126 | MACHINE_START(TORBRECK, "TORBRECK") |
| 127 | /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ | 127 | /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ |
| 128 | .boot_params = S5P_PA_SDRAM + 0x100, | 128 | .atag_offset = 0x100, |
| 129 | .init_irq = s5pv210_init_irq, | 129 | .init_irq = s5pv210_init_irq, |
| 130 | .map_io = torbreck_map_io, | 130 | .map_io = torbreck_map_io, |
| 131 | .init_machine = torbreck_machine_init, | 131 | .init_machine = torbreck_machine_init, |
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index 26257df19b63..d40da5f1f37b 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c | |||
| @@ -447,7 +447,7 @@ static void __init assabet_map_io(void) | |||
| 447 | 447 | ||
| 448 | 448 | ||
| 449 | MACHINE_START(ASSABET, "Intel-Assabet") | 449 | MACHINE_START(ASSABET, "Intel-Assabet") |
| 450 | .boot_params = 0xc0000100, | 450 | .atag_offset = 0x100, |
| 451 | .fixup = fixup_assabet, | 451 | .fixup = fixup_assabet, |
| 452 | .map_io = assabet_map_io, | 452 | .map_io = assabet_map_io, |
| 453 | .init_irq = sa1100_init_irq, | 453 | .init_irq = sa1100_init_irq, |
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c index b4311b0a4395..bda83e1ab078 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c | |||
| @@ -302,7 +302,7 @@ static void __init badge4_map_io(void) | |||
| 302 | } | 302 | } |
| 303 | 303 | ||
| 304 | MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4") | 304 | MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4") |
| 305 | .boot_params = 0xc0000100, | 305 | .atag_offset = 0x100, |
| 306 | .map_io = badge4_map_io, | 306 | .map_io = badge4_map_io, |
| 307 | .init_irq = sa1100_init_irq, | 307 | .init_irq = sa1100_init_irq, |
| 308 | .timer = &sa1100_timer, | 308 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/h3100.c b/arch/arm/mach-sa1100/h3100.c index 03d7376cf8a0..b30733a2b82e 100644 --- a/arch/arm/mach-sa1100/h3100.c +++ b/arch/arm/mach-sa1100/h3100.c | |||
| @@ -84,7 +84,7 @@ static void __init h3100_mach_init(void) | |||
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | MACHINE_START(H3100, "Compaq iPAQ H3100") | 86 | MACHINE_START(H3100, "Compaq iPAQ H3100") |
| 87 | .boot_params = 0xc0000100, | 87 | .atag_offset = 0x100, |
| 88 | .map_io = h3100_map_io, | 88 | .map_io = h3100_map_io, |
| 89 | .init_irq = sa1100_init_irq, | 89 | .init_irq = sa1100_init_irq, |
| 90 | .timer = &sa1100_timer, | 90 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c index 965f64a836f8..6fd324d92389 100644 --- a/arch/arm/mach-sa1100/h3600.c +++ b/arch/arm/mach-sa1100/h3600.c | |||
| @@ -125,7 +125,7 @@ static void __init h3600_mach_init(void) | |||
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | MACHINE_START(H3600, "Compaq iPAQ H3600") | 127 | MACHINE_START(H3600, "Compaq iPAQ H3600") |
| 128 | .boot_params = 0xc0000100, | 128 | .atag_offset = 0x100, |
| 129 | .map_io = h3600_map_io, | 129 | .map_io = h3600_map_io, |
| 130 | .init_irq = sa1100_init_irq, | 130 | .init_irq = sa1100_init_irq, |
| 131 | .timer = &sa1100_timer, | 131 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/hackkit.c b/arch/arm/mach-sa1100/hackkit.c index db5e434a17db..30f4a551b8e5 100644 --- a/arch/arm/mach-sa1100/hackkit.c +++ b/arch/arm/mach-sa1100/hackkit.c | |||
| @@ -195,7 +195,7 @@ static void __init hackkit_init(void) | |||
| 195 | */ | 195 | */ |
| 196 | 196 | ||
| 197 | MACHINE_START(HACKKIT, "HackKit Cpu Board") | 197 | MACHINE_START(HACKKIT, "HackKit Cpu Board") |
| 198 | .boot_params = 0xc0000100, | 198 | .atag_offset = 0x100, |
| 199 | .map_io = hackkit_map_io, | 199 | .map_io = hackkit_map_io, |
| 200 | .init_irq = sa1100_init_irq, | 200 | .init_irq = sa1100_init_irq, |
| 201 | .timer = &sa1100_timer, | 201 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c index 176c066aec7e..0bb520d48ed0 100644 --- a/arch/arm/mach-sa1100/jornada720.c +++ b/arch/arm/mach-sa1100/jornada720.c | |||
| @@ -364,7 +364,7 @@ static void __init jornada720_mach_init(void) | |||
| 364 | 364 | ||
| 365 | MACHINE_START(JORNADA720, "HP Jornada 720") | 365 | MACHINE_START(JORNADA720, "HP Jornada 720") |
| 366 | /* Maintainer: Kristoffer Ericson <Kristoffer.Ericson@gmail.com> */ | 366 | /* Maintainer: Kristoffer Ericson <Kristoffer.Ericson@gmail.com> */ |
| 367 | .boot_params = 0xc0000100, | 367 | .atag_offset = 0x100, |
| 368 | .map_io = jornada720_map_io, | 368 | .map_io = jornada720_map_io, |
| 369 | .init_irq = sa1100_init_irq, | 369 | .init_irq = sa1100_init_irq, |
| 370 | .timer = &sa1100_timer, | 370 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c index 7b9556b59057..5bc59d0947ba 100644 --- a/arch/arm/mach-sa1100/lart.c +++ b/arch/arm/mach-sa1100/lart.c | |||
| @@ -61,7 +61,7 @@ static void __init lart_map_io(void) | |||
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | MACHINE_START(LART, "LART") | 63 | MACHINE_START(LART, "LART") |
| 64 | .boot_params = 0xc0000100, | 64 | .atag_offset = 0x100, |
| 65 | .map_io = lart_map_io, | 65 | .map_io = lart_map_io, |
| 66 | .init_irq = sa1100_init_irq, | 66 | .init_irq = sa1100_init_irq, |
| 67 | .init_machine = lart_init, | 67 | .init_machine = lart_init, |
diff --git a/arch/arm/mach-sa1100/nanoengine.c b/arch/arm/mach-sa1100/nanoengine.c index 72087f0658b7..032f3881d145 100644 --- a/arch/arm/mach-sa1100/nanoengine.c +++ b/arch/arm/mach-sa1100/nanoengine.c | |||
| @@ -111,7 +111,7 @@ static void __init nanoengine_init(void) | |||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | MACHINE_START(NANOENGINE, "BSE nanoEngine") | 113 | MACHINE_START(NANOENGINE, "BSE nanoEngine") |
| 114 | .boot_params = 0xc0000000, | 114 | .atag_offset = 0x100, |
| 115 | .map_io = nanoengine_map_io, | 115 | .map_io = nanoengine_map_io, |
| 116 | .init_irq = sa1100_init_irq, | 116 | .init_irq = sa1100_init_irq, |
| 117 | .timer = &sa1100_timer, | 117 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c index 7917b2405579..1cccbf5b9e9a 100644 --- a/arch/arm/mach-sa1100/shannon.c +++ b/arch/arm/mach-sa1100/shannon.c | |||
| @@ -82,7 +82,7 @@ static void __init shannon_map_io(void) | |||
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") | 84 | MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") |
| 85 | .boot_params = 0xc0000100, | 85 | .atag_offset = 0x100, |
| 86 | .map_io = shannon_map_io, | 86 | .map_io = shannon_map_io, |
| 87 | .init_irq = sa1100_init_irq, | 87 | .init_irq = sa1100_init_irq, |
| 88 | .timer = &sa1100_timer, | 88 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c index cfb76077bd25..a1c2427655da 100644 --- a/arch/arm/mach-sa1100/simpad.c +++ b/arch/arm/mach-sa1100/simpad.c | |||
| @@ -229,7 +229,7 @@ arch_initcall(simpad_init); | |||
| 229 | 229 | ||
| 230 | MACHINE_START(SIMPAD, "Simpad") | 230 | MACHINE_START(SIMPAD, "Simpad") |
| 231 | /* Maintainer: Holger Freyther */ | 231 | /* Maintainer: Holger Freyther */ |
| 232 | .boot_params = 0xc0000100, | 232 | .atag_offset = 0x100, |
| 233 | .map_io = simpad_map_io, | 233 | .map_io = simpad_map_io, |
| 234 | .init_irq = sa1100_init_irq, | 234 | .init_irq = sa1100_init_irq, |
| 235 | .timer = &sa1100_timer, | 235 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c index ac2873c8014b..feda3ca7fc95 100644 --- a/arch/arm/mach-shark/core.c +++ b/arch/arm/mach-shark/core.c | |||
| @@ -152,7 +152,7 @@ static struct sys_timer shark_timer = { | |||
| 152 | 152 | ||
| 153 | MACHINE_START(SHARK, "Shark") | 153 | MACHINE_START(SHARK, "Shark") |
| 154 | /* Maintainer: Alexander Schulz */ | 154 | /* Maintainer: Alexander Schulz */ |
| 155 | .boot_params = 0x08003000, | 155 | .atag_offset = 0x3000, |
| 156 | .map_io = shark_map_io, | 156 | .map_io = shark_map_io, |
| 157 | .init_irq = shark_init_irq, | 157 | .init_irq = shark_init_irq, |
| 158 | .timer = &shark_timer, | 158 | .timer = &shark_timer, |
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c index cdfdd624d21d..5fde49da399a 100644 --- a/arch/arm/mach-shmobile/board-ag5evm.c +++ b/arch/arm/mach-shmobile/board-ag5evm.c | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | #include <linux/mmc/sh_mobile_sdhi.h> | 37 | #include <linux/mmc/sh_mobile_sdhi.h> |
| 38 | #include <linux/mfd/tmio.h> | 38 | #include <linux/mfd/tmio.h> |
| 39 | #include <linux/sh_clk.h> | 39 | #include <linux/sh_clk.h> |
| 40 | #include <linux/dma-mapping.h> | ||
| 40 | #include <video/sh_mobile_lcdc.h> | 41 | #include <video/sh_mobile_lcdc.h> |
| 41 | #include <video/sh_mipi_dsi.h> | 42 | #include <video/sh_mipi_dsi.h> |
| 42 | #include <sound/sh_fsi.h> | 43 | #include <sound/sh_fsi.h> |
| @@ -447,6 +448,8 @@ static struct map_desc ag5evm_io_desc[] __initdata = { | |||
| 447 | static void __init ag5evm_map_io(void) | 448 | static void __init ag5evm_map_io(void) |
| 448 | { | 449 | { |
| 449 | iotable_init(ag5evm_io_desc, ARRAY_SIZE(ag5evm_io_desc)); | 450 | iotable_init(ag5evm_io_desc, ARRAY_SIZE(ag5evm_io_desc)); |
| 451 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
| 452 | init_consistent_dma_size(158 << 20); | ||
| 450 | 453 | ||
| 451 | /* setup early devices and console here as well */ | 454 | /* setup early devices and console here as well */ |
| 452 | sh73a0_add_early_devices(); | 455 | sh73a0_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index 523f608eb8cf..b622d8d3ab72 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | #include <linux/leds.h> | 42 | #include <linux/leds.h> |
| 43 | #include <linux/input/sh_keysc.h> | 43 | #include <linux/input/sh_keysc.h> |
| 44 | #include <linux/usb/r8a66597.h> | 44 | #include <linux/usb/r8a66597.h> |
| 45 | #include <linux/dma-mapping.h> | ||
| 45 | 46 | ||
| 46 | #include <media/sh_mobile_ceu.h> | 47 | #include <media/sh_mobile_ceu.h> |
| 47 | #include <media/sh_mobile_csi2.h> | 48 | #include <media/sh_mobile_csi2.h> |
| @@ -1170,6 +1171,8 @@ static struct map_desc ap4evb_io_desc[] __initdata = { | |||
| 1170 | static void __init ap4evb_map_io(void) | 1171 | static void __init ap4evb_map_io(void) |
| 1171 | { | 1172 | { |
| 1172 | iotable_init(ap4evb_io_desc, ARRAY_SIZE(ap4evb_io_desc)); | 1173 | iotable_init(ap4evb_io_desc, ARRAY_SIZE(ap4evb_io_desc)); |
| 1174 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
| 1175 | init_consistent_dma_size(158 << 20); | ||
| 1173 | 1176 | ||
| 1174 | /* setup early devices and console here as well */ | 1177 | /* setup early devices and console here as well */ |
| 1175 | sh7372_add_early_devices(); | 1178 | sh7372_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c index ef4613b993a2..8b620bf06221 100644 --- a/arch/arm/mach-shmobile/board-g3evm.c +++ b/arch/arm/mach-shmobile/board-g3evm.c | |||
| @@ -32,6 +32,7 @@ | |||
| 32 | #include <linux/gpio.h> | 32 | #include <linux/gpio.h> |
| 33 | #include <linux/input.h> | 33 | #include <linux/input.h> |
| 34 | #include <linux/input/sh_keysc.h> | 34 | #include <linux/input/sh_keysc.h> |
| 35 | #include <linux/dma-mapping.h> | ||
| 35 | #include <mach/sh7367.h> | 36 | #include <mach/sh7367.h> |
| 36 | #include <mach/common.h> | 37 | #include <mach/common.h> |
| 37 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
| @@ -260,6 +261,8 @@ static struct map_desc g3evm_io_desc[] __initdata = { | |||
| 260 | static void __init g3evm_map_io(void) | 261 | static void __init g3evm_map_io(void) |
| 261 | { | 262 | { |
| 262 | iotable_init(g3evm_io_desc, ARRAY_SIZE(g3evm_io_desc)); | 263 | iotable_init(g3evm_io_desc, ARRAY_SIZE(g3evm_io_desc)); |
| 264 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
| 265 | init_consistent_dma_size(158 << 20); | ||
| 263 | 266 | ||
| 264 | /* setup early devices and console here as well */ | 267 | /* setup early devices and console here as well */ |
| 265 | sh7367_add_early_devices(); | 268 | sh7367_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c index 8e3c5559f27f..7719ddc5f591 100644 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ b/arch/arm/mach-shmobile/board-g4evm.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/mmc/host.h> | 33 | #include <linux/mmc/host.h> |
| 34 | #include <linux/mmc/sh_mobile_sdhi.h> | 34 | #include <linux/mmc/sh_mobile_sdhi.h> |
| 35 | #include <linux/gpio.h> | 35 | #include <linux/gpio.h> |
| 36 | #include <linux/dma-mapping.h> | ||
| 36 | #include <mach/sh7377.h> | 37 | #include <mach/sh7377.h> |
| 37 | #include <mach/common.h> | 38 | #include <mach/common.h> |
| 38 | #include <asm/mach-types.h> | 39 | #include <asm/mach-types.h> |
| @@ -274,6 +275,8 @@ static struct map_desc g4evm_io_desc[] __initdata = { | |||
| 274 | static void __init g4evm_map_io(void) | 275 | static void __init g4evm_map_io(void) |
| 275 | { | 276 | { |
| 276 | iotable_init(g4evm_io_desc, ARRAY_SIZE(g4evm_io_desc)); | 277 | iotable_init(g4evm_io_desc, ARRAY_SIZE(g4evm_io_desc)); |
| 278 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
| 279 | init_consistent_dma_size(158 << 20); | ||
| 277 | 280 | ||
| 278 | /* setup early devices and console here as well */ | 281 | /* setup early devices and console here as well */ |
| 279 | sh7377_add_early_devices(); | 282 | sh7377_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 17c19dc25604..de2253d7f157 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
| @@ -45,6 +45,7 @@ | |||
| 45 | #include <linux/tca6416_keypad.h> | 45 | #include <linux/tca6416_keypad.h> |
| 46 | #include <linux/usb/r8a66597.h> | 46 | #include <linux/usb/r8a66597.h> |
| 47 | #include <linux/usb/renesas_usbhs.h> | 47 | #include <linux/usb/renesas_usbhs.h> |
| 48 | #include <linux/dma-mapping.h> | ||
| 48 | 49 | ||
| 49 | #include <video/sh_mobile_hdmi.h> | 50 | #include <video/sh_mobile_hdmi.h> |
| 50 | #include <video/sh_mobile_lcdc.h> | 51 | #include <video/sh_mobile_lcdc.h> |
| @@ -1381,6 +1382,8 @@ static struct map_desc mackerel_io_desc[] __initdata = { | |||
| 1381 | static void __init mackerel_map_io(void) | 1382 | static void __init mackerel_map_io(void) |
| 1382 | { | 1383 | { |
| 1383 | iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc)); | 1384 | iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc)); |
| 1385 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
| 1386 | init_consistent_dma_size(158 << 20); | ||
| 1384 | 1387 | ||
| 1385 | /* setup early devices and console here as well */ | 1388 | /* setup early devices and console here as well */ |
| 1386 | sh7372_add_early_devices(); | 1389 | sh7372_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h index ad00c3c258f4..0ffbe8155c76 100644 --- a/arch/arm/mach-shmobile/include/mach/memory.h +++ b/arch/arm/mach-shmobile/include/mach/memory.h | |||
| @@ -4,7 +4,4 @@ | |||
| 4 | #define PLAT_PHYS_OFFSET UL(CONFIG_MEMORY_START) | 4 | #define PLAT_PHYS_OFFSET UL(CONFIG_MEMORY_START) |
| 5 | #define MEM_SIZE UL(CONFIG_MEMORY_SIZE) | 5 | #define MEM_SIZE UL(CONFIG_MEMORY_SIZE) |
| 6 | 6 | ||
| 7 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
| 8 | #define CONSISTENT_DMA_SIZE (158 << 20) | ||
| 9 | |||
| 10 | #endif /* __ASM_MACH_MEMORY_H */ | 7 | #endif /* __ASM_MACH_MEMORY_H */ |
diff --git a/arch/arm/mach-spear3xx/spear300_evb.c b/arch/arm/mach-spear3xx/spear300_evb.c index 69006f694220..a5ff98eed1db 100644 --- a/arch/arm/mach-spear3xx/spear300_evb.c +++ b/arch/arm/mach-spear3xx/spear300_evb.c | |||
| @@ -64,7 +64,7 @@ static void __init spear300_evb_init(void) | |||
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | MACHINE_START(SPEAR300, "ST-SPEAR300-EVB") | 66 | MACHINE_START(SPEAR300, "ST-SPEAR300-EVB") |
| 67 | .boot_params = 0x00000100, | 67 | .atag_offset = 0x100, |
| 68 | .map_io = spear3xx_map_io, | 68 | .map_io = spear3xx_map_io, |
| 69 | .init_irq = spear3xx_init_irq, | 69 | .init_irq = spear3xx_init_irq, |
| 70 | .timer = &spear3xx_timer, | 70 | .timer = &spear3xx_timer, |
diff --git a/arch/arm/mach-spear3xx/spear310_evb.c b/arch/arm/mach-spear3xx/spear310_evb.c index c8684ce1f9b3..45d180d59362 100644 --- a/arch/arm/mach-spear3xx/spear310_evb.c +++ b/arch/arm/mach-spear3xx/spear310_evb.c | |||
| @@ -70,7 +70,7 @@ static void __init spear310_evb_init(void) | |||
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | MACHINE_START(SPEAR310, "ST-SPEAR310-EVB") | 72 | MACHINE_START(SPEAR310, "ST-SPEAR310-EVB") |
| 73 | .boot_params = 0x00000100, | 73 | .atag_offset = 0x100, |
| 74 | .map_io = spear3xx_map_io, | 74 | .map_io = spear3xx_map_io, |
| 75 | .init_irq = spear3xx_init_irq, | 75 | .init_irq = spear3xx_init_irq, |
| 76 | .timer = &spear3xx_timer, | 76 | .timer = &spear3xx_timer, |
diff --git a/arch/arm/mach-spear3xx/spear320_evb.c b/arch/arm/mach-spear3xx/spear320_evb.c index a12b353940d6..22879848d73a 100644 --- a/arch/arm/mach-spear3xx/spear320_evb.c +++ b/arch/arm/mach-spear3xx/spear320_evb.c | |||
| @@ -68,7 +68,7 @@ static void __init spear320_evb_init(void) | |||
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | MACHINE_START(SPEAR320, "ST-SPEAR320-EVB") | 70 | MACHINE_START(SPEAR320, "ST-SPEAR320-EVB") |
| 71 | .boot_params = 0x00000100, | 71 | .atag_offset = 0x100, |
| 72 | .map_io = spear3xx_map_io, | 72 | .map_io = spear3xx_map_io, |
| 73 | .init_irq = spear3xx_init_irq, | 73 | .init_irq = spear3xx_init_irq, |
| 74 | .timer = &spear3xx_timer, | 74 | .timer = &spear3xx_timer, |
diff --git a/arch/arm/mach-spear6xx/spear600_evb.c b/arch/arm/mach-spear6xx/spear600_evb.c index f19cefe91a2b..8238fe38e713 100644 --- a/arch/arm/mach-spear6xx/spear600_evb.c +++ b/arch/arm/mach-spear6xx/spear600_evb.c | |||
| @@ -43,7 +43,7 @@ static void __init spear600_evb_init(void) | |||
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | MACHINE_START(SPEAR600, "ST-SPEAR600-EVB") | 45 | MACHINE_START(SPEAR600, "ST-SPEAR600-EVB") |
| 46 | .boot_params = 0x00000100, | 46 | .atag_offset = 0x100, |
| 47 | .map_io = spear6xx_map_io, | 47 | .map_io = spear6xx_map_io, |
| 48 | .init_irq = spear6xx_init_irq, | 48 | .init_irq = spear6xx_init_irq, |
| 49 | .timer = &spear6xx_timer, | 49 | .timer = &spear6xx_timer, |
diff --git a/arch/arm/mach-tcc8k/board-tcc8000-sdk.c b/arch/arm/mach-tcc8k/board-tcc8000-sdk.c index 4cb3c2dd905c..777a5bb9eed2 100644 --- a/arch/arm/mach-tcc8k/board-tcc8000-sdk.c +++ b/arch/arm/mach-tcc8k/board-tcc8000-sdk.c | |||
| @@ -73,7 +73,7 @@ static void __init tcc8k_map_io(void) | |||
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | MACHINE_START(TCC8000_SDK, "Telechips TCC8000-SDK Demo Board") | 75 | MACHINE_START(TCC8000_SDK, "Telechips TCC8000-SDK Demo Board") |
| 76 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 76 | .atag_offset = 0x100, |
| 77 | .map_io = tcc8k_map_io, | 77 | .map_io = tcc8k_map_io, |
| 78 | .init_irq = tcc8k_init_irq, | 78 | .init_irq = tcc8k_init_irq, |
| 79 | .init_machine = tcc8k_init, | 79 | .init_machine = tcc8k_init, |
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index 846cd7d69e3e..a4d1980e697a 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c | |||
| @@ -179,7 +179,7 @@ static void __init tegra_harmony_init(void) | |||
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | MACHINE_START(HARMONY, "harmony") | 181 | MACHINE_START(HARMONY, "harmony") |
| 182 | .boot_params = 0x00000100, | 182 | .atag_offset = 0x100, |
| 183 | .fixup = tegra_harmony_fixup, | 183 | .fixup = tegra_harmony_fixup, |
| 184 | .map_io = tegra_map_common_io, | 184 | .map_io = tegra_map_common_io, |
| 185 | .init_early = tegra_init_early, | 185 | .init_early = tegra_init_early, |
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index ea2f79c9879b..3197c4cbaa71 100644 --- a/arch/arm/mach-tegra/board-paz00.c +++ b/arch/arm/mach-tegra/board-paz00.c | |||
| @@ -127,7 +127,7 @@ static void __init tegra_paz00_init(void) | |||
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | MACHINE_START(PAZ00, "Toshiba AC100 / Dynabook AZ") | 129 | MACHINE_START(PAZ00, "Toshiba AC100 / Dynabook AZ") |
| 130 | .boot_params = 0x00000100, | 130 | .atag_offset = 0x100, |
| 131 | .fixup = tegra_paz00_fixup, | 131 | .fixup = tegra_paz00_fixup, |
| 132 | .map_io = tegra_map_common_io, | 132 | .map_io = tegra_map_common_io, |
| 133 | .init_early = tegra_init_early, | 133 | .init_early = tegra_init_early, |
diff --git a/arch/arm/mach-tegra/board-seaboard.c b/arch/arm/mach-tegra/board-seaboard.c index 56cbabf6aa68..9e98ac706f40 100644 --- a/arch/arm/mach-tegra/board-seaboard.c +++ b/arch/arm/mach-tegra/board-seaboard.c | |||
| @@ -201,7 +201,7 @@ static void __init tegra_wario_init(void) | |||
| 201 | 201 | ||
| 202 | 202 | ||
| 203 | MACHINE_START(SEABOARD, "seaboard") | 203 | MACHINE_START(SEABOARD, "seaboard") |
| 204 | .boot_params = 0x00000100, | 204 | .atag_offset = 0x100, |
| 205 | .map_io = tegra_map_common_io, | 205 | .map_io = tegra_map_common_io, |
| 206 | .init_early = tegra_init_early, | 206 | .init_early = tegra_init_early, |
| 207 | .init_irq = tegra_init_irq, | 207 | .init_irq = tegra_init_irq, |
| @@ -210,7 +210,7 @@ MACHINE_START(SEABOARD, "seaboard") | |||
| 210 | MACHINE_END | 210 | MACHINE_END |
| 211 | 211 | ||
| 212 | MACHINE_START(KAEN, "kaen") | 212 | MACHINE_START(KAEN, "kaen") |
| 213 | .boot_params = 0x00000100, | 213 | .atag_offset = 0x100, |
| 214 | .map_io = tegra_map_common_io, | 214 | .map_io = tegra_map_common_io, |
| 215 | .init_early = tegra_init_early, | 215 | .init_early = tegra_init_early, |
| 216 | .init_irq = tegra_init_irq, | 216 | .init_irq = tegra_init_irq, |
| @@ -219,7 +219,7 @@ MACHINE_START(KAEN, "kaen") | |||
| 219 | MACHINE_END | 219 | MACHINE_END |
| 220 | 220 | ||
| 221 | MACHINE_START(WARIO, "wario") | 221 | MACHINE_START(WARIO, "wario") |
| 222 | .boot_params = 0x00000100, | 222 | .atag_offset = 0x100, |
| 223 | .map_io = tegra_map_common_io, | 223 | .map_io = tegra_map_common_io, |
| 224 | .init_early = tegra_init_early, | 224 | .init_early = tegra_init_early, |
| 225 | .init_irq = tegra_init_irq, | 225 | .init_irq = tegra_init_irq, |
diff --git a/arch/arm/mach-tegra/board-trimslice.c b/arch/arm/mach-tegra/board-trimslice.c index 89a6d2adc1de..8489aa8f5154 100644 --- a/arch/arm/mach-tegra/board-trimslice.c +++ b/arch/arm/mach-tegra/board-trimslice.c | |||
| @@ -171,7 +171,7 @@ static void __init tegra_trimslice_init(void) | |||
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | MACHINE_START(TRIMSLICE, "trimslice") | 173 | MACHINE_START(TRIMSLICE, "trimslice") |
| 174 | .boot_params = 0x00000100, | 174 | .atag_offset = 0x100, |
| 175 | .fixup = tegra_trimslice_fixup, | 175 | .fixup = tegra_trimslice_fixup, |
| 176 | .map_io = tegra_map_common_io, | 176 | .map_io = tegra_map_common_io, |
| 177 | .init_early = tegra_init_early, | 177 | .init_early = tegra_init_early, |
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index 399c89f14dfb..376b6dfdfae9 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <linux/err.h> | 25 | #include <linux/err.h> |
| 26 | #include <linux/mtd/nand.h> | 26 | #include <linux/mtd/nand.h> |
| 27 | #include <linux/mtd/fsmc.h> | 27 | #include <linux/mtd/fsmc.h> |
| 28 | #include <linux/dma-mapping.h> | ||
| 28 | 29 | ||
| 29 | #include <asm/types.h> | 30 | #include <asm/types.h> |
| 30 | #include <asm/setup.h> | 31 | #include <asm/setup.h> |
| @@ -92,6 +93,8 @@ static struct map_desc u300_io_desc[] __initdata = { | |||
| 92 | void __init u300_map_io(void) | 93 | void __init u300_map_io(void) |
| 93 | { | 94 | { |
| 94 | iotable_init(u300_io_desc, ARRAY_SIZE(u300_io_desc)); | 95 | iotable_init(u300_io_desc, ARRAY_SIZE(u300_io_desc)); |
| 96 | /* We enable a real big DMA buffer if need be. */ | ||
| 97 | init_consistent_dma_size(SZ_4M); | ||
| 95 | } | 98 | } |
| 96 | 99 | ||
| 97 | /* | 100 | /* |
diff --git a/arch/arm/mach-u300/include/mach/memory.h b/arch/arm/mach-u300/include/mach/memory.h index 888e2e351ee1..7034bae95de6 100644 --- a/arch/arm/mach-u300/include/mach/memory.h +++ b/arch/arm/mach-u300/include/mach/memory.h | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #ifdef CONFIG_MACH_U300_DUAL_RAM | 16 | #ifdef CONFIG_MACH_U300_DUAL_RAM |
| 17 | 17 | ||
| 18 | #define PLAT_PHYS_OFFSET UL(0x48000000) | 18 | #define PLAT_PHYS_OFFSET UL(0x48000000) |
| 19 | #define BOOT_PARAMS_OFFSET (PHYS_OFFSET + 0x100) | 19 | #define BOOT_PARAMS_OFFSET 0x100 |
| 20 | 20 | ||
| 21 | #else | 21 | #else |
| 22 | 22 | ||
| @@ -24,19 +24,14 @@ | |||
| 24 | #define PLAT_PHYS_OFFSET (0x28000000 + \ | 24 | #define PLAT_PHYS_OFFSET (0x28000000 + \ |
| 25 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE - \ | 25 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE - \ |
| 26 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024) | 26 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024) |
| 27 | #define BOOT_PARAMS_OFFSET (0x100 + \ | ||
| 28 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1)*1024*1024*2) | ||
| 27 | #else | 29 | #else |
| 28 | #define PLAT_PHYS_OFFSET (0x28000000 + \ | 30 | #define PLAT_PHYS_OFFSET (0x28000000 + \ |
| 29 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE + \ | 31 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE + \ |
| 30 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024) | 32 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024) |
| 33 | #define BOOT_PARAMS_OFFSET 0x100 | ||
| 31 | #endif | 34 | #endif |
| 32 | #define BOOT_PARAMS_OFFSET (0x28000000 + \ | ||
| 33 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE + \ | ||
| 34 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024 + 0x100) | ||
| 35 | #endif | 35 | #endif |
| 36 | 36 | ||
| 37 | /* | ||
| 38 | * We enable a real big DMA buffer if need be. | ||
| 39 | */ | ||
| 40 | #define CONSISTENT_DMA_SIZE SZ_4M | ||
| 41 | |||
| 42 | #endif | 37 | #endif |
diff --git a/arch/arm/mach-u300/u300.c b/arch/arm/mach-u300/u300.c index 48b3b7f39966..80e7305589c6 100644 --- a/arch/arm/mach-u300/u300.c +++ b/arch/arm/mach-u300/u300.c | |||
| @@ -61,7 +61,7 @@ static void __init u300_init_machine(void) | |||
| 61 | 61 | ||
| 62 | MACHINE_START(U300, MACH_U300_STRING) | 62 | MACHINE_START(U300, MACH_U300_STRING) |
| 63 | /* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */ | 63 | /* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */ |
| 64 | .boot_params = BOOT_PARAMS_OFFSET, | 64 | .atag_offset = BOOT_PARAMS_OFFSET, |
| 65 | .map_io = u300_map_io, | 65 | .map_io = u300_map_io, |
| 66 | .reserve = u300_reserve, | 66 | .reserve = u300_reserve, |
| 67 | .init_irq = u300_init_irq, | 67 | .init_irq = u300_init_irq, |
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index cd54abaccd96..2cc4876db212 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
| @@ -645,7 +645,7 @@ static void __init mop500_init_machine(void) | |||
| 645 | 645 | ||
| 646 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | 646 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") |
| 647 | /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */ | 647 | /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */ |
| 648 | .boot_params = 0x100, | 648 | .atag_offset = 0x100, |
| 649 | .map_io = u8500_map_io, | 649 | .map_io = u8500_map_io, |
| 650 | .init_irq = ux500_init_irq, | 650 | .init_irq = ux500_init_irq, |
| 651 | /* we re-use nomadik timer here */ | 651 | /* we re-use nomadik timer here */ |
| @@ -654,7 +654,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | |||
| 654 | MACHINE_END | 654 | MACHINE_END |
| 655 | 655 | ||
| 656 | MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") | 656 | MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") |
| 657 | .boot_params = 0x100, | 657 | .atag_offset = 0x100, |
| 658 | .map_io = u8500_map_io, | 658 | .map_io = u8500_map_io, |
| 659 | .init_irq = ux500_init_irq, | 659 | .init_irq = ux500_init_irq, |
| 660 | .timer = &ux500_timer, | 660 | .timer = &ux500_timer, |
| @@ -662,7 +662,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") | |||
| 662 | MACHINE_END | 662 | MACHINE_END |
| 663 | 663 | ||
| 664 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") | 664 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") |
| 665 | .boot_params = 0x100, | 665 | .atag_offset = 0x100, |
| 666 | .map_io = u8500_map_io, | 666 | .map_io = u8500_map_io, |
| 667 | .init_irq = ux500_init_irq, | 667 | .init_irq = ux500_init_irq, |
| 668 | /* we re-use nomadik timer here */ | 668 | /* we re-use nomadik timer here */ |
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c index e58f0f562426..166d47a5f4f3 100644 --- a/arch/arm/mach-ux500/board-u5500.c +++ b/arch/arm/mach-ux500/board-u5500.c | |||
| @@ -118,7 +118,7 @@ static void __init u5500_init_machine(void) | |||
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | MACHINE_START(U5500, "ST-Ericsson U5500 Platform") | 120 | MACHINE_START(U5500, "ST-Ericsson U5500 Platform") |
| 121 | .boot_params = 0x00000100, | 121 | .atag_offset = 0x100, |
| 122 | .map_io = u5500_map_io, | 122 | .map_io = u5500_map_io, |
| 123 | .init_irq = ux500_init_irq, | 123 | .init_irq = ux500_init_irq, |
| 124 | .timer = &ux500_timer, | 124 | .timer = &ux500_timer, |
diff --git a/arch/arm/mach-versatile/versatile_ab.c b/arch/arm/mach-versatile/versatile_ab.c index f8ae64b3eed0..fda4866703cd 100644 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | 35 | ||
| 36 | MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") | 36 | MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") |
| 37 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 37 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 38 | .boot_params = 0x00000100, | 38 | .atag_offset = 0x100, |
| 39 | .map_io = versatile_map_io, | 39 | .map_io = versatile_map_io, |
| 40 | .init_early = versatile_init_early, | 40 | .init_early = versatile_init_early, |
| 41 | .init_irq = versatile_init_irq, | 41 | .init_irq = versatile_init_irq, |
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c index 37c23dfeefb7..feaf9cbe60f6 100644 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c | |||
| @@ -103,7 +103,7 @@ static void __init versatile_pb_init(void) | |||
| 103 | 103 | ||
| 104 | MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") | 104 | MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") |
| 105 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 105 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
| 106 | .boot_params = 0x00000100, | 106 | .atag_offset = 0x100, |
| 107 | .map_io = versatile_map_io, | 107 | .map_io = versatile_map_io, |
| 108 | .init_early = versatile_init_early, | 108 | .init_early = versatile_init_early, |
| 109 | .init_irq = versatile_init_irq, | 109 | .init_irq = versatile_init_irq, |
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index d0d267a8d3f9..1fafc3244607 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
| @@ -443,7 +443,7 @@ static void __init v2m_init(void) | |||
| 443 | } | 443 | } |
| 444 | 444 | ||
| 445 | MACHINE_START(VEXPRESS, "ARM-Versatile Express") | 445 | MACHINE_START(VEXPRESS, "ARM-Versatile Express") |
| 446 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 446 | .atag_offset = 0x100, |
| 447 | .map_io = v2m_map_io, | 447 | .map_io = v2m_map_io, |
| 448 | .init_early = v2m_init_early, | 448 | .init_early = v2m_init_early, |
| 449 | .init_irq = v2m_init_irq, | 449 | .init_irq = v2m_init_irq, |
diff --git a/arch/arm/mach-vt8500/bv07.c b/arch/arm/mach-vt8500/bv07.c index 94a261d86bf0..a464c7584411 100644 --- a/arch/arm/mach-vt8500/bv07.c +++ b/arch/arm/mach-vt8500/bv07.c | |||
| @@ -68,7 +68,7 @@ void __init bv07_init(void) | |||
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | MACHINE_START(BV07, "Benign BV07 Mini Netbook") | 70 | MACHINE_START(BV07, "Benign BV07 Mini Netbook") |
| 71 | .boot_params = 0x00000100, | 71 | .atag_offset = 0x100, |
| 72 | .reserve = vt8500_reserve_mem, | 72 | .reserve = vt8500_reserve_mem, |
| 73 | .map_io = vt8500_map_io, | 73 | .map_io = vt8500_map_io, |
| 74 | .init_irq = vt8500_init_irq, | 74 | .init_irq = vt8500_init_irq, |
diff --git a/arch/arm/mach-vt8500/wm8505_7in.c b/arch/arm/mach-vt8500/wm8505_7in.c index e73aadbcafd6..cf910a956080 100644 --- a/arch/arm/mach-vt8500/wm8505_7in.c +++ b/arch/arm/mach-vt8500/wm8505_7in.c | |||
| @@ -68,7 +68,7 @@ void __init wm8505_7in_init(void) | |||
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | MACHINE_START(WM8505_7IN_NETBOOK, "WM8505 7-inch generic netbook") | 70 | MACHINE_START(WM8505_7IN_NETBOOK, "WM8505 7-inch generic netbook") |
| 71 | .boot_params = 0x00000100, | 71 | .atag_offset = 0x100, |
| 72 | .reserve = wm8505_reserve_mem, | 72 | .reserve = wm8505_reserve_mem, |
| 73 | .map_io = wm8505_map_io, | 73 | .map_io = wm8505_map_io, |
| 74 | .init_irq = wm8505_init_irq, | 74 | .init_irq = wm8505_init_irq, |
diff --git a/arch/arm/mach-w90x900/mach-nuc910evb.c b/arch/arm/mach-w90x900/mach-nuc910evb.c index 30fccde94fb8..31c109018228 100644 --- a/arch/arm/mach-w90x900/mach-nuc910evb.c +++ b/arch/arm/mach-w90x900/mach-nuc910evb.c | |||
| @@ -34,7 +34,6 @@ static void __init nuc910evb_init(void) | |||
| 34 | 34 | ||
| 35 | MACHINE_START(W90P910EVB, "W90P910EVB") | 35 | MACHINE_START(W90P910EVB, "W90P910EVB") |
| 36 | /* Maintainer: Wan ZongShun */ | 36 | /* Maintainer: Wan ZongShun */ |
| 37 | .boot_params = 0, | ||
| 38 | .map_io = nuc910evb_map_io, | 37 | .map_io = nuc910evb_map_io, |
| 39 | .init_irq = nuc900_init_irq, | 38 | .init_irq = nuc900_init_irq, |
| 40 | .init_machine = nuc910evb_init, | 39 | .init_machine = nuc910evb_init, |
diff --git a/arch/arm/mach-w90x900/mach-nuc950evb.c b/arch/arm/mach-w90x900/mach-nuc950evb.c index 590c99b96dc1..4062e55a57d8 100644 --- a/arch/arm/mach-w90x900/mach-nuc950evb.c +++ b/arch/arm/mach-w90x900/mach-nuc950evb.c | |||
| @@ -37,7 +37,6 @@ static void __init nuc950evb_init(void) | |||
| 37 | 37 | ||
| 38 | MACHINE_START(W90P950EVB, "W90P950EVB") | 38 | MACHINE_START(W90P950EVB, "W90P950EVB") |
| 39 | /* Maintainer: Wan ZongShun */ | 39 | /* Maintainer: Wan ZongShun */ |
| 40 | .boot_params = 0, | ||
| 41 | .map_io = nuc950evb_map_io, | 40 | .map_io = nuc950evb_map_io, |
| 42 | .init_irq = nuc900_init_irq, | 41 | .init_irq = nuc900_init_irq, |
| 43 | .init_machine = nuc950evb_init, | 42 | .init_machine = nuc950evb_init, |
diff --git a/arch/arm/mach-w90x900/mach-nuc960evb.c b/arch/arm/mach-w90x900/mach-nuc960evb.c index e09c645d61b6..0ab9995d5b58 100644 --- a/arch/arm/mach-w90x900/mach-nuc960evb.c +++ b/arch/arm/mach-w90x900/mach-nuc960evb.c | |||
| @@ -34,7 +34,6 @@ static void __init nuc960evb_init(void) | |||
| 34 | 34 | ||
| 35 | MACHINE_START(W90N960EVB, "W90N960EVB") | 35 | MACHINE_START(W90N960EVB, "W90N960EVB") |
| 36 | /* Maintainer: Wan ZongShun */ | 36 | /* Maintainer: Wan ZongShun */ |
| 37 | .boot_params = 0, | ||
| 38 | .map_io = nuc960evb_map_io, | 37 | .map_io = nuc960evb_map_io, |
| 39 | .init_irq = nuc900_init_irq, | 38 | .init_irq = nuc900_init_irq, |
| 40 | .init_machine = nuc960evb_init, | 39 | .init_machine = nuc960evb_init, |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 0a0a1e7c20d2..50be842e89fd 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
| @@ -18,12 +18,14 @@ | |||
| 18 | #include <linux/device.h> | 18 | #include <linux/device.h> |
| 19 | #include <linux/dma-mapping.h> | 19 | #include <linux/dma-mapping.h> |
| 20 | #include <linux/highmem.h> | 20 | #include <linux/highmem.h> |
| 21 | #include <linux/slab.h> | ||
| 21 | 22 | ||
| 22 | #include <asm/memory.h> | 23 | #include <asm/memory.h> |
| 23 | #include <asm/highmem.h> | 24 | #include <asm/highmem.h> |
| 24 | #include <asm/cacheflush.h> | 25 | #include <asm/cacheflush.h> |
| 25 | #include <asm/tlbflush.h> | 26 | #include <asm/tlbflush.h> |
| 26 | #include <asm/sizes.h> | 27 | #include <asm/sizes.h> |
| 28 | #include <asm/mach/arch.h> | ||
| 27 | 29 | ||
| 28 | #include "mm.h" | 30 | #include "mm.h" |
| 29 | 31 | ||
| @@ -117,26 +119,37 @@ static void __dma_free_buffer(struct page *page, size_t size) | |||
| 117 | } | 119 | } |
| 118 | 120 | ||
| 119 | #ifdef CONFIG_MMU | 121 | #ifdef CONFIG_MMU |
| 120 | /* Sanity check size */ | ||
| 121 | #if (CONSISTENT_DMA_SIZE % SZ_2M) | ||
| 122 | #error "CONSISTENT_DMA_SIZE must be multiple of 2MiB" | ||
| 123 | #endif | ||
| 124 | 122 | ||
| 125 | #define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT) | 123 | |
| 126 | #define CONSISTENT_PTE_INDEX(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PGDIR_SHIFT) | 124 | #define CONSISTENT_OFFSET(x) (((unsigned long)(x) - consistent_base) >> PAGE_SHIFT) |
| 127 | #define NUM_CONSISTENT_PTES (CONSISTENT_DMA_SIZE >> PGDIR_SHIFT) | 125 | #define CONSISTENT_PTE_INDEX(x) (((unsigned long)(x) - consistent_base) >> PGDIR_SHIFT) |
| 128 | 126 | ||
| 129 | /* | 127 | /* |
| 130 | * These are the page tables (2MB each) covering uncached, DMA consistent allocations | 128 | * These are the page tables (2MB each) covering uncached, DMA consistent allocations |
| 131 | */ | 129 | */ |
| 132 | static pte_t *consistent_pte[NUM_CONSISTENT_PTES]; | 130 | static pte_t **consistent_pte; |
| 131 | |||
| 132 | #define DEFAULT_CONSISTENT_DMA_SIZE SZ_2M | ||
| 133 | |||
| 134 | unsigned long consistent_base = CONSISTENT_END - DEFAULT_CONSISTENT_DMA_SIZE; | ||
| 135 | |||
| 136 | void __init init_consistent_dma_size(unsigned long size) | ||
| 137 | { | ||
| 138 | unsigned long base = CONSISTENT_END - ALIGN(size, SZ_2M); | ||
| 139 | |||
| 140 | BUG_ON(consistent_pte); /* Check we're called before DMA region init */ | ||
| 141 | BUG_ON(base < VMALLOC_END); | ||
| 142 | |||
| 143 | /* Grow region to accommodate specified size */ | ||
| 144 | if (base < consistent_base) | ||
| 145 | consistent_base = base; | ||
| 146 | } | ||
| 133 | 147 | ||
| 134 | #include "vmregion.h" | 148 | #include "vmregion.h" |
| 135 | 149 | ||
| 136 | static struct arm_vmregion_head consistent_head = { | 150 | static struct arm_vmregion_head consistent_head = { |
| 137 | .vm_lock = __SPIN_LOCK_UNLOCKED(&consistent_head.vm_lock), | 151 | .vm_lock = __SPIN_LOCK_UNLOCKED(&consistent_head.vm_lock), |
| 138 | .vm_list = LIST_HEAD_INIT(consistent_head.vm_list), | 152 | .vm_list = LIST_HEAD_INIT(consistent_head.vm_list), |
| 139 | .vm_start = CONSISTENT_BASE, | ||
| 140 | .vm_end = CONSISTENT_END, | 153 | .vm_end = CONSISTENT_END, |
| 141 | }; | 154 | }; |
| 142 | 155 | ||
| @@ -155,7 +168,17 @@ static int __init consistent_init(void) | |||
| 155 | pmd_t *pmd; | 168 | pmd_t *pmd; |
| 156 | pte_t *pte; | 169 | pte_t *pte; |
| 157 | int i = 0; | 170 | int i = 0; |
| 158 | u32 base = CONSISTENT_BASE; | 171 | unsigned long base = consistent_base; |
| 172 | unsigned long num_ptes = (CONSISTENT_END - base) >> PGDIR_SHIFT; | ||
| 173 | |||
| 174 | consistent_pte = kmalloc(num_ptes * sizeof(pte_t), GFP_KERNEL); | ||
| 175 | if (!consistent_pte) { | ||
| 176 | pr_err("%s: no memory\n", __func__); | ||
| 177 | return -ENOMEM; | ||
| 178 | } | ||
| 179 | |||
| 180 | pr_debug("DMA memory: 0x%08lx - 0x%08lx:\n", base, CONSISTENT_END); | ||
| 181 | consistent_head.vm_start = base; | ||
| 159 | 182 | ||
| 160 | do { | 183 | do { |
| 161 | pgd = pgd_offset(&init_mm, base); | 184 | pgd = pgd_offset(&init_mm, base); |
| @@ -198,7 +221,7 @@ __dma_alloc_remap(struct page *page, size_t size, gfp_t gfp, pgprot_t prot) | |||
| 198 | size_t align; | 221 | size_t align; |
| 199 | int bit; | 222 | int bit; |
| 200 | 223 | ||
| 201 | if (!consistent_pte[0]) { | 224 | if (!consistent_pte) { |
| 202 | printk(KERN_ERR "%s: not initialised\n", __func__); | 225 | printk(KERN_ERR "%s: not initialised\n", __func__); |
| 203 | dump_stack(); | 226 | dump_stack(); |
| 204 | return NULL; | 227 | return NULL; |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index cc7e2d8be9aa..34409a08ba0d 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
| @@ -653,9 +653,6 @@ void __init mem_init(void) | |||
| 653 | " ITCM : 0x%08lx - 0x%08lx (%4ld kB)\n" | 653 | " ITCM : 0x%08lx - 0x%08lx (%4ld kB)\n" |
| 654 | #endif | 654 | #endif |
| 655 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | 655 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" |
| 656 | #ifdef CONFIG_MMU | ||
| 657 | " DMA : 0x%08lx - 0x%08lx (%4ld MB)\n" | ||
| 658 | #endif | ||
| 659 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" | 656 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" |
| 660 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n" | 657 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n" |
| 661 | #ifdef CONFIG_HIGHMEM | 658 | #ifdef CONFIG_HIGHMEM |
| @@ -674,9 +671,6 @@ void __init mem_init(void) | |||
| 674 | MLK(ITCM_OFFSET, (unsigned long) itcm_end), | 671 | MLK(ITCM_OFFSET, (unsigned long) itcm_end), |
| 675 | #endif | 672 | #endif |
| 676 | MLK(FIXADDR_START, FIXADDR_TOP), | 673 | MLK(FIXADDR_START, FIXADDR_TOP), |
| 677 | #ifdef CONFIG_MMU | ||
| 678 | MLM(CONSISTENT_BASE, CONSISTENT_END), | ||
| 679 | #endif | ||
| 680 | MLM(VMALLOC_START, VMALLOC_END), | 674 | MLM(VMALLOC_START, VMALLOC_END), |
| 681 | MLM(PAGE_OFFSET, (unsigned long)high_memory), | 675 | MLM(PAGE_OFFSET, (unsigned long)high_memory), |
| 682 | #ifdef CONFIG_HIGHMEM | 676 | #ifdef CONFIG_HIGHMEM |
| @@ -699,9 +693,6 @@ void __init mem_init(void) | |||
| 699 | * be detected at build time already. | 693 | * be detected at build time already. |
| 700 | */ | 694 | */ |
| 701 | #ifdef CONFIG_MMU | 695 | #ifdef CONFIG_MMU |
| 702 | BUILD_BUG_ON(VMALLOC_END > CONSISTENT_BASE); | ||
| 703 | BUG_ON(VMALLOC_END > CONSISTENT_BASE); | ||
| 704 | |||
| 705 | BUILD_BUG_ON(TASK_SIZE > MODULES_VADDR); | 696 | BUILD_BUG_ON(TASK_SIZE > MODULES_VADDR); |
| 706 | BUG_ON(TASK_SIZE > MODULES_VADDR); | 697 | BUG_ON(TASK_SIZE > MODULES_VADDR); |
| 707 | #endif | 698 | #endif |
diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h index 11be5cdbdd1a..3ec84b902243 100644 --- a/arch/arm/plat-mxc/include/mach/memory.h +++ b/arch/arm/plat-mxc/include/mach/memory.h | |||
| @@ -40,19 +40,4 @@ | |||
| 40 | # endif | 40 | # endif |
| 41 | #endif | 41 | #endif |
| 42 | 42 | ||
| 43 | #if defined(CONFIG_MX3_VIDEO) | ||
| 44 | /* | ||
| 45 | * Increase size of DMA-consistent memory region. | ||
| 46 | * This is required for mx3 camera driver to capture at least two QXGA frames. | ||
| 47 | */ | ||
| 48 | #define CONSISTENT_DMA_SIZE SZ_8M | ||
| 49 | |||
| 50 | #elif defined(CONFIG_MX1_VIDEO) || defined(CONFIG_VIDEO_MX2_HOSTSUPPORT) | ||
| 51 | /* | ||
| 52 | * Increase size of DMA-consistent memory region. | ||
| 53 | * This is required for i.MX camera driver to capture at least four VGA frames. | ||
| 54 | */ | ||
| 55 | #define CONSISTENT_DMA_SIZE SZ_4M | ||
| 56 | #endif /* CONFIG_MX1_VIDEO || CONFIG_VIDEO_MX2_HOSTSUPPORT */ | ||
| 57 | |||
| 58 | #endif /* __ASM_ARCH_MXC_MEMORY_H__ */ | 43 | #endif /* __ASM_ARCH_MXC_MEMORY_H__ */ |
diff --git a/arch/arm/plat-omap/include/plat/io.h b/arch/arm/plat-omap/include/plat/io.h index d72ec85c97e6..ebe67ea8d068 100644 --- a/arch/arm/plat-omap/include/plat/io.h +++ b/arch/arm/plat-omap/include/plat/io.h | |||
| @@ -309,6 +309,8 @@ extern void omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0, | |||
| 309 | void __iomem *omap_ioremap(unsigned long phys, size_t size, unsigned int type); | 309 | void __iomem *omap_ioremap(unsigned long phys, size_t size, unsigned int type); |
| 310 | void omap_iounmap(volatile void __iomem *addr); | 310 | void omap_iounmap(volatile void __iomem *addr); |
| 311 | 311 | ||
| 312 | extern void __init omap_init_consistent_dma_size(void); | ||
| 313 | |||
| 312 | #endif | 314 | #endif |
| 313 | 315 | ||
| 314 | #endif | 316 | #endif |
diff --git a/arch/arm/plat-omap/include/plat/memory.h b/arch/arm/plat-omap/include/plat/memory.h index e6720aa2d553..7f9df6f1e113 100644 --- a/arch/arm/plat-omap/include/plat/memory.h +++ b/arch/arm/plat-omap/include/plat/memory.h | |||
| @@ -85,18 +85,5 @@ | |||
| 85 | 85 | ||
| 86 | #endif /* CONFIG_ARCH_OMAP15XX */ | 86 | #endif /* CONFIG_ARCH_OMAP15XX */ |
| 87 | 87 | ||
| 88 | /* Override the ARM default */ | ||
| 89 | #ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE | ||
| 90 | |||
| 91 | #if (CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE == 0) | ||
| 92 | #undef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE | ||
| 93 | #define CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE 2 | ||
| 94 | #endif | ||
| 95 | |||
| 96 | #define CONSISTENT_DMA_SIZE \ | ||
| 97 | (((CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE + 1) & ~1) * 1024 * 1024) | ||
| 98 | |||
| 99 | #endif | ||
| 100 | |||
| 101 | #endif | 88 | #endif |
| 102 | 89 | ||
diff --git a/arch/arm/plat-omap/io.c b/arch/arm/plat-omap/io.c index f1ecfa9fc61d..e9b0e23edd0a 100644 --- a/arch/arm/plat-omap/io.c +++ b/arch/arm/plat-omap/io.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
| 13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
| 14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
| 15 | #include <linux/dma-mapping.h> | ||
| 15 | 16 | ||
| 16 | #include <plat/omap7xx.h> | 17 | #include <plat/omap7xx.h> |
| 17 | #include <plat/omap1510.h> | 18 | #include <plat/omap1510.h> |
| @@ -139,3 +140,10 @@ void omap_iounmap(volatile void __iomem *addr) | |||
| 139 | __iounmap(addr); | 140 | __iounmap(addr); |
| 140 | } | 141 | } |
| 141 | EXPORT_SYMBOL(omap_iounmap); | 142 | EXPORT_SYMBOL(omap_iounmap); |
| 143 | |||
| 144 | void __init omap_init_consistent_dma_size(void) | ||
| 145 | { | ||
| 146 | #ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE | ||
| 147 | init_consistent_dma_size(CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE << 20); | ||
| 148 | #endif | ||
| 149 | } | ||
diff --git a/kernel/events/core.c b/kernel/events/core.c index 0f857782d06f..fbe38f2e8edb 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c | |||
| @@ -5758,6 +5758,7 @@ struct pmu *perf_init_event(struct perf_event *event) | |||
| 5758 | pmu = idr_find(&pmu_idr, event->attr.type); | 5758 | pmu = idr_find(&pmu_idr, event->attr.type); |
| 5759 | rcu_read_unlock(); | 5759 | rcu_read_unlock(); |
| 5760 | if (pmu) { | 5760 | if (pmu) { |
| 5761 | event->pmu = pmu; | ||
| 5761 | ret = pmu->event_init(event); | 5762 | ret = pmu->event_init(event); |
| 5762 | if (ret) | 5763 | if (ret) |
| 5763 | pmu = ERR_PTR(ret); | 5764 | pmu = ERR_PTR(ret); |
| @@ -5765,6 +5766,7 @@ struct pmu *perf_init_event(struct perf_event *event) | |||
| 5765 | } | 5766 | } |
| 5766 | 5767 | ||
| 5767 | list_for_each_entry_rcu(pmu, &pmus, entry) { | 5768 | list_for_each_entry_rcu(pmu, &pmus, entry) { |
| 5769 | event->pmu = pmu; | ||
| 5768 | ret = pmu->event_init(event); | 5770 | ret = pmu->event_init(event); |
| 5769 | if (!ret) | 5771 | if (!ret) |
| 5770 | goto unlock; | 5772 | goto unlock; |
| @@ -5891,8 +5893,6 @@ done: | |||
| 5891 | return ERR_PTR(err); | 5893 | return ERR_PTR(err); |
| 5892 | } | 5894 | } |
| 5893 | 5895 | ||
| 5894 | event->pmu = pmu; | ||
| 5895 | |||
| 5896 | if (!event->parent) { | 5896 | if (!event->parent) { |
| 5897 | if (event->attach_state & PERF_ATTACH_TASK) | 5897 | if (event->attach_state & PERF_ATTACH_TASK) |
| 5898 | jump_label_inc(&perf_sched_events); | 5898 | jump_label_inc(&perf_sched_events); |
