[U-Boot-Users] another question of relocate_code
YanMin Qiao
sepherosa at sjtu.edu.cn
Sat Jan 4 15:35:57 CET 2003
Wolfgang Denk wrote:
>In message <3E16E5AE.4090002 at sjtu.edu.cn> you wrote:
>
>
>>Hi all:
>>
>><u-boot>/cpu/mpc8xx/start.S
>>
>>....
>>relocate_code:
>> mr r1, r3 /* Set new stack pointer */
>> mr r9, r4 /* Save copy of Global Data pointer */
>> mr r10, r5 /* Save copy of Destination Address */
>>....
>> sub r15, r10, r4
>>
>> /* First our own GOT */
>> add r14, r14, r15
>> /* the the one used by the C code */
>> add r30, r30, r15
>> ^^^
>>....
>>
>>I have followed the code to the end of board_init_r(). I didn't figured
>>out where r30 is used
>>as mentioned.
>>
>>
>
>Which part of this section from the README didn't you understand?
>
> ... we are restricted by the
> relevant (E)ABI specifications for the current architecture, and by
> GCC's implementation.
>
> For PowerPC, the following registers have specific use:
> R1: stack pointer
> R2: TOC pointer
> R3-R4: parameter passing and return values
> R5-R10: parameter passing
> R13: small data area pointer
> R30: GOT pointer
> R31: frame pointer
>
> (U-Boot also uses R14 as internal GOT pointer.)
>
>If you want to know all the ugly details I recommend to read the
>(E)ABI specifications and the relevant parts of the GCC source code.
>
>Best regards,
>
>Wolfgang Denk
>
>
>
thanks for the mention of eabi :)
Best regards
More information about the U-Boot
mailing list