This patchset is prepared for the next 3.19 release for Linux/MIPS. In this series we promote Loongson-3's ISA level to MIPS64R1 since it is not fully compatible with MIPS64R2. Multi-node DMA and coherent cache features are both added here. LEFI firmware interface is improved to make the kernel more generic (machtypes can be dropped). Besides, we add some basic platform drivers (GPIO, CPU Hwmon, ACPI init, oprofile, HPET and CPUFreq) for Loongson-3. V1 -> V2: 1, Add a patch to fix Loongson's CCA setting. 2, Rework the third patch. 3, Rebase the code for 3.19. Huacai Chen(12): MIPS: Loongson: Fix the write-combine CCA value setting. MIPS: Loongson: set Loongson-3's ISA level to MIPS64R1. MIPS: Loongson-3: Add PHYS48_TO_HT40 support. MIPS: Loongson: Introduce and use cpu_has_coherent_cache feature. MIPS: Loongson: Allow booting from any core. MIPS: Loongson: Improve LEFI firmware interface. MIPS: Loongson: Add Loongson-3A/3B GPIO support. MIPS: Loongson-3: Add CPU Hwmon platform driver. MIPS: Loongson-3: Add chipset ACPI platform driver. MIPS: Loongson-3: Add oprofile support. MIPS: Loongson-3: Add RS780/SBX00 HPET support. MIPS: Loongson: Make CPUFreq usable for Loongson-3. Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> Signed-off-by: Hongliang Tao <taohl@xxxxxxxxxx> --- arch/mips/Kconfig | 4 + arch/mips/include/asm/bootinfo.h | 5 +- arch/mips/include/asm/cpu-features.h | 3 + arch/mips/include/asm/hpet.h | 73 ++++++ arch/mips/include/asm/mach-loongson/boot_param.h | 49 ++++- .../asm/mach-loongson/cpu-feature-overrides.h | 3 +- .../mips/include/asm/mach-loongson/dma-coherence.h | 30 +++- arch/mips/include/asm/mach-loongson/irq.h | 3 +- arch/mips/include/asm/mach-loongson/loongson.h | 7 +- .../include/asm/mach-loongson/loongson_hwmon.h | 55 +++++ arch/mips/include/asm/mach-loongson/machine.h | 2 +- arch/mips/include/asm/mach-loongson/topology.h | 2 +- arch/mips/include/asm/mach-loongson/workarounds.h | 7 + arch/mips/kernel/cpu-probe.c | 5 +- arch/mips/kernel/smp.c | 3 +- arch/mips/loongson/Kconfig | 18 ++ arch/mips/loongson/common/dma-swiotlb.c | 10 + arch/mips/loongson/common/early_printk.c | 2 +- arch/mips/loongson/common/env.c | 37 +++- arch/mips/loongson/common/gpio.c | 53 +++-- arch/mips/loongson/common/machtype.c | 5 +- arch/mips/loongson/common/pci.c | 6 + arch/mips/loongson/common/platform.c | 13 +- arch/mips/loongson/common/serial.c | 48 +++- arch/mips/loongson/common/time.c | 5 + arch/mips/loongson/common/uart_base.c | 30 +-- arch/mips/loongson/loongson-3/Makefile | 4 +- arch/mips/loongson/loongson-3/clock.c | 191 +++++++++++++++ arch/mips/loongson/loongson-3/hpet.c | 257 ++++++++++++++++++++ arch/mips/loongson/loongson-3/irq.c | 16 +- arch/mips/loongson/loongson-3/numa.c | 12 +- arch/mips/loongson/loongson-3/platform.c | 43 ++++ arch/mips/loongson/loongson-3/smp.c | 70 ++++-- arch/mips/mm/c-r4k.c | 18 ++ arch/mips/oprofile/Makefile | 1 + arch/mips/oprofile/common.c | 4 + arch/mips/oprofile/op_model_loongson3.c | 220 +++++++++++++++++ drivers/cpufreq/Kconfig | 14 + drivers/cpufreq/Makefile | 1 + drivers/cpufreq/loongson3_cpufreq.c | 240 ++++++++++++++++++ drivers/platform/Makefile | 1 + drivers/platform/mips/Makefile | 1 + drivers/platform/mips/acpi_init.c | 131 ++++++++++ drivers/platform/mips/cpu_hwmon.c | 206 ++++++++++++++++ 44 files changed, 1798 insertions(+), 110 deletions(-) create mode 100644 arch/mips/include/asm/hpet.h create mode 100644 arch/mips/include/asm/mach-loongson/loongson_hwmon.h create mode 100644 arch/mips/include/asm/mach-loongson/workarounds.h create mode 100644 arch/mips/loongson/loongson-3/clock.c create mode 100644 arch/mips/loongson/loongson-3/hpet.c create mode 100644 arch/mips/loongson/loongson-3/platform.c create mode 100644 arch/mips/oprofile/op_model_loongson3.c create mode 100644 drivers/cpufreq/loongson3_cpufreq.c create mode 100644 drivers/platform/mips/Makefile create mode 100644 drivers/platform/mips/acpi_init.c create mode 100644 drivers/platform/mips/cpu_hwmon.c -- 1.7.7.3