InferiorYeast Posted July 3, 2008 Share Posted July 3, 2008 bash-3.2# ./radeondump -i Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPCI2PCIBridge/VGA@0/RadeonPCI it matched on name "display" Detected ATI Mobility Radeon X1600 (device id: 0x71c5) Start I2C dump ATOM BIOS detected ATOM BIOS Rom: SubsystemVendorID: 0x1043 SubsystemID: 0x10b2 IOBaseAddress: 0xb000 Filename: w3j0905.bin BIOS Bootup Message: ASUS-W3J-M56P 256M ATOMBIOS 450m/450e ASID: A05804.005$ Skipping TV-Out Bios Connector table: Port0: DDCType-0x7e40, DACType-1, TMDSType-0, ConnectorType-1, hpd_mask-0x0 Port1: DDCType-0x7e50, DACType-7, TMDSType-0, ConnectorType-0, hpd_mask-0x0 EDID for connector 0: 0x0000: 00FFFFFFFFFFFF0010AC29A053594331 0x0010: 171201030E342078EAB325AC5130B426 0x0020: 105054A54B008180A940714F01010101 0x0030: 010101010101283C80A070B023403020 0x0040: 360007442100001A000000FF004A5534 0x0050: 3336383634314359530A000000FC0044 0x0060: 454C4C20323430385746500A000000FD 0x0070: 00384C1E5311000A2020202020200050 EDID for connector 1: Read data failed here's the bios rom in case you need it: 71C5.1043.10B2.vga.rom.zip Link to comment Share on other sites More sharing options...
dong Posted July 3, 2008 Share Posted July 3, 2008 EDID for connector 0: 0x0000: 00FFFFFFFFFFFF0010AC29A053594331 0x0010: 171201030E342078EAB325AC5130B426 0x0020: 105054A54B008180A940714F01010101 0x0030: 010101010101283C80A070B023403020 0x0040: 360007442100001A000000FF004A5534 0x0050: 3336383634314359530A000000FC0044 0x0060: 454C4C20323430385746500A000000FD 0x0070: 00384C1E5311000A2020202020200050 EDID for connector 1: Read data failed Still not working for your panel LCD, . I will check your BIOS rom. Thanks for testing and uploading. Edited: The ATOMBIOS rom contains the same register values compared to the manually used ones for I2C. That explains the same results observed. At this point, I can only say x1600 mobility and Slice's 9100 mobility are special cards need more information to figure out the I2C mechanism behind them. By the way, have llauqsd and asstastic tried the code in post#114? That code is using hardware I2C, don't know if it will make any difference. Before compiling it, you need put a RadeonPCIShared.h in its place. Link to comment Share on other sites More sharing options...
asstastic Posted July 3, 2008 Share Posted July 3, 2008 By the way, have llauqsd and asstastic tried the code in post#114? That code is using hardware I2C, don't know if it will make any difference. Before compiling it, you need put a RadeonPCIShared.h in its place. sh-3.2# ./RadeonDump -i Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/VGA@0/RadeonPCI it matched on name "ATY,WormyParent" Detected ATI Mobility Radeon X1600 (device id: 0x71c5) Start I2C dump ATOM BIOS detected ATOM BIOS Rom: SubsystemVendorID: 0x1025 SubsystemID: 0x0094 IOBaseAddress: 0x2000 Filename: BR20829.BIN BIOS Bootup Message: Quanta/Acer ZB1-M56-P 128M Channel A 440e/375m Skipping TV-Out Bios Connector table: Port1: DDCType-0x7e50, DACType-7, TMDSType-0, ConnectorType-0, hpd_mask-0x0 Port3: DDCType-0x7e60, DACType-2, TMDSType-1, ConnectorType-0, hpd_mask-0x1 EDID for connector 0: Read data failed EDID for connector 1: Read data failed EDID for connector 3: Read data failed sh-3.2# This code gives a lot more output info than the last one but still no LVDS . I thought about hacking the card bios to enable I2C for all the outputs but I think we should find a solution that will work for everyone. I wonder how the radeon drivers in Windows manage to coax the EDID out of these cards. Here's the card BIOS:71C5.1025.0094.vga.rom.zip Edit: Messed up attachment. fixed now Link to comment Share on other sites More sharing options...
InferiorYeast Posted July 3, 2008 Share Posted July 3, 2008 Using the code from post 114: bash-3.2# ./radeondump -i Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPCI2PCIBridge/VGA@0/RadeonPCI it matched on name "display" Start I2C dump EDID at bus 0: 0x0000: 00FFFFFFFFFFFF0010AC29A053594331 0x0010: 171201030E342078EAB325AC5130B426 0x0020: 105054A54B008180A940714F01010101 0x0030: 010101010101283C80A070B023403020 0x0040: 360007442100001A000000FF004A5534 0x0050: 3336383634314359530A000000FC0044 0x0060: 454C4C20323430385746500A000000FD 0x0070: 00384C1E5311000A2020202020200050 Read EDID at bus 1 failed Read EDID at bus 2 failed Link to comment Share on other sites More sharing options...
drumthrasher109 Posted July 3, 2008 Share Posted July 3, 2008 Hey guys. I found a kext file on post 46 page 4, used kext helper to install it, and restarted. I get a black screen (with the regular b/w text when booting with -v, I haven't tried booting normally). It just sits there. Now I can type stuff on the keyboard and here the proper sounds through my speakers but nothing is on my screen, except the text. Now the weird things is that a little while after its at the text, my resolution on my monitor changes to where nothing will show up, 'frequency out of range'. I usually have my TV connected via an s-video cable. I turned it on and noticed it was still sitting at the text. Here is an image of what it shows: http://img248.imagevenue.com/img.php?image...8_122_515lo.JPG Now I have no idea what you guys are doing in the previous post, all I know is that I saw a kext file and I installed it. This could be my only hope on getting QE/CI working on my card, as EFI strings and lastexile's installers won't work. Hopefully something will work really soon! Link to comment Share on other sites More sharing options...
gstone Posted July 3, 2008 Share Posted July 3, 2008 Hi developers, I'm also very interested in this project, I'm very annoyed by the Xpress 200M Chipset and the QE/CI problem. I'm using Leopard 10.5.4 (Zephy using ASU) with a ATI Radeon Xpress 1100, and Callisto 003 has given me resolution and refresh rate changes. I'm not a developer but let me know if you need me to test anything relating to the above card. I cannot get RadeonDump to work. I have tried different versions and also tried compiling from source. Heres some info on my setup: system: Hardware Overview: Model Name: Mac Model Identifier: Ferrrari 1000 Processor Name: AMD Turion™ 64 X2 Mobile Technology TL-6 Processor Speed: 2 GHz Total Number Of Cores: 2 L2 Cache (per processor): 512 KB CPU Features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH MMX FXSR SSE SSE2 HTT SSE3 CX16 Memory: 2 GB Bus Speed: 533 MHz Boot ROM Version: Hack.88Z.int.0sh.061193037 (Acer) graphics: Radeon XPRESS 200M (PCIE): Chipset Model: Radeon XPRESS 200M (PCIE) Type: Display Bus: PCI VRAM (Total): 48 MB Vendor: ATI (0x1002) Device ID: 0x5975 Revision ID: 0x0000 Displays: Color LCD: Resolution: 1280 x 800 @ 60 Hz Depth: 32-bit Color Core Image: Software Main Display: Yes Mirror: Off Online: Yes Quartz Extreme: Not Supported dmesg: CallistoHAL Initialized! Callisto: omni's ATI Driver&FrameBuffer, build 003 (fixed), 27-May-2006 Callisto: Model Radeon XPRESS 200M (PCIE) (rv410) Callisto: MMIO range@0x18 (cfef0000) mapped to kernel virtual address 0x2f982000 Callisto: 48 MB DDR SGRAM found on 64 bit wide bus Callisto: VRAM range@0x10 (b0000000:03000000) Callisto: Found ROM @0xc0000 Callisto: Legacy ATI BIOS detected Callisto: Retreived PLL infos from BIOS Callisto: Reference=14.32 MHz (RefDiv=6) Memory=400.00 Mhz, System=200.00 MHz Callisto: PLL min 20000 max 40000 Callisto: Non-DDC laptop panel detected Callisto: Found Monitor: LCD Callisto: panel ID string: AUO Callisto: detected LVDS panel size from BIOS: 1280x800 Callisto: BIOS provided dividers will be used Callisto: Default panel mode: 1280x800, pixel clock: 68900 KHz Callisto: done with Radeon XPRESS 200M (PCIE) lspci: 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP] [1002:5975] (prog-if 00 [VGA controller]) Subsystem: Acer Incorporated [ALI] Unknown device [1025:010e] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 66 (2000ns min), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at b0000000 (32-bit, prefetchable) Region 1: I/O ports at 9000 Region 2: Memory at cfef0000 (32-bit, non-prefetchable) Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- ioreg: See attachment uname -a: Darwin ferrari 9.0.0 Darwin Kernel Version 9.0.0: Tue Oct 9 21:35:55 PDT 2007; root:xnu-1228~1/RELEASE_I386 i386 RadeonDump # kextload -t RadeonPCI.kext/ kextload: extension RadeonPCI.kext/ appears to be loadable /System/Library/Extensions/System.kext/PlugIns/IOKit.kext/IOKit: Undefined in symbol set: __ZN14IOPMrootDomain24systemPowerEventOccurredEPK8OSSymbolP8OSObject /System/Library/Extensions/System.kext/PlugIns/IOKit.kext/IOKit: Undefined in symbol set: __ZN14IOPMrootDomain24systemPowerEventOccurredEPK8OSSymbolj kextload: RadeonPCI.kext/ loaded successfully kextstat: 102 0 0x2fecf000 0x3000 0x2000 com.dong.driver.RadeonPCI (1.0.0d1) <6 5 4> I get no output at all when running RadeonDump,for example: # RadeonDump -i # RadeonDump -d # RadeonDump -r 100,200 Nothing at all! See dtruss attachement for exec trace. How do I fix it? I tried both your pre-compiled version and compiling myself in xcode 3, no errors it seems. Let me know if there is anything else I can do to help. Regards /GS ioreg.rtf dtruss.rtf Link to comment Share on other sites More sharing options...
dong Posted July 3, 2008 Share Posted July 3, 2008 Callisto: Non-DDC laptop panel detectedDid this mean DDC communication is not possible?I cannot get RadeonDump to work. I have tried different versions and also tried compiling from source.I have no idea why it won't work here. Link to comment Share on other sites More sharing options...
gstone Posted July 4, 2008 Share Posted July 4, 2008 Did this mean DDC communication is not possible?I have no idea why it won't work here. I will paste some info about this chipset from Linux, maybe you have use for it. Im sure you already know, but I noticed AMD releasing GPU specs: AMD Releases 900+ Pages Of GPU Specs (II) LoadModule: "fglrx" (II) Loading /usr/lib64/xorg/modules/drivers/fglrx_drv.so (II) Module fglrx: vendor="FireGL - ATI Technologies Inc." (II) fglrx(0): pEnt->device->identifier=0x9cc990 (II) fglrx(0): === [atiddxPreInit] === begin (II) fglrx(0): PCI bus 1 card 5 func 0 (**) fglrx(0): Depth 24, (--) framebuffer bpp 32 (II) fglrx(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps) (==) fglrx(0): Default visual is TrueColor (**) fglrx(0): Option "DPMS" (II) fglrx(0): Loading PCS database from /etc/ati/amdpcsdb (==) fglrx(0): RGB weight 888 (II) fglrx(0): Using 8 bits per RGB (8 bit DAC) (**) fglrx(0): Gamma Correction for I is 0x06419064 (==) fglrx(0): Gamma Correction for II is 0x06419064 (==) fglrx(0): Buffer Tiling is ON (--) fglrx(0): Chipset: "ATI Radeon Xpress Series" (Chipset = 0x5975) (--) fglrx(0): (PciSubVendor = 0x1025, PciSubDevice = 0x010e) (--) fglrx(0): board vendor info: third party graphics adapter - NOT original ATI (--) fglrx(0): Linear framebuffer (phys) at 0xb0000000 (--) fglrx(0): MMIO registers at 0xcfef0000 (==) fglrx(0): ROM-BIOS at 0x000c0000 (II) fglrx(0): Primary V_BIOS segment is: 0xc000 (II) fglrx(0): VESA BIOS detected (II) fglrx(0): VESA VBE Version 2.0 (II) fglrx(0): VESA VBE Total Mem: 16384 kB (II) fglrx(0): VESA VBE OEM: ATI Radeon® Xpress 1150 (II) fglrx(0): VESA VBE OEM Software Rev: 1.0 (II) fglrx(0): VESA VBE OEM Vendor: ATI Technologies Inc. (II) fglrx(0): VESA VBE OEM Product: MS48 (II) fglrx(0): VESA VBE OEM Product Rev: 01.00 (II) Loading sub module "fglrxdrm" (II) LoadModule: "fglrxdrm" (II) Loading /usr/lib64/xorg/modules/linux/libfglrxdrm.so (II) Module fglrxdrm: vendor="FireGL - ATI Technologies Inc." (II) fglrx(0): Using adapter: 1:5.0. (II) fglrx(0): [FB] Find the MC FB aperturs range(MCFBBase = 0x70000000, MCFBSize = 0x10000000) (--) fglrx(0): VideoRAM: 131072 kByte, Type: DDR SGRAM / SDRAM (II) fglrx(0): PCIE card detected (WW) fglrx(0): board is an unknown third party board, chipset is supported (II) fglrx(0): Connected Display1: LCD on internal LVDS [lvds] (II) fglrx(0): Display1 EDID data --------------------------- (II) fglrx(0): Manufacturer: AUO Model: 3214 Serial#: 0 (II) fglrx(0): Year: 2006 Week: 1 (II) fglrx(0): EDID Version: 1.3 (II) fglrx(0): Digital Display Input (II) fglrx(0): Max H-Image Size [cm]: horiz.: 26 vert.: 16 (II) fglrx(0): Gamma: 2.20 (II) fglrx(0): No DPMS capabilities specified; RGB/Color Display (II) fglrx(0): First detailed timing is preferred mode (II) fglrx(0): redX: 0.580 redY: 0.340 greenX: 0.310 greenY: 0.550 (II) fglrx(0): blueX: 0.155 blueY: 0.155 whiteX: 0.315 whiteY: 0.330 (II) fglrx(0): Manufacturer's mask: 0 (II) fglrx(0): Supported additional Video Mode: (II) fglrx(0): clock: 68.9 MHz Image Size: 261 x 163 mm (II) fglrx(0): h_active: 1280 h_sync: 1301 h_sync_end 1333 h_blank_end 1408 h_border: 0 (II) fglrx(0): v_active: 800 v_sync: 804 v_sync_end 808 v_blanking: 816 v_border: 0 (II) fglrx(0): AUO (II) fglrx(0): B121EW03 V2 (II) fglrx(0): EDID (in hex): (II) fglrx(0): 00ffffffffffff0006af143200000000 (II) fglrx(0): 01100103801a10780a87fe94574f8c27 (II) fglrx(0): 27505400000001010101010101010101 (II) fglrx(0): 010101010101ea1a0080502010301520 (II) fglrx(0): 440005a3100000180000000f00000000 (II) fglrx(0): 00000000000000000020000000fe0041 (II) fglrx(0): 554f0a202020202020202020000000fe (II) fglrx(0): 004231323145573033205632200a001f (II) fglrx(0): End of Display1 EDID data -------------------- (WW) fglrx(0): Only one display is connnected,so single mode is enabled (II) fglrx(0): Primary Controller - LCD on internal LVDS (II) fglrx(0): Internal Desktop Setting: 0x00000001 (II) fglrx(0): POWERplay version 3. 2 power states available: (II) fglrx(0): 1. 401/401MHz @ 60Hz [enable load balancing] (II) fglrx(0): 2. 100/133MHz @ 60Hz [] (==) fglrx(0): Qbs is not supported in this release. Disabled. (==) fglrx(0): FAST_SWAP disabled (==) fglrx(0): PseudoColor visuals disabled (**) fglrx(0): Center Mode is disabled (==) fglrx(0): TMDS coherent mode is enabled (II) fglrx(0): Total of 13 modes found for primary display. (--) fglrx(0): Virtual size is 1280x800 (pitch 0) (--) fglrx(0): Display dimensions: (260, 160) mm (--) fglrx(0): DPI set to (125, 127) (--) fglrx(0): Virtual size is 1280x800 (pitch 1280) (==) fglrx(0): NoAccel = NO (==) fglrx(0): NoDRI = NO (II) Loading sub module "fglrxdrm" (II) LoadModule: "fglrxdrm" (II) Reloading /usr/lib64/xorg/modules/linux/libfglrxdrm.so (==) fglrx(0): Capabilities: 0x00000000 (==) fglrx(0): CapabilitiesEx: 0x00000000 (==) fglrx(0): cpuFlags: 0x4000001f (==) fglrx(0): OpenGL ClientDriverName: "fglrx_dri.so" (**) fglrx(0): ATI GART size: 255 MB (II) fglrx(0): [pcie] 261120 kB allocated (II) fglrx(0): [drm] DRM buffer queue setup: nbufs = 100 bufsize = 65536 (==) fglrx(0): UseFastTLS=0 (==) fglrx(0): BlockSignalsOnLock=1 (II) fglrx(0): driver needs X.org 7.1.x.y with x.y >= 0.0 (II) fglrx(0): detected X.org 7.1.1.0 (II) fglrx(0): doing DRIScreenInit (II) fglrx(0): [drm] DRM interface version 1.0 (II) fglrx(0): [drm] created "fglrx" driver at busid "PCI:1:5:0" (II) fglrx(0): [drm] added 8192 byte SAREA at 0x17e4000 (II) fglrx(0): [drm] mapped SAREA 0x17e4000 to 0x2aaaad3ca000 (II) fglrx(0): [drm] framebuffer handle = 0x17e5000 (II) fglrx(0): [drm] added 1 reserved context for kernel (II) fglrx(0): DRIScreenInit done (II) fglrx(0): Kernel Module Version Information: (II) fglrx(0): Name: fglrx (II) fglrx(0): Version: 8.50.3 (II) fglrx(0): Date: Jun 2 2008 (II) fglrx(0): Desc: ATI FireGL DRM kernel module (II) fglrx(0): Kernel Module version matches driver. (II) fglrx(0): Kernel Module Build Time Information: (II) fglrx(0): Build-Kernel UTS_RELEASE: 2.6.22.2-42.fc6 (II) fglrx(0): Build-Kernel MODVERSIONS: yes (II) fglrx(0): Build-Kernel __SMP__: yes (II) fglrx(0): Build-Kernel PAGE_SIZE: 0x1000 (II) fglrx(0): [drm] register handle = 0x017e6000 (II) fglrx(0): Interrupt handler installed at IRQ 17. (II) fglrx(0): Exposed events to the /proc interface (II) fglrx(0): DRI initialization successfull! (II) fglrx(0): FBADPhys: 0x70000000 FBMappedSize: 0x005f0000 (II) fglrx(0): FBMM initialized for area (0,0)-(1280,1216) (II) fglrx(0): FBMM auto alloc for area (0,0)-(1280,800) (front color buffer - assumption) (II) fglrx(0): Largest offscreen area available: 1280 x 416 (==) fglrx(0): Backing store disabled (**) fglrx(0): DPMS enabled (II) fglrx(0): Using XFree86 Acceleration Architecture (XAA) (II) fglrx(0): Acceleration enabled (II) fglrx(0): X context handle = 0x1 (II) fglrx(0): [DRI] installation complete (II) fglrx(0): Direct rendering enabled (==) fglrx(0): Silken mouse enabled (==) fglrx(0): Using hardware cursor (II) AIGLX: Loaded and initialized /usr/lib64/dri/fglrx_dri.so Compile radeontool & avivotool, latest src at: http://gitweb.freedesktop.org/?p=users/air...;f=radeon_reg.h see radeon_reg.h scanpci: pci bus 0x0001 cardnum 0x05 function 0x00: vendor 0x1002 device 0x5975 ATI Technologies Inc RS482 [Radeon Xpress 200M] # lspci -n | grep 5975 01:05.0 0300: 1002:5975 # echo 1 > /sys/bus/pci/devices/0000\:01\:05.0/rom # cat /sys/bus/pci/devices/0000\:01\:05.0/rom > myrom # file myrom myrom: BIOS (ia32) ROM Ext. IBM comp. Video (128*512) # cp myrom /media/bios/BK-ATI-VER008-050l.036.003 # ./avivotool --debug romtables myrom Found card 1002:5975 (30000) (unknown card) Radeon found. Base control address is 2aaaaaaad000; base framebuffer address is 2aaaaacdb000. BIOS Tables: ------------ Header at 118, type: 8 [] OEM ID: 08 32 Legacy BIOS detected ! BIOS Rev: 24.3 Clock info block: SCLK : 200.000000 MCLK : 400.000000 RefClk : 14.320000 RefDiv : 6 VCO Min: 200.000000 VCO Max: 400.000000 Connector table: Table revision 3 for 1 chip(s) Table for chip 1 has 2 connector(s): 00002400 Type: VGA, DDC: CRT2, DAC: CRT, TMDS: Internal 00001100 Type: Proprietary, DDC: MONID, DAC: CRT, TMDS: Internal 00008845 Type: , DDC: , DAC: TV, TMDS: Internal DFP table revision: 2 I dont really know how to use radeontool, let me know if you need anything: ./radeontool usage: radeontool [options] [command] --debug - show a little debug info --skip=1 - use the second radeon card dac [on|off] - power down the external video outputs (on) light [on|off] - power down the backlight (on) stretch [on|off|vert|horiz|auto|manual] - stretching for resolution mismatch regs - show a listing of some random registers regmatch - show registers matching wildcard pattern regset - set registers matching wildcard pattern # ./radeontool regs \RADEON_DAC_CNTL 00000102 RADEON_DAC_EXT_CNTL 00000000 RADEON_DAC_MACRO_CNTL 00000808 RADEON_DAC_CNTL2 00000002 RADEON_TV_DAC_CNTL 07770242 RADEON_DISP_OUTPUT_CNTL 10010008 RADEON_CONFIG_MEMSIZE 03f00000 RADEON_AUX_SC_CNTL 00000000 RADEON_CRTC_EXT_CNTL 11000000 RADEON_CRTC_GEN_CNTL 03208600 RADEON_CRTC2_GEN_CNTL 04800010 RADEON_DEVICE_ID 00075975 RADEON_DISP_MISC_CNTL 5b300600 RADEON_GPIO_MONID 00000300 RADEON_GPIO_MONIDB 00000000 RADEON_GPIO_CRT2_DDC 00000000 RADEON_GPIO_DVI_DDC 00000100 RADEON_GPIO_VGA_DDC 00000300 RADEON_LVDS_GEN_CNTL 003cffa1 RADEON_FP_GEN_CNTL 01640200 RADEON_FP2_GEN_CNTL 0100020a RADEON_PIXCLKS_CNTL 0b6ffec0 RADEON_MEM_TIMING_CNTL 00000000 EVEREST hw info: ATI GPU Registers: ati-00E0 00030100 ati-00F8 03F00000 ati-0140 00000000 ati-0144 00000000 ati-0148 7FFF7000 ati-0154 0F004400 ati-0158 50000000 ati-0178 20040100 ati-01C0 00FF0000 ati-4018 00010011 ati-CLKIND-00 00000000 ati-CLKIND-04 00020073 ati-CLKIND-0A 001C0002 ati-CLKIND-0B 80007FFF ati-CLKIND-0C 0400A400 ati-CLKIND-0D 000A7FFB ati-CLKIND-0E 000E0008 ati-CLKIND-0F 01E2EE2A ati-CLKIND-12 00000000 B00 D00 F00: ATI Radeon Xpress 200M/1100M/1150M (RS482M/RS485M) Chipset - Host Bridge Offset 00: 02 10 50 59 06 00 20 22 10 00 00 06 00 40 00 00 Offset 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset 20: 00 00 00 00 00 00 00 00 00 00 00 00 25 10 0E 01 Offset 30: 00 00 00 00 C4 00 00 00 00 00 00 00 00 00 00 00 Offset 40: 00 00 00 00 00 00 00 00 00 00 00 00 42 20 05 00 Offset 50: 25 10 0E 01 00 00 00 00 00 00 00 00 00 00 00 00 Offset 60: 4F 00 00 00 00 00 00 00 00 00 00 00 2C 00 73 06 Offset 70: E0 08 00 00 00 00 00 00 20 4E 00 00 00 00 00 10 Offset 80: 10 0F 00 02 94 14 00 03 20 00 00 00 12 21 00 10 Offset 90: 00 00 00 70 45 CD 45 EE 00 00 00 00 00 00 00 00 Offset A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset C0: 00 00 00 00 08 00 80 01 60 20 11 11 D0 00 00 00 Offset D0: 25 05 65 00 02 00 00 00 00 00 00 00 00 00 00 00 Offset E0: 00 00 00 00 00 00 00 00 7E 00 00 00 04 00 00 00 Offset F0: 00 00 00 00 00 80 80 00 00 00 00 00 00 00 48 01 B01 D05 F00: ATI Radeon Xpress 200M/1100M/1150M (RS482M/RS485M) Chipset - Video Adapter Offset 00: 02 10 75 59 07 00 B0 02 00 00 00 03 08 FF 00 00 Offset 10: 08 00 00 C0 01 90 00 00 00 00 10 B0 00 00 00 00 Offset 20: 00 00 00 00 00 00 00 00 00 00 00 00 25 10 0E 01 Offset 30: 00 00 00 00 50 00 00 00 00 00 00 00 11 01 08 00 Offset 40: 00 00 00 00 00 00 00 00 00 00 00 00 25 10 0E 01 Offset 50: 01 00 02 06 00 00 00 00 02 50 20 00 30 02 00 4F Offset 60: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset 80: 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Offset F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 RaBiT www.techpowerup.com: -- RaBiT v.2.1.0 build 645 -- Read file: 65536 bytes, ROM len: 65536 bytes -- Analyzing ROM BIOS -- > HEADER offs: 0x118 > PCIR struct offs: 0x18C > CRC table offs: 0x1C0 > CLOCK table offs: 0x8A2 Core clock is 400.00 MHz Memory clock is 200.00 MHz Reference clock is 14.32 MHz > Memory config: 0xAA55 > TV table offs: 0xCA77 Active TV type: 'NTSC' > Hardware table: at 0x4C0, Rev.2 hw_a: 0x330F, hw_b: 0x0000 > DFP table offs: 0x4D4 DFP table Ver.2, 6 preset(s) > Connectors Layout table offs: 0x4CA Conn0 type = VGA, DDC = CRT2, DAC = Unknown Conn1 type = Proprietary, DDC = MONID, DAC = Unknown Conn2 type = Unsupported, DDC = None, DAC = Primary > VESA BIOS Extension 2.00, Rev. 1.00: Vendor: ATI Technologies Inc. Product: MS48, Rev. 01.00 OEM: ATI Radeon® Xpress 1150 > ASIC config: 0x75 = 0x00, 0x74 = 0x00 0x7C = 0x00, 0x7B = 0x00, 0x7A = 0x00 This BIOS has hidden (by RaBiT) data -- ROM BIOS info -- Desc: RS485/M Ferra6 VBIOS BR#21663 Info: MS48PCIEDGD1UN, uyferra.ace v611 , 2006/08/23 17:35 ! Chipset family: Unknown > PLL script at 0x038C > PLL2 script at 0x0421 > INIT script at 0x0222 > MEMORY script at 0x02BF -- Found hardware registers values: -- > PLL(0A): 0x001CA802 at 0x03AC > PLL(0D): 0xFFFFFFF9 at 0x03D1 -- User changes followed -- I appreciate your hard work. Let me know if I can do anything to help. /GS BK_ATI_VER008_050I.036.003.zip Link to comment Share on other sites More sharing options...
Slice Posted July 4, 2008 Author Share Posted July 4, 2008 2 dong New attempt sergey:/Volumes/ALL/Developer/Projects/ATI/RadeonPCI sergey$ ./RadeonMMDump -i Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/AGPGart/ATIM@5/RadeonPCI it matched on name "display" Start I2C dump Test with reference freq: 2700 Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Read EDID failed Test with reference freq: 1432 Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Read EDID failed Test with reference freq: 2950 Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Timeout condition on Radeon i2c bus Read EDID failed My best result (with my codes) doI2CRequest 1 0x0000: 00000000000000000001000000000020 0x0010: 00000000000000000000000000000000 0x0020: 00000001000000000000000000000000 0x0030: 00000000000000000000080000000000 0x0040: 00000000000000020000000000000000 0x0050: 00000000000000000000000000000000 0x0060: 00000000000000000000000000000000 0x0070: 00000000000000000000000000000000 Still trying to find best registers and masks. Never give up 2 gstone. Huge amount of informations. Hope it will be useful! Link to comment Share on other sites More sharing options...
Slice Posted July 4, 2008 Author Share Posted July 4, 2008 May be later I return to EDID/DDC problem but now I want to return to The Driver problem. I propose new template to create the driver. RadNDRV is a replacement of ATINDRV. Its methods doStatus and doControl is empty now, We need to fill its by real radeon procedures. It loaded by this version of ATILead. But... no loaded because I didn't make something needed. What? Probe or Init or Start? EDITED: RadNDRV is wrong idea! Forget it! Link to comment Share on other sites More sharing options...
shadeskyline Posted July 5, 2008 Share Posted July 5, 2008 Thank you all for all your hard work. I tested your files on my IBM T43 with ATI Radeon X300, 64 MB + 64MB Shared Loaded RadeonPCI.kext With Dong's RadeonDump I got following: sh-3.2# ./RadeonDump -i Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/IOPCI2PCIBridge/VID@0/RadeonPCI it matched on name "display" Detected ATI Radeon Mobility X300 (M22) 5460 (PCIE) (device id: 0x5460) Start I2C dump Legacy BIOS detected Bios Connector table: Port0: DDCType-0x60, DACType-1, TMDSType-1, ConnectorType-1 Port1: DDCType-0x64, DACType-1, TMDSType-1, ConnectorType-3 Port4: DDCType-0x0, DACType-0, TMDSType-0, ConnectorType-7 Port5: DDCType-0x0, DACType-2, TMDSType-0, ConnectorType-5 EDID for connector 0: Read data failed EDID for connector 1: Read data failed If I connect LCD display on the VGA port: sh-3.2# ./RadeonDump -i Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/IOPCI2PCIBridge/VID@0/RadeonPCI it matched on name "display" Detected ATI Radeon Mobility X300 (M22) 5460 (PCIE) (device id: 0x5460) Start I2C dump Legacy BIOS detected Bios Connector table: Port0: DDCType-0x60, DACType-1, TMDSType-1, ConnectorType-1 Port1: DDCType-0x64, DACType-1, TMDSType-1, ConnectorType-3 Port4: DDCType-0x0, DACType-0, TMDSType-0, ConnectorType-7 Port5: DDCType-0x0, DACType-2, TMDSType-0, ConnectorType-5 EDID for connector 0: 0x0000: 00FFFFFFFFFFFF001E6D4D56E4F20000 0x0010: 051101036A312078EAAEC5A2574A9C25 0x0020: 125054A76B80950F950081808140714F 0x0030: 0101010101017C2E90A0601A1E403020 0x0040: 3600DA281100001A21399030621A2740 0x0050: 68B03600DA281100001C000000FD0038 0x0060: 4B1C530F000A202020202020000000FC 0x0070: 004C3232365754510A2020202020001C EDID for connector 1: Read data failed So it gives me the EDID only for the external display I send you the video rom dump and another file obtained with RadeonDump -r 100,200 5460.1014.0570.vga.rom.zip RadeonDump_r100_200.rtf Link to comment Share on other sites More sharing options...
Slice Posted July 7, 2008 Author Share Posted July 7, 2008 2 dong Users can't get EDID for internal LCD with any methods. May be it simply busy? I shall try again in single user mode. My project RadNDRV is wrong. OSObject can't be separate kext. ATY_Wormy is a subclass of IONDRVFramebuffer. So I return to very old project openati.sf.net. It is the subclass. Very simple project. Again, I need to rewrite only doStatus and doControl. I still don't understand how to attach three nubs to my three connectors CRT1, LCD and TVO. And why my internal LCD seems to connected to CRT1 port? Display_Base_Address for CRT1 = @0x023c for CRT2 = @0x033c by default the same address. so second Framebuffer must to rewrite 33c to the new value if I want to have second monitor with own desktop. Framebuffer.base_addr = INREG(connectors_info[index].out_reg); or vice versa ? And what is #define RADEON_OV0_BASE_ADDR 0x043c Is it address for TVOut? And register 0x00f8. Default value from BIOS = VRAM_SIZE / 4 - 1Mb. Why? I have three connectors - three framebuffers with own addresses. And 1Mb for each RingBuffer. It is better to divide by 3 but more simple by 4. Simple calculation! But I have 128Mb VRAM. f8=31Mb and I can't have QE! 64Mb is a minimum value! So if I want to have QE I must make other memory assingment! Interesting document about using Radeon with non-DDC monitors. Link to comment Share on other sites More sharing options...
dong Posted July 7, 2008 Share Posted July 7, 2008 2 dongUsers can't get EDID for internal LCD with any methods. May be it simply busy? I shall try again in single user mode. Interesting document about using Radeon with non-DDC monitors. Hope I can do something here with non-DDC monitors, then EDID problem will be solved. My project RadNDRV is wrong. OSObject can't be separate kext. ATY_Wormy is a subclass of IONDRVFramebuffer. So I return to very old project openati.sf.net.It is the subclass. Very simple project. Again, I need to rewrite only doStatus and doControl. Now you see, ATI native driver can overwrite any methods of IONDRVFramebuffer through doStatus and doControl. Therefore, using modified IONDRVSupport.kext with ATY kext is not enough. Link to comment Share on other sites More sharing options...
Slice Posted July 7, 2008 Author Share Posted July 7, 2008 Hope I can do something here with non-DDC monitors, then EDID problem will be solved. I am going to use injected EDID Now you see, ATI native driver can overwrite any methods of IONDRVFramebuffer through doStatus and doControl. Therefore, using modified IONDRVSupport.kext with ATY kext is not enough. I understand your fault So we would write a whole Framebuffer. But I hate previous project as Joblo do because it replace IONDRVSupport at all. I want to make separate kext working together with default IONDRVSupport. EDITED What about to subclass ATY_Wormy Link to comment Share on other sites More sharing options...
dong Posted July 7, 2008 Share Posted July 7, 2008 I want to make separate kext working together with default IONDRVSupport.That's what I've been trying to do.What about to subclass ATY_Wormy Can you create the ATY_Wormy.h by reverse engineering? For my card, it's actually ATY_Carreta.h. Link to comment Share on other sites More sharing options...
dong Posted July 7, 2008 Share Posted July 7, 2008 (II) fglrx(0): Connected Display1: LCD on internal LVDS [lvds](II) fglrx(0): Display1 EDID data --------------------------- (II) fglrx(0): Manufacturer: AUO Model: 3214 Serial#: 0 (II) fglrx(0): Year: 2006 Week: 1 (II) fglrx(0): EDID Version: 1.3 (II) fglrx(0): Digital Display Input (II) fglrx(0): Max H-Image Size [cm]: horiz.: 26 vert.: 16 (II) fglrx(0): Gamma: 2.20 (II) fglrx(0): No DPMS capabilities specified; RGB/Color Display (II) fglrx(0): First detailed timing is preferred mode (II) fglrx(0): redX: 0.580 redY: 0.340 greenX: 0.310 greenY: 0.550 (II) fglrx(0): blueX: 0.155 blueY: 0.155 whiteX: 0.315 whiteY: 0.330 (II) fglrx(0): Manufacturer's mask: 0 (II) fglrx(0): Supported additional Video Mode: (II) fglrx(0): clock: 68.9 MHz Image Size: 261 x 163 mm (II) fglrx(0): h_active: 1280 h_sync: 1301 h_sync_end 1333 h_blank_end 1408 h_border: 0 (II) fglrx(0): v_active: 800 v_sync: 804 v_sync_end 808 v_blanking: 816 v_border: 0 (II) fglrx(0): AUO (II) fglrx(0): B121EW03 V2 (II) fglrx(0): EDID (in hex): (II) fglrx(0): 00ffffffffffff0006af143200000000 (II) fglrx(0): 01100103801a10780a87fe94574f8c27 (II) fglrx(0): 27505400000001010101010101010101 (II) fglrx(0): 010101010101ea1a0080502010301520 (II) fglrx(0): 440005a3100000180000000f00000000 (II) fglrx(0): 00000000000000000020000000fe0041 (II) fglrx(0): 554f0a202020202020202020000000fe (II) fglrx(0): 004231323145573033205632200a001f (II) fglrx(0): End of Display1 EDID data -------------------- I just looked at your BIOS rom and find that the EDID data is located in it (offset: 0x75DB). So your LVDS really has no DDC/I2C access. My code is for sure not working for this LVDS. Some code need be added to handle such case. Link to comment Share on other sites More sharing options...
Slice Posted July 7, 2008 Author Share Posted July 7, 2008 That's what I've been trying to do.Can you create the ATY_Wormy.h by reverse engineering? For my card, it's actually ATY_Carreta.h. Here is Caretta.codes. Open and search ATY_Caretta::. It is members that new class override. I found only probe, start, doDriverIO. You can create class definition class ATY_Caretta : public IONDRVFramebuffer and write only those methods that you want to override. Then you create your class class MY_Caretta : public ATY_Caretta and write implementations.... I just looked at your BIOS rom and find that the EDID data is located in it (offset: 0x75DB). So your LVDS really has no DDC/I2C access. My code is for sure not working for this LVDS. Some code need be added to handle such case. I saw no EDID in my BIOS. 000075D0: 00 06 64 00 80 06 96 00 06 64 00 80 04 96 00 05 ..d......d...... 000075E0: 64 00 80 03 96 00 04 80 00 80 09 DC 00 06 80 00 d............... 000075F0: 80 07 DC 00 05 80 00 80 05 DC 00 04 80 00 80 03 ................ Link to comment Share on other sites More sharing options...
dong Posted July 7, 2008 Share Posted July 7, 2008 Slice, thanks for the asm file. Now hope it's not too late to learn some reverse engineering. Link to comment Share on other sites More sharing options...
Slice Posted July 8, 2008 Author Share Posted July 8, 2008 Dong Did you see /IOGraphics/tools/itvview? It get TV information from I2C !!! May be you try the codes with your working I2C bus? Link to comment Share on other sites More sharing options...
dong Posted July 9, 2008 Share Posted July 9, 2008 Yes, I can test it on my Dell machine which has tv out. But, what kind of information is expected? Oh, I forgot that my TV is broken. Nothing can be retrieved I guess. Link to comment Share on other sites More sharing options...
Slice Posted July 9, 2008 Author Share Posted July 9, 2008 Yes, I can test it on my Dell machine which has tv out. But, what kind of information is expected?Oh, I forgot that my TV is broken. Nothing can be retrieved I guess. I don't know what is expected. Later I'll try by some RadeonDump variant despite nonDDC LCD. I prepare new project but KP at METACLASSRESERVEDUSED. What it is? This kext made as ATINDRV. Loaded if NameMatch. It contains Radeon codes all in one class ATIDriver. Without calling the class it works. Yes, the most radeon codes is for R200-R400 but not for R500,600. But these codes is not used now except maybe initialization. Link to comment Share on other sites More sharing options...
dong Posted July 9, 2008 Share Posted July 9, 2008 I saw you have ATIDriver class methods implemented in RadeonFB.cpp instead of in ATIDriver.cpp. Can you avoid that? It may cause problem though I'm still not very clear of correct way to implement class in IOKit. Link to comment Share on other sites More sharing options...
Slice Posted July 9, 2008 Author Share Posted July 9, 2008 Class methods may be described in different files. Only need to include "class.h". I am not sure that it is a best way. But I think that when I want to have two monitors each of them having own framebuffer it would be better to have two instances of all variables and methods to work with its. Probably I understand my mistake. The class ATIDriver is called before create it while I copy codes from working drivers. Some hidden relations that I didn't understand yet. Link to comment Share on other sites More sharing options...
Slice Posted July 10, 2008 Author Share Posted July 10, 2008 Attention! Linux sources changed! With new codes my I2C must be 6c vs 60 in previous. Link to comment Share on other sites More sharing options...
dong Posted July 10, 2008 Share Posted July 10, 2008 Waiting for your good news. itvview.c contains i2c subaddress, don't know how to handle it yet. But, I happenly found that IONDRVSupport has no problem with output to TV in mirror mode, though display preference has no information of multilple displays. IORegistry contains: display@0 and display@0,1 If use Callisto patch, it will cause a KP if TV is connected. Link to comment Share on other sites More sharing options...
Recommended Posts