> Hi, > > Currently CONFIG_ARCH_CPU_INIT is used to select arch_cpu_init() function. > > arch_cpu_init() does CPU level initialization, so why do we need to > include CONFIG_ARCH_CPU_INIT in the include/configs/boardXYZ files, > which are board related files ? > > For example: > > Let's say boards X, Y and Z are based on SoC S: > > 1. If processor S has a arch_cpu_init() defined, then it means that > X,Y,Z need the code from arch_cpu_init() and then we need to define > CONFIG_ARCH_CPU_INIT for each of these boards (actually all the boards > based on this processor would need CONFIG_ARCH_CPU_INIT) > > 2. If not all boards need the code inside arch_cpu_init() for > processor S, then it means that this code is not really CPU specific > and then it should be moved to board code. > > I was thinking in doing the following: > > --- a/arch/arm/lib/board.c > +++ b/arch/arm/lib/board.c > @@ -224,10 +224,15 @@ void __dram_init_banksize(void) > void dram_init_banksize(void) > __attribute__((weak, alias("__dram_init_banksize"))); > > +int __arch_cpu_init(void) > +{ > + return 0; > +} > +int arch_cpu_init(void) > + __attribute__((weak, alias("__arch_cpu_init"))); > + > init_fnc_t *init_sequence[] = { > -#if defined(CONFIG_ARCH_CPU_INIT) > arch_cpu_init, /* basic arch cpu dependent setup */ > -#endif > #if defined(CONFIG_BOARD_EARLY_INIT_F) > board_early_init_f, > #endif > > ,so that CONFIG_ARCH_CPU_INIT is not needed anymore. > > Before I go further in this route to remove CONFIG_ARCH_CPU_INIT from > other places, I would like to know if this makes sense.
I'm all for this. M _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot