diff options
Diffstat (limited to 'arch/powerpc/kernel/prom_init.c')
-rw-r--r-- | arch/powerpc/kernel/prom_init.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index b91761639d96..46cf32670ddb 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -173,8 +173,8 @@ static unsigned long __initdata dt_string_start, dt_string_end; | |||
173 | static unsigned long __initdata prom_initrd_start, prom_initrd_end; | 173 | static unsigned long __initdata prom_initrd_start, prom_initrd_end; |
174 | 174 | ||
175 | #ifdef CONFIG_PPC64 | 175 | #ifdef CONFIG_PPC64 |
176 | static int __initdata iommu_force_on; | 176 | static int __initdata prom_iommu_force_on; |
177 | static int __initdata ppc64_iommu_off; | 177 | static int __initdata prom_iommu_off; |
178 | static unsigned long __initdata prom_tce_alloc_start; | 178 | static unsigned long __initdata prom_tce_alloc_start; |
179 | static unsigned long __initdata prom_tce_alloc_end; | 179 | static unsigned long __initdata prom_tce_alloc_end; |
180 | #endif | 180 | #endif |
@@ -582,9 +582,9 @@ static void __init early_cmdline_parse(void) | |||
582 | while (*opt && *opt == ' ') | 582 | while (*opt && *opt == ' ') |
583 | opt++; | 583 | opt++; |
584 | if (!strncmp(opt, RELOC("off"), 3)) | 584 | if (!strncmp(opt, RELOC("off"), 3)) |
585 | RELOC(ppc64_iommu_off) = 1; | 585 | RELOC(prom_iommu_off) = 1; |
586 | else if (!strncmp(opt, RELOC("force"), 5)) | 586 | else if (!strncmp(opt, RELOC("force"), 5)) |
587 | RELOC(iommu_force_on) = 1; | 587 | RELOC(prom_iommu_force_on) = 1; |
588 | } | 588 | } |
589 | #endif | 589 | #endif |
590 | } | 590 | } |
@@ -627,6 +627,7 @@ static void __init early_cmdline_parse(void) | |||
627 | /* Option vector 3: processor options supported */ | 627 | /* Option vector 3: processor options supported */ |
628 | #define OV3_FP 0x80 /* floating point */ | 628 | #define OV3_FP 0x80 /* floating point */ |
629 | #define OV3_VMX 0x40 /* VMX/Altivec */ | 629 | #define OV3_VMX 0x40 /* VMX/Altivec */ |
630 | #define OV3_DFP 0x20 /* decimal FP */ | ||
630 | 631 | ||
631 | /* Option vector 5: PAPR/OF options supported */ | 632 | /* Option vector 5: PAPR/OF options supported */ |
632 | #define OV5_LPAR 0x80 /* logical partitioning supported */ | 633 | #define OV5_LPAR 0x80 /* logical partitioning supported */ |
@@ -642,6 +643,7 @@ static void __init early_cmdline_parse(void) | |||
642 | static unsigned char ibm_architecture_vec[] = { | 643 | static unsigned char ibm_architecture_vec[] = { |
643 | W(0xfffe0000), W(0x003a0000), /* POWER5/POWER5+ */ | 644 | W(0xfffe0000), W(0x003a0000), /* POWER5/POWER5+ */ |
644 | W(0xffff0000), W(0x003e0000), /* POWER6 */ | 645 | W(0xffff0000), W(0x003e0000), /* POWER6 */ |
646 | W(0xffffffff), W(0x0f000002), /* all 2.05-compliant */ | ||
645 | W(0xfffffffe), W(0x0f000001), /* all 2.04-compliant and earlier */ | 647 | W(0xfffffffe), W(0x0f000001), /* all 2.04-compliant and earlier */ |
646 | 5 - 1, /* 5 option vectors */ | 648 | 5 - 1, /* 5 option vectors */ |
647 | 649 | ||
@@ -668,7 +670,7 @@ static unsigned char ibm_architecture_vec[] = { | |||
668 | /* option vector 3: processor options supported */ | 670 | /* option vector 3: processor options supported */ |
669 | 3 - 2, /* length */ | 671 | 3 - 2, /* length */ |
670 | 0, /* don't ignore, don't halt */ | 672 | 0, /* don't ignore, don't halt */ |
671 | OV3_FP | OV3_VMX, | 673 | OV3_FP | OV3_VMX | OV3_DFP, |
672 | 674 | ||
673 | /* option vector 4: IBM PAPR implementation */ | 675 | /* option vector 4: IBM PAPR implementation */ |
674 | 2 - 2, /* length */ | 676 | 2 - 2, /* length */ |
@@ -1167,7 +1169,7 @@ static void __init prom_initialize_tce_table(void) | |||
1167 | u64 local_alloc_top, local_alloc_bottom; | 1169 | u64 local_alloc_top, local_alloc_bottom; |
1168 | u64 i; | 1170 | u64 i; |
1169 | 1171 | ||
1170 | if (RELOC(ppc64_iommu_off)) | 1172 | if (RELOC(prom_iommu_off)) |
1171 | return; | 1173 | return; |
1172 | 1174 | ||
1173 | prom_debug("starting prom_initialize_tce_table\n"); | 1175 | prom_debug("starting prom_initialize_tce_table\n"); |
@@ -2283,11 +2285,11 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4, | |||
2283 | * Fill in some infos for use by the kernel later on | 2285 | * Fill in some infos for use by the kernel later on |
2284 | */ | 2286 | */ |
2285 | #ifdef CONFIG_PPC64 | 2287 | #ifdef CONFIG_PPC64 |
2286 | if (RELOC(ppc64_iommu_off)) | 2288 | if (RELOC(prom_iommu_off)) |
2287 | prom_setprop(_prom->chosen, "/chosen", "linux,iommu-off", | 2289 | prom_setprop(_prom->chosen, "/chosen", "linux,iommu-off", |
2288 | NULL, 0); | 2290 | NULL, 0); |
2289 | 2291 | ||
2290 | if (RELOC(iommu_force_on)) | 2292 | if (RELOC(prom_iommu_force_on)) |
2291 | prom_setprop(_prom->chosen, "/chosen", "linux,iommu-force-on", | 2293 | prom_setprop(_prom->chosen, "/chosen", "linux,iommu-force-on", |
2292 | NULL, 0); | 2294 | NULL, 0); |
2293 | 2295 | ||