* [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