diff options
author | Jan Luebbe <jlu@pengutronix.de> | 2013-07-14 15:45:03 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-08-27 07:12:33 +0200 |
commit | 34e4910b7a27a4c763d846a7e27366ef435fe420 (patch) | |
tree | e8360550c22bb754ca58ebb6abad23da6febda71 /arch/arm | |
parent | a0b68873ecb90bd42862b67410011262e893253e (diff) | |
download | barebox-34e4910b7a27a4c763d846a7e27366ef435fe420.tar.gz barebox-34e4910b7a27a4c763d846a7e27366ef435fe420.tar.xz |
ARM: cpuinfo: display the core name and version
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/cpu/cpuinfo.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/cpu/cpuinfo.c b/arch/arm/cpu/cpuinfo.c index 8aea4b472d..260d47b02a 100644 --- a/arch/arm/cpu/cpuinfo.c +++ b/arch/arm/cpu/cpuinfo.c @@ -31,6 +31,12 @@ #define CPU_ARCH_ARMv6 8 #define CPU_ARCH_ARMv7 9 +#define ARM_CPU_PART_CORTEX_A5 0xC050 +#define ARM_CPU_PART_CORTEX_A7 0xC070 +#define ARM_CPU_PART_CORTEX_A8 0xC080 +#define ARM_CPU_PART_CORTEX_A9 0xC090 +#define ARM_CPU_PART_CORTEX_A15 0xC0F0 + static void decode_cache(unsigned long size) { int linelen = 1 << ((size & 0x3) + 3); @@ -154,6 +160,33 @@ static int do_cpuinfo(int argc, char *argv[]) printf("implementer: %s\narchitecture: %s\n", implementer, architecture); + if (cpu_arch == CPU_ARCH_ARMv7) { + unsigned int major, minor; + char *part; + major = (mainid >> 20) & 0xf; + minor = mainid & 0xf; + switch (mainid & 0xfff0) { + case ARM_CPU_PART_CORTEX_A5: + part = "Cortex-A5"; + break; + case ARM_CPU_PART_CORTEX_A7: + part = "Cortex-A7"; + break; + case ARM_CPU_PART_CORTEX_A8: + part = "Cortex-A8"; + break; + case ARM_CPU_PART_CORTEX_A9: + part = "Cortex-A9"; + break; + case ARM_CPU_PART_CORTEX_A15: + part = "Cortex-A15"; + break; + default: + part = "unknown"; + } + printf("core: %s r%up%u\n", part, major, minor); + } + if (cache & (1 << 24)) { /* separate I/D cache */ printf("I-cache: "); |