[U-Boot] [PATCH 1/4] mpc83xx: Make start.S true PIC
Wolfgang Denk
wd at denx.de
Sun Jan 9 21:44:08 CET 2011
Dear Joakim Tjernlund,
In message <1292838435-14958-1-git-send-email-Joakim.Tjernlund at 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 at 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 at 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.
More information about the U-Boot
mailing list