[U-Boot] [RFC] CONFIG naming convetion

Wolfgang Denk wd at denx.de
Sun Jul 19 00:25:23 CEST 2009


Dear Robin Getz,

In message <200907181713.25601.rgetz at blackfin.uclinux.org> you wrote:
>
> It's a namespace - controls if a driver is compile in or not. 
> Should only be used in .config files, and Makefiles.

What's the difference between adding a driver and any other feature?

> Some (very few) already use it..

These can easily be fixed :-)

> > My personal way of thinking about such options is usually  CPU/archi-
> > tecture  first,  so I would probably chose CONFIG_OMAP24XX_I2C to en-
> > able/disable the I2C driver on a OMAP24XX based board, but  I  under-
> > stand  that there are reasons to prefer CONFIG_I2C_OMAP24XX as well -
> > let's see if there is a clear majority of opiniions...
> 
> If we are thinking of a "tree" type structure - it might make sense to
> start at the top? I guess the question is -- is it an I2C driver for 
> the OMAP24xx or a OMAP24xx driver for I2C?
> 
> Since the API is a I2C API - my thought it is an I2C driver, which happens
> to run on a specific SoC. The actual SoC doesn't really matter (and
> should be last) - so it is similar to the directory structure we have today.

That's why I said that I understand that there are reasons for such a
name.

> Then I can start sending patches for unused CONFIG_ from random config files,
> and no one will start complaining?

Probably.

> From what I can quickly tell - there seems to be about 472 different CONFIG_ 
> options in ./include/config that are not actually used anywhere in the master
> tree.

I guess lots of these is indeed garbage that can be removed without
anybody noticing it.

> > > I would think should be CONFIG_DRIVERS_PATA_BFIN
> > 
> > I dosagree, the "DRIVERS" part is just added line noise.
> 
> It's a name space - making sure it is differentiated from an option.

Yeah, and we end up with variable names that cannot be used any more
because they exceed the maximum line length.

> I think there needs to be more words - do you mean:
>   - hardware, CPU level? or
>   - hardware, SoC level? or 
>   - hardware, board level?

Hm... I don't see any real need for adding additional  characters  to
the  CONFIG_(SYS_)*  names  -  I  am  not  aware that we ever had any
problems because of name collisions.

> Personally - I don't think board level things should be CONFIG_SYS_, as
> these need to be switched around by board porters.
> 
> I guess we could back up a step and look at the users, and defined things
> as things that should be changed by:
>  - arch maintainers (Core/CPU specific)
>  - SoC maintainer (SoC specific)
>  - Board maintainer (PCB specific)
>  - End user of the above (changes options, but nothing from the above list?)

Frankly, this makes no sense to me. I have yet to see any such clear
split of roles and functions. When you bring up a new board, you
usually have to check everything.

The only split that made, and still makes, kind of sense to me is the
split into normal users (CONFIG_) versus "root" (CONFIG_SYS_) groups.

> I'm happy to write a patch - but I have a feeling what I think isn't what
> everyone else's opinion is...

It seems there are at least two sets, one containing you,  the  other
one  containing  me.  I  have no information about the cardinality of
each, though ;-)

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Software suppliers are trying to make their  software  packages  more
``user-friendly''.  .  .  .  Their best approach, so far, has been to
take all the old brochures, and stamp the words, ``user-friendly'' on
the cover.                                               - Bill Gates


More information about the U-Boot mailing list