
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