Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e476d91 authored by Huacai Chen's avatar Huacai Chen Committed by Ralf Baechle
Browse files

MIPS: Loongson: Add Loongson-3 Kconfig options



Added Kconfig options include: Loongson-3 CPU and machine definition,
CPU cache features, UEFI-like firmware interface (LEFI), HT-linked PCI,
and swiotlb support.

Signed-off-by: default avatarHuacai Chen <chenhc@lemote.com>
Signed-off-by: default avatarHongliang Tao <taohl@lemote.com>
Signed-off-by: default avatarHua Yan <yanh@lemote.com>
Tested-by: default avatarAlex Smith <alex.smith@imgtec.com>
Reviewed-by: default avatarAlex Smith <alex.smith@imgtec.com>
Cc: John Crispin <john@phrozen.org>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/6637


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 1299b0e0
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -1153,6 +1153,18 @@ choice
	prompt "CPU type"
	default CPU_R4X00

config CPU_LOONGSON3
	bool "Loongson 3 CPU"
	depends on SYS_HAS_CPU_LOONGSON3
	select CPU_SUPPORTS_64BIT_KERNEL
	select CPU_SUPPORTS_HIGHMEM
	select CPU_SUPPORTS_HUGEPAGES
	select WEAK_ORDERING
	select WEAK_REORDERING_BEYOND_LLSC
	help
		The Loongson 3 processor implements the MIPS64R2 instruction
		set with many extensions.

config CPU_LOONGSON2E
	bool "Loongson 2E"
	depends on SYS_HAS_CPU_LOONGSON2E
@@ -1549,6 +1561,10 @@ config CPU_BMIPS5000
	select SYS_SUPPORTS_SMP
	select SYS_SUPPORTS_HOTPLUG_CPU

config SYS_HAS_CPU_LOONGSON3
	bool
	select CPU_SUPPORTS_CPUFREQ

config SYS_HAS_CPU_LOONGSON2E
	bool

@@ -1761,7 +1777,7 @@ choice

config PAGE_SIZE_4KB
	bool "4kB"
	depends on !CPU_LOONGSON2
	depends on !CPU_LOONGSON2 && !CPU_LOONGSON3
	help
	 This option select the standard 4kB Linux page size.  On some
	 R3000-family processors this is the only available page size.  Using
@@ -2493,6 +2509,17 @@ config PCI
	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
	  say Y, otherwise N.

config HT_PCI
	bool "Support for HT-linked PCI"
	default y
	depends on CPU_LOONGSON3
	select PCI
	select PCI_DOMAINS
	help
	  Loongson family machines use Hyper-Transport bus for inter-core
	  connection and device connection. The PCI bus is a subordinate
	  linked at HT. Choose Y for Loongson-3 based machines.

config PCI_DOMAINS
	bool

+46 −0
Original line number Diff line number Diff line
@@ -59,6 +59,35 @@ config LEMOTE_MACH2F

	  These family machines include fuloong2f mini PC, yeeloong2f notebook,
	  LingLoong allinone PC and so forth.

config LEMOTE_MACH3A
	bool "Lemote Loongson 3A family machines"
	select ARCH_SPARSEMEM_ENABLE
	select GENERIC_ISA_DMA_SUPPORT_BROKEN
	select GENERIC_HARDIRQS_NO__DO_IRQ
	select BOOT_ELF32
	select BOARD_SCACHE
	select CSRC_R4K
	select CEVT_R4K
	select CPU_HAS_WB
	select HW_HAS_PCI
	select ISA
	select HT_PCI
	select I8259
	select IRQ_CPU
	select NR_CPUS_DEFAULT_4
	select SYS_HAS_CPU_LOONGSON3
	select SYS_HAS_EARLY_PRINTK
	select SYS_SUPPORTS_SMP
	select SYS_SUPPORTS_64BIT_KERNEL
	select SYS_SUPPORTS_HIGHMEM
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select LOONGSON_MC146818
	select ZONE_DMA32
	select LEFI_FIRMWARE_INTERFACE
	help
		Lemote Loongson 3A family machines utilize the 3A revision of
		Loongson processor and RS780/SBX00 chipset.
endchoice

config CS5536
@@ -86,8 +115,25 @@ config LOONGSON_UART_BASE
	default y
	depends on EARLY_PRINTK || SERIAL_8250

config IOMMU_HELPER
	bool

config NEED_SG_DMA_LENGTH
	bool

config SWIOTLB
	bool "Soft IOMMU Support for All-Memory DMA"
	default y
	depends on CPU_LOONGSON3
	select IOMMU_HELPER
	select NEED_SG_DMA_LENGTH
	select NEED_DMA_MAP_STATE

config LOONGSON_MC146818
	bool
	default n

config LEFI_FIRMWARE_INTERFACE
	bool

endif # MACH_LOONGSON
+1 −0
Original line number Diff line number Diff line
@@ -30,3 +30,4 @@ platform-$(CONFIG_MACH_LOONGSON) += loongson/
cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson -mno-branch-likely
load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000
load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000
load-$(CONFIG_CPU_LOONGSON3) += 0xffffffff80200000