aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/kernel/setup.c')
-rw-r--r--arch/ia64/kernel/setup.c33
1 files changed, 27 insertions, 6 deletions
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index 14e1200376a9..ad567b8d432e 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -256,7 +256,7 @@ reserve_memory (void)
256 256
257#ifdef CONFIG_KEXEC 257#ifdef CONFIG_KEXEC
258 /* crashkernel=size@offset specifies the size to reserve for a crash 258 /* crashkernel=size@offset specifies the size to reserve for a crash
259 * kernel.(offset is ingored for keep compatibility with other archs) 259 * kernel. If offset is 0, then it is determined automatically.
260 * By reserving this memory we guarantee that linux never set's it 260 * By reserving this memory we guarantee that linux never set's it
261 * up as a DMA target.Useful for holding code to do something 261 * up as a DMA target.Useful for holding code to do something
262 * appropriate after a kernel panic. 262 * appropriate after a kernel panic.
@@ -266,10 +266,16 @@ reserve_memory (void)
266 unsigned long base, size; 266 unsigned long base, size;
267 if (from) { 267 if (from) {
268 size = memparse(from + 12, &from); 268 size = memparse(from + 12, &from);
269 if (*from == '@')
270 base = memparse(from+1, &from);
271 else
272 base = 0;
269 if (size) { 273 if (size) {
270 sort_regions(rsvd_region, n); 274 if (!base) {
271 base = kdump_find_rsvd_region(size, 275 sort_regions(rsvd_region, n);
272 rsvd_region, n); 276 base = kdump_find_rsvd_region(size,
277 rsvd_region, n);
278 }
273 if (base != ~0UL) { 279 if (base != ~0UL) {
274 rsvd_region[n].start = 280 rsvd_region[n].start =
275 (unsigned long)__va(base); 281 (unsigned long)__va(base);
@@ -434,6 +440,21 @@ static __init int setup_nomca(char *s)
434} 440}
435early_param("nomca", setup_nomca); 441early_param("nomca", setup_nomca);
436 442
443#ifdef CONFIG_PROC_VMCORE
444/* elfcorehdr= specifies the location of elf core header
445 * stored by the crashed kernel.
446 */
447static int __init parse_elfcorehdr(char *arg)
448{
449 if (!arg)
450 return -EINVAL;
451
452 elfcorehdr_addr = memparse(arg, &arg);
453 return 0;
454}
455early_param("elfcorehdr", parse_elfcorehdr);
456#endif /* CONFIG_PROC_VMCORE */
457
437void __init 458void __init
438setup_arch (char **cmdline_p) 459setup_arch (char **cmdline_p)
439{ 460{
@@ -653,6 +674,7 @@ get_model_name(__u8 family, __u8 model)
653{ 674{
654 char brand[128]; 675 char brand[128];
655 676
677 memcpy(brand, "Unknown", 8);
656 if (ia64_pal_get_brand_info(brand)) { 678 if (ia64_pal_get_brand_info(brand)) {
657 if (family == 0x7) 679 if (family == 0x7)
658 memcpy(brand, "Merced", 7); 680 memcpy(brand, "Merced", 7);
@@ -660,8 +682,7 @@ get_model_name(__u8 family, __u8 model)
660 case 0: memcpy(brand, "McKinley", 9); break; 682 case 0: memcpy(brand, "McKinley", 9); break;
661 case 1: memcpy(brand, "Madison", 8); break; 683 case 1: memcpy(brand, "Madison", 8); break;
662 case 2: memcpy(brand, "Madison up to 9M cache", 23); break; 684 case 2: memcpy(brand, "Madison up to 9M cache", 23); break;
663 } else 685 }
664 memcpy(brand, "Unknown", 8);
665 } 686 }
666 if (brandname[0] == '\0') 687 if (brandname[0] == '\0')
667 return strcpy(brandname, brand); 688 return strcpy(brandname, brand);