[U-Boot] [PATCH 1/3] arm: add CONFIG_MACH_TYPE option and documentation

Igor Grinberg grinberg at compulab.co.il
Wed Jul 6 22:05:52 CEST 2011


On 07/06/11 21:53, Albert ARIBAUD wrote:

> Hi Igor,
>
> Le 04/07/2011 11:00, Igor Grinberg a écrit :
>> CONFIG_MACH_TYPE can be used to set the machine type number in the
>> common arm code instead of setting it in the board code.
>>
>> Signed-off-by: Igor Grinberg<grinberg at compulab.co.il>
>> ---
>>   README               |   12 ++++++++++++
>>   arch/arm/lib/board.c |    5 +++++
>>   2 files changed, 17 insertions(+), 0 deletions(-)
>>
>> diff --git a/README b/README
>> index 446966d..a9ccb0a 100644
>> --- a/README
>> +++ b/README
>> @@ -442,6 +442,18 @@ The following options need to be configured:
>>           crash. This is needed for buggy hardware (uc101) where
>>           no pull down resistor is connected to the signal IDE5V_DD7.
>>
>> +        CONFIG_MACH_TYPE        [relevant for ARM only]
>> +
>> +        This option can be used to specify the machine type number
>> +        as it appears in the ARM machine registry
>> +        (see http://www.arm.linux.org.uk/developer/machines/).
>> +        If this option is not defined, then your board code
>> +        will have to set this up like:
>> +        gd->bd->bi_arch_number =<mach type>;
>> +        Note: This option is not suitable if you have multiple
>> +        boards supported in a single configuration file and the
>> +        machine type is runtime discoverable.
>> +
>>   - vxWorks boot parameters:
>>
>>           bootvx constructs a valid bootline using the following
>> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
>> index 169dfeb..ee77d05 100644
>> --- a/arch/arm/lib/board.c
>> +++ b/arch/arm/lib/board.c
>> @@ -451,6 +451,11 @@ void board_init_r (gd_t *id, ulong dest_addr)
>>
>>       monitor_flash_len = _end_ofs;
>>       debug ("monitor flash len: %08lX\n", monitor_flash_len);
>> +
>> +#ifdef CONFIG_MACH_TYPE
>> +    bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */
>> +#endif
>> +
>>       board_init();    /* Setup chipselects */
>>
>>   #ifdef CONFIG_SERIAL_MULTI
>
> I don't really see the added value of having this configuration option. It is used in only one place for one line of code, which is a sign to me that it does not bring any substantial benefits.

Well, this is something that came up when I tried to get rid of machine_is_*
macros (patch 3/3), so we could change/cut/simplify the overgrown mach-types.h
if we want/need to...

I think there is an added value, may be it is hard to see it right now.
If we have this option and it is documented, then any new board can use it
instead of thinking (although it is simple) where and how to dereference
the bi_arch_number.
Also, it can come in handy, in the configuration system (I think it is called Kbuild?),
so the value can be chosen from the list or something.

The history of how this option was born is here:
http://www.mail-archive.com/u-boot@lists.denx.de/msg52349.html
and in this thread:
http://www.mail-archive.com/u-boot@lists.denx.de/msg52396.html



-- 
Regards,
Igor.



More information about the U-Boot mailing list