Renesas ARM based SoC fixes for v3.12
cover Renesas ARM based SoC fixes for v3.12
Hi Olof, Hi Arnd,
please consider the following fixes v3.12.
The following changes since commit ad81f0545ef01ea651886dddac4bef6cec930092:
Linux 3.11-rc1 (2013-07-14 15:18:27 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git tags/renesas-fixes-for-v3.12
for you to fetch changes up to 93d8a6fbe69a629a7bb37bb546699a5c49963dc5:
ARM: shmobile: r8a7740: Fix TPU clock name (2013-07-19 11:12:35 +0900)
----------------------------------------------------------------
Renesas ARM based SoC fixes for v3.12
* Fix TPU clock name for r8a7740 SoC
* Update romImage to relocate appended DTB
* Thumb fixes
----------------------------------------------------------------
Laurent Pinchart (1):
ARM: shmobile: r8a7740: Fix TPU clock name
Magnus Damm (1):
ARM: shmobile: Update romImage to relocate appended DTB
Tetsuyuki Kobayashi (3):
ARM: shmobile: fix compile error when CONFIG_THUMB2_KERNEL=y
ARM: shmobile: Force ARM mode to compile reset vector for secondary CPUs
ARM: shmobile: Insert align directives before 4 bytes data
arch/arm/boot/compressed/head-shmobile.S | 43 ++++++++++++++++++++++++++--- arch/arm/mach-shmobile/clock-r8a7740.c | 2 +- arch/arm/mach-shmobile/headsmp-scu.S | 4 ++- arch/arm/mach-shmobile/headsmp.S | 6 +++- arch/arm/mach-shmobile/include/mach/zboot.h | 2 -- arch/arm/mach-shmobile/sleep-sh7372.S | 2 ++ 6 files changed, 50 insertions(+), 9 deletions(-)
PATCH 1/5 ARM: shmobile: Update romImage to relocate appended DTB
From: Magnus Damm <[email protected]>
Instead of relying of MACH_TYPE for board identification, update the romImage code to relocate an appended DTB to the beginning of RAM. This implementation is independent of ARM_APPENDED_DTB, this because it is necessary to copy the DTB to memory so the kernel can access it.
Without this patch Mackerel does not boot via the Mask ROM over USB (r_usb_boot) - this since non-DT boot was broken ages ago in commit:
0ce53cd ARM: mach-shmobile: Use DT_MACHINE for mackerel
--- arch/arm/boot/compressed/head-shmobile.S | 43 ++++++++++++++++++++++++++--- arch/arm/mach-shmobile/include/mach/zboot.h | 2 -- 2 files changed, 39 insertions(+), 6 deletions(-)
arch/arm/boot/compressed/head-shmobile.S +39 -4
@@ -55,12 +55,47 @@ __tmp_stack: __continue: #endif /* CONFIG_ZBOOT_ROM_MMC || CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI */ - /* Set board ID necessary for boot */ - ldr r7, 1f @ Set machine type register - mov r8, #0 @ pass null pointer as atag + adr r0, dtb_info + ldmia r0, {r1, r3, r4, r5, r7} + + sub r0, r0, r1 @ calculate the delta offset + add r5, r5, r0 @ _edata + + ldr lr, [r5, #0] @ check if valid DTB is present + cmp lr, r3 + bne 0f + + add r9, r7, #31 @ rounded up to a multiple + bic r9, r9, #31 @ ... of 32 bytes + + add r6, r9, r5 @ copy from _edata + add r9, r9, r4 @ to MEMORY_START + +1: ldmdb r6!, {r0 - r3, r10 - r12, lr} + cmp r6, r5 + stmdb r9!, {r0 - r3, r10 - r12, lr} + bhi 1b + + /* Success: Zero board ID, pointer to start of memory for atag/dtb */ + mov r7, #0 + mov r8, r4 b 2f -1 : .long MACH_TYPE + .align 2 +dtb_info: + .word dtb_info +#ifndef __ARMEB__ + .word 0xedfe0dd0 @ sig is 0xd00dfeed big endian +#else + .word 0xd00dfeed +#endif + .word MEMORY_START + .word _edata + .word 0x4000 @ maximum DTB size +0: + /* Failure: Zero board ID, NULL atag/dtb */ + mov r7, #0 + mov r8, #0 @ pass null pointer as atag 2 : #endif /* CONFIG_ZBOOT_ROM */
arch/arm/mach-shmobile/include/mach/zboot.h +0 -2
@@ -1,7 +1,6 @@#ifndef ZBOOT_H #define ZBOOT_H -#include <asm/mach-types.h> #include <mach/zboot_macros.h> /**************************************************
@@ -11,7 +10,6 @@**************************************************/ #ifdef CONFIG_MACH_MACKEREL -#define MACH_TYPE MACH_TYPE_MACKEREL#define MEMORY_START 0x40000000#include "mach/head-mackerel.txt" #else
Signature · 1 line
1.8.2.1
PATCH 2/5 ARM: shmobile: fix compile error when CONFIG_THUMB2_KERNEL=y
In reply to Simon HormanFrom: Tetsuyuki Kobayashi <[email protected]>
On KZM-A9-GT board (SMP), when CONFIG_THUMB2_KERNEL=y it fails to compile
AS arch/arm/mach-shmobile/headsmp-scu.o
/proj/koba/kernel/arm-soc/arch/arm/mach-shmobile/headsmp-scu.S: Assembler messages:
/proj/koba/kernel/arm-soc/arch/arm/mach-shmobile/headsmp-scu.S:41: Error: shift must be constant -- `bic r2,r2,r3,lsl r1' make[2]: *** [arch/arm/mach-shmobile/headsmp-scu.o] Error 1
make[1]: *** [arch/arm/mach-shmobile] Error 2
make: *** [sub-make] Error 2
Instruction `bic r2,r2,r3,lsl r1' is not supported in thumb mode. This patch split it into 2 instructions.
--- arch/arm/mach-shmobile/headsmp-scu.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/mach-shmobile/headsmp-scu.S +2 -1
@@ -38,7 +38,8 @@ ENTRY(shmobile_boot_scu) lsl r1, r1, #3 @ we will shift by cpu_id * 8 bits ldr r2, [r0, #8] @ SCU Power Status Register mov r3, #3 - bic r2, r2, r3, lsl r1 @ Clear bits of our CPU (Run Mode) + lsl r3, r3, r1 + bic r2, r2, r3 @ Clear bits of our CPU (Run Mode) str r2, [r0, #8] @ write back b shmobile_invalidate_start
Signature · 1 line
1.8.2.1
PATCH 3/5 ARM: shmobile: Force ARM mode to compile reset vector for secondary CPUs
In reply to Simon HormanFrom: Tetsuyuki Kobayashi <[email protected]>
Instructions start from boot vector must be ARM mode.
This patch specify ARM mode explicitly and use 'bx' instruction to be able to change to Thumb mode.
--- arch/arm/mach-shmobile/headsmp.S | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
arch/arm/mach-shmobile/headsmp.S +4 -1
@@ -26,10 +26,13 @@ ENDPROC(shmobile_invalidate_start) * This will be mapped at address 0 by SBAR register. * We need _long_ jump to the physical address. */ + .arm .align 12 ENTRY(shmobile_boot_vector) ldr r0, 2f - ldr pc, 1f + ldr r1, 1f + bx r1 + ENDPROC(shmobile_boot_vector) .globl shmobile_boot_fn
Signature · 1 line
1.8.2.1
PATCH 4/5 ARM: shmobile: Insert align directives before 4 bytes data
In reply to Simon HormanFrom: Tetsuyuki Kobayashi <[email protected]>
In thumb2 mode instructions are not align to 4 byte. This patch insert align directives before putting 4 byte data.
--- arch/arm/mach-shmobile/headsmp-scu.S | 1 + arch/arm/mach-shmobile/headsmp.S | 1 + arch/arm/mach-shmobile/sleep-sh7372.S | 2 ++ 3 files changed, 4 insertions(+)
arch/arm/mach-shmobile/headsmp-scu.S +1 -0
@@ -46,6 +46,7 @@ ENTRY(shmobile_boot_scu) ENDPROC(shmobile_boot_scu) .text + .align 2 .globl shmobile_scu_base shmobile_scu_base: .space 4
arch/arm/mach-shmobile/headsmp.S +1 -0
@@ -35,6 +35,7 @@ ENTRY(shmobile_boot_vector) ENDPROC(shmobile_boot_vector) + .align 2 .globl shmobile_boot_fn shmobile_boot_fn: 1: .space 4
arch/arm/mach-shmobile/sleep-sh7372.S +2 -0
@@ -41,6 +41,7 @@ sh7372_resume_core_standby_sysc: ldr pc, 1f + .align 2 .globl sh7372_cpu_resume sh7372_cpu_resume: 1: .space 4
@@ -96,6 +97,7 @@ sh7372_do_idle_sysc: 1: b 1b + .align 2 kernel_flush: .word v7_flush_dcache_all #endif
Signature · 1 line
1.8.2.1
PATCH 5/5 ARM: shmobile: r8a7740: Fix TPU clock name
In reply to Simon HormanFrom: Laurent Pinchart <[email protected]>
The TPU device is called renesas-tpu-pwm, not renesas_tpu_pwm. Fix the clock name accordingly.
--- arch/arm/mach-shmobile/clock-r8a7740.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-shmobile/clock-r8a7740.c +1 -1
@@ -596,7 +596,7 @@ static struct clk_lookup lookups[] = {CLKDEV_DEV_ID ("e6bd0000.mmcif" , &mstp_clks[MSTP312 ]),CLKDEV_DEV_ID ("r8a7740-gether" , &mstp_clks[MSTP309 ]),CLKDEV_DEV_ID ("e9a00000.sh-eth" , &mstp_clks[MSTP309 ]), -CLKDEV_DEV_ID ("renesas_tpu_pwm" , &mstp_clks[MSTP304 ]), +CLKDEV_DEV_ID ("renesas-tpu-pwm" , &mstp_clks[MSTP304 ]),CLKDEV_DEV_ID ("sh_mobile_sdhi.2" , &mstp_clks[MSTP415 ]), CLKDEV_DEV_ID("e6870000.sdhi", &mstp_clks[MSTP415]),
Signature · 1 line
1.8.2.1
cover Renesas ARM based SoC fixes for v3.12
In reply to Simon HormanQuoted 10 lines · Simon Horman
Hi Olof, Hi Arnd,
please consider the following fixes v3.12.The following changes since commit
ad81f0545ef01ea651886dddac4bef6cec930092:Linux 3.11-rc1 (2013-07-14 15:18:27 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.gittags/renesas-fixes-for-v3.12
Pulled.
-Olof