
Hi Masahiro,
On 1 August 2014 06:22, Masahiro Yamada yamada.m@jp.panasonic.com wrote:
Hi.
On Fri, 1 Aug 2014 12:48:44 +0100 Simon Glass sjg@chromium.org wrote:
Hi,
At present, as a work-around, we generate boards.cfg if needed. This is quite a slow process since each board config must be fully processed.
What can we do to improve this? We only need a small number of options in order to start buildman - things like CONFIG_SYS_ARCH, CONFIG_SYS_CPU, etc.
I wonder if we could run a script which adds these to the defconfigs for each board and then apply a patch to mainline? Would that require removing the options from the config.h files? Or could we do that later as a separate step?
We cannot add CONFIG_SYS_ARCH, CONFIG_SYS_CPU, etc. to defconfigs because they are not user-editable options. (They must be always selected in correct combination.)
This is already discussed when I posted the RFC version of the Kconfig series.
My understanding is that if you have a 'select' option in Kconfig then it will be selected always, but it will still appear in the defconfig. I think that is the way the kernel works. So there are options that cannot be changed, and don't appear in the menu, but they are selected just the same.
We can easily do
[1] Choose boards by arch
Just grep CONFIG_ARM=y, CONFIG_MIPS=y, CONFIG_SANDBOX=y in defconfigs
OK.
[2] Choose boards by board name
It is the file name of defconfigs
Almost, as Wolfgang points out.
My question is, do we really need to choose by CPU, Vendor, SoC ? I know they are useful. For ex. nvidia developers probably want to build only Tegra boards.
One possible idea I come up with is to have 'board group' in .buildman file so people can build only boards they are interested in.
Something like this:
---------->8---------------
[board-alisa] tegra20: harmony seaboard ventana tegra30: beaver tegra114: dalmore tegra124: venice2 tegra: tegra20 tegra30 tegra114 tegra124
-----------8<---------------
With the settings above,
"tools/buildman/buildman tegra20" is the same as "tools/buildman/buildman harmony seaboard ventana"
"tools/buildman/buildman tegra" is the same as "tools/buildman/buildman tegra20 tegra30 tegra114 tegra124" and also the same as "tools/buildman/buildman harmony seaboard ventana beaver dalmore venice2"
We have to setup ~/.buildman at the first run. (and modify it when adding new boards)
Better to provide a tool to auto-generate .buildman file?
That doesn't sound very different to having a boards.cfg file again. If we really need it, it seems better to me to have an auto-generated boards.cfg which is checked into the source tree, at least for now. When people add boards they can re-run the generation script.
But I'd like to avoid that if possible, so will await your thoughts on the above Kconfig question.
Regards, Simon