[U-Boot] [PATCH 1/2] ARM: add wfi assembly macro

Marek Vasut marex at denx.de
Mon Dec 3 05:58:02 CET 2012


Dear Rob Herring,

> From: Rob Herring <rob.herring at calxeda.com>
> 
> Since wfi instruction is only available on ARMv7, add a conditional
> macro for it.
> 
> Signed-off-by: Rob Herring <rob.herring at calxeda.com>
> ---
>  arch/arm/include/asm/system.h |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
> index 2b28a26..2f6aecd 100644
> --- a/arch/arm/include/asm/system.h
> +++ b/arch/arm/include/asm/system.h
> @@ -61,6 +61,12 @@
> 
>  #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
> 
> +#ifdef __ARM_ARCH_7A__
> +#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
> +#else
> +#define wfi()
> +#endif

Won't this break other (non-arm) systems? Moreover, maybe you can make this an 
(inline) function instead?

>  static inline unsigned int get_cr(void)
>  {
>  	unsigned int val;

Best regards,
Marek Vasut


More information about the U-Boot mailing list