mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 19:25:05 +07:00
c4a987db1b
Tips of Loongson's CPU hotplug: 1, To fully shutdown a core in Loongson 3, the target core should go to CKSEG1 and flush all L1 cache entries at first. Then, another core (usually Core 0) can safely disable the clock of the target core. So play_dead() call loongson3_play_dead() via CKSEG1 (both uncached and unmmaped). 2, The default clocksource of Loongson is MIPS. Since clock source is a global device, timekeeping need the CP0' Count registers of each core be synchronous. Thus, when a core is up, we use a SMP_ASK_C0COUNT IPI to ask Core-0's Count. Signed-off-by: Huacai Chen <chenhc@lemote.com> Signed-off-by: Hongliang Tao <taohl@lemote.com> Signed-off-by: Hua Yan <yanh@lemote.com> Tested-by: Alex Smith <alex.smith@imgtec.com> Reviewed-by: Alex 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/6639 Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
141 lines
3.1 KiB
Plaintext
141 lines
3.1 KiB
Plaintext
if MACH_LOONGSON
|
|
|
|
choice
|
|
prompt "Machine Type"
|
|
|
|
config LEMOTE_FULOONG2E
|
|
bool "Lemote Fuloong(2e) mini-PC"
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select SYS_HAS_CPU_LOONGSON2E
|
|
select DMA_NONCOHERENT
|
|
select BOOT_ELF32
|
|
select BOARD_SCACHE
|
|
select HW_HAS_PCI
|
|
select I8259
|
|
select ISA
|
|
select IRQ_CPU
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
|
select CPU_HAS_WB
|
|
select LOONGSON_MC146818
|
|
help
|
|
Lemote Fuloong(2e) mini-PC board based on the Chinese Loongson-2E CPU and
|
|
an FPGA northbridge
|
|
|
|
Lemote Fuloong(2e) mini PC have a VIA686B south bridge.
|
|
|
|
config LEMOTE_MACH2F
|
|
bool "Lemote Loongson 2F family machines"
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
select BOARD_SCACHE
|
|
select BOOT_ELF32
|
|
select CEVT_R4K if ! MIPS_EXTERNAL_TIMER
|
|
select CPU_HAS_WB
|
|
select CS5536
|
|
select CSRC_R4K if ! MIPS_EXTERNAL_TIMER
|
|
select DMA_NONCOHERENT
|
|
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
|
select HAVE_CLK
|
|
select HW_HAS_PCI
|
|
select I8259
|
|
select IRQ_CPU
|
|
select ISA
|
|
select SYS_HAS_CPU_LOONGSON2F
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select LOONGSON_MC146818
|
|
help
|
|
Lemote Loongson 2F family machines utilize the 2F revision of
|
|
Loongson processor and the AMD CS5536 south bridge.
|
|
|
|
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_HOTPLUG_CPU
|
|
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
|
|
bool
|
|
|
|
config CS5536_MFGPT
|
|
bool "CS5536 MFGPT Timer"
|
|
depends on CS5536
|
|
select MIPS_EXTERNAL_TIMER
|
|
help
|
|
This option enables the mfgpt0 timer of AMD CS5536.
|
|
|
|
If you want to enable the Loongson2 CPUFreq Driver, Please enable
|
|
this option at first, otherwise, You will get wrong system time.
|
|
|
|
If unsure, say Yes.
|
|
|
|
config LOONGSON_SUSPEND
|
|
bool
|
|
default y
|
|
depends on CPU_SUPPORTS_CPUFREQ && SUSPEND
|
|
|
|
config LOONGSON_UART_BASE
|
|
bool
|
|
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
|