Skip to content

Commit 09a31a7

Browse files
committed
Merge tag 'mips_5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS updates from Thomas Bogendoerfer: - removed support for PNX833x alias NXT_STB22x - included Ingenic SoC support into generic MIPS kernels - added support for new Ingenic SoCs - converted workaround selection to use Kconfig - replaced old boot mem functions by memblock_* - enabled COP2 usage in kernel for Loongson64 to make use of 16byte load/stores possible - cleanups and fixes * tag 'mips_5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (92 commits) MIPS: DEC: Restore bootmem reservation for firmware working memory area MIPS: dec: fix section mismatch bcm963xx_tag.h: fix duplicated word mips: ralink: enable zboot support MIPS: ingenic: Remove CPU_SUPPORTS_HUGEPAGES MIPS: cpu-probe: remove MIPS_CPU_BP_GHIST option bit MIPS: cpu-probe: introduce exclusive R3k CPU probe MIPS: cpu-probe: move fpu probing/handling into its own file MIPS: replace add_memory_region with memblock MIPS: Loongson64: Clean up numa.c MIPS: Loongson64: Select SMP in Kconfig to avoid build error mips: octeon: Add Ubiquiti E200 and E220 boards MIPS: SGI-IP28: disable use of ll/sc in kernel MIPS: tx49xx: move tx4939_add_memory_regions into only user MIPS: pgtable: Remove used PAGE_USERIO define MIPS: alchemy: Share prom_init implementation MIPS: alchemy: Fix build breakage, if TOUCHSCREEN_WM97XX is disabled MIPS: process: include exec.h header in process.c MIPS: process: Add prototype for function arch_dup_task_struct MIPS: idle: Add prototype for function check_wait ...
2 parents 847d428 + cf3af0a commit 09a31a7

File tree

165 files changed

+1730
-3681
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+1730
-3681
lines changed

Documentation/devicetree/bindings/mips/ingenic/devices.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,9 @@ properties:
4747
items:
4848
- const: yna,cu1830-neo
4949
- const: ingenic,x1830
50+
51+
- description: YSH & ATIL General Board, CU2000 Module with Neo Backplane
52+
items:
53+
- const: yna,cu2000-neo
54+
- const: ingenic,x2000e
5055
...

MAINTAINERS

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8675,8 +8675,9 @@ INGENIC JZ47xx SoCs
86758675
M: Paul Cercueil <[email protected]>
86768676
S: Maintained
86778677
F: arch/mips/boot/dts/ingenic/
8678-
F: arch/mips/include/asm/mach-jz4740/
8679-
F: arch/mips/jz4740/
8678+
F: arch/mips/generic/board-ingenic.c
8679+
F: arch/mips/include/asm/mach-ingenic/
8680+
F: arch/mips/ingenic/Kconfig
86808681
F: drivers/clk/ingenic/
86818682
F: drivers/dma/dma-jz4780.c
86828683
F: drivers/gpu/drm/ingenic/

arch/mips/Kbuild.platforms

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ platform-$(CONFIG_MIPS_COBALT) += cobalt/
1313
platform-$(CONFIG_MACH_DECSTATION) += dec/
1414
platform-$(CONFIG_MIPS_GENERIC) += generic/
1515
platform-$(CONFIG_MACH_JAZZ) += jazz/
16-
platform-$(CONFIG_MACH_INGENIC) += jz4740/
1716
platform-$(CONFIG_LANTIQ) += lantiq/
1817
platform-$(CONFIG_MACH_LOONGSON2EF) += loongson2ef/
1918
platform-$(CONFIG_MACH_LOONGSON32) += loongson32/
@@ -22,7 +21,6 @@ platform-$(CONFIG_MIPS_MALTA) += mti-malta/
2221
platform-$(CONFIG_NLM_COMMON) += netlogic/
2322
platform-$(CONFIG_PIC32MZDA) += pic32/
2423
platform-$(CONFIG_MACH_PISTACHIO) += pistachio/
25-
platform-$(CONFIG_SOC_PNX833X) += pnx833x/
2624
platform-$(CONFIG_RALINK) += ralink/
2725
platform-$(CONFIG_MIKROTIK_RB532) += rb532/
2826
platform-$(CONFIG_SGI_IP22) += sgi-ip22/

arch/mips/Kconfig

Lines changed: 111 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,34 @@ config MIPS
9494
config MIPS_FIXUP_BIGPHYS_ADDR
9595
bool
9696

97+
config MIPS_GENERIC
98+
bool
99+
100+
config MACH_INGENIC
101+
bool
102+
select SYS_SUPPORTS_32BIT_KERNEL
103+
select SYS_SUPPORTS_LITTLE_ENDIAN
104+
select SYS_SUPPORTS_ZBOOT
105+
select DMA_NONCOHERENT
106+
select IRQ_MIPS_CPU
107+
select PINCTRL
108+
select GPIOLIB
109+
select COMMON_CLK
110+
select GENERIC_IRQ_CHIP
111+
select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
112+
select USE_OF
113+
select CPU_SUPPORTS_CPUFREQ
114+
select MIPS_EXTERNAL_TIMER
115+
97116
menu "Machine selection"
98117

99118
choice
100119
prompt "System type"
101-
default MIPS_GENERIC
120+
default MIPS_GENERIC_KERNEL
102121

103-
config MIPS_GENERIC
122+
config MIPS_GENERIC_KERNEL
104123
bool "Generic board-agnostic MIPS kernel"
124+
select MIPS_GENERIC
105125
select BOOT_RAW
106126
select BUILTIN_DTB
107127
select CEVT_R4K
@@ -138,6 +158,7 @@ config MIPS_GENERIC
138158
select SYS_SUPPORTS_MULTITHREADING
139159
select SYS_SUPPORTS_RELOCATABLE
140160
select SYS_SUPPORTS_SMARTMIPS
161+
select SYS_SUPPORTS_ZBOOT
141162
select UHI_BOOT
142163
select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
143164
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
@@ -390,20 +411,11 @@ config MACH_JAZZ
390411
Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
391412
Olivetti M700-10 workstations.
392413

393-
config MACH_INGENIC
414+
config MACH_INGENIC_SOC
394415
bool "Ingenic SoC based machines"
395-
select SYS_SUPPORTS_32BIT_KERNEL
396-
select SYS_SUPPORTS_LITTLE_ENDIAN
416+
select MIPS_GENERIC
417+
select MACH_INGENIC
397418
select SYS_SUPPORTS_ZBOOT_UART16550
398-
select CPU_SUPPORTS_HUGEPAGES
399-
select DMA_NONCOHERENT
400-
select IRQ_MIPS_CPU
401-
select PINCTRL
402-
select GPIOLIB
403-
select COMMON_CLK
404-
select GENERIC_IRQ_CHIP
405-
select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
406-
select USE_OF
407419

408420
config LANTIQ
409421
bool "Lantiq based platforms"
@@ -476,6 +488,7 @@ config MACH_LOONGSON64
476488
select SYS_SUPPORTS_ZBOOT
477489
select ZONE_DMA32
478490
select NUMA
491+
select SMP
479492
select COMMON_CLK
480493
select USE_OF
481494
select BUILTIN_DTB
@@ -569,6 +582,7 @@ config MIPS_MALTA
569582
select SYS_SUPPORTS_VPE_LOADER
570583
select SYS_SUPPORTS_ZBOOT
571584
select USE_OF
585+
select WAR_ICACHE_REFILLS
572586
select ZONE_DMA32 if 64BIT
573587
help
574588
This enables support for the MIPS Technologies Malta evaluation
@@ -590,19 +604,6 @@ config MACH_VR41XX
590604
select SYS_SUPPORTS_MIPS16
591605
select GPIOLIB
592606

593-
config NXP_STB220
594-
bool "NXP STB220 board"
595-
select SOC_PNX833X
596-
help
597-
Support for NXP Semiconductors STB220 Development Board.
598-
599-
config NXP_STB225
600-
bool "NXP 225 board"
601-
select SOC_PNX833X
602-
select SOC_PNX8335
603-
help
604-
Support for NXP Semiconductors STB225 Development Board.
605-
606607
config RALINK
607608
bool "Ralink based machines"
608609
select CEVT_R4K
@@ -616,6 +617,7 @@ config RALINK
616617
select SYS_SUPPORTS_32BIT_KERNEL
617618
select SYS_SUPPORTS_LITTLE_ENDIAN
618619
select SYS_SUPPORTS_MIPS16
620+
select SYS_SUPPORTS_ZBOOT
619621
select SYS_HAS_EARLY_PRINTK
620622
select CLKDEV_LOOKUP
621623
select ARCH_HAS_RESET_CONTROLLER
@@ -652,6 +654,9 @@ config SGI_IP22
652654
select SYS_SUPPORTS_32BIT_KERNEL
653655
select SYS_SUPPORTS_64BIT_KERNEL
654656
select SYS_SUPPORTS_BIG_ENDIAN
657+
select WAR_R4600_V1_INDEX_ICACHEOP
658+
select WAR_R4600_V1_HIT_CACHEOP
659+
select WAR_R4600_V2_HIT_CACHEOP
655660
select MIPS_L1_CACHE_SHIFT_7
656661
help
657662
This are the SGI Indy, Challenge S and Indigo2, as well as certain
@@ -679,6 +684,7 @@ config SGI_IP27
679684
select SYS_SUPPORTS_BIG_ENDIAN
680685
select SYS_SUPPORTS_NUMA
681686
select SYS_SUPPORTS_SMP
687+
select WAR_R10000_LLSC
682688
select MIPS_L1_CACHE_SHIFT_7
683689
select NUMA
684690
help
@@ -714,6 +720,7 @@ config SGI_IP28
714720
select SYS_HAS_EARLY_PRINTK
715721
select SYS_SUPPORTS_64BIT_KERNEL
716722
select SYS_SUPPORTS_BIG_ENDIAN
723+
select WAR_R10000_LLSC
717724
select MIPS_L1_CACHE_SHIFT_7
718725
help
719726
This is the SGI Indigo2 with R10000 processor. To compile a Linux
@@ -740,6 +747,7 @@ config SGI_IP30
740747
select SYS_SUPPORTS_64BIT_KERNEL
741748
select SYS_SUPPORTS_BIG_ENDIAN
742749
select SYS_SUPPORTS_SMP
750+
select WAR_R10000_LLSC
743751
select MIPS_L1_CACHE_SHIFT_7
744752
select ARC_MEMORY
745753
help
@@ -767,6 +775,7 @@ config SGI_IP32
767775
select SYS_HAS_CPU_NEVADA
768776
select SYS_SUPPORTS_64BIT_KERNEL
769777
select SYS_SUPPORTS_BIG_ENDIAN
778+
select WAR_ICACHE_REFILLS
770779
help
771780
If you want this kernel to run on SGI O2 workstation, say Y here.
772781

@@ -890,6 +899,7 @@ config SNI_RM
890899
select SYS_SUPPORTS_BIG_ENDIAN
891900
select SYS_SUPPORTS_HIGHMEM
892901
select SYS_SUPPORTS_LITTLE_ENDIAN
902+
select WAR_R4600_V2_HIT_CACHEOP
893903
help
894904
The SNI RM200/300/400 are MIPS-based machines manufactured by
895905
Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
@@ -901,6 +911,7 @@ config MACH_TX39XX
901911

902912
config MACH_TX49XX
903913
bool "Toshiba TX49 series based machines"
914+
select WAR_TX49XX_ICACHE_INDEX_INV
904915

905916
config MIKROTIK_RB532
906917
bool "Mikrotik RB532 boards"
@@ -1026,8 +1037,8 @@ source "arch/mips/bcm47xx/Kconfig"
10261037
source "arch/mips/bcm63xx/Kconfig"
10271038
source "arch/mips/bmips/Kconfig"
10281039
source "arch/mips/generic/Kconfig"
1040+
source "arch/mips/ingenic/Kconfig"
10291041
source "arch/mips/jazz/Kconfig"
1030-
source "arch/mips/jz4740/Kconfig"
10311042
source "arch/mips/lantiq/Kconfig"
10321043
source "arch/mips/pic32/Kconfig"
10331044
source "arch/mips/pistachio/Kconfig"
@@ -1267,23 +1278,6 @@ config PCI_XTALK_BRIDGE
12671278
config NO_EXCEPT_FILL
12681279
bool
12691280

1270-
config SOC_PNX833X
1271-
bool
1272-
select CEVT_R4K
1273-
select CSRC_R4K
1274-
select IRQ_MIPS_CPU
1275-
select DMA_NONCOHERENT
1276-
select SYS_HAS_CPU_MIPS32_R2
1277-
select SYS_SUPPORTS_32BIT_KERNEL
1278-
select SYS_SUPPORTS_LITTLE_ENDIAN
1279-
select SYS_SUPPORTS_BIG_ENDIAN
1280-
select SYS_SUPPORTS_MIPS16
1281-
select CPU_MIPSR2_IRQ_VI
1282-
1283-
config SOC_PNX8335
1284-
bool
1285-
select SOC_PNX833X
1286-
12871281
config MIPS_SPRAM
12881282
bool
12891283

@@ -1620,7 +1614,6 @@ config CPU_P5600
16201614
select CPU_SUPPORTS_32BIT_KERNEL
16211615
select CPU_SUPPORTS_HIGHMEM
16221616
select CPU_SUPPORTS_MSA
1623-
select CPU_SUPPORTS_UNCACHED_ACCELERATED
16241617
select CPU_SUPPORTS_CPUFREQ
16251618
select CPU_MIPSR2_IRQ_VI
16261619
select CPU_MIPSR2_IRQ_EI
@@ -1891,6 +1884,7 @@ config SYS_SUPPORTS_ZBOOT
18911884
select HAVE_KERNEL_LZMA
18921885
select HAVE_KERNEL_LZO
18931886
select HAVE_KERNEL_XZ
1887+
select HAVE_KERNEL_ZSTD
18941888

