The Loongson 1A is similar with Loongson 1B, which is a 32-bit SoC. It implements the MIPS32 release 2 instruction set. They share the same PRID, so we rewrite the PRID_REV_LOONGSON1B to PRID_REV_LOONGSON1A_1B, and use their CPU macros to distinguish. However, the pll register of Loongson-1A is write-only, so the cpu clk should be set manually with the command line. The format of command is cpu_clk=osc_clk,cpu_mul the osc_clk standby cpu clock and the cpu_mul repect the clock multiplier. For example, we use the command cpu_clk=33333333,8 Changes since v1: - According commit c908656a7531771ae7642990a7c5f3c7307bd612 (MIPS: Loongson: Naming style cleanup and rework) to fix the naming style. Changes since v2: - Remove__irq_set_handler_locked() - Rebases on top of v4.5-rc5. Changes since v3: - Move ls1x CPU irq setting to driver/irqchip - Rebases on top of v4.6-rc7. Binbin Zhou(9): MIPS: Loongson: Add basic Loongson-1A CPU support MIPS: Loongson: Add Loongson-1A Kconfig options MIPS: Loongson: Add platform devices for Loongson-1A/1B MIPS: Loongson: Add loongson-1A board support MIPS: Loongson-1A: workaround of pll register's write-only property MIPS: irqchip/ls1x-cpu: Move the CPU IRQ driver from arch/mips/loongson32/common/ MIPS: Loongson-1A: Enable SPARSEMEN and HIGHMEM MIPS: Loongson-1B: Update config file MIPS: Loongson: Add a Loongson-1A default config file Signed-off-by: Chunbo Cui <cuichboo@xxxxxxx> Signed-off-by: Binbin Zhou <zhoubb@xxxxxxxxxx> Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> -- arch/mips/Kconfig | 11 ++++++ arch/mips/configs/loongson1a_defconfig | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arch/mips/configs/loongson1b_defconfig | 1 + arch/mips/include/asm/cpu-type.h | 3 +- arch/mips/include/asm/cpu.h | 2 +- arch/mips/include/asm/irq_cpu.h | 1 + arch/mips/include/asm/mach-loongson32/dma.h | 1 + arch/mips/include/asm/mach-loongson32/irq.h | 1 + arch/mips/include/asm/mach-loongson32/loongson1.h | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- arch/mips/include/asm/mach-loongson32/nand.h | 1 + arch/mips/include/asm/mach-loongson32/platform.h | 14 ++++++++ arch/mips/include/asm/mach-loongson32/regs-mux.h | 2 +- arch/mips/include/asm/sparsemem.h | 6 +++- arch/mips/kernel/cpu-probe.c | 6 +++- arch/mips/loongson32/Kconfig | 17 +++++++++ arch/mips/loongson32/Makefile | 6 ++++ arch/mips/loongson32/Platform | 1 + arch/mips/loongson32/common/irq.c | 128 +------------------------------------------------------------------ arch/mips/loongson32/common/platform.c | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- arch/mips/loongson32/common/prom.c | 6 ++++ arch/mips/loongson32/common/reset.c | 6 ++++ arch/mips/loongson32/common/setup.c | 49 +++++++++++++++++++++++++- arch/mips/loongson32/ls1a/Makefile | 5 +++ arch/mips/loongson32/ls1a/board.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arch/mips/mm/c-r4k.c | 9 +++++ drivers/clk/clk-ls1x.c | 22 +++++++++--- drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-ls1x-cpu.c | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 28 files changed, 1054 insertions(+), 179 deletions(-) create mode 100644 arch/mips/configs/loongson1a_defconfig create mode 100644 arch/mips/loongson32/ls1a/Makefile create mode 100644 arch/mips/loongson32/ls1a/board.c create mode 100644 drivers/irqchip/irq-ls1x-cpu.c -- 1.9.0