Snap for 11916023 from d955a698092a1481716eb0a95a11284bf9cca559 to 24Q3-release Change-Id: I8142bef7831c5784c4a5fabb3c5b82f34ab22e35
diff --git a/lib/arm_ffa/arm_ffa.c b/lib/arm_ffa/arm_ffa.c index 681edf7..3f27126 100644 --- a/lib/arm_ffa/arm_ffa.c +++ b/lib/arm_ffa/arm_ffa.c
@@ -817,7 +817,7 @@ if (is_implemented) { supports_rx_release = true; } else { - TRACEF("FFA_RX_RELEASE is not implemented\n"); + LTRACEF("FFA_RX_RELEASE is not implemented\n"); } res = arm_ffa_rxtx_map_is_implemented(&is_implemented, &buf_size_log2);
diff --git a/lib/smc/arch/arm/smc.S b/lib/smc/arch/arm/smc.S index 9156cd5..2bfb242 100644 --- a/lib/smc/arch/arm/smc.S +++ b/lib/smc/arch/arm/smc.S
@@ -23,8 +23,8 @@ #include <asm.h> -FUNCTION(smc8) - /* Save stack location where r3-r7 smc arguments are stored */ +.macro smc8_hvc8, instr + /* Save stack location where r3-r7 smc/hvc arguments are stored */ mov r12, sp /* Save original r4-r7 values as caller expects these to be preserved */ @@ -41,7 +41,7 @@ /* Load stack based arguments */ ldmia r12, {r3-r7} - smc #0 + \instr #0 /* Restore return address and get return value pointer */ pop {r12, lr} @@ -54,3 +54,10 @@ /* Return */ bx lr +.endm + +FUNCTION(smc8) + smc8_hvc8 smc + +FUNCTION(hvc8) + smc8_hvc8 hvc
diff --git a/lib/smc/arch/arm64/smc.S b/lib/smc/arch/arm64/smc.S index 36a4418..76c0cc7 100644 --- a/lib/smc/arch/arm64/smc.S +++ b/lib/smc/arch/arm64/smc.S
@@ -24,14 +24,14 @@ #include <asm.h> #include <arch/asm_macros.h> -FUNCTION(smc8) +.macro smc8_hvc8, instr /* * Save x8 (return value ptr) and lr. The SMC calling convention says el3 * does not need to preserve x8. The normal ABI does not require either x8 * or lr to be preserved. */ push x8, lr - smc #0 + \instr #0 pop x8, lr /* Copy 8-register smc return value to struct smc_ret8 return value */ @@ -41,3 +41,10 @@ stp x6, x7, [x8], #16 ret +.endm + +FUNCTION(smc8) + smc8_hvc8 smc + +FUNCTION(hvc8) + smc8_hvc8 hvc
diff --git a/lib/smc/include/lib/smc/smc.h b/lib/smc/include/lib/smc/smc.h index f63c017..9d990a2 100644 --- a/lib/smc/include/lib/smc/smc.h +++ b/lib/smc/include/lib/smc/smc.h
@@ -44,3 +44,12 @@ ulong r5, ulong r6, ulong r7); + +struct smc_ret8 hvc8(ulong r0, + ulong r1, + ulong r2, + ulong r3, + ulong r4, + ulong r5, + ulong r6, + ulong r7);
diff --git a/platform/generic-arm64/platform.c b/platform/generic-arm64/platform.c index ae6dcf3..26cdb03 100644 --- a/platform/generic-arm64/platform.c +++ b/platform/generic-arm64/platform.c
@@ -214,7 +214,7 @@ #else #error "Unknown ARM64_BOOT_PROTOCOL" #endif - dprintf(INFO, + dprintf(SPEW, "gicc 0x%" PRIxPADDR ", gicd 0x%" PRIxPADDR ", gicr 0x%" PRIxPADDR "\n", gicc, gicd, gicr);