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
					
				|  | @ -28,6 +28,8 @@ void board_init_f(ulong dummy) | ||||||
| 
 | 
 | ||||||
| 	preloader_console_init(); | 	preloader_console_init(); | ||||||
| 
 | 
 | ||||||
|  | 	timer_init(); | ||||||
|  | 
 | ||||||
| 	/* First init the serdes PHY's */ | 	/* First init the serdes PHY's */ | ||||||
| 	serdes_phy_config(); | 	serdes_phy_config(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -41,6 +41,8 @@ | ||||||
| #define timestamp			gd->arch.tbl | #define timestamp			gd->arch.tbl | ||||||
| #define lastdec				gd->arch.lastinc | #define lastdec				gd->arch.lastinc | ||||||
| 
 | 
 | ||||||
|  | static int init_done; | ||||||
|  | 
 | ||||||
| /* Timer reload and current value registers */ | /* Timer reload and current value registers */ | ||||||
| struct kwtmr_val { | struct kwtmr_val { | ||||||
| 	u32 reload;	/* Timer reload reg */ | 	u32 reload;	/* Timer reload reg */ | ||||||
|  | @ -112,6 +114,11 @@ void __udelay(unsigned long usec) | ||||||
|  */ |  */ | ||||||
| int timer_init(void) | int timer_init(void) | ||||||
| { | { | ||||||
|  | 	/* Only init the timer once */ | ||||||
|  | 	if (init_done) | ||||||
|  | 		return 0; | ||||||
|  | 	init_done = 1; | ||||||
|  | 
 | ||||||
| 	/* load value into timer */ | 	/* load value into timer */ | ||||||
| 	writel(TIMER_LOAD_VAL, CNTMR_RELOAD_REG(UBOOT_CNTR)); | 	writel(TIMER_LOAD_VAL, CNTMR_RELOAD_REG(UBOOT_CNTR)); | ||||||
| 	writel(TIMER_LOAD_VAL, CNTMR_VAL_REG(UBOOT_CNTR)); | 	writel(TIMER_LOAD_VAL, CNTMR_VAL_REG(UBOOT_CNTR)); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue