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

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@xilinx.com ---
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");

Am 25.02.2019 um 02:11 schrieb Ibai Erkiaga ibai.erkiaga-elorza@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@xilinx.com
Reviewed-by: Alexander Graf agraf@suse.de
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

Hi Alex,
-----Original Message----- From: Alexander Graf agraf@suse.de Sent: 25 February 2019 13:09 To: Ibai Erkiaga Elorza IBAIE@xilinx.com Cc: u-boot@lists.denx.de; Sumit Garg sumit.garg@linaro.org; Heinrich Schuchardt xypron.glpk@gmx.de; Tom Rini trini@konsulko.com; Albert Aribaud albert.u.boot@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@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@xilinx.com
Reviewed-by: Alexander Graf agraf@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

On Fri, Mar 15, 2019 at 12:13:11PM +0000, Ibai Erkiaga Elorza wrote:
Hi Alex,
-----Original Message----- From: Alexander Graf agraf@suse.de Sent: 25 February 2019 13:09 To: Ibai Erkiaga Elorza IBAIE@xilinx.com Cc: u-boot@lists.denx.de; Sumit Garg sumit.garg@linaro.org; Heinrich Schuchardt xypron.glpk@gmx.de; Tom Rini trini@konsulko.com; Albert Aribaud albert.u.boot@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@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@xilinx.com
Reviewed-by: Alexander Graf agraf@suse.de
Thanks for the review. Do I need to CC somebody else to the patch be accepted?
No, but I'm inclined currently to take for for the next release rather than right now, unless there's an important argument I'm missing? Which happens more than I'd care to admit ;)

Hi Tom
-----Original Message----- From: Tom Rini trini@konsulko.com Sent: 15 March 2019 16:08 To: Ibai Erkiaga Elorza IBAIE@xilinx.com Cc: Alexander Graf agraf@suse.de; u-boot@lists.denx.de; Sumit Garg sumit.garg@linaro.org; Heinrich Schuchardt xypron.glpk@gmx.de; Albert Aribaud albert.u.boot@aribaud.net Subject: Re: [U-Boot][PATCH v2] arm: fix hvc call
On Fri, Mar 15, 2019 at 12:13:11PM +0000, Ibai Erkiaga Elorza wrote:
Hi Alex,
-----Original Message----- From: Alexander Graf agraf@suse.de Sent: 25 February 2019 13:09 To: Ibai Erkiaga Elorza IBAIE@xilinx.com Cc: u-boot@lists.denx.de; Sumit Garg sumit.garg@linaro.org; Heinrich Schuchardt xypron.glpk@gmx.de; Tom Rini trini@konsulko.com; Albert Aribaud albert.u.boot@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@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@xilinx.com
Reviewed-by: Alexander Graf agraf@suse.de
Thanks for the review. Do I need to CC somebody else to the patch be
accepted?
No, but I'm inclined currently to take for for the next release rather than right now, unless there's an important argument I'm missing? Which happens more than I'd care to admit ;)
No rush, I'm pretty new contributor and just wondering if something else was missing after Alexander's Review.
-- Tom
Ibai

On Mon, Feb 25, 2019 at 10:11:45AM +0000, Ibai Erkiaga wrote:
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@xilinx.com
Applied to u-boot/master, thanks!
participants (4)
-
Alexander Graf
-
Ibai Erkiaga
-
Ibai Erkiaga Elorza
-
Tom Rini