On Wed, Jun 12, 2024 at 10:53:30AM +0100, Jiaxun Yang wrote: > Introduce CPU_HAS_LLSC and CPU_MAY_HAVE_LLSC to determine availability > of LLSC and Kconfig level. > > They are both true for almost all supported CPUs besides: > > R3000: Doesn't have LLSC, so both false. > R5000 series: LLSC is unusable for 64bit kernel, so both false. > R10000: Some platforms decided to opt-out LLSC due to errata, so only > select CPU_MAY_HAVE_LLSC. > WAR_4KC_LLSC: LLSC is buggy on certain reversion, which can be detected > at cpu-probe or platform override, so only select CPU_MAY_HAVE_LLSC. > > Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> > --- > v2: Make cpu_has_llsc logic clear > --- > arch/mips/Kconfig | 20 ++++++++++++++++++++ > arch/mips/include/asm/cpu-features.h | 9 ++++++++- > 2 files changed, 28 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index 8ac467c1f9c8..50260a7e9b54 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -1548,6 +1548,7 @@ config CPU_R3000 > config CPU_R4300 > bool "R4300" > depends on SYS_HAS_CPU_R4300 > + select CPU_HAS_LLSC > select CPU_SUPPORTS_32BIT_KERNEL > select CPU_SUPPORTS_64BIT_KERNEL > help > @@ -1556,6 +1557,7 @@ config CPU_R4300 > config CPU_R4X00 > bool "R4x00" > depends on SYS_HAS_CPU_R4X00 > + select CPU_HAS_LLSC > select CPU_SUPPORTS_32BIT_KERNEL > select CPU_SUPPORTS_64BIT_KERNEL > select CPU_SUPPORTS_HUGEPAGES > @@ -1566,6 +1568,7 @@ config CPU_R4X00 > config CPU_TX49XX > bool "R49XX" > depends on SYS_HAS_CPU_TX49XX > + select CPU_HAS_LLSC > select CPU_HAS_PREFETCH > select CPU_SUPPORTS_32BIT_KERNEL > select CPU_SUPPORTS_64BIT_KERNEL > @@ -1574,6 +1577,7 @@ config CPU_TX49XX > config CPU_R5000 > bool "R5000" > depends on SYS_HAS_CPU_R5000 > + select CPU_HAS_LLSC if !64BIT > select CPU_SUPPORTS_32BIT_KERNEL > select CPU_SUPPORTS_64BIT_KERNEL > select CPU_SUPPORTS_HUGEPAGES > @@ -1583,6 +1587,7 @@ config CPU_R5000 > config CPU_R5500 > bool "R5500" > depends on SYS_HAS_CPU_R5500 > + select CPU_HAS_LLSC do you have an user manual stating that the R5k bug is fixed on this CPUs ? Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]