Bug 12127
Summary: | alpha: AGP GART support missing on Irongate motherboards (UP1000, UP1100, UP1500) due to memory coherency issues | ||
---|---|---|---|
Product: | Platform Specific/Hardware | Reporter: | Matt Turner (mattst88) |
Component: | Alpha | Assignee: | Richard Henderson (rth) |
Status: | CLOSED WILL_NOT_FIX | ||
Severity: | normal | CC: | alan, ink, mattst88, wlgivens |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.28-rc6 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | Original irongate_setup_agp function |
Description
Matt Turner
2008-11-30 19:26:25 UTC
Send patches. Realistically that is the only way you will get this changed for such old hardware. It seems it was supported in the 2.4.x kernels and was quietly dropped in the 2.6.x release?!?! ftp://ftp.az.kernel.org/pub/linux/kernel/v2.4/patch-html/patch-2.4.10/linux_arch_alpha_kernel_core_irongate.c.html Even though we don't 'complain', there are still plenty of UP1x00 out there. I just recently purchased a UP1500 NIB (new in box). AMD Chipset documentation is easily available, but unfortunately I don't believe the code dealing with it is at fault. AMD 751-Docs: http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_1133%5E1137,00.html AMD-761 Docs: http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_1133,00.html More unfortunately, the only email address in the file is @dec.com. The other three names are from Alpha Processor, Inc. :( Ivan, Jay, and rth, can you confirm that this is definitely an Alpha problem and not an AGP problem? Any insight or suggestions for fixing this? http://www.alphalinux.org/archives/linux-alpha/December1999/0049.html Richard Henderson seems to have previously worked on this. The mail and patch are from 1999, but may be somehow useful. Richard, I'll email you directly as well, but I think I have a UP1500 for you. Created attachment 19713 [details]
Original irongate_setup_agp function
Attached is a patch which includes the original irongate_setup_agp function code. That is, before it was disabled and removed.
It _will_ not magically fix this bug, but it may provide a starting point for at minimum reproducing the bug(s) that caused its removal.
Reassigning this bug to Ivan Kokshaysky since he appears to have made non-trivial changes to core_irongate.c.
Actually I worked on this back in 2003 (kernel 2.5.69 or something around that): http://lkml.org/lkml/2003/5/14/76 Later I found that PALcode is indeed broken (at least on UP1500) and it's not possible to work around the AGP related machine checks. So I had to give up on that stuff. In theory, it's possible to fix the PALcode ;-) - all you need is up-to-date SRM source code for nautilus, OpenVMS box and something like Console Development Kit (cannot recall its correct name). But realistically, I think we should wipe out remaining traces of AGP from core_irongate and stick to PCI GART mode. OK, here's the story: After discussion with Ivan and review of the hardware reference manual, it was determined that AGP and Alphas are inherently incompatible for a number of reasons, namely that Alpha is cache coherent, AGP is not. So the easy way isn't possible. Possibly, AGP GART support could be implemented using the "magic" 16 Gb offset, but given the restrictions, it's probably not worth it. Please close this bug as WONTFIX or whichever. |