Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com> Cc: Richard Woodruff <r-woodru...@ti.com> --- board/omap2420h4/lowlevel_init.S | 23 +++++++++++++++++++++++ cpu/arm1136/start.S | 20 +++----------------- include/configs/omap2420h4.h | 1 + 3 files changed, 27 insertions(+), 17 deletions(-)
diff --git a/board/omap2420h4/lowlevel_init.S b/board/omap2420h4/lowlevel_init.S index 9752fc4..e017e1e 100644 --- a/board/omap2420h4/lowlevel_init.S +++ b/board/omap2420h4/lowlevel_init.S @@ -158,6 +158,29 @@ pll_div_add: pll_div_val: .word DPLL_VAL /* DPLL setting (300MHz default) */ +.global board_pre_lowlevel_init +board_pre_lowlevel_init: + /* Copy vectors to mask ROM indirect addr */ + add r0, r0, #4 /* skip reset vector */ + mov r2, #64 /* r2 <- size to copy */ + add r2, r0, r2 /* r2 <- source end address */ + mov r1, #SRAM_OFFSET0 /* build vect addr */ + mov r3, #SRAM_OFFSET1 + add r1, r1, r3 + mov r3, #SRAM_OFFSET2 + add r1, r1, r3 +next: + ldmia r0!, {r3-r10} /* copy from source address [r0] */ + stmia r1!, {r3-r10} /* copy to target address [r1] */ + cmp r0, r2 /* until source end address [r2] */ + bne next /* loop until equal */ + mov ip, lr /* save link reg across call */ + bl cpy_clk_code /* put dpll adjust code behind vectors */ + mov lr, ip /* restore link reg */ + + /* the mask ROM code should have PLL and others stable */ + mov pc, lr + .globl lowlevel_init lowlevel_init: ldr sp, SRAM_STACK diff --git a/cpu/arm1136/start.S b/cpu/arm1136/start.S index e622338..05220ed 100644 --- a/cpu/arm1136/start.S +++ b/cpu/arm1136/start.S @@ -128,25 +128,11 @@ reset: orr r0,r0,#0xd3 msr cpsr,r0 -#ifdef CONFIG_OMAP2420H4 - /* Copy vectors to mask ROM indirect addr */ +#ifdef CONFIG_BOARD_PRE_LOWLEVEL_INIT adr r0, _start /* r0 <- current position of code */ - add r0, r0, #4 /* skip reset vector */ - mov r2, #64 /* r2 <- size to copy */ - add r2, r0, r2 /* r2 <- source end address */ - mov r1, #SRAM_OFFSET0 /* build vect addr */ - mov r3, #SRAM_OFFSET1 - add r1, r1, r3 - mov r3, #SRAM_OFFSET2 - add r1, r1, r3 -next: - ldmia r0!, {r3-r10} /* copy from source address [r0] */ - stmia r1!, {r3-r10} /* copy to target address [r1] */ - cmp r0, r2 /* until source end address [r2] */ - bne next /* loop until equal */ - bl cpy_clk_code /* put dpll adjust code behind vectors */ + bl board_pre_lowlevel_init #endif - /* the mask ROM code should have PLL and others stable */ + #ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit #endif diff --git a/include/configs/omap2420h4.h b/include/configs/omap2420h4.h index 1803b13..5683b3a 100644 --- a/include/configs/omap2420h4.h +++ b/include/configs/omap2420h4.h @@ -37,6 +37,7 @@ #define CONFIG_OMAP2420H4 1 /* and on a H4 board */ /*#define CONFIG_APTIX 1 #* define if on APTIX test chip */ /*#define CONFIG_VIRTIO 1 #* Using Virtio simulator */ +#define CONFIG_BOARD_PRE_LOWLEVEL_INIT /* Clock config to target*/ #define PRCM_CONFIG_II 1 -- 1.6.2.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot