From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/3] arm64: Emulate SETEND for AArch32 tasks
Date: Fri, 16 Jan 2015 16:56:00 +0000 [thread overview]
Message-ID: <20150116165600.GF32155@leverpostej> (raw)
In-Reply-To: <1421325366-13263-4-git-send-email-suzuki.poulose@arm.com>
On Thu, Jan 15, 2015 at 12:36:06PM +0000, Suzuki K. Poulose wrote:
> From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
>
> Emulate deprecated 'setend' instruction for AArch32 bit tasks.
>
> setend [le/be] - Sets the endianness of EL0
>
> On systems with CPUs which support mixed endian at EL0, the hardware
> support for the instruction can be enabled by setting the SCTLR_EL1.SED
> bit. Like the other emulated instructions it is controlled by an entry in
> /proc/sys/abi/. For more information see :
> Documentation/arm64/legacy_instructions.txt
>
> The instruction is emulated by setting/clearing the SPSR_EL1.E bit, which
> will be reflected in the PSTATE.E in AArch32 context.
>
> This patch also restores the native endianness for the execution of signal
> handlers, since the process could have changed the endianness.
>
> Note: All CPUs on the system should support for mixed endian at EL0. Once the
> handler is registered a CPU which doesn't support mixed endian, cannot be
> hotplugged in.
>
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
> Documentation/arm64/legacy_instructions.txt | 9 +++
> arch/arm64/Kconfig | 10 ++++
> arch/arm64/include/asm/cpufeature.h | 1 +
> arch/arm64/include/asm/ptrace.h | 7 +++
> arch/arm64/kernel/armv8_deprecated.c | 82 +++++++++++++++++++++++++++
> arch/arm64/kernel/signal32.c | 5 +-
> 6 files changed, 113 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/arm64/legacy_instructions.txt b/Documentation/arm64/legacy_instructions.txt
> index 0a4dc26..92b7945 100644
> --- a/Documentation/arm64/legacy_instructions.txt
> +++ b/Documentation/arm64/legacy_instructions.txt
> @@ -47,3 +47,12 @@ Default: Undef (0)
> Node: /proc/sys/abi/cp15_barrier
> Status: Deprecated
> Default: Emulate (1)
> +
> +* SETEND
> +Node: /proc/sys/abi/setend
> +Status: Deprecated
> +Default: Emulate (1)*
> +Note: All the cpus on the system should support mixed endian at EL0
> +(ID_AA64MMFR0_EL1:BigEnd or BigEndEL0), for this feature to be enabled.
This might read a little better as:
Note: all CPUs in the system must have mixed-endian support at EL0 for
this feature to be enabled.
That matches the ARM ARM wording for ID_AA64MMFR0_EL1. We shouldn't need
to mention the particular register fields here.
Also, we should probably add a note at the top like:
Note: instruction emulation may not be possible in all cases. See
below for further information.
Thanks,
Mark.
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"leo.yan@linaro.org" <leo.yan@linaro.org>,
"yexl@marvell.com" <yexl@marvell.com>,
Will Deacon <Will.Deacon@arm.com>,
Catalin Marinas <Catalin.Marinas@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/3] arm64: Emulate SETEND for AArch32 tasks
Date: Fri, 16 Jan 2015 16:56:00 +0000 [thread overview]
Message-ID: <20150116165600.GF32155@leverpostej> (raw)
In-Reply-To: <1421325366-13263-4-git-send-email-suzuki.poulose@arm.com>
On Thu, Jan 15, 2015 at 12:36:06PM +0000, Suzuki K. Poulose wrote:
> From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
>
> Emulate deprecated 'setend' instruction for AArch32 bit tasks.
>
> setend [le/be] - Sets the endianness of EL0
>
> On systems with CPUs which support mixed endian at EL0, the hardware
> support for the instruction can be enabled by setting the SCTLR_EL1.SED
> bit. Like the other emulated instructions it is controlled by an entry in
> /proc/sys/abi/. For more information see :
> Documentation/arm64/legacy_instructions.txt
>
> The instruction is emulated by setting/clearing the SPSR_EL1.E bit, which
> will be reflected in the PSTATE.E in AArch32 context.
>
> This patch also restores the native endianness for the execution of signal
> handlers, since the process could have changed the endianness.
>
> Note: All CPUs on the system should support for mixed endian at EL0. Once the
> handler is registered a CPU which doesn't support mixed endian, cannot be
> hotplugged in.
>
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
> Documentation/arm64/legacy_instructions.txt | 9 +++
> arch/arm64/Kconfig | 10 ++++
> arch/arm64/include/asm/cpufeature.h | 1 +
> arch/arm64/include/asm/ptrace.h | 7 +++
> arch/arm64/kernel/armv8_deprecated.c | 82 +++++++++++++++++++++++++++
> arch/arm64/kernel/signal32.c | 5 +-
> 6 files changed, 113 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/arm64/legacy_instructions.txt b/Documentation/arm64/legacy_instructions.txt
> index 0a4dc26..92b7945 100644
> --- a/Documentation/arm64/legacy_instructions.txt
> +++ b/Documentation/arm64/legacy_instructions.txt
> @@ -47,3 +47,12 @@ Default: Undef (0)
> Node: /proc/sys/abi/cp15_barrier
> Status: Deprecated
> Default: Emulate (1)
> +
> +* SETEND
> +Node: /proc/sys/abi/setend
> +Status: Deprecated
> +Default: Emulate (1)*
> +Note: All the cpus on the system should support mixed endian at EL0
> +(ID_AA64MMFR0_EL1:BigEnd or BigEndEL0), for this feature to be enabled.
This might read a little better as:
Note: all CPUs in the system must have mixed-endian support at EL0 for
this feature to be enabled.
That matches the ARM ARM wording for ID_AA64MMFR0_EL1. We shouldn't need
to mention the particular register fields here.
Also, we should probably add a note at the top like:
Note: instruction emulation may not be possible in all cases. See
below for further information.
Thanks,
Mark.
next prev parent reply other threads:[~2015-01-16 16:56 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-15 12:36 [PATCHv2 0/3] Handle SETEND for AArch32 tasks Suzuki K. Poulose
2015-01-15 12:36 ` Suzuki K. Poulose
2015-01-15 12:36 ` [PATCH 1/3] arm64: Track system support for mixed endian EL0 Suzuki K. Poulose
2015-01-15 12:36 ` Suzuki K. Poulose
2015-01-16 15:53 ` Will Deacon
2015-01-16 15:53 ` Will Deacon
2015-01-16 16:15 ` Suzuki K. Poulose
2015-01-16 16:15 ` Suzuki K. Poulose
2015-01-19 9:41 ` Suzuki K. Poulose
2015-01-19 9:41 ` Suzuki K. Poulose
2015-01-15 12:36 ` [PATCH 2/3] arm64: Consolidate hotplug notifier for instruction emulation Suzuki K. Poulose
2015-01-15 12:36 ` Suzuki K. Poulose
2015-01-16 16:07 ` Will Deacon
2015-01-16 16:07 ` Will Deacon
2015-01-16 16:32 ` Mark Rutland
2015-01-16 16:32 ` Mark Rutland
2015-01-16 16:44 ` Will Deacon
2015-01-16 16:44 ` Will Deacon
2015-01-16 16:48 ` Mark Rutland
2015-01-16 16:48 ` Mark Rutland
2015-01-16 16:47 ` Suzuki K. Poulose
2015-01-16 16:47 ` Suzuki K. Poulose
2015-01-15 12:36 ` [PATCH 3/3] arm64: Emulate SETEND for AArch32 tasks Suzuki K. Poulose
2015-01-15 12:36 ` Suzuki K. Poulose
2015-01-16 16:56 ` Mark Rutland [this message]
2015-01-16 16:56 ` Mark Rutland
-- strict thread matches above, loose matches on Subject: below --
2015-01-21 12:43 [PATCHv3 0/3] Handle " Suzuki K. Poulose
2015-01-21 12:43 ` [PATCH 1/3] arm64: Track system support for mixed endian EL0 Suzuki K. Poulose
2015-01-21 12:43 ` [PATCH 2/3] arm64: Consolidate hotplug notifier for instruction emulation Suzuki K. Poulose
2015-01-21 12:43 ` [PATCH 3/3] arm64: Emulate SETEND for AArch32 tasks Suzuki K. Poulose
2015-01-21 12:43 ` Suzuki K. Poulose
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=20150116165600.GF32155@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.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: link
Be 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.