[U-Boot] [PATCH 1/3] common: add ifdefs around bouncebuf.c body

Stephen Warren swarren at wwwdotorg.org
Tue Nov 6 23:49:22 CET 2012


On 11/06/2012 03:43 PM, Marek Vasut wrote:
> Dear Stephen Warren,
> 
>> On 11/05/2012 05:54 PM, Marek Vasut wrote:
>>> Dear Stephen Warren,
>>>
>>>> From: Stephen Warren <swarren at nvidia.com>
>>>>
>>>> If a U-Boot config file enables CONFIG_BOUNCE_BUFFER only for the main
>>>> U-Boot build and not for the SPL, then config.mk will contain
>>>> CONFIG_BOUNCE_BUFFER=y, so common/Makefile will build bouncebuf.c for
>>>> both the SPL and main U-Boot, but config.h won't set
>>>> CONFIG_BOUNCE_BUFFER for the SPL, so bouncebuf.h will provide static
>>>> inline functions, which will conflict with the compiled bouncebuf.c.
>>>> Solve this by guarding the body of bouncebuf.c with the ifdef to avoid
>>>> conflicts.
>>>
>>> Uh, don't you want the bounce buffer not compiled in for SPL? Then maybe
>>> add CONFIG_SPL_BOUNCE_BUFFER to force BB to be compiled into SPL or
>>> something ...
>>
>> Not compiling bouncebuf.c for SPL would solve this too. I have no idea
>> what build system contortions would be required to do this though. Do
>> you think the build system should be fixed first rather than taking this
>> series/patch?
>>
>> I guess we shouldn't need a separate CONFIG_SPL_BOUNCE_BUFFER option
>> though; we should rather simply set CONFIG_SPL_BOUNCE_BUFFER
>> appropriately for SPL and non-SPL, and have everything key off that one
>> variable, right?
> 
> How will you be able to configure it separately for spl and non-spl ?

For example,

include/configs/trimslice.h contains:

/* SD/MMC */
#define CONFIG_MMC
#define CONFIG_GENERIC_MMC
#define CONFIG_TEGRA_MMC
#define CONFIG_CMD_MMC

However, we don't use MMC in our SPL, but don't want to pollute every
Tegra board file with ifdefs for SPL, so
include/configs/tegra-common-post.h (which is included at the end of
trimslice.h) contains:

#ifdef CONFIG_SPL_BUILD
...
/* remove MMC support */
#ifdef CONFIG_MMC
#undef CONFIG_MMC
#endif
#ifdef CONFIG_GENERIC_MMC
#undef CONFIG_GENERIC_MMC
#endif
#ifdef CONFIG_TEGRA_MMC
#undef CONFIG_TEGRA_MMC
#endif
#ifdef CONFIG_CMD_MMC
#undef CONFIG_CMD_MMC
#endif
...
#endif

And in the V1 patch I proposed to tegra-common-post.h, I added the
following at the end:

#ifdef CONFIG_TEGRA_MMC
#define CONFIG_BOUNCE_BUFFER
#endif


More information about the U-Boot mailing list