
Dear Heiko Schocher,
In message 4EBA11A9.6060905@denx.de you wrote:
On my board I cannot use your code in arch_cpu_init() in da850_lowlevel.c since I have different versions of my board with different input clock frequencies. Here u-boot should first determine the board revision number and then configure the SoC accordingly. Therefore I would like to move all board-specific parts (and PLL and memory configuration is board-specific since it depends on the memory chips and oscillators deployed on the board) to board_early_init_f which is called right after arch_cpu_init() and keep only a few initializiation steps in arch_cpu_init().
Ok, if you have other needs on your board we must change something. But I want to prevent, that all the code you remove in your patch is moved to board code, so all boards must (copy?) it. Instead you should move it to a weak function, which you can replace for your specific needs. (I thought the code was common enough ...)
I guess in most cases no different code will be needed, but just different configuration parameters. It should be possible to handle these through settings in the board config header file.
In any case, a duplication of that coede shall be avoided.
Best regards,
Wolfgang Denk