[U-Boot] [PATCH] arm: re-implement proper ISB instruction for ARMv7-A
Tom Rini
trini at konsulko.com
Fri Jul 29 00:15:50 CEST 2016
On Thu, Jul 28, 2016 at 07:03:17PM +0800, Chen-Yu Tsai wrote:
> Hi,
>
> On Thu, Jul 28, 2016 at 6:13 PM, Ziyuan Xu <xzy.xu at rock-chips.com> wrote:
> > For ARMv7-A architecture, the valid ISB instruction is asm volatile("isb").
> >
> > This patch fixes the U-Boot was stuck in invalidate_dcache_all() before
> > booting linux kernel, which occurred on rk3288-base development board
> > such as evb-rk3288, rock2-rk3288. And something output via console like:
> >
> > => bootz 0x2000000
> > 0x02000000
> > ramdisk start = 0x00000000, ramdisk end = 0x00000000
> > Continuing to boot without FDT
> > Initial value for argc=3
> > Final value for argc=3
> > using: ATAGS
> >
> > Starting kernel ...
> >
> > Linux kernel exactly the same way(see arch/arm/include/asm/barrier.h).
> >
> > Signed-off-by: Ziyuan Xu <xzy.xu at rock-chips.com>
> > ---
> >
> > arch/arm/include/asm/system.h | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
> > index 2bdc0be..12d4ba0 100644
> > --- a/arch/arm/include/asm/system.h
> > +++ b/arch/arm/include/asm/system.h
> > @@ -227,13 +227,15 @@ void __noreturn psci_system_reset(bool smc);
> > */
> > void save_boot_params_ret(void);
> >
> > -#define isb() __asm__ __volatile__ ("" : : : "memory")
> > -
> > #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
> >
> > #ifdef __ARM_ARCH_7A__
> > +#define isb() __asm__ __volatile__ ("isb" : : : "memory")
> > +
> > #define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
> > #else
> > +#define isb() __asm__ __volatile__ ("" : : : "memory")
> > +
> > #define wfi()
> > #endif
> >
>
> arch/arm/include/asm/barriers.h already has a proper set of
> ISB/DSB macros. Please consider using those instead.
Please fix arch/arm/include/asm/system.h to use the macros found in
barriers.h rather than have their own versions. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160728/ec9d4b9f/attachment.sig>
More information about the U-Boot
mailing list