diff options
Diffstat (limited to 'arch/arc/lib/cpu.c')
| -rw-r--r-- | arch/arc/lib/cpu.c | 35 | 
1 files changed, 34 insertions, 1 deletions
| diff --git a/arch/arc/lib/cpu.c b/arch/arc/lib/cpu.c index cb95e06e931..50cd7cdb610 100644 --- a/arch/arc/lib/cpu.c +++ b/arch/arc/lib/cpu.c @@ -1,6 +1,6 @@  // SPDX-License-Identifier: GPL-2.0+  /* - * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved. + * Copyright (C) 2013-2014, 2018 Synopsys, Inc. All rights reserved.   */  #include <common.h> @@ -33,3 +33,36 @@ int dram_init(void)  {  	return 0;  } + +#ifdef CONFIG_DISPLAY_CPUINFO +const char *decode_identity(void) +{ +	int arcver = read_aux_reg(ARC_AUX_IDENTITY) & 0xff; + +	switch (arcver) { +	/* ARCompact cores */ +	case 0x32: return "ARC 700 v4.4-4.5"; +	case 0x33: return "ARC 700 v4.6-v4.9"; +	case 0x34: return "ARC 700 v4.10"; +	case 0x35: return "ARC 700 v4.11"; + +	/* ARCv2 cores */ +	case 0x41: return "ARC EM v1.1a"; +	case 0x42: return "ARC EM v3.0"; +	case 0x43: return "ARC EM v4.0"; +	case 0x50: return "ARC HS v1.0"; +	case 0x51: return "ARC EM v2.0"; +	case 0x52: return "ARC EM v2.1"; +	case 0x53: return "ARC HS v3.0"; +	case 0x54: return "ARC HS v4.0"; + +	default: return "Unknown ARC core"; +	} +} + +int print_cpuinfo(void) +{ +	printf("CPU:   %s\n", decode_identity()); +	return 0; +} +#endif /* CONFIG_DISPLAY_CPUINFO */ | 
