
On 05/17/2012 01:48 PM, Tom Rini wrote:
On Thu, May 17, 2012 at 12:13:20PM +1200, Charles Manning wrote:
Hi All
My understanding of the way SPL is intended to be configured is:
(a) You have one config file for both SPL and u-boot.
Yes.
(b) SPL features are selected via SPL-specific options.
For some parts, yes. Note that SPL does use -ffunction-sections/-fdata-sections/--gc-sections.
I have a need to build SPL with MMC/FAT support, but I don't want u-boot to have MMC/FAT support.
This is a new challenge, yes.
I do however see that quite a few SPL feature selections don't use SPL config definitions though which would seem to violate (b) above.
eg.drivers/mmc/Makefile contains COBJS-$(CONFIG_GENERIC_MMC) += mmc.o
It seems to me there are three ways to address this:
A) Change all those Makefiles to something like:
ifdef CONFIG_SPL_BUILD COBJS-$(CONFIG_SPL_MMC_SUPPORT) += mmc.o else COBJS-$(CONFIG_GENERIC_MMC) += mmc.o endif
B) Modifying the config file with something like
#ifdef CONFIG_SPL_BUILD #define CONFIG_GENERIC_MMC ... #endif
C) Separate config files. One for SPL and the other for u-boot.
Which is the best way to do this?
I think (B) is the method to go with. We already do this with certain things like CONFIG_SKIP_LOW_LEVEL_INIT.
We had problems with (B) regarding TEXT_BASE -- the makefile versions of the config symbols will only be generated once. CONFIG_SKIP_LOW_LEVEL_INIT doesn't seem to be used from makefiles.
I still think (C) is the way to go.
-Scott