[PATCH v2] ARM: map ATAGs when not in first 1MB of RAM

Tony Lindgren tony at atomide.com
Mon Feb 7 11:23:03 EST 2011


* Rob Herring <robherring2 at gmail.com> [110128 07:10]:
> Russell,
> 
> On 01/28/2011 08:10 AM, Russell King - ARM Linux wrote:
> >On Fri, Jan 28, 2011 at 08:00:46AM -0600, Rob Herring wrote:
> >>@@ -206,11 +206,17 @@ __create_page_tables:
> >>  #endif
> >>
> >>  	/*
> >>-	 * Then map first 1MB of ram in case it contains our boot params.
> >>+	 * Then map boot params address in r2 or
> >>+	 * the first 1MB of ram if boot params address is not specified.
> >>  	 */
> >>-	add	r0, r4, #PAGE_OFFSET>>  18
> >>-	orr	r6, r7, r8
> >>-	str	r6, [r0]
> >>+	mov	r0, r2, lsr #20
> >>+	movs	r0, r0, lsl #20
> >>+	moveq	r0, r8
> >>+	sub	r3, r0, r8
> >>+	add	r3, r3, #PAGE_OFFSET
> >>+	add	r3, r4, r3, lsr #18
> >>+	orr	r6, r7, r0
> >>+	str	r6, [r3]
> >
> >Wouldn't:
> >	str	r6, [r4, r3, lsr #18]
> >work here?
> 
> Not on Thumb2:
> 
> arch/arm/kernel/head.S:218: Error: Thumb supports only LSL in
> shifted register indexing -- `str r6,[r4,r3,lsr#18]'

Acked-by: Tony Lindgren <tony at atomide.com>



More information about the linux-arm-kernel mailing list