Hi. 2015-05-05 20:16 GMT+09:00 Yehuda Yitschak <yehu...@marvell.com>: > Hi Simon > >> -----Original Message----- >> From: s...@google.com [mailto:s...@google.com] On Behalf Of Simon Glass >> Sent: Tuesday, May 05, 2015 6:28 >> To: Yehuda Yitschak >> Cc: Masahiro Yamada; Hanna Hawa; u-boot@lists.denx.de >> Subject: Re: [U-Boot] switching to single .config configuration issues >> >> Hi, >> >> On 4 May 2015 at 05:34, Yehuda Yitschak <yehu...@marvell.com> wrote: >> > Hey Simon >> > >> >> -----Original Message----- >> >> From: s...@google.com [mailto:s...@google.com] On Behalf Of Simon >> Glass >> >> Sent: Sunday, May 03, 2015 21:55 >> >> To: Yehuda Yitschak >> >> Cc: Masahiro Yamada; Hanna Hawa; u-boot@lists.denx.de >> >> Subject: Re: [U-Boot] switching to single .config configuration >> >> issues >> >> >> >> Hi Yehuda, >> >> >> >> On 30 April 2015 at 01:21, Yehuda Yitschak <yehu...@marvell.com> >> wrote: >> >> > Hey Masahiro >> >> > >> >> >> -----Original Message----- >> >> >> From: Masahiro Yamada [mailto:yamada.masah...@socionext.com] >> >> >> Sent: Thursday, April 30, 2015 4:46 >> >> >> To: Yehuda Yitschak >> >> >> Cc: Simon Glass; Hanna Hawa; u-boot@lists.denx.de >> >> >> Subject: Re: [U-Boot] switching to single .config configuration >> >> >> issues >> >> >> >> >> >> Hi Yehuda, >> >> >> >> >> >> >> >> >> 2015-04-29 14:23 GMT+09:00 Yehuda Yitschak >> <yehu...@marvell.com>: >> >> >> > Hey Simon, Masahiro >> >> >> > >> >> >> > May I suggest an alternative solution to this issue. >> >> >> > >> >> >> > What if each Kconfigs option could be set as "y" (compile for >> >> >> > u-boot only )or "s" (compile for u-boot and SPL) Just as the >> >> >> > kernel can set Kconfig >> >> >> to "y" or "m". >> >> >> > >> >> >> > With minor modifications to the Makefile, SPL target will compile >> "obj-s" >> >> >> and u-boot target will compile "obj-s" and "obj-y" >> >> >> > >> >> >> > What do you think ? >> >> >> >> >> >> >> >> >> Interesting. >> >> >> >> >> >> A little comments. >> >> >> >> >> >> - Is there any possibility that some files should be compiled for SPL >> only? >> >> >> (I do not think we have much.) >> >> >> >> >> >> Perhaps, obj-y : for U-boot only >> >> >> obj-s : for SPL only >> >> >> oby-ys: for both >> >> >> I am not sure.. >> >> > >> >> > How about "a" (as in all targets) instead of "sy". It will look >> >> > better in the menuconfig square brackets Maybe TPL should also be >> added as "t" >> >> option. >> >> > >> >> >> >> >> >> - This idea is only applicable for bool options. >> >> >> We still have to keep duplication for int/hex options such as >> >> >> CONFIG_SPL_TEXT_BASE. >> >> >> >> >> >> But, this idea will help clean up much because most of configs >> >> >> are >> >> boolean. >> >> >> >> I am still not sure what sorts of things are getting compiled int >> >> SPL, and thus causing problems. Can you please provide a few details? >> > >> > We are looking for a very small SPL image that will fit into internal SRAM. >> > Therefore we want to compile the minimal set of drivers into the SPL. >> > We have added all our drivers to Kconfig infrastructure (not mainlined >> > yet) and so each driver We add to u-boot (like PCIe) will be added to >> > SPL and would require manual removal using the dedicated H file
Or we can use "ifndef CONFIG_SPL_BUILD" to keep drivers from being compiled into SPL. (and this is what we have done so far. For example, drivers/mtd/nand/Makefile) ifndef CONFIG_SPL_BUILD obj-$(CONFIG_YOUR_OWN_DRIVER) += your_driver.o endif I know this is an ugly solution... BTW, barebox (U-boot v2) uses "pbl-y" for objects that should be compiled into a pre-bootloader (the same concept as what we call SPL). obj-(CONFIG_FOO) += foo.o <--- compiled for barebox proper pbl-(CONFIG_PBL_FOO) += foo.o <--- compiled for pre-bootloader Better to bollow this idea? >> I see. Let's see what Masahiro thinks about this. One good thing with this >> proposal is that we would still only have a single config source file >> (.config), >> but I cannot see how it could be implemented without having multiple >> output autoconf.h files. > Linux actually uses a single autoconf.h file by suffixing module configs with > _MODULE. > Then all the other build scripts somehow take advantage of that Right. This is the way we distinguish modules from built-in drivers in Linux. Maybe we can add _SPL suffix, but please let me clarify this idea. How does "select FOO" work? CONFIG_FOO should be enabled for U-Boot only (CONFIG_FOO=y), or also for SPL (CONFIG_FOO=a)? How about "depends on FOO"? >> How many options do you need to add for manual removal? > > I don’t have the exact count but somewhere around 10-20. > However I think the number itself is not the issue. > The thing is that you have to update this list every time you modify your > defconfig otherwise your SPL start bloating. > That is a bit of a nuisance considering defconfig changes may be frequent > during development and ramp-up time I agree. -- Best Regards Masahiro Yamada _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot