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 Original line Diff line number Diff line
@@ -1153,6 +1153,18 @@ choice
	prompt "CPU type"
	prompt "CPU type"
	default CPU_R4X00
	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
config CPU_LOONGSON2E
	bool "Loongson 2E"
	bool "Loongson 2E"
	depends on SYS_HAS_CPU_LOONGSON2E
	depends on SYS_HAS_CPU_LOONGSON2E
@@ -1549,6 +1561,10 @@ config CPU_BMIPS5000
	select SYS_SUPPORTS_SMP
	select SYS_SUPPORTS_SMP
	select SYS_SUPPORTS_HOTPLUG_CPU
	select SYS_SUPPORTS_HOTPLUG_CPU


config SYS_HAS_CPU_LOONGSON3
	bool
	select CPU_SUPPORTS_CPUFREQ

config SYS_HAS_CPU_LOONGSON2E
config SYS_HAS_CPU_LOONGSON2E
	bool
	bool


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


config PAGE_SIZE_4KB
config PAGE_SIZE_4KB
	bool "4kB"
	bool "4kB"
	depends on !CPU_LOONGSON2
	depends on !CPU_LOONGSON2 && !CPU_LOONGSON3
	help
	help
	 This option select the standard 4kB Linux page size.  On some
	 This option select the standard 4kB Linux page size.  On some
	 R3000-family processors this is the only available page size.  Using
	 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,
	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
	  say Y, otherwise N.
	  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
config PCI_DOMAINS
	bool
	bool


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


	  These family machines include fuloong2f mini PC, yeeloong2f notebook,
	  These family machines include fuloong2f mini PC, yeeloong2f notebook,
	  LingLoong allinone PC and so forth.
	  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
endchoice


config CS5536
config CS5536
@@ -86,8 +115,25 @@ config LOONGSON_UART_BASE
	default y
	default y
	depends on EARLY_PRINTK || SERIAL_8250
	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
config LOONGSON_MC146818
	bool
	bool
	default n
	default n


config LEFI_FIRMWARE_INTERFACE
	bool

endif # MACH_LOONGSON
endif # MACH_LOONGSON
+1 −0
Original line number Original line 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
cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson -mno-branch-likely
load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000
load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000
load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000
load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000
load-$(CONFIG_CPU_LOONGSON3) += 0xffffffff80200000