Skip to content

Commit 1ea6001

Browse files
qiujiandongfanghuaqi
authored andcommitted
application: add mhartid in cpuinfo
Signed-off-by: qiujiandong <qiujiandong@nucleisys.com>
1 parent dbb398a commit 1ea6001

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

application/baremetal/cpuinfo/cpuinfo.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
} \
4646
} while (0)
4747

48-
#define BASIC_CPUINFO_FMT "Nuclei CPU Detected: marchid-0x%04x v%d.%d.%d, ISA: %s"
48+
#define BASIC_CPUINFO_FMT "Nuclei CPU Detected: mhartid-0x%x marchid-0x%04x v%d.%d.%d, ISA: %s"
4949

5050
/** `BUF_SIZE` is the size of string buffer in `get_basic_cpuinfo`
5151
*/
@@ -93,6 +93,7 @@ void show_cpuinfo(CIF_XLEN_Type xlen, const CPU_CSR_Group *csrs)
9393

9494
/* ID and version */
9595
CIF_PRINTF(" MARCHID: 0x%04x\r\n", csrs->marchid.d);
96+
CIF_PRINTF(" MHARTID: 0x%x\r\n", csrs->mhartid);
9697
CIF_PRINTF(" MIMPID: 0x%06x\r\n", csrs->mimpid.d);
9798

9899
/* ISA */
@@ -133,7 +134,7 @@ int get_basic_cpuinfo(const CPU_CSR_Group *csrs, char *str, unsigned long len)
133134
isa[pos] = '\0';
134135

135136
if (!csrs->mcfg_exist) {
136-
return snprintf(str, len, BASIC_CPUINFO_FMT, csrs->marchid.d,
137+
return snprintf(str, len, BASIC_CPUINFO_FMT, csrs->mhartid, csrs->marchid.d,
137138
csrs->mimpid.b.first_vernum, csrs->mimpid.b.mid_vernum,
138139
csrs->mimpid.b.last_vernum, isa);
139140
}
@@ -189,7 +190,7 @@ int get_basic_cpuinfo(const CPU_CSR_Group *csrs, char *str, unsigned long len)
189190
buf[strlen(buf) - 2] = '\0';
190191
}
191192

192-
return snprintf(str, len, BASIC_CPUINFO_FMT ", Feature: %s",
193+
return snprintf(str, len, BASIC_CPUINFO_FMT ", Feature: %s", csrs->mhartid,
193194
csrs->marchid.d, csrs->mimpid.b.first_vernum,
194195
csrs->mimpid.b.mid_vernum, csrs->mimpid.b.last_vernum, isa,
195196
buf);

application/baremetal/cpuinfo/cpuinfo.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ typedef struct {
272272
*/
273273
typedef struct {
274274
U32_CSR_MARCHID_Type marchid;
275+
uint32_t mhartid;
275276
U32_CSR_MIMPID_Type mimpid;
276277
U32_CSR_MISA_Type misa;
277278
uint32_t mcfg_exist;

application/baremetal/cpuinfo/main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ int main(void)
2121
memset(&csrs, 0, sizeof(csrs)); // clear the struct
2222

2323
csrs.marchid.d = (uint32_t)__RV_CSR_READ(CSR_MARCHID);
24+
csrs.mhartid = (uint32_t)__RV_CSR_READ(CSR_MHARTID);
2425
csrs.mimpid.d = (uint32_t)__RV_CSR_READ(CSR_MIMPID);
2526
csrs.misa.d = (uint32_t)__RV_CSR_READ(CSR_MISA);
2627
U32_CSR_MCFG_INFO_Type mcfg;

0 commit comments

Comments
 (0)