
9 Jan
2011
9 Jan
'11
9:44 p.m.
Dear Joakim Tjernlund,
In message 1292838435-14958-1-git-send-email-Joakim.Tjernlund@transmode.se you wrote:
Remove dependencies on link address. Use GOT and add an new function to calculate the actual address.
Signed-off-by: Joakim Tjernlund Joakim.Tjernlund@transmode.se
arch/powerpc/cpu/mpc83xx/start.S | 35 +++++++++++++++++++++++++++-------- 1 files changed, 27 insertions(+), 8 deletions(-)
It seems this code introduces some subtle changes.
- lis r4, (CONFIG_SYS_MONITOR_BASE)@h
- ori r4, r4, (CONFIG_SYS_MONITOR_BASE)@l
- addi r5, r4, in_flash - _start + EXC_OFF_SYS_RESET
- mtlr r5
The original code references CONFIG_SYS_MONITOR_BASE.
- bl add_flash_base
...
+add_flash_base:
- /* Check if already inside flash address space. */
- /* if so, do not add CONFIG_SYS_FLASH_BASE */
- lis r4, (CONFIG_SYS_FLASH_BASE)@h
- ori r4, r4, (CONFIG_SYS_FLASH_BASE)@l
- cmplw cr0, r3, r4
- ble cr0, 2f /* r3 < r4 ? */
- lis r6, (CONFIG_SYS_FLASH_BASE+(CONFIG_SYS_FLASH_SIZE*1024*1024-1))@h
- ori r6, r6, (CONFIG_SYS_FLASH_BASE+(CONFIG_SYS_FLASH_SIZE*1024*1024-1))@l
- cmplw cr0, r3, r6
- blelr cr0 /* r3 < r6 ? */
+2: add r3,r3,r4
- blr
But your new code does not reference CONFIG_SYS_MONITOR_BASE at all, but uses CONFIG_SYS_FLASH_BASE instead.
On which boards has this been tested?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Q: How many DEC repairman does it take to fix a flat ?
A: Five; four to hold the car up and one to swap tires.