[U-Boot-Users] "2.mach_types":(1 of 1) [PATCH][ARM] Create mach-types for various at91 boards
Grant Likely
grant.likely at secretlab.ca
Tue Mar 27 18:56:47 CEST 2007
On 3/27/07, Ulf Samuelsson <ulf at atmel.com> wrote:
> diff -urN u-boot-1.2.0/include/asm-arm/mach-types.h u-boot-1.2.0-atmel/include/asm-arm/mach-types.h
> --- u-boot-1.2.0/include/asm-arm/mach-types.h 2007-01-07 00:13:11.000000000 +0100
> +++ u-boot-1.2.0-atmel/include/asm-arm/mach-types.h 2007-03-24 20:07:34.000000000 +0100
> @@ -736,7 +736,11 @@
> #define MACH_TYPE_LN2410SBC 725
> #define MACH_TYPE_CB3RUFC 726
> #define MACH_TYPE_MP2USB 727
> +#define MACH_TYPE_AT91SAM9261EK 848
> #define MACH_TYPE_PDNB3 1002
> +#define MACH_TYPE_AT91SAM9260EK 1099
> +#define MACH_TYPE_AT91RM9200DF 1119
> +#define MACH_TYPE_AT91SAM9263EK 1202
>
> #ifdef CONFIG_ARCH_EBSA110
> # ifdef machine_arch_type
> @@ -9402,6 +9406,66 @@
> # define machine_is_mp2usb() (0)
> #endif
>
> +#ifdef CONFIG_MACH_AT91SAM9261EK
> +# ifdef machine_arch_type
> +# undef machine_arch_type
> +# define machine_arch_type __machine_arch_type
> +# else
> +# define machine_arch_type MACH_TYPE_AT91SAM9261EK
> +# endif
> +# define machine_is_at91sam9261ek() (machine_arch_type == MACH_TYPE_AT91SAM9261EK)
> +#else
> +# define machine_is_at91sam9261ek() (0)
> +#endif
(Note: I realize this is a comment on the entire file, and your change
just matches the existing code, but I'm going to bring it up
anyway...)
I'm confused by this construct. What is the reason for the large
#ifdef block? As I read it, there are two conditions for each board;
1. #ifdef CONFIG_MACH_XXXX
2. #ifdef machine_arch_type
Regardless of the result of condition 2, 'machine_arch_type' is always
defined to something. That something either matches the current
board, or it does not, and therefore the test in the first definition
of machine_is_XXXXX() should always evaluate correctly.
To me, it seems like quite a verbose construct when something simpler
could be used. For example:
#ifdef machine_arch_type
# undef machine_arch_type
# define machine_arch_type __machine_arch_type
#else
# ifdef CONFIG_MACH_ARMBOARD1
# define machine_arch_type MACH_TYPE_ARMBOARD1
# elif CONFIG_MACH_ARMBOARD2
# define machine_arch_type MACH_TYPE_ARMBOARD1
...etc for all boards...
# endif
#endif
#define machine_is_board1() (machine_arch_type == MACH_TYPE_BOARD1)
#define machine_is_board2() (machine_arch_type == MACH_TYPE_BOARD2)
...etc
Am I missing something?
Cheers,
g.
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195
More information about the U-Boot
mailing list