Commit 9245af41 authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds

[PATCH] x86_64: Work around another aperture BIOS bug on Opteron

Work around another aperture BIOS bug on Opteron

Based on debugging&code from Vincent ETIENNE <ve@vetienne.net>

>>
I have some problem with AGP initialization with my board : IWILL DK8N (Bi
opteron chipset NFORCE3 ). I use kernel 2.6.10-rc3-mm1, but i have try with

IOMMU reports a 128MB aperture for CPU0 ( that's the value i used in my bios)
at F0000000 but only 32MB at 4000000 for CPU1
<<

This patch checks for this condition and fixes the other CPUs up.
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 36573f37
......@@ -200,8 +200,8 @@ static __u32 __init search_agp_bridge(u32 *order, int *valid_agp)
void __init iommu_hole_init(void)
{
int fix, num;
u32 aper_size, aper_alloc = 0, aper_order;
u64 aper_base;
u32 aper_size, aper_alloc = 0, aper_order, last_aper_order = 0;
u64 aper_base, last_aper_base = 0;
int valid_agp = 0;
if (iommu_aperture_disabled || !fix_aperture)
......@@ -230,7 +230,15 @@ void __init iommu_hole_init(void)
if (!aperture_valid(name, aper_base, aper_size)) {
fix = 1;
break;
}
}
if ((last_aper_order && aper_order != last_aper_order) ||
(last_aper_base && aper_base != last_aper_base)) {
fix = 1;
break;
}
last_aper_order = aper_order;
last_aper_base = aper_base;
}
if (!fix && !fallback_aper_force)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment