[U-Boot] [PATCH 1/3] arm: add CONFIG_MACH_TYPE option and documentation
Albert ARIBAUD
albert.u.boot at aribaud.net
Thu Jul 7 18:07:17 CEST 2011
Hi Igor,
Le 06/07/2011 22:05, Igor Grinberg a écrit :
> 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...
You've read and responded to this thread:
http://old.nabble.com/-U-Boot--Update-and-Cut-down-mach-types-td31432177.html,
so you know that mach-types.h should not be changed, cut or simplified,
but should only be generated from the mach-types list pulled from the
ARM Linux machine repository just like Linux' mach-types.h is generated
(though we use the full list whereas Linux uses a reduced list, because
U-Boot supports some ARM machines which Linux does not). If your goal is
reducing the size of mach-types.h, there is a branch in u-boot-ti that
is about this (Sandeep: has it been posted as patches for review?)
> I think there is an added value, may be it is hard to see it right now.
If it is hard to see, then maybe it is too small a value to be worth the
effort -- that's what I am trying to sort out.
> 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.
Not sure I get you there. Can you elaborate on a more precise example
that would show the benefits of it?
> 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.
AFAICT, the Linux build system does fine with the generated mach-type.
Amicalement,
--
Albert.
More information about the U-Boot
mailing list