This patchset is prepared for the next 4.16 release for Linux/MIPS. It add Loongson-3A R3.1 support, enable Loongson-3's SFB at runtime, adds "model name" and "CPU MHz" knobs in /proc/cpuinfo which is needed by some userspace tools, adds Loongson-3 kexec/kdump and CPUFreq support, fixes CPU UART irq delivery problem, and introduces WAR_LLSC_MB to improve stability. V1 -> V2: 1, Add Loongson-3A R3.1 basic support. 2, Fix CPU UART irq delivery problem. 3, Improve code and descriptions (Thank James Hogan). 4, Sync the code to upstream. Huacai Chen(12): MIPS: Loongson: Add Loongson-3A R3.1 basic support. MIPS: Loongson-3: Define and use some CP0 registers. MIPS: Loongson-3: Enable Store Fill Buffer at runtime. MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3. MIPS: Loongson fix name confict - MEM_RESERVED. MIPS: Ensure pmd_present() returns false after pmd_mknotpresent(). MIPS: Add __cpu_full_name[] to make CPU names more human-readable. MIPS: Align kernel load address to 64KB. MIPS: Loongson: Add kexec/kdump support. MIPS: Loongson: Make CPUFreq usable for Loongson-3. MIPS: Loongson-3: Fix CPU UART irq delivery problem. MIPS: Loongson: Introduce and use WAR_LLSC_MB. Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> --- arch/mips/boot/compressed/calc_vmlinuz_load_addr.c | 5 +- arch/mips/include/asm/atomic.h | 18 +- arch/mips/include/asm/barrier.h | 6 + arch/mips/include/asm/bitops.h | 15 ++ arch/mips/include/asm/cmpxchg.h | 9 +- arch/mips/include/asm/cpu-info.h | 2 + arch/mips/include/asm/cpu.h | 51 ++--- arch/mips/include/asm/edac.h | 5 +- arch/mips/include/asm/futex.h | 18 +- arch/mips/include/asm/io.h | 2 +- arch/mips/include/asm/local.h | 10 +- arch/mips/include/asm/mach-loongson64/boot_param.h | 3 +- .../asm/mach-loongson64/kernel-entry-init.h | 38 ++-- arch/mips/include/asm/mach-loongson64/loongson.h | 1 + arch/mips/include/asm/mipsregs.h | 2 + arch/mips/include/asm/pgtable-64.h | 5 + arch/mips/include/asm/pgtable.h | 5 +- arch/mips/include/asm/r4kcache.h | 34 +++ arch/mips/include/asm/time.h | 2 + arch/mips/kernel/cpu-probe.c | 28 ++- arch/mips/kernel/proc.c | 7 + arch/mips/kernel/relocate_kernel.S | 30 +++ arch/mips/kernel/smp.c | 3 +- arch/mips/kernel/syscall.c | 2 + arch/mips/kernel/time.c | 2 + arch/mips/loongson64/Kconfig | 1 + arch/mips/loongson64/Platform | 3 + arch/mips/loongson64/common/env.c | 24 ++- arch/mips/loongson64/common/mem.c | 2 +- arch/mips/loongson64/common/platform.c | 13 +- arch/mips/loongson64/common/reset.c | 119 +++++++++++ arch/mips/loongson64/loongson-3/Makefile | 2 +- arch/mips/loongson64/loongson-3/clock.c | 191 +++++++++++++++++ arch/mips/loongson64/loongson-3/irq.c | 41 +--- arch/mips/loongson64/loongson-3/numa.c | 2 +- arch/mips/loongson64/loongson-3/smp.c | 8 +- arch/mips/loongson64/loongson-3/smp.h | 1 + arch/mips/mm/c-r4k.c | 42 +++- arch/mips/mm/tlbex.c | 11 + drivers/cpufreq/Kconfig | 13 ++ drivers/cpufreq/Makefile | 1 + drivers/cpufreq/loongson3_cpufreq.c | 236 +++++++++++++++++++++ drivers/platform/mips/cpu_hwmon.c | 3 +- 43 files changed, 893 insertions(+), 123 deletions(-) create mode 100644 arch/mips/loongson64/loongson-3/clock.c create mode 100644 drivers/cpufreq/loongson3_cpufreq.c -- 2.7.0