From: Mark Rutland <mark.rutland@arm.com> To: Sudeep Holla <sudeep.holla@arm.com> Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, arve@google.com, Andrew Walbran <qwandor@google.com>, David Hartley <dhh@qti.qualcomm.com>, Achin Gupta <Achin.Gupta@arm.com>, Jens Wiklander <jens.wiklander@linaro.org>, Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>, Marc Bonnici <marc.bonnici@arm.com>, Michael Kelley <mikelley@microsoft.com>, Will Deacon <will@kernel.org> Subject: Re: [PATCH v6 1/6] arm64: smccc: Add support for SMCCCv1.2 extended input/output registers Date: Wed, 5 May 2021 14:49:14 +0100 [thread overview] Message-ID: <20210505134914.GB5605@C02TD0UTHF1T.local> (raw) In-Reply-To: <20210505093843.3308691-2-sudeep.holla@arm.com> Hi Sudeep, On Wed, May 05, 2021 at 10:38:38AM +0100, Sudeep Holla wrote: > SMCCC v1.2 allows x8-x17 to be used as parameter registers and x4—x17 > to be used as result registers in SMC64/HVC64. Arm Firmware Framework > for Armv8-A specification makes use of x0-x7 as parameter and result > registers. There are other users like Hyper-V who intend to use beyond > x0-x7 as well. > > Current SMCCC interface in the kernel just use x0-x7 as parameter and > x0-x3 as result registers as required by SMCCCv1.0. Let us add new > interface to support this extended set of input/output registers namely > x0-x17 as both parameter and result registers. > > Cc: Michael Kelley <mikelley@microsoft.com> > Cc: Will Deacon <will@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc:Catalin Marinas <catalin.marinas@arm.com> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> I have one minor comment below, otherwise this looks good to me, and regardless: Acked-by: Mark Rutland <mark.rutland@arm.com> [...] > +/** > + * arm_smccc_1_2_hvc() - make HVC calls > + * @args: arguments passed via struct arm_smccc_1_2_regs > + * @res: result values via struct arm_smccc_1_2_regs > + * > + * This function is used to make HVC calls following SMC Calling Convention > + * v1.2 or above. The content of the supplied param are copied from the > + * structure to registers prior to the HVC instruction. The return values > + * are updated with the content from registers on return from the HVC > + * instruction. > + */ > +asmlinkage void arm_smccc_1_2_hvc(struct arm_smccc_1_2_regs *args, > + struct arm_smccc_1_2_regs *res); > + > +/** > + * arm_smccc_1_2_smc() - make SMC calls > + * @args: arguments passed via struct arm_smccc_1_2_regs > + * @res: result values via struct arm_smccc_1_2_regs > + * > + * This function is used to make SMC calls following SMC Calling Convention > + * v1.2 or above. The content of the supplied param are copied from the > + * structure to registers prior to the SMC instruction. The return values > + * are updated with the content from registers on return from the SMC > + * instruction. > + */ > +asmlinkage void arm_smccc_1_2_smc(struct arm_smccc_1_2_regs *args, > + struct arm_smccc_1_2_regs *res); > +#endif It might be worth making the args parameter to these const, since we never write to it in the asm. Thanks, Mark.
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com> To: Sudeep Holla <sudeep.holla@arm.com> Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, arve@google.com, Andrew Walbran <qwandor@google.com>, David Hartley <dhh@qti.qualcomm.com>, Achin Gupta <Achin.Gupta@arm.com>, Jens Wiklander <jens.wiklander@linaro.org>, Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>, Marc Bonnici <marc.bonnici@arm.com>, Michael Kelley <mikelley@microsoft.com>, Will Deacon <will@kernel.org> Subject: Re: [PATCH v6 1/6] arm64: smccc: Add support for SMCCCv1.2 extended input/output registers Date: Wed, 5 May 2021 14:49:14 +0100 [thread overview] Message-ID: <20210505134914.GB5605@C02TD0UTHF1T.local> (raw) In-Reply-To: <20210505093843.3308691-2-sudeep.holla@arm.com> Hi Sudeep, On Wed, May 05, 2021 at 10:38:38AM +0100, Sudeep Holla wrote: > SMCCC v1.2 allows x8-x17 to be used as parameter registers and x4—x17 > to be used as result registers in SMC64/HVC64. Arm Firmware Framework > for Armv8-A specification makes use of x0-x7 as parameter and result > registers. There are other users like Hyper-V who intend to use beyond > x0-x7 as well. > > Current SMCCC interface in the kernel just use x0-x7 as parameter and > x0-x3 as result registers as required by SMCCCv1.0. Let us add new > interface to support this extended set of input/output registers namely > x0-x17 as both parameter and result registers. > > Cc: Michael Kelley <mikelley@microsoft.com> > Cc: Will Deacon <will@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc:Catalin Marinas <catalin.marinas@arm.com> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> I have one minor comment below, otherwise this looks good to me, and regardless: Acked-by: Mark Rutland <mark.rutland@arm.com> [...] > +/** > + * arm_smccc_1_2_hvc() - make HVC calls > + * @args: arguments passed via struct arm_smccc_1_2_regs > + * @res: result values via struct arm_smccc_1_2_regs > + * > + * This function is used to make HVC calls following SMC Calling Convention > + * v1.2 or above. The content of the supplied param are copied from the > + * structure to registers prior to the HVC instruction. The return values > + * are updated with the content from registers on return from the HVC > + * instruction. > + */ > +asmlinkage void arm_smccc_1_2_hvc(struct arm_smccc_1_2_regs *args, > + struct arm_smccc_1_2_regs *res); > + > +/** > + * arm_smccc_1_2_smc() - make SMC calls > + * @args: arguments passed via struct arm_smccc_1_2_regs > + * @res: result values via struct arm_smccc_1_2_regs > + * > + * This function is used to make SMC calls following SMC Calling Convention > + * v1.2 or above. The content of the supplied param are copied from the > + * structure to registers prior to the SMC instruction. The return values > + * are updated with the content from registers on return from the SMC > + * instruction. > + */ > +asmlinkage void arm_smccc_1_2_smc(struct arm_smccc_1_2_regs *args, > + struct arm_smccc_1_2_regs *res); > +#endif It might be worth making the args parameter to these const, since we never write to it in the asm. Thanks, Mark. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-05-05 13:49 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-05 9:38 [PATCH v6 0/6] firmware: Add initial support for Arm FF-A Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-05 9:38 ` [PATCH v6 1/6] arm64: smccc: Add support for SMCCCv1.2 extended input/output registers Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-05 13:49 ` Mark Rutland [this message] 2021-05-05 13:49 ` Mark Rutland 2021-05-06 10:30 ` Sudeep Holla 2021-05-06 10:30 ` Sudeep Holla 2021-05-05 15:28 ` Michael Kelley 2021-05-05 15:28 ` Michael Kelley 2021-05-06 10:31 ` Sudeep Holla 2021-05-06 10:31 ` Sudeep Holla 2021-05-05 9:38 ` [PATCH v6 2/6] firmware: arm_ffa: Add initial FFA bus support for device enumeration Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-05 9:38 ` [PATCH v6 3/6] firmware: arm_ffa: Add initial Arm FFA driver support Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-05 9:38 ` [PATCH v6 4/6] firmware: arm_ffa: Add support for SMCCC as transport to FFA driver Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-05 9:38 ` [PATCH v6 5/6] firmware: arm_ffa: Setup in-kernel users of FFA partitions Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-05 9:38 ` [PATCH v6 6/6] firmware: arm_ffa: Add support for MEM_* interfaces Sudeep Holla 2021-05-05 9:38 ` Sudeep Holla 2021-05-20 13:20 ` [PATCH v6 0/6] firmware: Add initial support for Arm FF-A Jens Wiklander 2021-05-20 13:20 ` Jens Wiklander 2021-05-20 13:34 ` Sudeep Holla 2021-05-20 13:34 ` Sudeep Holla
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210505134914.GB5605@C02TD0UTHF1T.local \ --to=mark.rutland@arm.com \ --cc=Achin.Gupta@arm.com \ --cc=arunachalam.ganapathy@arm.com \ --cc=arve@google.com \ --cc=devicetree@vger.kernel.org \ --cc=dhh@qti.qualcomm.com \ --cc=jens.wiklander@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=marc.bonnici@arm.com \ --cc=mikelley@microsoft.com \ --cc=qwandor@google.com \ --cc=sudeep.holla@arm.com \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.