diff options
author | Toshi Kani <toshi.kani@hpe.com> | 2016-01-26 15:57:21 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-01-30 03:49:57 -0500 |
commit | 03cb525eb25018cf5f3da01d0f1391fc8b37805a (patch) | |
tree | ea5197fa576bdf0136d3155e43ae10de1c40033a | |
parent | f33b14a4b96b185634848046f54fb0d5028566a9 (diff) |
ia64: Set System RAM type and descriptor
Change efi_initialize_iomem_resources() to set 'flags' and
'desc' for EFI memory types. IORESOURCE_SYSRAM, a modifier bit,
is set for System RAM as IORESOURCE_MEM is already set.
IORESOURCE_SYSTEM_RAM is defined as
(IORESOURCE_MEM|IORESOURCE_SYSRAM). I/O resource descriptor is
set for "ACPI Non-volatile Storage" and "Persistent Memory".
Also set IORESOURCE_SYSTEM_RAM for "Kernel code", "Kernel data",
and "Kernel bss".
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Tony Luck <tony.luck@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luis R. Rodriguez <mcgrof@suse.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Toshi Kani <toshi.kani@hp.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-efi <linux-efi@vger.kernel.org>
Cc: linux-ia64@vger.kernel.org
Cc: linux-mm <linux-mm@kvack.org>
Link: http://lkml.kernel.org/r/1453841853-11383-6-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | arch/ia64/kernel/efi.c | 13 | ||||
-rw-r--r-- | arch/ia64/kernel/setup.c | 6 |
2 files changed, 13 insertions, 6 deletions
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index caae3f4e4341..300dac3702f1 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -1178,7 +1178,7 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
1178 | efi_memory_desc_t *md; | 1178 | efi_memory_desc_t *md; |
1179 | u64 efi_desc_size; | 1179 | u64 efi_desc_size; |
1180 | char *name; | 1180 | char *name; |
1181 | unsigned long flags; | 1181 | unsigned long flags, desc; |
1182 | 1182 | ||
1183 | efi_map_start = __va(ia64_boot_param->efi_memmap); | 1183 | efi_map_start = __va(ia64_boot_param->efi_memmap); |
1184 | efi_map_end = efi_map_start + ia64_boot_param->efi_memmap_size; | 1184 | efi_map_end = efi_map_start + ia64_boot_param->efi_memmap_size; |
@@ -1193,6 +1193,8 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
1193 | continue; | 1193 | continue; |
1194 | 1194 | ||
1195 | flags = IORESOURCE_MEM | IORESOURCE_BUSY; | 1195 | flags = IORESOURCE_MEM | IORESOURCE_BUSY; |
1196 | desc = IORES_DESC_NONE; | ||
1197 | |||
1196 | switch (md->type) { | 1198 | switch (md->type) { |
1197 | 1199 | ||
1198 | case EFI_MEMORY_MAPPED_IO: | 1200 | case EFI_MEMORY_MAPPED_IO: |
@@ -1207,14 +1209,17 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
1207 | if (md->attribute & EFI_MEMORY_WP) { | 1209 | if (md->attribute & EFI_MEMORY_WP) { |
1208 | name = "System ROM"; | 1210 | name = "System ROM"; |
1209 | flags |= IORESOURCE_READONLY; | 1211 | flags |= IORESOURCE_READONLY; |
1210 | } else if (md->attribute == EFI_MEMORY_UC) | 1212 | } else if (md->attribute == EFI_MEMORY_UC) { |
1211 | name = "Uncached RAM"; | 1213 | name = "Uncached RAM"; |
1212 | else | 1214 | } else { |
1213 | name = "System RAM"; | 1215 | name = "System RAM"; |
1216 | flags |= IORESOURCE_SYSRAM; | ||
1217 | } | ||
1214 | break; | 1218 | break; |
1215 | 1219 | ||
1216 | case EFI_ACPI_MEMORY_NVS: | 1220 | case EFI_ACPI_MEMORY_NVS: |
1217 | name = "ACPI Non-volatile Storage"; | 1221 | name = "ACPI Non-volatile Storage"; |
1222 | desc = IORES_DESC_ACPI_NV_STORAGE; | ||
1218 | break; | 1223 | break; |
1219 | 1224 | ||
1220 | case EFI_UNUSABLE_MEMORY: | 1225 | case EFI_UNUSABLE_MEMORY: |
@@ -1224,6 +1229,7 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
1224 | 1229 | ||
1225 | case EFI_PERSISTENT_MEMORY: | 1230 | case EFI_PERSISTENT_MEMORY: |
1226 | name = "Persistent Memory"; | 1231 | name = "Persistent Memory"; |
1232 | desc = IORES_DESC_PERSISTENT_MEMORY; | ||
1227 | break; | 1233 | break; |
1228 | 1234 | ||
1229 | case EFI_RESERVED_TYPE: | 1235 | case EFI_RESERVED_TYPE: |
@@ -1246,6 +1252,7 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
1246 | res->start = md->phys_addr; | 1252 | res->start = md->phys_addr; |
1247 | res->end = md->phys_addr + efi_md_size(md) - 1; | 1253 | res->end = md->phys_addr + efi_md_size(md) - 1; |
1248 | res->flags = flags; | 1254 | res->flags = flags; |
1255 | res->desc = desc; | ||
1249 | 1256 | ||
1250 | if (insert_resource(&iomem_resource, res) < 0) | 1257 | if (insert_resource(&iomem_resource, res) < 0) |
1251 | kfree(res); | 1258 | kfree(res); |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 4f118b0d3091..2029a38a72ae 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -80,17 +80,17 @@ unsigned long vga_console_membase; | |||
80 | 80 | ||
81 | static struct resource data_resource = { | 81 | static struct resource data_resource = { |
82 | .name = "Kernel data", | 82 | .name = "Kernel data", |
83 | .flags = IORESOURCE_BUSY | IORESOURCE_MEM | 83 | .flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM |
84 | }; | 84 | }; |
85 | 85 | ||
86 | static struct resource code_resource = { | 86 | static struct resource code_resource = { |
87 | .name = "Kernel code", | 87 | .name = "Kernel code", |
88 | .flags = IORESOURCE_BUSY | IORESOURCE_MEM | 88 | .flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM |
89 | }; | 89 | }; |
90 | 90 | ||
91 | static struct resource bss_resource = { | 91 | static struct resource bss_resource = { |
92 | .name = "Kernel bss", | 92 | .name = "Kernel bss", |
93 | .flags = IORESOURCE_BUSY | IORESOURCE_MEM | 93 | .flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM |
94 | }; | 94 | }; |
95 | 95 | ||
96 | unsigned long ia64_max_cacheline_size; | 96 | unsigned long ia64_max_cacheline_size; |