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

Mike Frysinger vapier at gentoo.org
Wed Aug 31 16:44:30 CEST 2011


On Wednesday, August 31, 2011 01:30:56 Simon Glass wrote:
> On Tue, Aug 30, 2011 at 9:36 PM, Mike Frysinger wrote:
> > On Tuesday, August 30, 2011 17:13:51 Simon Glass wrote:
> >> 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.
> > 
> > $ cat arch/arm/include/asm/arch-tegra3/clock.h
> > #include <asm/arch-tegra2/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.
> > 
> > maybe create asm/arch-tegra/ for the common stuff and have the other
> > tegras include that for common stuff ?
> 
> That sort-of works. My concern is when drivers start doing
> 
> #include <asm/arch-tegra/clock.h>
> 
> Doesn't that break the rule that architecture should be set at config
> time? Not that it matters much I suppose, since the only drivers
> including this file are architecture-specific.

the driver is broken then ? :)

easy to catch this ala bits/ C library headers:
arch-tegra2/clock.h:
#ifndef _ARCH_TEGRA_CLOCK_H_
#define _ARCH_TEGRA_CLOCK_H_
...
#include <asm/arch-tegra/clock.h>
...
#endif

arch-tegra3/clock.h:
#ifndef _ARCH_TEGRA_CLOCK_H_
#define _ARCH_TEGRA_CLOCK_H_
...
#include <asm/arch-tegra/clock.h>
...
#endif

asm/arch-tegra/clock.h:
#ifndef _ARCH_TEGRA_CLOCK_H_
# error "do not include this header directly"
#endif
#ifndef _ARCH_TEGRA_COMMON_CLOCK_H_
#define _ARCH_TEGRA_COMMON_CLOCK_H_
...
#endif
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110831/af56dff4/attachment.pgp 


More information about the U-Boot mailing list