Re: [jornada] We all need to move to 2.6

From: Lorant Toth <LorantToth_at_gmx.net>
Date: Mon, 25 Apr 2005 13:28:02 +0200

Hello,

While taking a first look at the linexec code (linexec-xda-1.0-j720 from
nyanyan website I think - don't know if this is obsolete!?) I found the
following code right before the kernel jmp.

-> NB: The comments are how *I* interpret the assembler - and I am a
total newbie to ARM asm! I could be very wrong! <-

mov r0, #0 ; move 0 into r0 -> corresponds with 2.6
mov r1, r10 ; mach_type into r1 -> as req. for 2.6
ldr r2, [r2, #0] ; Load mem from r2 + 0 into r2 ????
mov r2, #0 ; clear r2 to 0

; then jumps to kernel
...

The last two steps I don't understand, first it loads from mem address
r2 into r2 and then it sets r2 to zero. why? As i said, I am an arm newbie.
Anyway, kernel 2.6 expects "r2 = physical address of tagged list in
system RAM". This does not seem to be the case. Could anybody explain or
comment on this. May this be the problem? Namely that the kernel cannot
find the tagged list?

On the other hand, the 2.4 documents list the same register requirements
(r0 = 0, r1 = mach_type, r2 = tagged_list) but 2.4 works.

- Lorant
Received on Mon Apr 25 2005 - 07:31:45 EDT

This archive was generated by hypermail 2.2.0 : Mon Jul 25 2005 - 17:26:20 EDT