Hi! Barebox has an hierarchy for supported stuff: arch -> mach arch \in {arm, x86, nios2 ...} for arch=arm, mach \in { at91, ims, msx, ... versatile } Also there is the 'board', the lowest level of hierarchy. E.g. for mach=at91, board \in { at91sam9m10g45ek, pm9263 ...} But there are strange things in arch/arm/Kconfig and arch/arm/cpu/start.c: #ifdef CONFIG_ARCH_HAS_LOWLEVEL_INIT arch_init_lowlevel(); #endif At the first glance all ok: if arch has lowlevel init, the do arch_init_lowlevel(). But arch_init_lowlevel() is not __per-arch__ function, but __per-mach__ function! It is used in at91 and omap mach. #ifdef CONFIG_MACH_DO_LOWLEVEL_INIT board_init_lowlevel(); #endif Here we have a more bizarre thing: if __mach__ do low level init then do __board__ low level init! In arch/arm/Kconfig we have the same strange things: config ARCH_VERSATILE bool "ARM Versatile boards (ARM926EJ-S)" select CPU_ARM926T But versatile is not arch, it's a mach! By this examples one can see that the conception of architecture ('arch') is mixed up with the conception of machine ('mach'). Can anybody explain this? -- Best regards, Antony Pavlov _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox