This patchset is prepared for the next 3.16 release for Linux/MIPS. In this series we add NUMA and Loongson-3B support. Multiple Loongson-3A chips can be interconnected with HT0-bus. This is a CC-NUMA system that every chip (node) has its own local memory and cache coherency is maintained by hardware. Loongson-3B is a 8-cores processor which looks like there are two Loongson-3A integrated in one chip: 8 cores are separated into two groups (two NUMA node). V1 -> V2: 1, Rework the first patch. 2, Use compat numa-related syscall for N32/O32 ABI. 3, Drop the patch "MIPS: Loongson: Make CPU name more clear". Huacai Chen(8): MIPS: Support hard limit of cpu count (nr_cpu_ids). MIPS: Support CPU topology files in sysfs. MIPS: Loongson: Modify ChipConfig register definition. MIPS: Add NUMA support for Loongson-3. MIPS: Add numa api support. MIPS: Add Loongson-3B support. MIPS: Loongson-3: Enable the COP2 usage. MIPS: Loongson: Rename CONFIG_LEMOTE_MACH3A to CONFIG_LOONGSON_MACH3X. Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> Signed-off-by: Hongliang Tao <taohl@xxxxxxxxxx> Signed-off-by: Hua Yan <yanh@xxxxxxxxxx> --- arch/mips/Kconfig | 7 +- arch/mips/configs/loongson3_defconfig | 2 +- arch/mips/include/asm/addrspace.h | 6 + arch/mips/include/asm/cop2.h | 8 + arch/mips/include/asm/cpu-info.h | 1 + arch/mips/include/asm/cpu.h | 2 + arch/mips/include/asm/mach-loongson/boot_param.h | 4 + .../include/asm/mach-loongson/kernel-entry-init.h | 51 +++ arch/mips/include/asm/mach-loongson/loongson.h | 11 +- arch/mips/include/asm/mach-loongson/machine.h | 4 +- arch/mips/include/asm/mach-loongson/mmzone.h | 51 +++ arch/mips/include/asm/mach-loongson/topology.h | 23 ++ arch/mips/include/asm/smp.h | 6 + arch/mips/include/asm/sparsemem.h | 5 + arch/mips/kernel/cpu-probe.c | 6 + arch/mips/kernel/proc.c | 1 + arch/mips/kernel/scall32-o32.S | 4 +- arch/mips/kernel/scall64-64.S | 4 +- arch/mips/kernel/scall64-n32.S | 10 +- arch/mips/kernel/scall64-o32.S | 8 +- arch/mips/kernel/setup.c | 22 +- arch/mips/kernel/smp.c | 26 ++- arch/mips/loongson/Kconfig | 9 +- arch/mips/loongson/Platform | 2 +- arch/mips/loongson/common/env.c | 49 +++- arch/mips/loongson/common/init.c | 4 + arch/mips/loongson/common/pm.c | 8 +- arch/mips/loongson/lemote-2f/clock.c | 4 +- arch/mips/loongson/lemote-2f/reset.c | 2 +- arch/mips/loongson/loongson-3/Makefile | 4 +- arch/mips/loongson/loongson-3/cop2-ex.c | 63 ++++ arch/mips/loongson/loongson-3/irq.c | 26 +- arch/mips/loongson/loongson-3/numa.c | 290 +++++++++++++++ arch/mips/loongson/loongson-3/smp.c | 387 +++++++++++++++----- arch/mips/loongson/loongson-3/smp.h | 37 +- arch/mips/pci/Makefile | 2 +- drivers/cpufreq/loongson2_cpufreq.c | 6 +- 37 files changed, 997 insertions(+), 158 deletions(-) create mode 100644 arch/mips/include/asm/mach-loongson/kernel-entry-init.h create mode 100644 arch/mips/include/asm/mach-loongson/mmzone.h create mode 100644 arch/mips/include/asm/mach-loongson/topology.h create mode 100644 arch/mips/loongson/loongson-3/cop2-ex.c create mode 100644 arch/mips/loongson/loongson-3/numa.c -- 1.7.7.3