[U-Boot] [PATCH V2] arm: timer and interrupt init rework

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sat May 2 01:23:05 CEST 2009


On 01:00 Sat 02 May     , Dirk Behme wrote:
> Dear Jean-Christophe,
>
> Jean-Christophe PLAGNIOL-VILLARD wrote:
>> actually the timer init use the interrupt_init as init callback
>> which make the interrupt and timer implementation difficult to follow
>>
>> so now rename it as int timer_init(void) and use interrupt_init for interrupt
>>
>> btw also remane the corresponding file to the functionnality implemented
>>
>> as ixp arch implement two timer - one based on interrupt - so all the timer
>> related code is moved to timer.c
>>
>> as some timer need interrupt and we need delay in the board init
>>
>> the new init sequence is now
>> interrupt_init (if used)
>> timer_init
>> board_init
>>
>> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ...
>> diff --git a/cpu/arm_cortexa8/omap3/Makefile b/cpu/arm_cortexa8/omap3/Makefile
>> index b96b3dd..edf5cb2 100644
>> --- a/cpu/arm_cortexa8/omap3/Makefile
>> +++ b/cpu/arm_cortexa8/omap3/Makefile
>> @@ -26,7 +26,13 @@ include $(TOPDIR)/config.mk
>>  LIB	=  $(obj)lib$(SOC).a
>>   SOBJS	:= lowlevel_init.o
>> -COBJS	:= sys_info.o board.o clock.o interrupts.o mem.o syslib.o
>> +
>> +COBJS	+= board.o
>> +COBJS	+= clock.o
>> +COBJS	+= mem.o
>> +COBJS	+= syslib.o
>> +COBJS	+= sys_info.o
>> +COBJS	+= timer.o
>
> What do we win with this?
simple to allow vertical patch to be applied instead of have merge problem

so yes it's needed

>> diff --git a/lib_arm/board.c b/lib_arm/board.c
>> index 5d05d9b..b678a63 100644
>> --- a/lib_arm/board.c
>> +++ b/lib_arm/board.c
>> @@ -265,8 +265,11 @@ init_fnc_t *init_sequence[] = {
>>  #if defined(CONFIG_ARCH_CPU_INIT)
>>  	arch_cpu_init,		/* basic arch cpu dependent setup */
>>  #endif
>> -	board_init,		/* basic board dependent setup */
>> +#if defined(CONFIG_USE_IRQ)
>>  	interrupt_init,		/* set up exceptions */
>> +#endif
>> +	timer_init,		/* initialize timer */
>> +	board_init,		/* basic board dependent setup */
>>  	env_init,		/* initialize environment */
>>  	init_baudrate,		/* initialze baudrate settings */
>>  	serial_init,		/* serial communications setup */
>
> ... if you tested this on an OMAP3 board: I'm not sure, but it seems to 
> me that the initialization order might change by this?
maybe read the commit message will answer your question

Best Regards,
J.


More information about the U-Boot mailing list