Skip to content

Commit b327dfe

Browse files
committed
Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM udpates from Russell King: - Improve Kconfig help text for Cortex A8 and Cortex A9 errata - Kconfig spelling and grammar fixes - Allow kernel-mode VFP/Neon in softirq context - Use Neon in softirq context - Implement AES-CTR/GHASH version of GCM * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 9289/1: Allow pre-ARMv5 builds with ld.lld 16.0.0 and newer ARM: 9288/1: Kconfigs: fix spelling & grammar ARM: 9286/1: crypto: Implement fused AES-CTR/GHASH version of GCM ARM: 9285/1: remove meaningless arch/arm/mach-rda/Makefile ARM: 9283/1: permit non-nested kernel mode NEON in softirq context ARM: 9282/1: vfp: Manipulate task VFP state with softirqs disabled ARM: 9281/1: improve Cortex A8/A9 errata help text
2 parents eb6d5bb + 5eb6e28 commit b327dfe

File tree

14 files changed

+855
-48
lines changed

14 files changed

+855
-48
lines changed

arch/arm/Kconfig

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -344,14 +344,16 @@ comment "CPU Core family selection"
344344
config ARCH_MULTI_V4
345345
bool "ARMv4 based platforms (FA526, StrongARM)"
346346
depends on !ARCH_MULTI_V6_V7
347-
depends on !LD_IS_LLD
347+
# https://github.com/llvm/llvm-project/issues/50764
348+
depends on !LD_IS_LLD || LLD_VERSION >= 160000
348349
select ARCH_MULTI_V4_V5
349350
select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
350351

351352
config ARCH_MULTI_V4T
352353
bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
353354
depends on !ARCH_MULTI_V6_V7
354-
depends on !LD_IS_LLD
355+
# https://github.com/llvm/llvm-project/issues/50764
356+
depends on !LD_IS_LLD || LLD_VERSION >= 160000
355357
select ARCH_MULTI_V4_V5
356358
select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
357359
CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
@@ -656,7 +658,9 @@ config ARM_ERRATA_458693
656658
hazard might then cause a processor deadlock. The workaround enables
657659
the L1 caching of the NEON accesses and disables the PLD instruction
658660
in the ACTLR register. Note that setting specific bits in the ACTLR
659-
register may not be available in non-secure mode.
661+
register may not be available in non-secure mode and thus is not
662+
available on a multiplatform kernel. This should be applied by the
663+
bootloader instead.
660664

661665
config ARM_ERRATA_460075
662666
bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
@@ -669,7 +673,9 @@ config ARM_ERRATA_460075
669673
and overwritten with stale memory contents from external memory. The
670674
workaround disables the write-allocate mode for the L2 cache via the
671675
ACTLR register. Note that setting specific bits in the ACTLR register
672-
may not be available in non-secure mode.
676+
may not be available in non-secure mode and thus is not available on
677+
a multiplatform kernel. This should be applied by the bootloader
678+
instead.
673679

674680
config ARM_ERRATA_742230
675681
bool "ARM errata: DMB operation may be faulty"
@@ -682,7 +688,10 @@ config ARM_ERRATA_742230
682688
ordering of the two writes. This workaround sets a specific bit in
683689
the diagnostic register of the Cortex-A9 which causes the DMB
684690
instruction to behave as a DSB, ensuring the correct behaviour of
685-
the two writes.
691+
the two writes. Note that setting specific bits in the diagnostics
692+
register may not be available in non-secure mode and thus is not
693+
available on a multiplatform kernel. This should be applied by the
694+
bootloader instead.
686695

687696
config ARM_ERRATA_742231
688697
bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
@@ -697,7 +706,10 @@ config ARM_ERRATA_742231
697706
replaced from one of the CPUs at the same time as another CPU is
698707
accessing it. This workaround sets specific bits in the diagnostic
699708
register of the Cortex-A9 which reduces the linefill issuing
700-
capabilities of the processor.
709+
capabilities of the processor. Note that setting specific bits in the
710+
diagnostics register may not be available in non-secure mode and thus
711+
is not available on a multiplatform kernel. This should be applied by
712+
the bootloader instead.
701713

702714
config ARM_ERRATA_643719
703715
bool "ARM errata: LoUIS bit field in CLIDR register is incorrect"
@@ -734,7 +746,9 @@ config ARM_ERRATA_743622
734746
register of the Cortex-A9 which disables the Store Buffer
735747
optimisation, preventing the defect from occurring. This has no
736748
visible impact on the overall performance or power consumption of the
737-
processor.
749+
processor. Note that setting specific bits in the diagnostics register
750+
may not be available in non-secure mode and thus is not available on a
751+
multiplatform kernel. This should be applied by the bootloader instead.
738752

739753
config ARM_ERRATA_751472
740754
bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
@@ -746,6 +760,10 @@ config ARM_ERRATA_751472
746760
completion of a following broadcasted operation if the second
747761
operation is received by a CPU before the ICIALLUIS has completed,
748762
potentially leading to corrupted entries in the cache or TLB.
763+
Note that setting specific bits in the diagnostics register may
764+
not be available in non-secure mode and thus is not available on
765+
a multiplatform kernel. This should be applied by the bootloader
766+
instead.
749767

750768
config ARM_ERRATA_754322
751769
bool "ARM errata: possible faulty MMU translations following an ASID switch"

arch/arm/Kconfig.debug

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,8 +1206,8 @@ choice
12061206
depends on MACH_STM32MP157
12071207
select DEBUG_STM32_UART
12081208
help
1209-
Say Y here if you want kernel low-level debugging support
1210-
on STM32MP1 based platforms, wich default UART is wired on
1209+
Say Y here if you want kernel low-level debugging support on
1210+
STM32MP1-based platforms, where the default UART is wired to
12111211
UART4, but another UART instance can be selected by modifying
12121212
CONFIG_DEBUG_UART_PHYS and CONFIG_DEBUG_UART_VIRT.
12131213

arch/arm/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,6 @@ machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2
209209
machine-$(CONFIG_ARCH_ORION5X) += orion5x
210210
machine-$(CONFIG_ARCH_PXA) += pxa
211211
machine-$(CONFIG_ARCH_QCOM) += qcom
212-
machine-$(CONFIG_ARCH_RDA) += rda
213212
machine-$(CONFIG_ARCH_REALTEK) += realtek
214213
machine-$(CONFIG_ARCH_ROCKCHIP) += rockchip
215214
machine-$(CONFIG_ARCH_RPC) += rpc

arch/arm/crypto/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ config CRYPTO_CURVE25519_NEON
1616
config CRYPTO_GHASH_ARM_CE
1717
tristate "Hash functions: GHASH (PMULL/NEON/ARMv8 Crypto Extensions)"
1818
depends on KERNEL_MODE_NEON
19+
select CRYPTO_AEAD
1920
select CRYPTO_HASH
2021
select CRYPTO_CRYPTD
22+
select CRYPTO_LIB_AES
2123
select CRYPTO_LIB_GF128MUL
2224
help
2325
GCM GHASH function (NIST SP800-38D)

0 commit comments

Comments
 (0)