From: Binbin Zhou <zhoubb@lemote.com>
To: Ralf Baechle <ralf@linux-mips.org>
Cc: John Crispin <john@phrozen.org>,
"Steven J. Hill" <Steven.Hill@imgtec.com>,
linux-mips@linux-mips.org, Fuxin Zhang <zhangfx@lemote.com>,
Zhangjin Wu <wuzhangjin@gmail.com>,
Kelvin Cheung <keguang.zhang@gmail.com>,
Binbin Zhou <zhoubb@lemote.com>, Chunbo Cui <cuichboo@163.com>,
Huacai Chen <chenhc@lemote.com>
Subject: [PATCH RESEND v4 1/9] MIPS: Loongson: Add basic Loongson-1A CPU support
Date: Thu, 19 May 2016 09:38:26 +0800 [thread overview]
Message-ID: <1463621912-9883-2-git-send-email-zhoubb@lemote.com> (raw)
In-Reply-To: <1463621912-9883-1-git-send-email-zhoubb@lemote.com>
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.
Signed-off-by: Chunbo Cui <cuichboo@163.com>
Signed-off-by: Binbin Zhou <zhoubb@lemote.com>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
arch/mips/include/asm/cpu-type.h | 3 ++-
arch/mips/include/asm/cpu.h | 2 +-
arch/mips/kernel/cpu-probe.c | 6 +++++-
arch/mips/loongson32/Platform | 1 +
arch/mips/loongson32/common/setup.c | 6 +++++-
arch/mips/mm/c-r4k.c | 9 +++++++++
6 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/arch/mips/include/asm/cpu-type.h b/arch/mips/include/asm/cpu-type.h
index fbe1881..ab69178 100644
--- a/arch/mips/include/asm/cpu-type.h
+++ b/arch/mips/include/asm/cpu-type.h
@@ -24,7 +24,8 @@ static inline int __pure __get_cpu_type(const int cpu_type)
case CPU_LOONGSON3:
#endif
-#ifdef CONFIG_SYS_HAS_CPU_LOONGSON1B
+#if defined(CONFIG_SYS_HAS_CPU_LOONGSON1A) || \
+ defined(CONFIG_SYS_HAS_CPU_LOONGSON1B)
case CPU_LOONGSON1:
#endif
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index f672df8..43812ba 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -239,7 +239,7 @@
#define PRID_REV_VR4181A 0x0070 /* Same as VR4122 */
#define PRID_REV_VR4130 0x0080
#define PRID_REV_34K_V1_0_2 0x0022
-#define PRID_REV_LOONGSON1B 0x0020
+#define PRID_REV_LOONGSON1A_1B 0x0020
#define PRID_REV_LOONGSON2E 0x0002
#define PRID_REV_LOONGSON2F 0x0003
#define PRID_REV_LOONGSON3A_R1 0x0005
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 5ac5c3e..efa8c33 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -1497,8 +1497,12 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu)
c->cputype = CPU_LOONGSON1;
switch (c->processor_id & PRID_REV_MASK) {
- case PRID_REV_LOONGSON1B:
+ case PRID_REV_LOONGSON1A_1B:
+#ifdef CONFIG_CPU_LOONGSON1A
+ __cpu_name[cpu] = "Loongson 1A";
+#else
__cpu_name[cpu] = "Loongson 1B";
+#endif
break;
}
diff --git a/arch/mips/loongson32/Platform b/arch/mips/loongson32/Platform
index ebb6dc2..e114c85 100644
--- a/arch/mips/loongson32/Platform
+++ b/arch/mips/loongson32/Platform
@@ -4,4 +4,5 @@ cflags-$(CONFIG_CPU_LOONGSON1) += \
platform-$(CONFIG_MACH_LOONGSON32) += loongson32/
cflags-$(CONFIG_MACH_LOONGSON32) += -I$(srctree)/arch/mips/include/asm/mach-loongson32
+load-$(CONFIG_LOONGSON1_LS1A) += 0xffffffff80200000
load-$(CONFIG_LOONGSON1_LS1B) += 0xffffffff80100000
diff --git a/arch/mips/loongson32/common/setup.c b/arch/mips/loongson32/common/setup.c
index 62f41af..c3d2036 100644
--- a/arch/mips/loongson32/common/setup.c
+++ b/arch/mips/loongson32/common/setup.c
@@ -21,8 +21,12 @@ const char *get_system_type(void)
unsigned int processor_id = (¤t_cpu_data)->processor_id;
switch (processor_id & PRID_REV_MASK) {
- case PRID_REV_LOONGSON1B:
+ case PRID_REV_LOONGSON1A_1B:
+#ifdef CONFIG_CPU_LOONGSON1A
+ return "LOONGSON LS1A";
+#else
return "LOONGSON LS1B";
+#endif
default:
return "LOONGSON (unknown)";
}
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index ef7f925..8c9eabc 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1306,6 +1306,15 @@ static void probe_pcache(void)
c->dcache.flags |= MIPS_CACHE_PINDEX;
break;
}
+ case CPU_LOONGSON1:
+ if ((read_c0_config7() & (1 << 16))) {
+ /*
+ * effectively physically indexed dcache,
+ * thus no virtual aliases.
+ */
+ c->dcache.flags |= MIPS_CACHE_PINDEX;
+ break;
+ }
default:
if (has_74k_erratum || c->dcache.waysize > PAGE_SIZE)
c->dcache.flags |= MIPS_CACHE_ALIASES;
--
1.9.1
next prev parent reply other threads:[~2016-05-19 1:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-19 1:38 [PATCH RESEND v4 0/9] MIPS: Loongson: Add the Loongson-1A processor support Binbin Zhou
2016-05-19 1:38 ` Binbin Zhou [this message]
2016-08-02 8:32 ` [PATCH RESEND v4 1/9] MIPS: Loongson: Add basic Loongson-1A CPU support Ralf Baechle
2016-05-19 1:38 ` [PATCH RESEND v4 2/9] MIPS: Loongson: Add Loongson-1A Kconfig options Binbin Zhou
2016-05-19 1:38 ` [PATCH RESEND v4 3/9] MIPS: Loongson: Add platform devices for Loongson-1A/1B Binbin Zhou
2016-05-19 1:38 ` [PATCH RESEND v4 4/9] MIPS: Loongson: Add loongson-1A board support Binbin Zhou
2016-05-19 1:38 ` [PATCH RESEND v4 7/9] MIPS: Loongson-1A: Enable SPARSEMEN and HIGHMEM Binbin Zhou
2016-08-02 8:29 ` Ralf Baechle
2016-08-02 9:47 ` James Hogan
2016-08-02 9:47 ` James Hogan
2016-05-19 1:38 ` [PATCH RESEND v4 8/9] MIPS: Loongson-1B: Update config file Binbin Zhou
2016-05-19 1:38 ` [PATCH RESEND v4 9/9] MIPS: Loongson: Add a Loongson-1A default " Binbin Zhou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1463621912-9883-2-git-send-email-zhoubb@lemote.com \
--to=zhoubb@lemote.com \
--cc=Steven.Hill@imgtec.com \
--cc=chenhc@lemote.com \
--cc=cuichboo@163.com \
--cc=john@phrozen.org \
--cc=keguang.zhang@gmail.com \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=wuzhangjin@gmail.com \
--cc=zhangfx@lemote.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.