[U-Boot] [PATCH 4/5] mx6cuboxi: Differentiate Cubox-i and Hummingboard

Stefano Babic sbabic at denx.de
Thu Apr 23 17:17:35 CEST 2015


Hi Nikolay,

On 23/04/2015 16:38, Nikolay Dimitrov wrote:
> 
> As more and more board variants are supported by unified source files,
> functions like "is_specificboard()" are not scaling well - there's a
> repetitive code for extracting hw-specific info, and then there's the
> multiple functions that return true/false for each board variant.

ok - let's see what we can do. I have not thinking about it, because how
to get model / version is quite always very specific. Some boards as
this one are reading GPIOs, some other are reading from I2C / SPI, some
other ones check if some hardware is present.

> 
> Here's one proposal how this can be simplified a bit:
> 
> typedef enum
> {
>     BOARD_ALPHA,
>     BOARD_BRAVO,
>     BOARD_CHARLIE,
> } model_t;
> 
> /* Can be also named is_board_variant() or something like this */
> static bool is_board_model(model_t m)
> {
>     /* ... Extract HW info */
> 
>     switch (m)
>     {
>         case BOARD_ALPHA:
>             if (check for this board model)
>                 return true;

The check must be done in board code, because only the board knows the
details.

>             break;
> 
>         /* do same for the other board models */
>         /* ... */
>     }
> 
>     return false;
> }
> 
> Not sure whether such code can be shared between different boards, but
> can be a step towards unifying the handling of board models/variants.
> 

Trying to get further and see if we can factorize it. Maybe not a lot.
We can also think that is_board_model() becomes get_board_model(), or we
generalize what was done in tqma6 with a sort of get_board_name().
Maybe we can factorize just a few code, but at least we could provide a
"standard" method without having all boards doing the same in different way.

> I'm perfectly fine with Fabio's code here, just using the occasion to
> share my idea.

Thanks - by sharing ideas we can improve code !

Best regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list