Messages in this thread | | | From | George Pee <> | Date | Fri, 9 Sep 2022 08:34:26 -0500 | Subject | Re: [PATCH] Report support for optional ARMv8.2 half-precision floating point extension |
| |
Adding the hwcap was part of the diagnosis process-- I added it just to make sure that the cpu in question supported the optional extension. It seems like it could be useful to be able to check for support in /proc/cpuinfo.
On Fri, Sep 9, 2022 at 7:46 AM Robin Murphy <robin.murphy@arm.com> wrote: > > On 2022-09-01 15:13, george pee wrote: > > Report as fphp to be consistent with arm64 > > Wasn't the original problem that the VFP support code doesn't understand > the new FP16 instruction encodings, so in practice they don't actually > work reliably? Exposing a hwcap to say they're functional doesn't > inherently make them functional - if there is already another patch > somewhere for that, it should be made clear that this depends on it. > > Robin. > > > Signed-off-by: george pee <georgepee@gmail.com> > > --- > > arch/arm/include/uapi/asm/hwcap.h | 1 + > > arch/arm/kernel/setup.c | 1 + > > arch/arm/vfp/vfpmodule.c | 2 ++ > > 3 files changed, 4 insertions(+) > > > > diff --git a/arch/arm/include/uapi/asm/hwcap.h b/arch/arm/include/uapi/asm/hwcap.h > > index 990199d8b7c6..f975845ce5d3 100644 > > --- a/arch/arm/include/uapi/asm/hwcap.h > > +++ b/arch/arm/include/uapi/asm/hwcap.h > > @@ -28,6 +28,7 @@ > > #define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT) > > #define HWCAP_LPAE (1 << 20) > > #define HWCAP_EVTSTRM (1 << 21) > > +#define HWCAP_FPHP (1 << 22) > > > > /* > > * HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2 > > diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c > > index 1e8a50a97edf..6694ced0552a 100644 > > --- a/arch/arm/kernel/setup.c > > +++ b/arch/arm/kernel/setup.c > > @@ -1249,6 +1249,7 @@ static const char *hwcap_str[] = { > > "vfpd32", > > "lpae", > > "evtstrm", > > + "fphp", > > NULL > > }; > > > > diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c > > index 2cb355c1b5b7..cef8c64ce8bd 100644 > > --- a/arch/arm/vfp/vfpmodule.c > > +++ b/arch/arm/vfp/vfpmodule.c > > @@ -831,6 +831,8 @@ static int __init vfp_init(void) > > > > if ((fmrx(MVFR1) & 0xf0000000) == 0x10000000) > > elf_hwcap |= HWCAP_VFPv4; > > + if ((fmrx(MVFR1) & 0x0f000000) == 0x03000000) > > + elf_hwcap |= HWCAP_FPHP; > > } > > /* Extract the architecture version on pre-cpuid scheme */ > > } else {
| |