ttinsb Posted July 18, 2008 Share Posted July 18, 2008 Thanks a lot! Finder shows this Folder als a file which i can't open. In Terminal i can open the Folder and the Info.plist The FAQ says: You must edit it to <key>Personality</key> <dict> <key>IOProviderClass</key> <string>IOFramebuffer</string> </dict> These lines are already in the Info.plist Is there any other solution? Link to comment Share on other sites More sharing options...
rjstrat Posted July 21, 2008 Share Posted July 21, 2008 Hi Slice,I can't seem to find detailed log for open gl crash thru console, only this: 2008-07-07 17:59:35.983 Chess[238] invalid drawable 2008-07-07 17:59:47.236 Chess[238] invalid drawable 2008-07-07 17:59:50.323 Chess[238] invalid drawable 2008-07-07 18:02:04.168 Xbench[246] invalid drawable 2008-07-07 18:02:04.206 Xbench[246] invalid drawable 2008-07-07 18:02:04.224 Xbench[246] invalid drawable 2008-07-07 18:04:51.447 DiskImages UI Agent[255] Could not find image named 'background'. 2008-07-07 18:06:01.827 OpenGL Extensions Viewer[267] Error attaching drawable 2008-07-07 18:09:24.376 OpenGL Extensions Viewer[267] Error attaching drawable where do I find detailed log? Thanks Hi Slice, Sorry so long for reply. I think your AGPGart 270 is totally working for i865g chip set with 0x08000000 Base, This is absolutely phenomenal work. I am able to boot to GUI using your ATI.kext and ATILead.kext 120 and adding my device ID, with or without 9700GA plugin! I had no success with Natit and any ATY, name. As far as OpenGL, without 9700GA plugin I can only see initialization error, as in previous post, OpenGL just won't start. I have a few observations, but I think they belong in other topic, as it appears your AGPGart is fully functional. I also have a notebook with ATI IGP345m, RS200m+, ID 0x4337, pci2pci 0x7010, pci host 0xcbb2. Would it be possible to add support to your AGPGart for this chipset ? , maybe I can help with test results to solve IGP problem. Also, where should I post OpenGL problems ? I will be away for next 7 days, but when I return I can test anything you have, and post results for both the ATI9800 pro/i865g combo, and IGP345m/rs200m. Again, Thanks for all of your hard work, rj Link to comment Share on other sites More sharing options...
Slice Posted July 21, 2008 Author Share Posted July 21, 2008 Thank you rjstrat for good news! I never see RS200M before so why AGPGart is not work for you. You have DevID VGA=0x4337 AGPBridge=0x7010 AGPHost=0xcbb2 but in codes switch (dev) { case 0xcab0: return ("ATI RS100 AGP bridge"); case 0xcab2: return ("ATI RS200 AGP bridge"); case 0xcab3: return ("ATI RS250 AGP bridge"); case 0x5830: return ("ATI RS300_100 AGP bridge"); case 0x5831: return ("ATI RS300_133 AGP bridge"); case 0x5832: return ("ATI RS300_166 AGP bridge"); case 0x5833: return ("ATI RS300_200 AGP bridge"); case 0x5838: //Slice return ("ATI RS300M AGP bridge"); case 0x5a3f: return ("ATI RS400 AGP bridge"); // really it is PCIE case 0x7932: return ("ATI RS480 AGP bridge"); // really it is PCIE default: return NULL; Not a problem to add your DevID. Wait please for a new version a few days. But other problem. How can we know that AGPGart works for our chipsets if we have no hardware OpenGL even in PCI mode? As I see you are good tester so I want to work with you. About OpenGL problems the best place here Link to comment Share on other sites More sharing options...
svabi Posted July 27, 2008 Share Posted July 27, 2008 good evening, i have a Workstation with E7505 Chipset, 2x 2.8GHz Xeon with HTT. My Video Card is a Radeon HD3850 AGP. Basically it runs perfectly with CI/QE. The only drawback is that it currently runs in PCI mode. I have installed the AGP Gart 2.71 but it does not load. It seems to be an issue with the device ID of the PCI-to-AGP Bridge. It is 0x2252 instead 0x2250. I tried to change the values and the driver loaded and the system booted up to the blue background screen. I am not sure if this is a AGPGart or Videodriver issue. changes in your code: (just added three lines) const char* AGPINTEL::Match(UInt16 dev) { //Slice - this is AGPBridge dev=1 switch (dev) { case 0x1a31: // return ("Intel 82845 host to AGP bridge"); case 0x3341: // return ("Intel 82855 host to AGP bridge"); case 0x2532: // return ("Intel 82860 host to AGP bridge"); case 0x2571: // return ("Intel 82865 host to AGP bridge"); case 0x255d: return ("Intel E7205 host to AGP bridge"); case 0x2550: return ("Intel E7505 host to AGP bridge"); case 0x2552: return ("Intel E7505v3 host to AGP bridge"); case 0x2579: // return ("Intel 82875P host to AGP bridge"); case 0x2561: return ("Intel 82845G host to AGP bridge"); case 0x3581: return ("Intel 82855GM host to AGP bridge"); }; return NULL; } */ switch (type) { case 0x1a218086: /* i840 */ pciwrite16(hostSpace, AGP_INTEL_I8XX_ERRSTS, 0xc000); break; case 0x25008086: /* i820 */ case 0x25018086: /* i820 */ case 0x1a308086: /* i845 */ case 0x25308086: /* i850 */ case 0x33408086: /* i855 */ case 0x35808086: /* i855G */ case 0x255d8086: /* E7205 */ case 0x25508086: /* E7505 */ case 0x25528086: /* E7505v3 */ case 0x25318086: /* i860 */ case 0x25708086: /* i865 */ case 0x25788086: /* i875P */ case 0x25608086: /* i845G */ pciwrite16(hostSpace, AGP_INTEL_I8XX_ERRSTS, 0x00ff); break; default: /* Intel Generic (maybe) */ pciwrite8(hostSpace, AGP_INTEL_ERRSTS + 1, 7); } case 0x1a218086: /* i840 */ case 0x25308086: /* i850 */ case 0x25318086: /* i860 */ case 0x255d8086: /* E7205 */ case 0x25508086: /* E7505 */ case 0x25528086: /* E7505v3 */ pciwrite16(hostSpace, AGP_INTEL_MCHCFG, pciread16(hostSpace, AGP_INTEL_MCHCFG ) & ~(1 << 9) ); break; some Logs: Jul 27 16:46:37 localhost kernel[0]: Alkor: Starting. Jul 27 16:46:37 localhost kernel[0]: choosed model ATI Radeon 3800 Series Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting ATY,PlatformInfo=<data not shown> Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting ATY,EFICompileDate=Dec 18 2007 Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting ATY,Copyright=Copyright AMD Inc. All Rights Reserved. 2005-2008 Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting @0,display-connect-flags=<data not shown> Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting @0,ATY,EFIDisplay=TMDSA Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting model=ATI Radeon HD 3800 Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting @1,display-type=NONE Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting AAPL01,blackscreen-preferences=<data not shown> Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting ATY,RegisterSpaceOffset=<data not shown> Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting AAPL00,blackscreen-preferences=<data not shown> Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting AAPL,backlight-control=<data not shown> Jul 27 16:46:37 localhost kernel[0]: Alkor: Setting name=ATY,LamnaParent Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,MemVendorID=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,FrameBufferOffset=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,MemRevisionID=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @1,VRAM,memsize=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,compatible=ATY,Lamna Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting AAPL01,Coherency=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,Card#=109-B148xx-00 Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,HWGPIO=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @1,compatible=ATY,Lamna Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,PCIConfigSpace=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @1,device_type=display Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,EFIVersionBios=113-B14801-023 Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting device_type=ATY,LamnaParent Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,VendorID=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,EFIEnabledMode=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,EFIHWInitStatus=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,IOSpaceOffset=<data not shown> Jul 27 16:46:38 localhost mDNSResponder mDNSResponder-170 (Jan 4 2008 18:04:07)[33]: starting Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,MCLK=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,Rom#=113-B1480A-236 Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,EFIDriverType=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting MVAD=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,device_type=display Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,display-type=LCD Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting AAPL,aux-power-connected=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,RefCLK=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @1,connector-type=<data not shown> Jul 27 16:46:38 localhost /usr/sbin/ocspd[70]: starting Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,EFIOrientation=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting AAPL,EMC-Display-List=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,MRT= Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,bin_image=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,SCLK=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @1,name=ATY,Lamna Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,AAPL,boot-display=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,name=ATY,Lamna Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,connector-type=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting ATY,EFIVersion=<data not shown> Jul 27 16:46:38 localhost kernel[0]: Alkor: Setting @0,VRAM,memsize=<data not shown> Jul 27 16:46:38 localhost kernel[0]: AGP: Coherence support: no Jul 27 16:46:38 localhost kernel[0]: AGP: GART is 32 bit capable Jul 27 16:46:38 localhost kernel[0]: AGP: Found an AGP 3.0 compliant device. Jul 27 16:46:38 localhost kernel[0]: AGP: VRAM=[f0000000, 08000000] Jul 27 16:46:38 localhost kernel[0]: AGPINTEL: aperture [f4000000, 08000000] Jul 27 16:46:38 localhost kernel[0]: AGPINTEL trace PCI space Jul 27 16:46:38 localhost kernel[0]: (00)=25508086 (04)=00900146 (08)=06000003 (0c)=00800000 Jul 27 16:46:38 localhost kernel[0]: (10)=f0000008 (14)=00000000 (18)=00000000 (1c)=00000000 Jul 27 16:46:38 localhost kernel[0]: (20)=00000000 (24)=00000000 (28)=00000000 (2c)=129d103c Jul 27 16:46:38 localhost kernel[0]: AGP: Setting 08 data rate Jul 27 16:46:38 localhost kernel[0]: AGP: command written target=00000312 master=1f00e312 Jul 27 16:46:38 localhost kernel[0]: AGP memory 108cc000 length 00001000 offset 00000000 cnt 00000000 Jul 27 16:46:38 localhost kernel[0]: AGP memory 108cc000 length 00001000 offset 00001000 cnt 00000001 Jul 27 16:46:38 localhost kernel[0]: ** Device in slot: SLOT--1 ** I attached ioreg & dmesg files. thank you svabi ioregsvabi.txt dmesgsvabi.txt Link to comment Share on other sites More sharing options...
aitikin Posted July 30, 2008 Share Posted July 30, 2008 I searched everywhere but haven't found an answer, so I think this is the best place to ask this.Is it possible to force agp4 instead of having by default agp8? Well, all I know is that in my bios I can switch it over to AGP4. I don't know about yours though, that'd be where I'd look. Link to comment Share on other sites More sharing options...
hmrp Posted July 30, 2008 Share Posted July 30, 2008 I searched everywhere but haven't found an answer, so I think this is the best place to ask this. Is it possible to force agp4 instead of having by default agp8? I have almost sure that I can run agpgart and that is the main problem why I still haven't. I have a asus 9800xt. Mb is a Matsonic 9377c they have some weird problem in xp, it crashes on startup when framebuffer is activated both with agp8, if it doesn't happen it becomes very unstable and crashes minutes later. But if i disable framebuffer and change the values to agp4 everything runs flawlessly. So I guess that specific problem isn't just due to Xp, I'm now running Tiger 10.4.9. If its possible to change those values, can someone give me a hint how to? The bios doesn't give me that option so I must change it through agpgart. Thanks for the time. Link to comment Share on other sites More sharing options...
hmrp Posted July 30, 2008 Share Posted July 30, 2008 That would be the easy step I agree, but unfortunaly I don't have that option available in mine. Link to comment Share on other sites More sharing options...
rjstrat Posted August 2, 2008 Share Posted August 2, 2008 Hi Slice, Thanks for adding rs200m support to your AGPGart. My chip is found, but right after it is recognized, I get boot freeze with green vertical lines. I have tried many combo's of Base, but always get same result. I can't start in single user mode to generate ioreg or dmesg to post. I am novice, but I looked at your AGPGart271 source code and noticed that the line for: // AGBP space? switch (dev) { case 0xcab0: return ("ATI RS100 AGP bridge"); case 0xcab2: return ("ATI RS200 AGP bridge"); case 0xcbb2: case 0x7010: return ("ATI RS200M AGP bridge"); case 0xcab3: return ("ATI RS250 AGP bridge"); Has both 0xcbb2 host, and 0x7010 pci2pci bus together. Could this be issue? or is this just for chip detection? Maybe you could advise on possible IGP Base? Thanks again, rj Link to comment Share on other sites More sharing options...
Slice Posted August 2, 2008 Author Share Posted August 2, 2008 i have a Workstation with E7505 Chipset, 2x 2.8GHz Xeon with HTT. My Video Card is a Radeon HD3850 AGP. changes in your code: (just added three lines) Good work! some Logs: Jul 27 16:46:37 localhost kernel[0]: Alkor: Starting. Jul 27 16:46:38 localhost kernel[0]: AGP: command written target=00000312 master=1f00e312 Jul 27 16:46:38 localhost kernel[0]: AGP memory 108cc000 length 00001000 offset 00000000 cnt 00000000 Jul 27 16:46:38 localhost kernel[0]: AGP memory 108cc000 length 00001000 offset 00001000 cnt 00000001 Jul 27 16:46:38 localhost kernel[0]: ** Device in slot: SLOT--1 ** I attached ioreg & dmesg files. Looks to be OK. So I don't know what is your problem. Does your set of drivers works good without AGPGart? Did you try different settings in AGPGart.info.plist? I searched everywhere but haven't found an answer, so I think this is the best place to ask this.Is it possible to force agp4 instead of having by default agp8? No, it is property written in AGP STATUS REGISTER that is read only. I can propose to you change in AGPGart.info.plist AGP_Mode value to 0xffffffef that means disable fast write as Apple do for ATI R481 chip. I don't know why. Hi Slice,Thanks for adding rs200m support to your AGPGart. My chip is found, but right after it is recognized, I get boot freeze with green vertical lines. I have tried many combo's of Base, but always get same result. I can't start in single user mode to generate ioreg or dmesg to post. I am novice, but I looked at your AGPGart271 source code and noticed that the line for: // AGBP space? switch (dev) { case 0xcab0: return ("ATI RS100 AGP bridge"); case 0xcab2: return ("ATI RS200 AGP bridge"); case 0xcbb2: case 0x7010: return ("ATI RS200M AGP bridge"); case 0xcab3: return ("ATI RS250 AGP bridge"); Has both 0xcbb2 host, and 0x7010 pci2pci bus together. Could this be issue? or is this just for chip detection? Maybe you could advise on possible IGP Base? Yes, it is only for chip detection. I need to be sure that driver loaded only for supported chips. You have bad picture on screen because or non-patched ATIRadeon8500.kext. I try different variants of the patch but still have no full success. The difference is shared memory. In my case IODeviceMemory for VGA = 0xd0000000 but real address=0x38000000 and best AGP_Base value for me = 0x3c000000=0x38000000+0x04000000 (64Mb). And I write the same value into Radeon8500.kext. In this case I can enter GUI and sometimes have hardwareOpenGL but strill without real writing to the screen. In these experience I get a sure that AGPGart works for me. But ATIRadeon8500 - no! Link to comment Share on other sites More sharing options...
rjstrat Posted August 2, 2008 Share Posted August 2, 2008 Good work!Looks to be OK. So I don't know what is your problem. Does your set of drivers works good without AGPGart? Did you try different settings in AGPGart.info.plist? No, it is property written in AGP STATUS REGISTER that is read only. I can propose to you change in AGPGart.info.plist <key>AGP_Mode</key> value to 0xffffffef that means disable fast write as Apple do for ATI R481 chip. I don't know why. Yes, it is only for chip detection. I need to be sure that driver loaded only for supported chips. You have bad picture on screen because or non-patched ATIRadeon8500.kext. I try different variants of the patch but still have no full success. The difference is shared memory. In my case IODeviceMemory for VGA = 0xd0000000 but real address=0x38000000 and best AGP_Base value for me = 0x3c000000=0x38000000+0x04000000 (64Mb). And I write the same value into Radeon8500.kext. In this case I can enter GUI and sometimes have hardwareOpenGL but strill without real writing to the screen. In these experience I get a sure that AGPGart works for me. But ATIRadeon8500 - no! Hi Slice, I think we are having same problem, but you are way more advanced than I. I can't get ATIRadeon.kext to load, my IGP345m is based on r100 family of Radeon, so I thought this would be more appropriate driver, as device ID's are in 7000 family. I have only changed Dev ID in info plist, but as you have said, there is more to it than that. Can you give procedure to add my device 0x43371002 to ATIRadeon.kext? I also have 64mb aperture, and 64mb shared memory for graphics, so I will try with AGP Base of 0x3c000000. Thanks again, rj Link to comment Share on other sites More sharing options...
Slice Posted August 2, 2008 Author Share Posted August 2, 2008 Hi Slice,I think we are having same problem, but you are way more advanced than I. I can't get ATIRadeon.kext to load, my IGP345m is based on r100 family of Radeon, so I thought this would be more appropriate driver, as device ID's are in 7000 family. I have only changed Dev ID in info plist, but as you have said, there is more to it than that. Can you give procedure to add my device 0x43371002 to ATIRadeon.kext? I also have 64mb aperture, and 64mb shared memory for graphics, so I will try with AGP Base of 0x3c000000. Thanks again, rj Sorry, it needs to find in hex dump strings like 3d445100 (devID=5144) of other supported devID for the driver. I never do it for 7000. If you can not I'll make it later. How do you thing what chip is more like to you: R100 (5144), RV100 (5159) or RV200 (4c57)? Or else? Link to comment Share on other sites More sharing options...
rjstrat Posted August 2, 2008 Share Posted August 2, 2008 Sorry, it needs to find in hex dump strings like 3d445100 (devID=5144) of other supported devID for the driver. I never do it for 7000. If you can not I'll make it later.How do you thing what chip is more like to you: R100 (5144), RV100 (5159) or RV200 (4c57)? Or else? Hi Slice, As it is Mobility chip the best guess I can make is 4c59 (m6) or 4c57 (Mobility 7500 m7). Hope this helps, windows driver still differentiates rs200m from the rest. I can't find much specific info on igp345m chip, but all are in r100 family so they should work. Thanks for all of your help, rj Link to comment Share on other sites More sharing options...
svabi Posted August 3, 2008 Share Posted August 3, 2008 Slice, Looks to be OK. So I don't know what is your problem. Does your set of drivers works good without AGPGart?Did you try different settings in AGPGart.info.plist? The HD3850 Drivers work well without AGPGart. Any suggestions what i can try to change in info.plist? Thank you for your nice AGPGart driver and all the time you spent for the community regards svabi Link to comment Share on other sites More sharing options...
rjstrat Posted August 4, 2008 Share Posted August 4, 2008 Hi Slice,As it is Mobility chip the best guess I can make is 4c59 (m6) or 4c57 (Mobility 7500 m7). Hope this helps, windows driver still differentiates rs200m from the rest. I can't find much specific info on igp345m chip, but all are in r100 family so they should work. Thanks for all of your help, rj Hi Slice, It looks like IGP345 is a variant of RV100 family, the RS200M means RS200 mobility chip, I found this in RadeonDump/radeon.h file: #define RADEON_VBIOS_SIZE 0x00010000 typedef enum { CHIP_FAMILY_UNKNOW, CHIP_FAMILY_LEGACY, CHIP_FAMILY_RADEON, CHIP_FAMILY_RV100, CHIP_FAMILY_RS100, /* U1 (IGP320M) or A3 (IGP320)*/ CHIP_FAMILY_RV200, CHIP_FAMILY_RS200, /* U2 (IGP330M/340M/350M) or A4 (IGP330/340/345/350), RS250 (IGP 7000) */ CHIP_FAMILY_R200, CHIP_FAMILY_RV250, CHIP_FAMILY_RS300, /* RS300/RS350 */ CHIP_FAMILY_RV280, CHIP_FAMILY_R300, CHIP_FAMILY_R350, And this: #define IS_RV100_VARIANT ((info->ChipFamily == CHIP_FAMILY_RV100) || \ (info->ChipFamily == CHIP_FAMILY_RV200) || \ (info->ChipFamily == CHIP_FAMILY_RS100) || \ (info->ChipFamily == CHIP_FAMILY_RS200) || \ (info->ChipFamily == CHIP_FAMILY_RV250) || \ (info->ChipFamily == CHIP_FAMILY_RV280) || \ (info->ChipFamily == CHIP_FAMILY_RS300)) And also this: Bool HasCRTC2; Bool IsMobility; /* Mobile chips for laptops */ Bool IsIGP; /* IGP chips */ Bool HasSingleDAC; /* only TVDAC on chip */ Bool ddc_mode; /* Validate mode by matching exactly * the modes supported in DDC data */ Bool R300CGWorkaround; I have also attached radeon.h. I hope this helps, all your help is greatly appreciated. Thanks, rj radeon.zip Link to comment Share on other sites More sharing options...
Slice Posted August 5, 2008 Author Share Posted August 5, 2008 OK. I made a patched ATIRadeon.kext for 4337 instead of 4c59. (I have 5835 instead of 4c66). But not only! I corrected shared memory access. ATIRadeon Before 000788b4 899070010000 mov [eax+0x170], edx 000788ba c781a006000000000000 mov dword ptr [ecx+0x6a0], 0x0 000788c4 8b8114060000 mov eax, [ecx+0x614] 000788ca c780480100000000ffff mov dword ptr [eax+0x148], ffff0000 000788d4 8b9114060000 mov edx, [ecx+0x614] 000788da 8b8208010000 mov eax, [edx+0x108] 000788e0 8d58ff lea ebx, [eax-1] 000788e3 6631db xor bx, bx 000788e6 8b81a0060000 mov eax, [ecx+0x6a0] 000788ec 89823c020000 mov [edx+0x23c], eax 000788f2 f6819a00000001 test byte ptr [ecx+0x9a], 0x1 000788f9 7412 jz 0x7890d 000788fb 8b91a0060000 mov edx, [ecx+0x6a0] 00078901 8b8114060000 mov eax, [ecx+0x614] 00078907 89903c030000 mov [eax+0x33c], edx 0007890d 8b8114060000 mov eax, [ecx+0x614] 00078913 899848010000 mov [eax+0x148], ebx After 000788b4 899070010000 mov [eax+0x170], edx 000788ba 8b905c010000 mov edx, [eax+0x15c] 000788c0 c1e210 shl edx, 0x10 000788c3 8991a0060000 mov [ecx+0x6a0], edx 000788c9 eb09 jmp 0x788d4 000788cb 90 nop 000788cc 90 nop 000788cd 90 nop 000788ce 90 nop 000788cf 90 nop 000788d0 90 nop 000788d1 90 nop 000788d2 90 nop 000788d3 90 nop 000788d4 8b9114060000 mov edx, [ecx+0x614] 000788da 8b8208010000 mov eax, [edx+0x108] 000788e0 8d58ff lea ebx, [eax-1] 000788e3 6631db xor bx, bx 000788e6 8b81a0060000 mov eax, [ecx+0x6a0] 000788ec 89823c020000 mov [edx+0x23c], eax 000788f2 f6819a00000001 test byte ptr [ecx+0x9a], 0x1 000788f9 7412 jz 0x7890d 000788fb 8b91a0060000 mov edx, [ecx+0x6a0] 00078901 8b8114060000 mov eax, [ecx+0x614] 00078907 89903c030000 mov [eax+0x33c], edx 0007890d 8b8114060000 mov eax, [ecx+0x614] 00078913 8b9848010000 mov ebx, [eax+0x148] It means that in default kext @148=0 - VideoMemoryLocation and @23c=0 - DisplayAddress - so you see green lines I made @148 - don't change value from BIOS @23c - calculated from @15c I don't know what to change else. In this combination you probably can enter GUI with full set of drivers including AGPGart271 EDITED Sorry I forget to write devID into info.plist. It is not problem for you, isn't it? ATIRadeon.kextPatched.zip Link to comment Share on other sites More sharing options...
Slice Posted August 7, 2008 Author Share Posted August 7, 2008 Slice, The HD3850 Drivers work well without AGPGart. Any suggestions what i can try to change in info.plist? Thank you for your nice AGPGart driver and all the time you spent for the community regards svabi Sorry, I have no new ideas except old recommendations from topic and FAQ. 4 all who understand me. I see standard framebuffer drivers trying to use interrupts (IRQ). PCIE has IRQ PowerPC AGP has IRQ Intel AGP - not. Dunno about AMD-ATI but it works except Leo. I found no one developer to discuss the issue. Link to comment Share on other sites More sharing options...
rjstrat Posted August 8, 2008 Share Posted August 8, 2008 OK.I made a patched ATIRadeon.kext for 4337 instead of 4c59. (I have 5835 instead of 4c66). But not only! I corrected shared memory access. ATIRadeon Before 000788b4 899070010000 mov [eax+0x170], edx 000788ba c781a006000000000000 mov dword ptr [ecx+0x6a0], 0x0 000788c4 8b8114060000 mov eax, [ecx+0x614] 000788ca c780480100000000ffff mov dword ptr [eax+0x148], ffff0000 000788d4 8b9114060000 mov edx, [ecx+0x614] 000788da 8b8208010000 mov eax, [edx+0x108] 000788e0 8d58ff lea ebx, [eax-1] 000788e3 6631db xor bx, bx 000788e6 8b81a0060000 mov eax, [ecx+0x6a0] 000788ec 89823c020000 mov [edx+0x23c], eax 000788f2 f6819a00000001 test byte ptr [ecx+0x9a], 0x1 000788f9 7412 jz 0x7890d 000788fb 8b91a0060000 mov edx, [ecx+0x6a0] 00078901 8b8114060000 mov eax, [ecx+0x614] 00078907 89903c030000 mov [eax+0x33c], edx 0007890d 8b8114060000 mov eax, [ecx+0x614] 00078913 899848010000 mov [eax+0x148], ebx After 000788b4 899070010000 mov [eax+0x170], edx 000788ba 8b905c010000 mov edx, [eax+0x15c] 000788c0 c1e210 shl edx, 0x10 000788c3 8991a0060000 mov [ecx+0x6a0], edx 000788c9 eb09 jmp 0x788d4 000788cb 90 nop 000788cc 90 nop 000788cd 90 nop 000788ce 90 nop 000788cf 90 nop 000788d0 90 nop 000788d1 90 nop 000788d2 90 nop 000788d3 90 nop 000788d4 8b9114060000 mov edx, [ecx+0x614] 000788da 8b8208010000 mov eax, [edx+0x108] 000788e0 8d58ff lea ebx, [eax-1] 000788e3 6631db xor bx, bx 000788e6 8b81a0060000 mov eax, [ecx+0x6a0] 000788ec 89823c020000 mov [edx+0x23c], eax 000788f2 f6819a00000001 test byte ptr [ecx+0x9a], 0x1 000788f9 7412 jz 0x7890d 000788fb 8b91a0060000 mov edx, [ecx+0x6a0] 00078901 8b8114060000 mov eax, [ecx+0x614] 00078907 89903c030000 mov [eax+0x33c], edx 0007890d 8b8114060000 mov eax, [ecx+0x614] 00078913 8b9848010000 mov ebx, [eax+0x148] It means that in default kext @148=0 - VideoMemoryLocation and @23c=0 - DisplayAddress - so you see green lines I made @148 - don't change value from BIOS @23c - calculated from @15c I don't know what to change else. In this combination you probably can enter GUI with full set of drivers including AGPGart271 EDITED Sorry I forget to write devID into info.plist. It is not problem for you, isn't it? Hi Slice, First, a huge thank you for modding ATIRadeon.kext. I think driver is mostly working, but I am unable to get into GUI for some reason. I have tried many combinations with your AGPGart271, ATI.kext, ATILead, and also earlier IOGraphics, IONDRV, IOPCI etc. I decided to start over with new 10.4.11 install so I can try and find out what is causing problem. With new system I change only ATIRadeon.kext, the display hangs on login window, black screen with live cursor, but system continues to boot. I can't load AGPGart271 because as soon as AGP chip is detected I get boot freeze (KP?) and green lines. I even tried to boot with old AppleI386PCI.kext and ATIRadeon.kext. With this combo the system will boot, but when it gets to login screen instead of GUI I get - guess what? - Same green vertical lines I get with AGPGart271. I am able to boot into safe mode and load your ATIRadeon.kext thru kextload with no problems of link/load errors like I had with original unmodded kext. I got these logs in boot -s mode. Again, Thanks for all of your hard work, rj dmesg_modRadeon.txt ioreg_modRadeon.txt kextstat_modRadeon.txt Link to comment Share on other sites More sharing options...
Slice Posted August 11, 2008 Author Share Posted August 11, 2008 May be it is a problem of SSE3 instructions present in ATIRadeon*.*, GLEngine ? You have SSE2 only CPU? Link to comment Share on other sites More sharing options...
rjstrat Posted August 11, 2008 Share Posted August 11, 2008 May be it is a problem of SSE3 instructions present inATIRadeon*.*, GLEngine ? You have SSE2 only CPU? Hi Slice, Yes, it is 2.8ghz northwood, I am using 8.9.1 universal kernel. I have question about UMA memory though, is aperture space memory added in addition to video memory? or, does video memory reside inside of aperture memory? Also, it seems when I set UMA memory in bios, the aperture is doubled, so if I set UMA memory to 64mb, I get 128 aperture - 64+128= 192mb memory for graphics, if I set UMA memory to 128mb, I get 256mb aperture so, 128+256= 384mb for graphics. I don't have option in bios to set aperture alone, only UMA memory. So the big question is, how would you find correct memory location/settings for video? I got this info, with this aperture setting/memory combining issue, in Windows everest, graphics adapter is identified as IGP345m 192mb when UMA is set to 64mb. Would this combination of aperture/UMA memory be incorrect for the settings you made in ATIRadeon.kext? Sorry if it seems as stupid question, just trying to find solution. Also, OpenGL works well in windows, it is OGL 1.3, is it possible setting in driver can be changed for sse2? Thanks again, rj Link to comment Share on other sites More sharing options...
Slice Posted August 11, 2008 Author Share Posted August 11, 2008 Hi Slice,Yes, it is 2.8ghz northwood, I am using 8.9.1 universal kernel. Some kernels 8.9.1 already contain SSE3 emulation so you may be not need SSE2 patch. How to check SSE3 instruction execution in kernel space? May be write special test kext? I have question about UMA memory though, is aperture space memory added in addition to video memory? or, does video memory reside inside of aperture memory? It is really my big problem. That is what I understood: AGP aperture is located immediately after PCI aperture. If we write something into AGP aperture in AGP mode the address will be shifted to get PCI address. For example PCI addresses [d0000000, d7ffffff] AGP addresses [d8000000, dfffffff] If we write into address d9400000 the data will fall into address d1400000, i.e. shifted on aperture size 08000000. So Video Memory is located only in PCI space. AGP space is virtual. Previously I write how AGPGart work. Link in topic. What about Radeon GPU address space? Video memory has address VAddr=0. If I have aperture size ASize= 0x04000000=64Mb then AGP aperture has address VAddr+ASize=04000000. This is why I set in AGPGart AGP_Base=aperture. In ATIRadeon.kext there is a procedure to fill Radeon registers with these addresses @23c - DISPLAY_BASE_ADDRESS - physical address for framebuffer. Really I can choose 0x38000000=Shared_memory_Address or 0xd0000000=PCI_space video memory address. @148 - MC_FB_LOCATION. Default value=0x3fff3800 that means range [38000000, 3fffffff] @170 - AGP_BASE. In PCI mode = 0. In AGP mode this is a value returned by AGPGart driver. In this case =0x04000000 @14c - MC_AGP_LOCATION. Analog to @148 but in AGP mode. Default value is quirky = 0x003f0000=range of 4Mb. ATIRadeon.kext recalculate it as ffff0000 in PCI mode and 0bff0800 in AGP mode. Range [08000000, 0bffffff]. The addresses shifted twice. This is stop point for me. Other registers that influence on addresses are @1d0 - PCI_GART_CNTL @1d8 - PCI_GART_ADDRESS @1dc - AIC_LO_ADDR = GART_APERTURE_START @1e0 - AIC_HI_ADDR = GART_APERTURE_END @700 - CP_RB_BASE - address of Ring_Buffer. In the driver it occur at the begin of AGP_range=0x08000000. I have one thought. If this buffer is used by OpenGL then we need to shift framebuffer at the size of RingBuffer.(?) What I see in PowerMac VAdr=0x98000000 VSize=0x08000000 ASize=0x04000000 Framebuffer=0x9c008000. This is 98000000+0x04000000+0x00008000. The last one is RingBuffer? But I can't influence on Framebuffer address from AGPGart driver. It is property of ATINDRV, Callisto(?) or Ati.kext . nVidia user has setting "fboffset"=20000. Is it the same? Also, it seems when I set UMA memory in bios, the aperture is doubled, so if I set UMA memory to 64mb, I get 128 aperture - 64+128= 192mb memory for graphics, if I set UMA memory to 128mb, I get 256mb aperture so, 128+256= 384mb for graphics.I don't have option in bios to set aperture alone, only UMA memory. So the big question is, how would you find correct memory location/settings for video? I got this info, with this aperture setting/memory combining issue, in Windows everest, graphics adapter is identified as IGP345m 192mb when UMA is set to 64mb. Would this combination of aperture/UMA memory be incorrect for the settings you made in ATIRadeon.kext? In what form I can give you all driver calculations that you can check if I make mistake in patching? Sorry if it seems as stupid question, just trying to find solution. Also, OpenGL works well in windows, it is OGL 1.3, is it possible setting in driver can be changed for sse2? Easy. But not today. Only tomorrow. Link to comment Share on other sites More sharing options...
Slice Posted August 13, 2008 Author Share Posted August 13, 2008 it seems we need no to worry about SSE2. If the system works then we already have SSE3 support. I am not sure but manually executing SSE3 command don't crash my system. And other observation: users with SSE3 CPU have exactly the same problems. Link to comment Share on other sites More sharing options...
gaston Posted August 13, 2008 Share Posted August 13, 2008 Hi Slice/People! I wish someone could guide me about with combination of kext can put mi graphic card to work with QE/CI. My video card is a Nvidia Geforce 6200LE 256Mb AGP Display: Type: Display Bus: AGP VRAM (Total): 256 MB Vendor: NVIDIA (0x10de) Device ID: 0x0222 Revision ID: 0x00a1 Displays: Display: Resolution: 1024 x 768 Depth: 32-bit Color Core Image: Software Main Display: Yes Mirror: Off Online: Yes Quartz Extreme: Not Supported QuartzGL: Supported im running Leopard 10.5.2 by Kalyway, and mi PC have an ASRock 775i65G motherboard, and a Intel Celeron D 2.5 Ghz. Thanks! Link to comment Share on other sites More sharing options...
elRey Posted August 14, 2008 Share Posted August 14, 2008 hi Gaston, how did you get agp mode i have the same hardward exept the cpu in my 3. system and never get agp. Link to comment Share on other sites More sharing options...
rjstrat Posted August 15, 2008 Share Posted August 15, 2008 Some kernels 8.9.1 already contain SSE3 emulation so you may be not need SSE2 patch. How to check SSE3 instruction execution in kernel space? May be write special test kext?It is really my big problem. That is what I understood: AGP aperture is located immediately after PCI aperture. If we write something into AGP aperture in AGP mode the address will be shifted to get PCI address. For example PCI addresses [d0000000, d7ffffff] AGP addresses [d8000000, dfffffff] If we write into address d9400000 the data will fall into address d1400000, i.e. shifted on aperture size 08000000. So Video Memory is located only in PCI space. AGP space is virtual. Previously I write how AGPGart work. Link in topic. What about Radeon GPU address space? Video memory has address VAddr=0. If I have aperture size ASize= 0x04000000=64Mb then AGP aperture has address VAddr+ASize=04000000. This is why I set in AGPGart AGP_Base=aperture. In ATIRadeon.kext there is a procedure to fill Radeon registers with these addresses @23c - DISPLAY_BASE_ADDRESS - physical address for framebuffer. Really I can choose 0x38000000=Shared_memory_Address or 0xd0000000=PCI_space video memory address. @148 - MC_FB_LOCATION. Default value=0x3fff3800 that means range [38000000, 3fffffff] @170 - AGP_BASE. In PCI mode = 0. In AGP mode this is a value returned by AGPGart driver. In this case =0x04000000 @14c - MC_AGP_LOCATION. Analog to @148 but in AGP mode. Default value is quirky = 0x003f0000=range of 4Mb. ATIRadeon.kext recalculate it as ffff0000 in PCI mode and 0bff0800 in AGP mode. Range [08000000, 0bffffff]. The addresses shifted twice. This is stop point for me. Other registers that influence on addresses are @1d0 - PCI_GART_CNTL @1d8 - PCI_GART_ADDRESS @1dc - AIC_LO_ADDR = GART_APERTURE_START @1e0 - AIC_HI_ADDR = GART_APERTURE_END @700 - CP_RB_BASE - address of Ring_Buffer. In the driver it occur at the begin of AGP_range=0x08000000. I have one thought. If this buffer is used by OpenGL then we need to shift framebuffer at the size of RingBuffer.(?) What I see in PowerMac VAdr=0x98000000 VSize=0x08000000 ASize=0x04000000 Framebuffer=0x9c008000. This is 98000000+0x04000000+0x00008000. The last one is RingBuffer? But I can't influence on Framebuffer address from AGPGart driver. It is property of ATINDRV, Callisto(?) or Ati.kext . nVidia user has setting "fboffset"=20000. Is it the same? In what form I can give you all driver calculations that you can check if I make mistake in patching? Easy. But not today. Only tomorrow. Hi Slice, I am away from my hack right now, but have a few questions. First, does your laptop boot into gui with just modified ATI8500.kext (no agp kext)? Also, would it be possible to mod ATIRadeon.kext for 64mb video memory/128mb aperture? or, maybe add capability to change video base/video memory/aperture value in plist? You have given me very much info about memory shift to research, your explanation is clear to understand. I thought I saw memory shift issue in older XFree86 Radeon IGP driver, and it said something about requirement of kernal mod for IGP chips, maybe could give clue as to method to correct? I will continue to look for answers. Could you possibly give explanation of method you use to mod kext, and also which is best editor, it might be useful for others to give data without you having to mod all of the kexts. I am not sure which is easiest form for you to send driver calculations, as I am not a programmer, but if I don't understand something, I will research until I do. I will give more info when I get back. Thanks, rj Link to comment Share on other sites More sharing options...
Slice Posted August 15, 2008 Author Share Posted August 15, 2008 Thanks in advance, rjstrat! I really need your help. OK, if you are not programmer you may show me wanted final result: what you wish to see in those registers. And I try to write the correspondent patch. The disassembler/patcher I use http://hte.sf.net. If you want I can upload it here. First, does your laptop boot into gui with just modified ATI8500.kext (no agp kext)? Yes, even with full set of drivers. But any scroll text halt my system or reboot. With AGPGart no halt but all is slow. Remember. I can enter GUI only if I set register 0xf8 to the value 0x00300000. And I can't understand why. would it be possible to mod ATIRadeon.kext for 64mb video memory/128mb aperture? We can change its only at PCI/AGP level. So in AGPGart.kext. maybe add capability to change video base/video memory/aperture value in plist? For this purpose I create ATILead.kext. Could you possibly give explanation of method you use to mod kext, and also which is best editor, it might be useful for others to give data without you having to mod all of the kexts. As I said above it is HT. And there is a way for noobs perl -pi -e 's|\x3d\x60\x5b\x00\x00|\x3d\x61\x54\x00\x00|g' /patch/ATIRadeon9700 It means find and replace hex string. Link to comment Share on other sites More sharing options...
Recommended Posts