18951889
config SYS_SUPPORTS_ZBOOT_UART16550
18961890
bool
@@ -2272,7 +2266,7 @@ config FORCE_MAX_ZONEORDER
22722266
default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
22732267
range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
22742268
default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2275-
range 11 64
2269+
range 0 64
22762270
default "11"
22772271
help
22782272
The kernel memory allocator divides physically contiguous memory
@@ -2638,6 +2632,76 @@ config MIPS_ASID_BITS_VARIABLE
26382632
config MIPS_CRC_SUPPORT
26392633
bool
26402634

2635+
# R4600 erratum. Due to the lack of errata information the exact
2636+
# technical details aren't known. I've experimentally found that disabling
2637+
# interrupts during indexed I-cache flushes seems to be sufficient to deal
2638+
# with the issue.
2639+
config WAR_R4600_V1_INDEX_ICACHEOP
2640+
bool
2641+
2642+
# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata:
2643+
#
2644+
# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
2645+
# Hit_Invalidate_D and Create_Dirty_Excl_D should only be
2646+
# executed if there is no other dcache activity. If the dcache is
2647+
# accessed for another instruction immeidately preceding when these
2648+
# cache instructions are executing, it is possible that the dcache
2649+
# tag match outputs used by these cache instructions will be
2650+
# incorrect. These cache instructions should be preceded by at least
2651+
# four instructions that are not any kind of load or store
2652+
# instruction.
2653+
#
2654+
# This is not allowed: lw
2655+
# nop
2656+
# nop
2657+
# nop
2658+
# cache Hit_Writeback_Invalidate_D
2659+
#
2660+
# This is allowed: lw
2661+
# nop
2662+
# nop
2663+
# nop
2664+
# nop
2665+
# cache Hit_Writeback_Invalidate_D
2666+
config WAR_R4600_V1_HIT_CACHEOP
2667+
bool
2668+
2669+
# Writeback and invalidate the primary cache dcache before DMA.
2670+
#
2671+
# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
2672+
# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
2673+
# operate correctly if the internal data cache refill buffer is empty. These
2674+
# CACHE instructions should be separated from any potential data cache miss
2675+
# by a load instruction to an uncached address to empty the response buffer."
2676+
# (Revision 2.0 device errata from IDT available on https://www.idt.com/
2677+
# in .pdf format.)
2678+
config WAR_R4600_V2_HIT_CACHEOP
2679+
bool
2680+
2681+
# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for
2682+
# the line which this instruction itself exists, the following
2683+
# operation is not guaranteed."
2684+
#
2685+
# Workaround: do two phase flushing for Index_Invalidate_I
2686+
config WAR_TX49XX_ICACHE_INDEX_INV
2687+
bool
2688+
2689+
# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
2690+
# opposes it being called that) where invalid instructions in the same
2691+
# I-cache line worth of instructions being fetched may case spurious
2692+
# exceptions.
2693+
config WAR_ICACHE_REFILLS
2694+
bool
2695+
2696+
# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that
2697+
# may cause ll / sc and lld / scd sequences to execute non-atomically.
2698+
config WAR_R10000_LLSC
2699+
bool
2700+
2701+
# 34K core erratum: "Problems Executing the TLBR Instruction"
2702+
config WAR_MIPS34K_MISSED_ITLB
2703+
bool
2704+
26412705
#
26422706
# - Highmem only makes sense for the 32-bit kernel.
26432707
# - The current highmem code will only work properly on physically indexed

arch/mips/alchemy/Kconfig

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
# au1000-style gpio and interrupt controllers
3-
config ALCHEMY_GPIOINT_AU1000
4-
bool
5-
6-
# au1300-style GPIO/INT controller
7-
config ALCHEMY_GPIOINT_AU1300
8-
bool
9-
102
choice
113
prompt "Machine type"
124
depends on MIPS_ALCHEMY
@@ -15,7 +7,6 @@ choice
157
config MIPS_MTX1
168
bool "4G Systems MTX-1 board"
179
select HAVE_PCI
18-
select ALCHEMY_GPIOINT_AU1000
1910
select SYS_SUPPORTS_LITTLE_ENDIAN
2011
select SYS_HAS_EARLY_PRINTK
2112

@@ -33,13 +24,11 @@ config MIPS_DB1XXX
3324

3425
config MIPS_XXS1500
3526
bool "MyCable XXS1500 board"
36-
select ALCHEMY_GPIOINT_AU1000
3727
select SYS_SUPPORTS_LITTLE_ENDIAN
3828
select SYS_HAS_EARLY_PRINTK
3929

4030
config MIPS_GPR
4131
bool "Trapeze ITS GPR board"
42-
select ALCHEMY_GPIOINT_AU1000
4332
select HAVE_PCI
4433
select SYS_SUPPORTS_LITTLE_ENDIAN
4534
select SYS_HAS_EARLY_PRINTK

0 commit comments

Comments
 (0)