From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Date: Thu, 19 May 2016 10:07:50 +0100 Subject: [U-Boot] [PATCH v3 01/11] ARM: PSCI: change PSCI function IDs base and offsets In-Reply-To: References: <1463562634-16723-1-git-send-email-hongbo.zhang@nxp.com> <1463562634-16723-2-git-send-email-hongbo.zhang@nxp.com> <573C3EE7.3060308@arm.com> Message-ID: <573D8266.2000009@arm.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 19/05/16 09:45, Hongbo Zhang wrote: > On Wed, May 18, 2016 at 6:07 PM, Andre Przywara wrote: >> Hi, >> >> On 18/05/16 10:10, macro.wave.z at gmail.com wrote: >>> From: Wang Dongsheng >>> >>> According to PSCI specification v1.0, the PSCI functions should start from >>> 0x84000000 for SMC32, this patch changes this base value as well as other >>> function offset values. >> >> Out of curiosity: Do you plan to ever support ARMv8 boards with PSCI >> services in U-Boot as well? >> Then we would need to think about adjusting the function IDs, because >> they use a "64-bit" flag for some functions. >> > My workmate Hongtao Jia is working for ARMv8 PSCI. > That should be in another separate file, so same or different function > names can both be used freely I think. OK, let's see how this looks like. The offsets are the same, the prefix is different, but not for every function - only for those that carry a register-sized argument (CPU_OFF uses the 32-bit prefix, CPU_ON the 64-bit one, for instance). That's why I was asking how we address this without duplicating everything. But we can discuss this in the ARMv8 support thread. Cheers, Andre. > >>> Signed-off-by: Wang Dongsheng >>> Signed-off-by: Hongbo Zhang >> >> Otherwise: >> Reviewed-by: Andre Przywara >> > Thanks for review. > >>> --- >>> arch/arm/include/asm/psci.h | 10 +++++----- >>> 1 file changed, 5 insertions(+), 5 deletions(-) >>> >>> diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h >>> index 128a606..a4a19e3 100644 >>> --- a/arch/arm/include/asm/psci.h >>> +++ b/arch/arm/include/asm/psci.h >>> @@ -19,13 +19,13 @@ >>> #define __ARM_PSCI_H__ >>> >>> /* PSCI interface */ >>> -#define ARM_PSCI_FN_BASE 0x95c1ba5e >>> +#define ARM_PSCI_FN_BASE 0x84000000 >>> #define ARM_PSCI_FN(n) (ARM_PSCI_FN_BASE + (n)) >>> >>> -#define ARM_PSCI_FN_CPU_SUSPEND ARM_PSCI_FN(0) >>> -#define ARM_PSCI_FN_CPU_OFF ARM_PSCI_FN(1) >>> -#define ARM_PSCI_FN_CPU_ON ARM_PSCI_FN(2) >>> -#define ARM_PSCI_FN_MIGRATE ARM_PSCI_FN(3) >>> +#define ARM_PSCI_FN_CPU_SUSPEND ARM_PSCI_FN(1) >>> +#define ARM_PSCI_FN_CPU_OFF ARM_PSCI_FN(2) >>> +#define ARM_PSCI_FN_CPU_ON ARM_PSCI_FN(3) >>> +#define ARM_PSCI_FN_MIGRATE ARM_PSCI_FN(5) >>> >>> #define ARM_PSCI_RET_SUCCESS 0 >>> #define ARM_PSCI_RET_NI (-1) >>> >