[U-Boot] [PATCH v2] arm: fix hvc call

Ibai Erkiaga Elorza IBAIE at xilinx.com
Fri Mar 15 12:13:11 UTC 2019


Hi Alex,

> -----Original Message-----
> From: Alexander Graf <agraf at suse.de>
> Sent: 25 February 2019 13:09
> To: Ibai Erkiaga Elorza <IBAIE at xilinx.com>
> Cc: u-boot at lists.denx.de; Sumit Garg <sumit.garg at linaro.org>; Heinrich
> Schuchardt <xypron.glpk at gmx.de>; Tom Rini <trini at konsulko.com>; Albert
> Aribaud <albert.u.boot at aribaud.net>
> Subject: Re: [U-Boot][PATCH v2] arm: fix hvc call
> 
> 
> 
> > Am 25.02.2019 um 02:11 schrieb Ibai Erkiaga <ibai.erkiaga-
> elorza at xilinx.com>:
> >
> > HVC call makes use of 6 mandatory arguments rather than 7 in the same
> > way as SMC calls. The 7th argument is optional (Client ID) for both
> > HVC and SMC but is implemented as 16-bit parameter and register R7 or
> > W7. The aim of this patch is just fix compilation error due to an
> > invalid asm code in the HVC call so that's why the 7th argument is removed.
> >
> > The issue does not report any error in a normal build as hvc_call is
> > not used at all and is optimized by the compiler. Using -O0 triggers
> > the error so the patch is intended to fix issues on a ongoing effor to
> > build U-Boot with -O0.
> >
> > Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza at xilinx.com>
> 
> Reviewed-by: Alexander Graf <agraf at suse.de>
> 
Thanks for the review. Do I need to CC somebody else to the patch be accepted?

> Alex
> 
> > ---
> >
> > Changes in v2:
> > - More comprehensive commit message
> >
> > arch/arm/cpu/armv8/fwcall.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/cpu/armv8/fwcall.c b/arch/arm/cpu/armv8/fwcall.c
> > index 9957c29..b0aca1b 100644
> > --- a/arch/arm/cpu/armv8/fwcall.c
> > +++ b/arch/arm/cpu/armv8/fwcall.c
> > @@ -28,7 +28,6 @@ static void hvc_call(struct pt_regs *args)
> >        "ldr x4, %4\n"
> >        "ldr x5, %5\n"
> >        "ldr x6, %6\n"
> > -        "ldr x7, %7\n"
> >        "hvc    #0\n"
> >        "str x0, %0\n"
> >        "str x1, %1\n"
> > @@ -37,7 +36,7 @@ static void hvc_call(struct pt_regs *args)
> >        : "+m" (args->regs[0]), "+m" (args->regs[1]),
> >          "+m" (args->regs[2]), "+m" (args->regs[3])
> >        : "m" (args->regs[4]), "m" (args->regs[5]),
> > -          "m" (args->regs[6]), "m" (args->regs[7])
> > +          "m" (args->regs[6])
> >        : "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7",
> >          "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15",
> >          "x16", "x17");
> > --
> > 1.8.3.1
> >



More information about the U-Boot mailing list