[U-Boot] Common arch-specific header files for SOCs

Simon Glass sjg at chromium.org
Tue Aug 30 23:13:51 CEST 2011


Hi,

I am looking at generalizing Tegra20 to support other Tegra parts. I
can easily create

arch/arm/cpu/armv7/tegra-common

and I see that this is done for OMAP and Samsung with this little
fragment in the Makefile:

ifeq ($(SOC),omap3)
LIBS += $(CPUDIR)/omap-common/libomap-common.o
endif
ifeq ($(SOC),omap4)
LIBS += $(CPUDIR)/omap-common/libomap-common.o
endif

ifeq ($(SOC),s5pc1xx)
LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
endif
ifeq ($(SOC),s5pc2xx)
LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
endif

Not a long term solution with dozens of SOCs, but fine for now.

But I also have common header files and it isn't so clear what to do there.

The arch/arm/include/asm/arch symlink needs to point to arch-tegra2 in
my case, which is fine, but I also want to be able to include common
files.

#include <asm/arch/clock.h>

This points to arch/arm/include/asm/arch-tegra2/clock.h but this would
not be available from a tegra3 architecture, for example.

One solution is a symlink inside arch-tegra2 to what is effectively
arch/arm/include/asm/tegra-common

and then add this path to the flags somehow. Then I can do, in both
tegra2 and tegra3 code:

#include <asm/arch/common/clock.h>

Any other suggestions? It almost feels like we need an 'SOC family'
field in boards.cfg (as distinct from SOC). Then we could perhaps have
this work automatically.

Regards,
Simon


More information about the U-Boot mailing list