[oe] [PATCH 1/5] Use common files for AT91SAM9 configuration

Ulf Samuelsson ulf.samuelsson at atmel.com
Wed Oct 20 23:57:48 UTC 2010


Khem Raj skrev:
> On Mon, Oct 18, 2010 at 4:10 PM, Ulf Samuelsson
> <ulf.samuelsson at atmel.com> wrote:
>> Khem Raj skrev:
>>> On Mon, Oct 18, 2010 at 10:10 AM, Ulf Samuelsson
>>> <ulf.samuelsson at atmel.com> wrote:
>>>> Koen Kooi skrev:
>>>>> On 18-10-10 15:38, Ulf Samuelsson wrote:
>>>>>> Marcin Juszkiewicz skrev:
>>>>>>> Dnia sobota, 16 pazdziernika 2010 o 14:50:02 ulf.samuelsson at atmel.com
>>>>>>> napisaB(a):
>>>>>>>
>>>>>>>> +++ b/conf/machine/include/at91-2.6.30.inc
>>>>>>>> +++ b/conf/machine/include/at91-2.6.32.inc
>>>>>>> Do you plan to duplicate that file with each kernel you will produce?
>>>>>>> Create include/at91-sam9.inc and put it there.
>>>>>>>
>>>>>>> Regards,
>>>>>> This is to allow different kernel versions for different AT91 chips.
>>>>>> This allows both a "stable" version, and a development kernel
>>>>>> to be easily handled.
>>>>>> The file defines (amongst other things) the
>>>>>> * kernel version,
>>>>>> * u-boot version
>>>>>> * at91bootstrap version
>>>>>> so you need one file per version.he
>>>>> NAK! Machines don't get to decide versions! Please revert that commit
>>>>> and come up with a better way, e.g. default_preference in the recipes or
>>>>> distro include files.
>>>> If I look at the machine files, almost all of them provide
>>>> a preferred kernel / u-boot. Some also provide version.
>>> we should avoid pinning versions there. Choosing a type is fine.
>>>
>> Why ?
>> Is it because it affect rebuild time?
>> It would be good to understand what problems people see with this.
> 
> Well we have distro which sets policies including which recipe
> versions to be pinned
> machine configuration decides on various machine features. There are
> different ways to do it
> but if we remain consistent in what we do, we can make it more
> understandable for others
> 
> If you feel strongly that your approach is good I think it should be
> decided if this is suitable
> for majority of OE distro and machines, If it has technical merits
> over existing approaches
> people will be interested in it.
> 
>> We are pinning the version to a specific machine, in the kernel recipe.
>> If we add a new recipe, then we can, by increasing the priority
>> force a different kernel to be built.
>> This will not affect anything else.
>>
>> If the version is in the machine configuration, then a change of
>> kernel version could force a total rebuild, or?
>>
> 
> I dont think it will force any rebuild or anything. It will just not
> be the way other machines
> do things. The machine configuration tend to be version agnostic as
> per current approach.
> 
>> Any other problem?
>>
> 
> what are the issues that you see in following approaches suggested in
> this thread so far ?

1) Many boards do put kernel version in the machine conf file.
    The patch was created to collect common stuff in an include file
    to make maintenance easier.

2) I cannot assume that all Atmel chips should use the same kernel,
    so a single include file will not make it.

3) I want to be able to work with two kernel versions for the same chip.
    This is to have one stable kernel, and one development kernel.
    The use of the develoment kernel, should not make the stable version
    unbuildable.

    If I put the preferred version in the recipe, then I can only work
    with one kernel.

    If I try to use the preferred version in the recipe, then I
    have to have two machine files.
    I.E:
    at91sam9g45ek
    at91sam9g45ek-devel

    and I have to support both machines in the recipe.

    Once I have come to a point, where the development kernel is
    to become the stable version, then I have to edit the recipe
    again to make this the official.
    I have to remove all references to "sam9g45ek",
    then I have to modify the "sam9g45ek-devel" settings to refer to
    "sam9g45ek", remove the sam9g45ek.conf and rename the
    sam9g45ek-devel.conf to sam9g45ek.conf.

    I then have to retest everything!

    As I see it, the kernel/u-boot/at91bootstrap hangs together,
    and it is easier to maintain a single include file with versions
    for this, than to maintain the three recipes.

    If I maintain in the recipes, I have to create a lot
    of preferred_version_<machine>) in multiple kernel recipes,
    and with my method, I include a single file in the machine
    configuration.
    If I want to change kernel version, I edit a few characters.

4. This points to another weakness.
    You can only build a certain machine in one way.

    Today, when we specify a MACHINE, we use "$MACHINE.conf"

    It would be better, if you could have several machine configuration
    files referring to the same MACHINE, and specifying the MACHINE
    in the configuration file.

    local.conf would then contain

    MACHINE_CONFIG = at91sam9g45ek-2.6.30.conf

    "at91sam9g45ek-2.6.30.conf" would contain

    MACHINE = at91sam9g45ek

    This would allow several configuration files referring to the same
    machine.
    The machine configuration must support selecting separate
    * linux ".config"
    * uboot configuration
    * boot monitor configuration.
    Possibly, then machine configuration should support downloading such
    stuff from internet.

    (I don't expect the mainline OE to contain more than one "stable"
     version)


BR
Ulf






More information about the Openembedded-devel mailing list