From: Andi Kleen <ak@muc.de>
To: Vincent ETIENNE <ve@vetienne.net>
Cc: linux-kernel@vger.kernel.org, discuss@x86-64.org
Subject: Re: AMD64-AGP pb with AGP APERTURE on IWILL DK8N
Date: Thu, 30 Dec 2004 20:09:14 +0100 [thread overview]
Message-ID: <m13bxnli1x.fsf@muc.de> (raw)
In-Reply-To: <200412282049.48616.ve@vetienne.net> (Vincent ETIENNE's message of "Tue, 28 Dec 2004 20:49:48 +0000")
Vincent ETIENNE <ve@vetienne.net> writes:
> 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 and declare i have no valid
> aperture as show in this dmesg extract.
First you should complain to your BIOS vendor because it is just another
kind of BIOS bug (of which there seems to be an infinite supply ...)
> + if ( last_aper_order )
> + {
> + if ( aper_order != last_aper_order )
> + {
> + printk("Aperture size changed!! use old one (%x,%x)", last_aper_order,
> last_aper_base );
> + write_pci_config(0, num, 3, 0x90, last_aper_order<<1);
> + write_pci_config(0, num, 3, 0x94, last_aper_base>>25);
> + aper_order = last_aper_order;
> + aper_base = last_aper_base;
> + aper_size = (32 * 1024 * 1024) << aper_order;
> + }
There is already code to do this at the end of the function. A better
patch would be the attached one.
This would also handle the case of a wrong aper_base.
Untested, uncompiled right now.
Can you test if that works on your board? If yes I can add it.
-Andi
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
different kernel always with the same result :
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: Andi Kleen <ak@suse.de>
diff -u linux-2.6.10/arch/x86_64/kernel/aperture.c-o linux-2.6.10/arch/x86_64/kernel/aperture.c
--- linux-2.6.10/arch/x86_64/kernel/aperture.c-o 2004-12-24 22:35:23.000000000 +0100
+++ linux-2.6.10/arch/x86_64/kernel/aperture.c 2004-12-30 19:56:22.000000000 +0100
@@ -200,8 +200,8 @@
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 @@
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)
next prev parent reply other threads:[~2004-12-30 19:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-28 20:49 AMD64-AGP pb with AGP APERTURE on IWILL DK8N Vincent ETIENNE
2004-12-30 19:09 ` Andi Kleen [this message]
2005-01-02 14:36 ` Alan Cox
2005-01-02 20:25 ` Andi Kleen
2005-01-10 20:49 ` Vincent ETIENNE
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m13bxnli1x.fsf@muc.de \
--to=ak@muc.de \
--cc=discuss@x86-64.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ve@vetienne.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox