[RFC] arm naming inconsistance

Antony Pavlov antonynpavlov at gmail.com
Fri Aug 12 09:28:17 EDT 2011


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



More information about the barebox mailing list