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

Albert ARIBAUD albert.u.boot at aribaud.net
Tue Jul 5 00:03:18 CEST 2011


Hi Harvey,

Le 04/07/2011 23:06, Christopher Harvey a écrit :
> On Mon, Jul 04, 2011 at 12:00:19PM +0300, Igor Grinberg wrote:
>> 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
>> --
>> 1.7.3.4
>>
> I'm curious, is it a feature that bd->bi_arch_number can be set at
> runtime? Do any boards actually make a decision about what value to
> set this to? If not, then maybe it should be a required value.  I've
> submitted some patches that deal with the same sort of issue, so I'm
> interested in seeing that happens to this one.

Some boards indeed have a feature to set the mach_type at runtime, for 
example to run both the mainline linux kernel and a manufacturer one 
(manufacturers tend to use/expect fancy machine types).

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list