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

Rob Herring robherring2 at gmail.com
Mon Dec 3 14:32:18 CET 2012



On 12/02/2012 10:58 PM, Marek Vasut wrote:
> 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?

How? It is in an ARM specific header and empty on anything but ARMv7
enabled compiler. This follows the kernel implementation and the nop above.

Rob

> 
>>  static inline unsigned int get_cr(void)
>>  {
>>  	unsigned int val;
> 
> Best regards,
> Marek Vasut
> 


More information about the U-Boot mailing list