[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