Hi Graeme, On Fri, Mar 2, 2012 at 3:05 AM, Graeme Russ <graeme.r...@gmail.com> wrote: > This is a very rough (i.e. it is not even close to finished and maybe won't > even appply as it sits on top of some other dev patches I have) but it > should give you an idea of what the INIT_FUNC implementation will look like. > > Ultimately, tools/mkinitseq.c will process the dependencies and generate > a C file containing the three init sequence arrays which have been deleted > from arch/x86/lib/board.c > > --- > Makefile | 24 +++- > arch/blackfin/cpu/initcode.c | 1 + > arch/blackfin/cpu/serial.c | 1 + > arch/mips/cpu/mips32/au1x00/au1x00_serial.c | 1 + > arch/mips/cpu/mips32/incaip/asc_serial.c | 1 + > arch/mips/cpu/xburst/jz_serial.c | 1 + > arch/powerpc/cpu/mpc512x/serial.c | 1 + > arch/powerpc/cpu/mpc5xx/serial.c | 1 + > arch/sparc/cpu/leon2/serial.c | 1 + > arch/sparc/cpu/leon3/serial.c | 1 + > arch/x86/cpu/cpu.c | 4 +- > arch/x86/cpu/interrupts.c | 1 + > arch/x86/cpu/sc520/sc520.c | 1 + > arch/x86/cpu/sc520/sc520_sdram.c | 2 + > arch/x86/cpu/sc520/sc520_timer.c | 1 + > arch/x86/cpu/u-boot.lds | 1 + > arch/x86/lib/board.c | 134 +------------- > arch/x86/lib/init_helpers.c | 14 ++ > arch/x86/lib/init_wrappers.c | 11 + > arch/x86/lib/relocate.c | 3 + > board/amirix/ap1000/serial.c | 1 + > board/bmw/serial.c | 1 + > board/eNET/eNET.c | 3 + > common/console.c | 2 + > common/env_dataflash.c | 1 + > common/env_eeprom.c | 1 + > common/env_flash.c | 1 + > common/env_mgdisk.c | 1 + > common/env_mmc.c | 1 + > common/env_nand.c | 1 + > common/env_nowhere.c | 1 + > common/env_nvram.c | 1 + > common/env_onenand.c | 1 + > common/env_sf.c | 1 + > common/serial.c | 1 + > common/stdio.c | 1 + > config.mk | 2 + > doc/README.INIT_FUNC | 31 +++ > include/initcall.h | 19 ++ > tools/Makefile | 6 + > tools/mkinitseq.c | 278 > +++++++++++++++++++++++++++ > u-boot-init.lds | 25 +++ > 42 files changed, 449 insertions(+), 136 deletions(-) > create mode 100644 doc/README.INIT_FUNC > create mode 100644 include/initcall.h > create mode 100644 tools/mkinitseq.c > create mode 100644 u-boot-init.lds >
I read through this and it looks pretty nice. No point in commenting on the code at this stage I suspect. But I wonder if this could fit on top of the generic board init series? Then we could move to initcalls for all boards rather than just x86, and in fact for U-Boot as a whole. Plus a few questions. What tool do we need to display the result init sequence at build time? Can we make U-Boot print out the initcalls as it runs them (perhaps with pre-console buffer)? Hoping you can pull this off! Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot