aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r--arch/arm/kernel/setup.c70
1 files changed, 35 insertions, 35 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index da1d1aa20ad9..a15848f8b0ff 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -841,12 +841,9 @@ static const char *hwcap_str[] = {
841 841
842static int c_show(struct seq_file *m, void *v) 842static int c_show(struct seq_file *m, void *v)
843{ 843{
844 int i; 844 int i, j;
845 845 u32 cpuid;
846 seq_printf(m, "Processor\t: %s rev %d (%s)\n",
847 cpu_name, read_cpuid_id() & 15, elf_platform);
848 846
849#if defined(CONFIG_SMP)
850 for_each_online_cpu(i) { 847 for_each_online_cpu(i) {
851 /* 848 /*
852 * glibc reads /proc/cpuinfo to determine the number of 849 * glibc reads /proc/cpuinfo to determine the number of
@@ -854,45 +851,48 @@ static int c_show(struct seq_file *m, void *v)
854 * "processor". Give glibc what it expects. 851 * "processor". Give glibc what it expects.
855 */ 852 */
856 seq_printf(m, "processor\t: %d\n", i); 853 seq_printf(m, "processor\t: %d\n", i);
857 seq_printf(m, "BogoMIPS\t: %lu.%02lu\n\n", 854 cpuid = is_smp() ? per_cpu(cpu_data, i).cpuid : read_cpuid_id();
855 seq_printf(m, "model name\t: %s rev %d (%s)\n",
856 cpu_name, cpuid & 15, elf_platform);
857
858#if defined(CONFIG_SMP)
859 seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",
858 per_cpu(cpu_data, i).loops_per_jiffy / (500000UL/HZ), 860 per_cpu(cpu_data, i).loops_per_jiffy / (500000UL/HZ),
859 (per_cpu(cpu_data, i).loops_per_jiffy / (5000UL/HZ)) % 100); 861 (per_cpu(cpu_data, i).loops_per_jiffy / (5000UL/HZ)) % 100);
860 } 862#else
861#else /* CONFIG_SMP */ 863 seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",
862 seq_printf(m, "BogoMIPS\t: %lu.%02lu\n", 864 loops_per_jiffy / (500000/HZ),
863 loops_per_jiffy / (500000/HZ), 865 (loops_per_jiffy / (5000/HZ)) % 100);
864 (loops_per_jiffy / (5000/HZ)) % 100);
865#endif 866#endif
867 /* dump out the processor features */
868 seq_puts(m, "Features\t: ");
866 869
867 /* dump out the processor features */ 870 for (j = 0; hwcap_str[j]; j++)
868 seq_puts(m, "Features\t: "); 871 if (elf_hwcap & (1 << j))
869 872 seq_printf(m, "%s ", hwcap_str[j]);
870 for (i = 0; hwcap_str[i]; i++)
871 if (elf_hwcap & (1 << i))
872 seq_printf(m, "%s ", hwcap_str[i]);
873 873
874 seq_printf(m, "\nCPU implementer\t: 0x%02x\n", read_cpuid_id() >> 24); 874 seq_printf(m, "\nCPU implementer\t: 0x%02x\n", cpuid >> 24);
875 seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); 875 seq_printf(m, "CPU architecture: %s\n",
876 proc_arch[cpu_architecture()]);
876 877
877 if ((read_cpuid_id() & 0x0008f000) == 0x00000000) { 878 if ((cpuid & 0x0008f000) == 0x00000000) {
878 /* pre-ARM7 */ 879 /* pre-ARM7 */
879 seq_printf(m, "CPU part\t: %07x\n", read_cpuid_id() >> 4); 880 seq_printf(m, "CPU part\t: %07x\n", cpuid >> 4);
880 } else {
881 if ((read_cpuid_id() & 0x0008f000) == 0x00007000) {
882 /* ARM7 */
883 seq_printf(m, "CPU variant\t: 0x%02x\n",
884 (read_cpuid_id() >> 16) & 127);
885 } else { 881 } else {
886 /* post-ARM7 */ 882 if ((cpuid & 0x0008f000) == 0x00007000) {
887 seq_printf(m, "CPU variant\t: 0x%x\n", 883 /* ARM7 */
888 (read_cpuid_id() >> 20) & 15); 884 seq_printf(m, "CPU variant\t: 0x%02x\n",
885 (cpuid >> 16) & 127);
886 } else {
887 /* post-ARM7 */
888 seq_printf(m, "CPU variant\t: 0x%x\n",
889 (cpuid >> 20) & 15);
890 }
891 seq_printf(m, "CPU part\t: 0x%03x\n",
892 (cpuid >> 4) & 0xfff);
889 } 893 }
890 seq_printf(m, "CPU part\t: 0x%03x\n", 894 seq_printf(m, "CPU revision\t: %d\n\n", cpuid & 15);
891 (read_cpuid_id() >> 4) & 0xfff);
892 } 895 }
893 seq_printf(m, "CPU revision\t: %d\n", read_cpuid_id() & 15);
894
895 seq_puts(m, "\n");
896 896
897 seq_printf(m, "Hardware\t: %s\n", machine_name); 897 seq_printf(m, "Hardware\t: %s\n", machine_name);
898 seq_printf(m, "Revision\t: %04x\n", system_rev); 898 seq_printf(m, "Revision\t: %04x\n", system_rev);