
On Sat, Jan 21, 2017 at 11:09:20PM -0500, Tom Rini wrote:
On Sun, Jan 22, 2017 at 12:45:44PM +0900, Masahiro Yamada wrote:
Hi.
2017-01-22 8:02 GMT+09:00 Tom Rini trini@konsulko.com:
On Sat, Jan 21, 2017 at 11:48:33AM +0100, Jagan Teki wrote:
Cc: Tom Rini trini@konsulko.com Signed-off-by: Jagan Teki jagan@openedev.com
Note: theadorable_debug grows by ~161 bytes in SPL as it had been enabling BOARD_LATE_INIT only for non-SPL which is now not allowed.
Applied to u-boot/master, thanks!
Now, CONFIG_BOARD_LATE_INIT can be enabled/disabled from menuconfig, but generally this is not user-configurable because disabling it will skip needed init procedure.
I thought the right thing to do was [1] Make each board "select BOARD_LATE_INIT"
or
[2] Change board_late_init() into a weak function so that each board file can overrides it, then deprecate CONFIG_BOARD_LATE_INIT.
In the fullness of time this should become a select, I agree. However, it's more than a bit difficult to figure out where to, and then automatically whack in, a 'select' line. I have something almost working locally (that I'll just need to fixup the Kconfig files in, after adding lines close to where they go) but like things that we can clean up once 'imply' is a valid word, we really need to get things converted, and then cleaned up. Thanks!
So, what I came up with is: $ for F in `git grep -l BOARD_LATE_INIT configs/`;do \ T=`grep CONFIG_TARGET_ $F | sed -e 's/CONFIG_//' -e 's/=y//'` ; \ A=`grep CONFIG_ARCH_ $F | sed -e 's/CONFIG_//' -e 's/=y//' | head -n 1`; \ [ -z "$T" -a ! -z "$A" ] && sed -i -e \ "s#config "$A$"#config $A\n\tselect BOARD_LATE_INIT#" \ `git grep -lE "config $A$"` || \ sed -i -e "s#config "$T$"#config $T\n\tselect BOARD_LATE_INIT#" \ `git grep -lE "config $T$"`; done
Followed by editing all modified Kconfig files, and a few hand additions that I found weren't covered by the above tests (sandbox and then oddly a few Tegra boards). I'm size-testing a build now and it looks like I've got a few things to fixup still.