* [PATCH 0/3] mips: small improvements
@ 2024-03-28 18:36 Denis Orlov
2024-03-28 18:37 ` [PATCH 1/3] mips: cpuinfo: fix cpu name output for unknown processors Denis Orlov
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Denis Orlov @ 2024-03-28 18:36 UTC (permalink / raw)
To: barebox; +Cc: Denis Orlov
Denis Orlov (3):
mips: cpuinfo: fix cpu name output for unknown processors
mips: cpu-probe: identify more MIPS CPUs
mips: mipsregs: remove duplicate definitions for Config 1 bits
arch/mips/include/asm/cpu.h | 30 +++++++++++++---
arch/mips/include/asm/mipsregs.h | 12 +++----
arch/mips/lib/cpu-probe.c | 61 ++++++++++++++++++++++++++++++--
3 files changed, 88 insertions(+), 15 deletions(-)
--
2.44.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] mips: cpuinfo: fix cpu name output for unknown processors
2024-03-28 18:36 [PATCH 0/3] mips: small improvements Denis Orlov
@ 2024-03-28 18:37 ` Denis Orlov
2024-03-28 18:37 ` [PATCH 2/3] mips: cpu-probe: identify more MIPS CPUs Denis Orlov
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Denis Orlov @ 2024-03-28 18:37 UTC (permalink / raw)
To: barebox; +Cc: Denis Orlov
Otherwise it would output <NULL> as __cpu_name global variable ends up
being a null pointer.
Signed-off-by: Denis Orlov <denorl2009@gmail.com>
---
arch/mips/lib/cpu-probe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/lib/cpu-probe.c b/arch/mips/lib/cpu-probe.c
index cbde43a595..47c9c671eb 100644
--- a/arch/mips/lib/cpu-probe.c
+++ b/arch/mips/lib/cpu-probe.c
@@ -17,7 +17,7 @@
#include <asm-generic/memory_layout.h>
#include <init.h>
-const char *__cpu_name;
+const char *__cpu_name = "unknown";
struct cpuinfo_mips cpu_data[1];
static char unknown_isa[] = KERN_ERR \
--
2.44.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/3] mips: cpu-probe: identify more MIPS CPUs
2024-03-28 18:36 [PATCH 0/3] mips: small improvements Denis Orlov
2024-03-28 18:37 ` [PATCH 1/3] mips: cpuinfo: fix cpu name output for unknown processors Denis Orlov
@ 2024-03-28 18:37 ` Denis Orlov
2024-03-28 18:37 ` [PATCH 3/3] mips: mipsregs: remove duplicate definitions for Config 1 bits Denis Orlov
2024-04-02 8:42 ` [PATCH 0/3] mips: small improvements Sascha Hauer
3 siblings, 0 replies; 5+ messages in thread
From: Denis Orlov @ 2024-03-28 18:37 UTC (permalink / raw)
To: barebox; +Cc: Denis Orlov
This adds support for identifying more CPUs emulatable by QEMU, so that
their names are shown when using 'cpuinfo' command.
Signed-off-by: Denis Orlov <denorl2009@gmail.com>
---
arch/mips/include/asm/cpu.h | 30 +++++++++++++++----
arch/mips/lib/cpu-probe.c | 59 ++++++++++++++++++++++++++++++++++++-
2 files changed, 83 insertions(+), 6 deletions(-)
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index 155e254a81..7fba0b77df 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -51,9 +51,25 @@
* These are the PRID's for when 23:16 == PRID_COMP_MIPS
*/
+#define PRID_IMP_QEMU_GENERIC 0x0000
+#define PRID_IMP_4KC 0x8000
+#define PRID_IMP_5KC 0x8100
+#define PRID_IMP_20KC 0x8200
+#define PRID_IMP_4KEC 0x8400
+#define PRID_IMP_4KSC 0x8600
+#define PRID_IMP_25KF 0x8800
+#define PRID_IMP_5KE 0x8900
+#define PRID_IMP_4KECR2 0x9000
+#define PRID_IMP_4KEMPR2 0x9100
+#define PRID_IMP_4KSD 0x9200
#define PRID_IMP_24K 0x9300
+#define PRID_IMP_34K 0x9500
#define PRID_IMP_24KE 0x9600
#define PRID_IMP_74K 0x9700
+#define PRID_IMP_1004K 0x9900
+#define PRID_IMP_1074K 0x9a00
+#define PRID_IMP_M14KC 0x9c00
+#define PRID_IMP_M14KEC 0x9e00
/*
* These are the PRID's for when 23:16 == PRID_COMP_BROADCOM
@@ -107,11 +123,15 @@ enum cpu_type_enum {
/*
* MIPS32 class processors
*/
- CPU_24K,
- CPU_74K,
- CPU_BMIPS3300,
- CPU_JZRISC,
- CPU_GS232,
+ CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K,
+ CPU_M14KC, CPU_M14KEC, CPU_1074K, CPU_BMIPS3300, CPU_JZRISC, CPU_GS232,
+
+ /*
+ * MIPS64 class processors
+ */
+ CPU_5KC, CPU_5KE, CPU_20KC, CPU_25KF,
+
+ CPU_QEMU_GENERIC,
CPU_LAST
};
diff --git a/arch/mips/lib/cpu-probe.c b/arch/mips/lib/cpu-probe.c
index 47c9c671eb..fc20281597 100644
--- a/arch/mips/lib/cpu-probe.c
+++ b/arch/mips/lib/cpu-probe.c
@@ -102,15 +102,72 @@ static inline void cpu_probe_mips(struct cpuinfo_mips *c)
{
decode_configs(c);
switch (c->processor_id & 0xff00) {
+ case PRID_IMP_QEMU_GENERIC:
+ c->cputype = CPU_QEMU_GENERIC;
+ __cpu_name = "MIPS GENERIC QEMU";
+ break;
+ case PRID_IMP_4KC:
+ c->cputype = CPU_4KC;
+ __cpu_name = "MIPS 4Kc";
+ break;
+ case PRID_IMP_4KEC:
+ case PRID_IMP_4KECR2:
+ c->cputype = CPU_4KEC;
+ __cpu_name = "MIPS 4KEc";
+ break;
+ case PRID_IMP_4KSC:
+ case PRID_IMP_4KSD:
+ c->cputype = CPU_4KSC;
+ __cpu_name = "MIPS 4KSc";
+ break;
+ case PRID_IMP_5KC:
+ c->cputype = CPU_5KC;
+ __cpu_name = "MIPS 5Kc";
+ break;
+ case PRID_IMP_5KE:
+ c->cputype = CPU_5KE;
+ __cpu_name = "MIPS 5KE";
+ break;
+ case PRID_IMP_20KC:
+ c->cputype = CPU_20KC;
+ __cpu_name = "MIPS 20Kc";
+ break;
case PRID_IMP_24K:
- case PRID_IMP_24KE:
c->cputype = CPU_24K;
__cpu_name = "MIPS 24Kc";
break;
+ case PRID_IMP_24KE:
+ c->cputype = CPU_24K;
+ __cpu_name = "MIPS 24KEc";
+ break;
+ case PRID_IMP_25KF:
+ c->cputype = CPU_25KF;
+ __cpu_name = "MIPS 25Kc";
+ break;
+ case PRID_IMP_34K:
+ c->cputype = CPU_34K;
+ __cpu_name = "MIPS 34Kc";
+ break;
case PRID_IMP_74K:
c->cputype = CPU_74K;
__cpu_name = "MIPS 74Kc";
break;
+ case PRID_IMP_M14KC:
+ c->cputype = CPU_M14KC;
+ __cpu_name = "MIPS M14Kc";
+ break;
+ case PRID_IMP_M14KEC:
+ c->cputype = CPU_M14KEC;
+ __cpu_name = "MIPS M14KEc";
+ break;
+ case PRID_IMP_1004K:
+ c->cputype = CPU_1004K;
+ __cpu_name = "MIPS 1004Kc";
+ break;
+ case PRID_IMP_1074K:
+ c->cputype = CPU_1074K;
+ __cpu_name = "MIPS 1074Kc";
+ break;
}
}
--
2.44.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/3] mips: mipsregs: remove duplicate definitions for Config 1 bits
2024-03-28 18:36 [PATCH 0/3] mips: small improvements Denis Orlov
2024-03-28 18:37 ` [PATCH 1/3] mips: cpuinfo: fix cpu name output for unknown processors Denis Orlov
2024-03-28 18:37 ` [PATCH 2/3] mips: cpu-probe: identify more MIPS CPUs Denis Orlov
@ 2024-03-28 18:37 ` Denis Orlov
2024-04-02 8:42 ` [PATCH 0/3] mips: small improvements Sascha Hauer
3 siblings, 0 replies; 5+ messages in thread
From: Denis Orlov @ 2024-03-28 18:37 UTC (permalink / raw)
To: barebox; +Cc: Denis Orlov
Also reorder some of them to be more uniform.
Signed-off-by: Denis Orlov <denorl2009@gmail.com>
---
arch/mips/include/asm/mipsregs.h | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index 9e7d656542..0b618320ff 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -406,18 +406,14 @@
#define MIPS_CONF1_PC (_ULCAST_(1) << 4)
#define MIPS_CONF1_MD (_ULCAST_(1) << 5)
#define MIPS_CONF1_C2 (_ULCAST_(1) << 6)
-#define MIPS_CONF1_DA_SHF 7
-#define MIPS_CONF1_DA (_ULCAST_(7) << 7)
-#define MIPS_CONF1_DL_SHF 10
-#define MIPS_CONF1_DL (_ULCAST_(7) << 10)
-#define MIPS_CONF1_DS_SHF 13
-#define MIPS_CONF1_DS (_ULCAST_(7) << 13)
-#define MIPS_CONF1_IA_SHF 16
-
#define MIPS_CONF1_DA (_ULCAST_(7) << 7)
+#define MIPS_CONF1_DA_SHF 7
#define MIPS_CONF1_DL (_ULCAST_(7) << 10)
+#define MIPS_CONF1_DL_SHF 10
#define MIPS_CONF1_DS (_ULCAST_(7) << 13)
+#define MIPS_CONF1_DS_SHF 13
#define MIPS_CONF1_IA (_ULCAST_(7) << 16)
+#define MIPS_CONF1_IA_SHF 16
#define MIPS_CONF1_IL (_ULCAST_(7) << 19)
#define MIPS_CONF1_IS (_ULCAST_(7) << 22)
#define MIPS_CONF1_TLBS (_ULCAST_(63)<< 25)
--
2.44.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 0/3] mips: small improvements
2024-03-28 18:36 [PATCH 0/3] mips: small improvements Denis Orlov
` (2 preceding siblings ...)
2024-03-28 18:37 ` [PATCH 3/3] mips: mipsregs: remove duplicate definitions for Config 1 bits Denis Orlov
@ 2024-04-02 8:42 ` Sascha Hauer
3 siblings, 0 replies; 5+ messages in thread
From: Sascha Hauer @ 2024-04-02 8:42 UTC (permalink / raw)
To: barebox, Denis Orlov
On Thu, 28 Mar 2024 21:36:59 +0300, Denis Orlov wrote:
> Denis Orlov (3):
> mips: cpuinfo: fix cpu name output for unknown processors
> mips: cpu-probe: identify more MIPS CPUs
> mips: mipsregs: remove duplicate definitions for Config 1 bits
>
> arch/mips/include/asm/cpu.h | 30 +++++++++++++---
> arch/mips/include/asm/mipsregs.h | 12 +++----
> arch/mips/lib/cpu-probe.c | 61 ++++++++++++++++++++++++++++++--
> 3 files changed, 88 insertions(+), 15 deletions(-)
>
> [...]
Applied, thanks!
[1/3] mips: cpuinfo: fix cpu name output for unknown processors
https://git.pengutronix.de/cgit/barebox/commit/?id=4fe0614f65c2 (link may not be stable)
[2/3] mips: cpu-probe: identify more MIPS CPUs
https://git.pengutronix.de/cgit/barebox/commit/?id=e8f9bc9ea42a (link may not be stable)
[3/3] mips: mipsregs: remove duplicate definitions for Config 1 bits
https://git.pengutronix.de/cgit/barebox/commit/?id=63d38f891a9c (link may not be stable)
Best regards,
--
Sascha Hauer <s.hauer@pengutronix.de>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-04-02 8:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-28 18:36 [PATCH 0/3] mips: small improvements Denis Orlov
2024-03-28 18:37 ` [PATCH 1/3] mips: cpuinfo: fix cpu name output for unknown processors Denis Orlov
2024-03-28 18:37 ` [PATCH 2/3] mips: cpu-probe: identify more MIPS CPUs Denis Orlov
2024-03-28 18:37 ` [PATCH 3/3] mips: mipsregs: remove duplicate definitions for Config 1 bits Denis Orlov
2024-04-02 8:42 ` [PATCH 0/3] mips: small improvements Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox