[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