diff options
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r-- | arch/arm/kernel/setup.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index b0df9761de6d..50e198c1e9c8 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -100,6 +100,9 @@ EXPORT_SYMBOL(system_serial_high); | |||
100 | unsigned int elf_hwcap __read_mostly; | 100 | unsigned int elf_hwcap __read_mostly; |
101 | EXPORT_SYMBOL(elf_hwcap); | 101 | EXPORT_SYMBOL(elf_hwcap); |
102 | 102 | ||
103 | unsigned int elf_hwcap2 __read_mostly; | ||
104 | EXPORT_SYMBOL(elf_hwcap2); | ||
105 | |||
103 | 106 | ||
104 | #ifdef MULTI_CPU | 107 | #ifdef MULTI_CPU |
105 | struct processor processor __read_mostly; | 108 | struct processor processor __read_mostly; |
@@ -731,7 +734,7 @@ static void __init request_standard_resources(const struct machine_desc *mdesc) | |||
731 | kernel_data.end = virt_to_phys(_end - 1); | 734 | kernel_data.end = virt_to_phys(_end - 1); |
732 | 735 | ||
733 | for_each_memblock(memory, region) { | 736 | for_each_memblock(memory, region) { |
734 | res = memblock_virt_alloc_low(sizeof(*res), 0); | 737 | res = memblock_virt_alloc(sizeof(*res), 0); |
735 | res->name = "System RAM"; | 738 | res->name = "System RAM"; |
736 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); | 739 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); |
737 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; | 740 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; |
@@ -1005,6 +1008,15 @@ static const char *hwcap_str[] = { | |||
1005 | NULL | 1008 | NULL |
1006 | }; | 1009 | }; |
1007 | 1010 | ||
1011 | static const char *hwcap2_str[] = { | ||
1012 | "aes", | ||
1013 | "pmull", | ||
1014 | "sha1", | ||
1015 | "sha2", | ||
1016 | "crc32", | ||
1017 | NULL | ||
1018 | }; | ||
1019 | |||
1008 | static int c_show(struct seq_file *m, void *v) | 1020 | static int c_show(struct seq_file *m, void *v) |
1009 | { | 1021 | { |
1010 | int i, j; | 1022 | int i, j; |
@@ -1028,6 +1040,10 @@ static int c_show(struct seq_file *m, void *v) | |||
1028 | if (elf_hwcap & (1 << j)) | 1040 | if (elf_hwcap & (1 << j)) |
1029 | seq_printf(m, "%s ", hwcap_str[j]); | 1041 | seq_printf(m, "%s ", hwcap_str[j]); |
1030 | 1042 | ||
1043 | for (j = 0; hwcap2_str[j]; j++) | ||
1044 | if (elf_hwcap2 & (1 << j)) | ||
1045 | seq_printf(m, "%s ", hwcap2_str[j]); | ||
1046 | |||
1031 | seq_printf(m, "\nCPU implementer\t: 0x%02x\n", cpuid >> 24); | 1047 | seq_printf(m, "\nCPU implementer\t: 0x%02x\n", cpuid >> 24); |
1032 | seq_printf(m, "CPU architecture: %s\n", | 1048 | seq_printf(m, "CPU architecture: %s\n", |
1033 | proc_arch[cpu_architecture()]); | 1049 | proc_arch[cpu_architecture()]); |