lkml.org 
[lkml]   [2020]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 2/3] arm64: enable tlbi range instructions
    Date
    TLBI RANGE feature instoduces new assembly instructions and only
    support by binutils >= 2.30. Add necessary Kconfig logic to allow
    this to be enabled and pass '-march=armv8.4-a' to KBUILD_CFLAGS.

    Signed-off-by: Zhenyu Ye <yezhenyu2@huawei.com>
    ---
    arch/arm64/Kconfig | 14 ++++++++++++++
    arch/arm64/Makefile | 7 +++++++
    2 files changed, 21 insertions(+)

    diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
    index 66dc41fd49f2..e385361f8137 100644
    --- a/arch/arm64/Kconfig
    +++ b/arch/arm64/Kconfig
    @@ -1596,6 +1596,20 @@ config ARM64_AMU_EXTN
    correctly reflect reality. Most commonly, the value read will be 0,
    indicating that the counter is not enabled.

    +config ARM64_TLB_RANGE
    + bool "Enable support for tlbi range feature"
    + default y
    + depends on AS_HAS_ARMV8_4
    + help
    + ARMv8.4-TLBI provides TLBI invalidation instruction that apply to a
    + range of input addresses.
    +
    + The feature introduces new assembly instructions, and they were
    + support when binutils >= 2.30.
    +
    +config AS_HAS_ARMV8_4
    + def_bool $(cc-option, -Wa$(comma)-march=armv8.4-a)
    +
    endmenu

    menu "ARMv8.5 architectural features"
    diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
    index a0d94d063fa8..4e823b97c92e 100644
    --- a/arch/arm64/Makefile
    +++ b/arch/arm64/Makefile
    @@ -82,11 +82,18 @@ endif
    # compiler to generate them and consequently to break the single image contract
    # we pass it only to the assembler. This option is utilized only in case of non
    # integrated assemblers.
    +ifneq ($(CONFIG_AS_HAS_ARMV8_4), y)
    branch-prot-flags-$(CONFIG_AS_HAS_PAC) += -Wa,-march=armv8.3-a
    endif
    +endif

    KBUILD_CFLAGS += $(branch-prot-flags-y)

    +ifeq ($(CONFIG_AS_HAS_ARMV8_4), y)
    +# make sure to pass the newest target architecture to -march.
    +KBUILD_CFLAGS += -Wa,-march=armv8.4-a
    +endif
    +
    ifeq ($(CONFIG_SHADOW_CALL_STACK), y)
    KBUILD_CFLAGS += -ffixed-x18
    endif
    --
    2.19.1

    \
     
     \ /
      Last update: 2020-07-15 09:20    [W:5.744 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site