@@ -344,14 +344,16 @@ comment "CPU Core family selection"
344344config 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
351352config 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
661665config 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
674680config 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
687696config 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
702714config 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
739753config 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
750768config ARM_ERRATA_754322
751769 bool "ARM errata: possible faulty MMU translations following an ASID switch"
0 commit comments