new way of writing defconfigs for freescale's powerpc platforms

Michael Ellerman mpe at ellerman.id.au
Fri Apr 17 16:18:46 AEST 2015


On Thu, 2015-04-16 at 23:13 -0500, Scott Wood wrote:
> On Fri, 2015-04-17 at 10:54 +1000, Michael Ellerman wrote:
> > On Thu, 2015-04-09 at 21:52 +0000, Lijun Pan wrote:
> > > Hi Maintainers,
> > > 
> > > We have a proposal for writing the defconfigs for freescale's powperpc platforms in a new way.
> > > Can you take a look and provide some feedback?
> > > 
> > > You know currently we have mpc85xx_defconfig, corenet32_defconfig, bsc913x_defconfig, *fman*_defconfig, etc.
> > > We are going to extract some common parts from the existing defconfigs, and name it, say, fsl_basic_defconfig.
> > > Then, we could create some defconfigs targeting specific features or specific platforms.
> > > Say, features specific: kvm_defconfig, fman_defconfig, etc.
> > > Platforms specific: p1_defconfig, p2_defcongfig, p4_defconfig, t1_defconfig, t2_defconfig, t2_defconfig, b4_defconfig, etc
> > > When we want to make a kernel image for p1 platform,
> > > Using the following steps:
> > > 
> > > make ./scripts/kconfig/merge_config.sh arch/powerpc/configs/fsl_basic_config p1_defconfig
> > > make
> > > 
> > > What do you think of this new approach?
> > 
> > I don't like that the user has to manually run merge_config.sh.
> > 
> > How does a user even know that it's an option?
> > 
> > It also breaks scripts that auto build the kernel, which expect to be able to do:
> > 
> >   $ make foo_defconfig
> >   $ make
> > 
> > Scripts like mine for example :)
> > 
> >   http://kisskb.ellerman.id.au/kisskb/head/8734/
> > 
> > What I'd be happy with is something that does merge_config under the covers. So
> > a user still runs 'make fsl_plat_foo_defconfig', but under the covers it does a
> > merge config.
> > 
> > kvmconfig and tinyconfig are implemented that way already, so with a bit more
> > work hopefully you can do that for arch configs also.
> 
> kvmconfig and tinyconfig are still separate user-visible steps to be
> applied after running a base defconfig.

Not as of recently:

  https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/scripts/kconfig/Makefile?id=63a91033d52e64a22e571fe84924c0b7f21c280d
 

Which pretty much does what you describe below I think.

> For breaking a platform defconfig into components, we could do something
> like this in arch/powerpc/Makefile:
> 
> # Can't call mergeconfig directly as it isn't defined at this point
> define domerge
>        @$(MAKE) -f $(srctree)/scripts/kconfig/Makefile $(1).config
> endef
> 
> corenet64_smp_defconfig: corenet64_basic_defconfig
> 	$(call domerge,smp)
> 	$(call domerge,altivec)
> 	$(call domerge,corenet_drivers)
> 	$(call domerge,embedded_misc) # filesystems etc
> 
> And this in scripts/kconfig/Makefile:
> 
> %.config:
>        $(call mergeconfig,$*)
> 
> One issue with this is that we'd lose the ability to use savedefconfig
> (at least without manual manipulation of the results) to maintain the
> defconfigs/fragments.

That's probably OK, it's only maintainers who need to do that.

cheers




More information about the Linuxppc-dev mailing list