提交 70431e8a 编写于 作者: J Joakim Tjernlund 提交者: Kim Phillips

Make MPC83xx one step closer to full relocation.

Remove a few absolute references to CFG_MONITOR_BASE for ppc/mpc83xx
and use GOT relative reference.
Signed-off-by: NJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
上级 5b2793a3
......@@ -172,8 +172,11 @@ boot_warm: /* time t 5 */
/* there and deflate the flash size back to minimal size */
/*------------------------------------------------------------*/
bl map_flash_by_law1
lis r4, (CFG_MONITOR_BASE)@h
ori r4, r4, (CFG_MONITOR_BASE)@l
GET_GOT /* initialize GOT access */
lwz r4, GOT(_start)
addi r4, r4, -EXC_OFF_SYS_RESET
addi r5, r4, in_flash - _start + EXC_OFF_SYS_RESET
mtlr r5
blr
......@@ -872,8 +875,8 @@ relocate_code:
mr r10, r5 /* Save copy of Destination Address */
mr r3, r5 /* Destination Address */
lis r4, CFG_MONITOR_BASE@h /* Source Address */
ori r4, r4, CFG_MONITOR_BASE@l
lwz r4, GOT(_start)
addi r4, r4, -EXC_OFF_SYS_RESET
lwz r5, GOT(__init_end)
sub r5, r5, r4
li r6, CFG_CACHELINE_SIZE /* Cache Line Size */
......
......@@ -120,6 +120,7 @@ DECLARE_GLOBAL_DATA_PTR;
#define TOTAL_MALLOC_LEN CFG_MALLOC_LEN
#endif
extern ulong _start;
extern ulong __init_end;
extern ulong _end;
ulong monitor_flash_len;
......@@ -434,7 +435,7 @@ void board_init_f (ulong bootflag)
* - monitor code
* - board info struct
*/
len = (ulong)&_end - CFG_MONITOR_BASE;
len = (ulong)&_end - (ulong)&_start + EXC_OFF_SYS_RESET;
#ifndef CONFIG_MAX_MEM_MAPPED
#define CONFIG_MAX_MEM_MAPPED (256 << 20)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册