summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chip/lm4/system.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/chip/lm4/system.c b/chip/lm4/system.c
index cbed522ce2..eac0c48b0a 100644
--- a/chip/lm4/system.c
+++ b/chip/lm4/system.c
@@ -405,7 +405,7 @@ static char to_hex(int x)
return 'a' + x - 10;
}
-const char *system_get_raw_chip_name(void)
+const char *system_get_chip_id_string(void)
{
static char str[15] = "Unknown-";
char *p = str + 8;
@@ -423,7 +423,7 @@ const char *system_get_raw_chip_name(void)
return (const char *)str;
}
-const char *system_get_chip_name(void)
+const char *system_get_raw_chip_name(void)
{
if ((LM4_SYSTEM_DID1 & 0xffff0000) == 0x10e20000) {
return "lm4fsxhh5bb";
@@ -436,7 +436,27 @@ const char *system_get_chip_name(void)
} else if ((LM4_SYSTEM_DID1 & 0xffff0000) == 0x10ea0000) {
return "lm4fs1gh5bb";
} else {
- return system_get_raw_chip_name();
+ return system_get_chip_id_string();
+ }
+}
+
+const char *system_get_chip_name(void)
+{
+ const char *postfix = "-tm"; /* test mode */
+ static char str[20];
+ const char *raw_chip_name = system_get_raw_chip_name();
+ char *p = str;
+
+ if (LM4REG(0x400fdff0)) {
+ /* Debug mode is enabled. Postfix chip name. */
+ while (*raw_chip_name)
+ *(p++) = *(raw_chip_name++);
+ while (*postfix)
+ *(p++) = *(postfix++);
+ *p = '\0';
+ return (const char *)str;
+ } else {
+ return raw_chip_name;
}
}