[PATCH v3] ARM: xip: Use correct symbol for end of ROM marker

Magnus Damm magnus.damm at gmail.com
Tue Nov 17 21:12:01 PST 2015


Hi Nicolas,

On Wed, Nov 18, 2015 at 12:58 PM, Nicolas Pitre <nico at fluxnic.net> wrote:
> On Tue, 17 Nov 2015, Chris Brandt wrote:
>
>> I think this one is more of a coding issue.
>> These were the attempts to fix the temporary stack issue:
>>
>> My first patch:
>> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/357106.html
>>
>> Magnus's try:
>> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-November/383394.html
>
> Here's my proposal:
>
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index de2b246fed..2d0ac32320 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -274,10 +274,12 @@ __v7_ca15mp_setup:
>  __v7_b15mp_setup:
>  __v7_ca17mp_setup:
>         mov     r10, #0
> -1:     adr     r12, __v7_setup_stack           @ the local stack
> -       stmia   r12, {r0-r5, lr}                @ v7_invalidate_l1 touches r0-r6
> +1:     adr     r0, __v7_setup_stack_ptr
> +       ldr     r12, [r0]
> +       add     r12, r12, r0                    @ the local stack
> +       stmia   r12, {r1-r6, lr}                @ v7_invalidate_l1 touches r0-r6
>         bl      v7_invalidate_l1
> -       ldmia   r12, {r0-r5, lr}
> +       ldmia   r12, {r1-r6, lr}
>  #ifdef CONFIG_SMP
>         ALT_SMP(mrc     p15, 0, r0, c1, c0, 1)
>         ALT_UP(mov      r0, #(1 << 6))          @ fake it for UP

[snip]

> @@ -480,11 +484,16 @@ __errata_finish:
>         orr     r0, r0, r6                      @ set them
>   THUMB(        orr     r0, r0, #1 << 30        )       @ Thumb exceptions
>         ret     lr                              @ return to head.S:__ret
> +
> +       .align  2
> +__v7_setup_stack_ptr:
> +       .word   __v7_setup_stack - .
>  ENDPROC(__v7_setup)

Thanks for your take on this. I did a couple of local implementations
before submitting, and one of the issues I ran into was the need to
get rid of PAGE_OFFSET due to the code running without MMU enabled. I
suppose that is taken care of the "__v7_setup_stack - ." calculation
above?

Cheers,

/ magnus



More information about the linux-arm-kernel mailing list