diff options
author | Simon Horman <horms+renesas@verge.net.au> | 2013-08-06 04:56:43 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-08-06 04:56:43 -0400 |
commit | 21c7a134051f2f753d359a02923223ad9181da31 (patch) | |
tree | 15b4e72ba4f159ad3ca4e00540b19e8715243d2a | |
parent | 81b9d5351fa96caad4accc6711bc1b9342927d4a (diff) | |
parent | 93d8a6fbe69a629a7bb37bb546699a5c49963dc5 (diff) |
Merge tag 'renesas-fixes-for-v3.12' into soc2-base
Renesas ARM based SoC fixes for v3.12
* Fix TPU clock name for r8a7740 SoC
* Update romImage to relocate appended DTB
* Thumb fixes
-rw-r--r-- | arch/arm/boot/compressed/head-shmobile.S | 43 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/clock-r8a7740.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/headsmp-scu.S | 4 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/headsmp.S | 6 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/zboot.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/sleep-sh7372.S | 2 |
6 files changed, 50 insertions, 9 deletions
diff --git a/arch/arm/boot/compressed/head-shmobile.S b/arch/arm/boot/compressed/head-shmobile.S index e2d636336b7c..e7f80928949c 100644 --- a/arch/arm/boot/compressed/head-shmobile.S +++ b/arch/arm/boot/compressed/head-shmobile.S | |||
@@ -55,12 +55,47 @@ __tmp_stack: | |||
55 | __continue: | 55 | __continue: |
56 | #endif /* CONFIG_ZBOOT_ROM_MMC || CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI */ | 56 | #endif /* CONFIG_ZBOOT_ROM_MMC || CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI */ |
57 | 57 | ||
58 | /* Set board ID necessary for boot */ | 58 | adr r0, dtb_info |
59 | ldr r7, 1f @ Set machine type register | 59 | ldmia r0, {r1, r3, r4, r5, r7} |
60 | mov r8, #0 @ pass null pointer as atag | 60 | |
61 | sub r0, r0, r1 @ calculate the delta offset | ||
62 | add r5, r5, r0 @ _edata | ||
63 | |||
64 | ldr lr, [r5, #0] @ check if valid DTB is present | ||
65 | cmp lr, r3 | ||
66 | bne 0f | ||
67 | |||
68 | add r9, r7, #31 @ rounded up to a multiple | ||
69 | bic r9, r9, #31 @ ... of 32 bytes | ||
70 | |||
71 | add r6, r9, r5 @ copy from _edata | ||
72 | add r9, r9, r4 @ to MEMORY_START | ||
73 | |||
74 | 1: ldmdb r6!, {r0 - r3, r10 - r12, lr} | ||
75 | cmp r6, r5 | ||
76 | stmdb r9!, {r0 - r3, r10 - r12, lr} | ||
77 | bhi 1b | ||
78 | |||
79 | /* Success: Zero board ID, pointer to start of memory for atag/dtb */ | ||
80 | mov r7, #0 | ||
81 | mov r8, r4 | ||
61 | b 2f | 82 | b 2f |
62 | 83 | ||
63 | 1 : .long MACH_TYPE | 84 | .align 2 |
85 | dtb_info: | ||
86 | .word dtb_info | ||
87 | #ifndef __ARMEB__ | ||
88 | .word 0xedfe0dd0 @ sig is 0xd00dfeed big endian | ||
89 | #else | ||
90 | .word 0xd00dfeed | ||
91 | #endif | ||
92 | .word MEMORY_START | ||
93 | .word _edata | ||
94 | .word 0x4000 @ maximum DTB size | ||
95 | 0: | ||
96 | /* Failure: Zero board ID, NULL atag/dtb */ | ||
97 | mov r7, #0 | ||
98 | mov r8, #0 @ pass null pointer as atag | ||
64 | 2 : | 99 | 2 : |
65 | 100 | ||
66 | #endif /* CONFIG_ZBOOT_ROM */ | 101 | #endif /* CONFIG_ZBOOT_ROM */ |
diff --git a/arch/arm/mach-shmobile/clock-r8a7740.c b/arch/arm/mach-shmobile/clock-r8a7740.c index de10fd78bf2b..f4265e52432c 100644 --- a/arch/arm/mach-shmobile/clock-r8a7740.c +++ b/arch/arm/mach-shmobile/clock-r8a7740.c | |||
@@ -596,7 +596,7 @@ static struct clk_lookup lookups[] = { | |||
596 | CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), | 596 | CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), |
597 | CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]), | 597 | CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]), |
598 | CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]), | 598 | CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]), |
599 | CLKDEV_DEV_ID("renesas_tpu_pwm", &mstp_clks[MSTP304]), | 599 | CLKDEV_DEV_ID("renesas-tpu-pwm", &mstp_clks[MSTP304]), |
600 | 600 | ||
601 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]), | 601 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]), |
602 | CLKDEV_DEV_ID("e6870000.sdhi", &mstp_clks[MSTP415]), | 602 | CLKDEV_DEV_ID("e6870000.sdhi", &mstp_clks[MSTP415]), |
diff --git a/arch/arm/mach-shmobile/headsmp-scu.S b/arch/arm/mach-shmobile/headsmp-scu.S index 6f9865467258..0a77488df870 100644 --- a/arch/arm/mach-shmobile/headsmp-scu.S +++ b/arch/arm/mach-shmobile/headsmp-scu.S | |||
@@ -38,13 +38,15 @@ ENTRY(shmobile_boot_scu) | |||
38 | lsl r1, r1, #3 @ we will shift by cpu_id * 8 bits | 38 | lsl r1, r1, #3 @ we will shift by cpu_id * 8 bits |
39 | ldr r2, [r0, #8] @ SCU Power Status Register | 39 | ldr r2, [r0, #8] @ SCU Power Status Register |
40 | mov r3, #3 | 40 | mov r3, #3 |
41 | bic r2, r2, r3, lsl r1 @ Clear bits of our CPU (Run Mode) | 41 | lsl r3, r3, r1 |
42 | bic r2, r2, r3 @ Clear bits of our CPU (Run Mode) | ||
42 | str r2, [r0, #8] @ write back | 43 | str r2, [r0, #8] @ write back |
43 | 44 | ||
44 | b shmobile_invalidate_start | 45 | b shmobile_invalidate_start |
45 | ENDPROC(shmobile_boot_scu) | 46 | ENDPROC(shmobile_boot_scu) |
46 | 47 | ||
47 | .text | 48 | .text |
49 | .align 2 | ||
48 | .globl shmobile_scu_base | 50 | .globl shmobile_scu_base |
49 | shmobile_scu_base: | 51 | shmobile_scu_base: |
50 | .space 4 | 52 | .space 4 |
diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S index 559d1ce5f57e..dfb41dfc8948 100644 --- a/arch/arm/mach-shmobile/headsmp.S +++ b/arch/arm/mach-shmobile/headsmp.S | |||
@@ -26,12 +26,16 @@ ENDPROC(shmobile_invalidate_start) | |||
26 | * This will be mapped at address 0 by SBAR register. | 26 | * This will be mapped at address 0 by SBAR register. |
27 | * We need _long_ jump to the physical address. | 27 | * We need _long_ jump to the physical address. |
28 | */ | 28 | */ |
29 | .arm | ||
29 | .align 12 | 30 | .align 12 |
30 | ENTRY(shmobile_boot_vector) | 31 | ENTRY(shmobile_boot_vector) |
31 | ldr r0, 2f | 32 | ldr r0, 2f |
32 | ldr pc, 1f | 33 | ldr r1, 1f |
34 | bx r1 | ||
35 | |||
33 | ENDPROC(shmobile_boot_vector) | 36 | ENDPROC(shmobile_boot_vector) |
34 | 37 | ||
38 | .align 2 | ||
35 | .globl shmobile_boot_fn | 39 | .globl shmobile_boot_fn |
36 | shmobile_boot_fn: | 40 | shmobile_boot_fn: |
37 | 1: .space 4 | 41 | 1: .space 4 |
diff --git a/arch/arm/mach-shmobile/include/mach/zboot.h b/arch/arm/mach-shmobile/include/mach/zboot.h index f2d8744c1f14..c3c4669a2d72 100644 --- a/arch/arm/mach-shmobile/include/mach/zboot.h +++ b/arch/arm/mach-shmobile/include/mach/zboot.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef ZBOOT_H | 1 | #ifndef ZBOOT_H |
2 | #define ZBOOT_H | 2 | #define ZBOOT_H |
3 | 3 | ||
4 | #include <asm/mach-types.h> | ||
5 | #include <mach/zboot_macros.h> | 4 | #include <mach/zboot_macros.h> |
6 | 5 | ||
7 | /************************************************** | 6 | /************************************************** |
@@ -11,7 +10,6 @@ | |||
11 | **************************************************/ | 10 | **************************************************/ |
12 | 11 | ||
13 | #ifdef CONFIG_MACH_MACKEREL | 12 | #ifdef CONFIG_MACH_MACKEREL |
14 | #define MACH_TYPE MACH_TYPE_MACKEREL | ||
15 | #define MEMORY_START 0x40000000 | 13 | #define MEMORY_START 0x40000000 |
16 | #include "mach/head-mackerel.txt" | 14 | #include "mach/head-mackerel.txt" |
17 | #else | 15 | #else |
diff --git a/arch/arm/mach-shmobile/sleep-sh7372.S b/arch/arm/mach-shmobile/sleep-sh7372.S index 53f4840e4949..9782862899e8 100644 --- a/arch/arm/mach-shmobile/sleep-sh7372.S +++ b/arch/arm/mach-shmobile/sleep-sh7372.S | |||
@@ -41,6 +41,7 @@ | |||
41 | sh7372_resume_core_standby_sysc: | 41 | sh7372_resume_core_standby_sysc: |
42 | ldr pc, 1f | 42 | ldr pc, 1f |
43 | 43 | ||
44 | .align 2 | ||
44 | .globl sh7372_cpu_resume | 45 | .globl sh7372_cpu_resume |
45 | sh7372_cpu_resume: | 46 | sh7372_cpu_resume: |
46 | 1: .space 4 | 47 | 1: .space 4 |
@@ -96,6 +97,7 @@ sh7372_do_idle_sysc: | |||
96 | 1: | 97 | 1: |
97 | b 1b | 98 | b 1b |
98 | 99 | ||
100 | .align 2 | ||
99 | kernel_flush: | 101 | kernel_flush: |
100 | .word v7_flush_dcache_all | 102 | .word v7_flush_dcache_all |
101 | #endif | 103 | #endif |