mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 23:51:33 +00:00
arm: mvebu: Call timer_init early before PHY and DDR init
Without calling timer_init(), the xdelay() functions return immediately. We need to call timer_init() early, so that these functions work and the PHY and DDR init code works correctly. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Anton Schubert <anton.schubert@gmx.de> Cc: Luka Perkov <luka.perkov@sartura.hr>
This commit is contained in:
parent
e863f7f051
commit
ade741b389
2 changed files with 9 additions and 0 deletions
|
@ -28,6 +28,8 @@ void board_init_f(ulong dummy)
|
|||
|
||||
preloader_console_init();
|
||||
|
||||
timer_init();
|
||||
|
||||
/* First init the serdes PHY's */
|
||||
serdes_phy_config();
|
||||
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
static int init_done;
|
||||
|
||||
/* Timer reload and current value registers */
|
||||
struct kwtmr_val {
|
||||
u32 reload; /* Timer reload reg */
|
||||
|
@ -112,6 +114,11 @@ void __udelay(unsigned long usec)
|
|||
*/
|
||||
int timer_init(void)
|
||||
{
|
||||
/* Only init the timer once */
|
||||
if (init_done)
|
||||
return 0;
|
||||
init_done = 1;
|
||||
|
||||
/* load value into timer */
|
||||
writel(TIMER_LOAD_VAL, CNTMR_RELOAD_REG(UBOOT_CNTR));
|
||||
writel(TIMER_LOAD_VAL, CNTMR_VAL_REG(UBOOT_CNTR));
|
||||
|
|
Loading…
Reference in a new issue