Archive for November 2010

iATKOS S3 Hardware Compatibility

Hardware Compatibility Information of iATKOS S3 (Mac OS X Snow Leopard 10.6.3):

CPU:
- Intel Celeron D and newer processors are supported.
>> Sandy Bridge and Ivy Bridge CPUs are not supported (Core i3/i5/i7 2xxx-3xxx) <<
Celeron D / Pentium D / CoreDuo / Atom / Core2Duo / Core2Quad / 1st Generation Core i3, i5, i7 / Xeon 3xxx, 5xxx, 6xxx

- Some of the AMD CPUs are supported (Athlon and newer).

Motherboard:
- Please read with attention and do not continuously ask questions about your motherboard compatibility.

- Simply, chipsets from 945G to X58 are supported. Common chips are 945, 965, 975, P35, P43, P45, P55, G31, G41, G43 and X58.

- Besides the main chipset model, a motherboard has many components. Every component itself may or may not be compatible and even may be problematic for Snow Leopard. Also, BIOS of the motherboard may be problematic to run Snow Leopard. Because of these reasons, some motherboards will not be able to run this OS easily, some of them will need hard efforts in order to make it partially work and some of them will never run it.

GPU:
- Intel Graphics GMA X3100, GMA950 and GMA900 is supported, the rest are not.

- nvidia vga cards from NV40 core to fermi series (only some of the fermi cards work on 10.6.3 and they need additional drivers/patches) are supported on 10.6.3 (NV40, NV41, NV42, NV43, NV44, G70, G71, G72, G73, G84, G86, G92, G94, G96, G98, C79, GT200, GT215, GT216, GT218, GF100, GF104, GF106, GF108, GF110, GF114, GF116, GF119).
This does not mean that all of them will work of course, but most of them will work with iATKOS S3.
Some of them will work with issues and some of them may not even work. You will have to try and see it yourself.

Simply, nvidia 6xxx/ 7xxx / 8xxx / 9xxx / 1xx / 2xx / 3xx and some of the fermi 4xx cards are supported.

- ATI HD 7xxx/6xxx/5xxx are not supported. Some of the HD 4xxx cards work with modified drivers and the users will have to take the additional steps to use such cards after installation.

Network Devices:
There may be problematic chips but most of them will work with iATKOS S3.
Wired:
- Intel Gigabit and Intel Pro/100
- Realtek RTL8111/8168, 8139
- Attansic L1C > Atheros AR8131/AR8132/AR8151/AR8152
- Attansic L1E > Atheros AR8121/AR8113/AR8114
- Attansic L2 > Attansic L2 Fast Ethernet
- Broadcom BCM440X, BCM5755M, BCM5787M
- Marvell 88E8056, 88E8001
- nForce Ethernet
- Via Rhine
Wireless: Some chips (ie. Atheros ar5008, Broadcom BCM4311) are natively supported by OS X. So, this is not the complete wifi support list of OS X.
- Ralink 257X, 2500, 2870, 2860, 256X
- Realtek 8187, 8187B, 8187L, 8187SE
- Zydas

RAM:
- Recommended minimum amount of RAM is 1GB.

Disk Space:
- Recommended minimum amount of disk space for installation is 15GB.

Mobility Radeon HD 4650: Full Resolution with QE & CI [ 10.6.x ]



CODE
http://www.megaupload.com/?d=4SN7VDMK

CODE
http://hotfile.com/dl/113477176/da80b51/ATI.zip.html


Updates:

1- the same method is tested in Mac OS X version 10.6.3 & the lastest update 10.6.7 and i report it's working perfectly for both

2- for the 10.6.3 system the personnality is 20 bytes (the SenseID byte is replaced by i2cid & SenseID is 4 bytes);

a-the original 10.6.3 Shrike ConnectorInfo:

CODE
02 00 00 00 40 00 00 00 09 00 00 00 02 01 00 00 03 00 00 00
02 00 00 00 00 01 00 00 09 01 00 00 20 01 02 91 02 00 00 00
00 04 00 00 04 03 00 00 00 01 00 00 10 00 01 90 01 00 00 00


b-My modded working 10.6.3 Shrike ConnectorInfo :

CODE
02 00 00 00 40 00 00 00 09 00 00 00 12 00 00 96 07 00 00 00
10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 95 06 00 00 00
00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 90 01 00 00 00


3- About the 10.6.7 Update:

a-ConnectorInfo are located in ATIFramebuffer.kext for the general combo update (the same as 10.6.6 system)
b-ConnectorInfo have migrated to ATIControlerXXXX.kext for 2011 MBP update (the kernel & ATi Drivers structure are closer to Lion 10.7 than to 10.6.6),
ATIController4600.kext contain only Shrike, Flicker & Gliff ConnectorInfo (which theorically restrict the possible framebuffer to use with a specific controller.kext)
ATIController4800.kext contain only Cardinal,Motmot & Quail ConnectorInfo.

The Online guide:

A- The Structure of a personality:

I'll take Shrike as framebuffer for the demonstration, cause it's used as default by Radeon HD 4670 (M96XT, DevID 0x9488 ) on iMac 10,1 & iMac11,2 
which is the closest to the Mobility Radeon HD 4650 (M96, DevID 0x9480) on my board.

for Shrike we have by default 3 personalities , one for each connector (3 connectors allowed): port0, port1, port2.

02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 03
02 00 00 00 00 01 00 00 09 01 00 00 20 01 02 02
00 04 00 00 04 03 00 00 00 01 00 00 10 00 01 01

let's take the first one which is for port 0 : 

02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 03

divide it to 8 parts:

02 00 00 00 - 40 00 00 00 - 09 01 - 00 00 - 02 - 01 - 00 - 03

Then byte swapped

1- ConnectorType : 02 00 00 00 > 0x00000002 - - -
2- ATY,ControlFlags : 40 00 00 00 > 0x00000040 +++
3- Features : 09 01 > 0x0109 +++
4- Unkown : 00 00 > 0x0000 - - - 
5- Transmitter : 02 > 0x02 - - - 
6- Encoder : 01 > 0x01 - - -
7- HotplugID : 00 > 0x00 - - -
8- SenseID : 03 > 0x03 ++++++

- - - > Value not important, but need to be accurate for better result
+++ > Important value, incorrect value == not working personality

Detailed info about possible value for each field is list below ( some are confirmed, some only guessed by studying different personalities and need some feed-back
from working system (for me LVDS and VGA value are confirmed)

1- ConnectorType;

CODE
/* 4 byte  ,from bbc9 radeondump */
         #define CONNECTORTYPE_LVDS   0x00000002 
         #define CONNECTORTYPE_DVI      0x00000004
        #define CONNECTORTYPE_VGA      0x00000010
        #define CONNECTORTYPE_S-V      0x00000080     
        #define CONNECTORTYPE_DP      0x00000400 
         #define CONNECTORTYPE_HDMI   0x00000800


2- ATY,ControlFlags;

CODE
/* 4 byte the same as found on ioreg key: ATY,ControlFlags. hardcoded for each connector type
    u can try one by one until u find the working one for u
    0x0002 : LVDS        >    ControlFlag : 0x0040 / 0x0100
    0x0004 : DVI-?        >    ControlFlag : 0x0016 - 0x0014 / 0x214
    0x0010 : VGA        >    ControlFlag : 0x0010
    0x0080 : S-Video       >    ControlFlag : 0x0002   
    0x0200 : DVI-?        >    ControlFlag : 0x0014 / 0x0214 - 0x0204
    0x0400 : DisplayPort    >    ControlFlag : 0x0100 - 0x0104 - 0x0304 / 0x0604 - 0x0400
    0x0800 : HDMI        >    ControlFlag : 0x0200
    0x1000 : DVI-?        >    ControlFlag : 0x0016
    */


3-Features;

CODE
/* Features byte 0 , for example for LVDS screen it's almost 0x09 = 0x01 + 0x08 > Internal + Backlight */
    #define FEATURE_USE_INTERNAL               0x01
    #define FEATURE_USE_RGB_ON_YUV        0x04
    #define FEATURE_USE_BACKLIGHT          0x08
    #define FEATURE_BACKLIGHT_INVERTED     0x10
    #define FEATURE_USE_CLAMSHELL          0x20

    /* 1 byte, hardcoded for each connector type
    0x0002 : LVDS        >    Features  :  0x09
    0x0004 : DVI-?        >    Features  :  0x00
    0x0010 : VGA        >    Features  :  0x00
    0x0080 : S-Video       >    Features  :  0x04  
    0x0200 : DVI-?        >    Features  :  0x00
    0x0400 : DisplayPort    >    Features  :  0x00
    0x0800 : HDMI        >    Features  :  0x00
    0x1000 : DVI-?        >    Features  :  0x00
    */

    /* Features byte 1 , no idea ???*/


4- Unkown ;

5- Transmitter

CODE
/* u can get this from dmesg after installing  Dong's RadeonHD with debug info */
    /* Transmitter Bits 0-3 (TransmitterID) */
    #define UNIPHY      0x00
    #define UNIPHY1   0x01
    #define UNIPHY2   0x02

    /* Transmitter Bits 4-7 (LinkID) */
    #define DUALLINK  0x00 // LINKA + LINKB
    #define LINKA          0x10
    #define LINKB          0x20

    /* Transmitter byte  */
    #define UNIPHYA     0x10 // = UNIPHY:LINKA
    #define UNIPHYB     0x20 // = UNIPHY:LINKB
    #define UNIPHYAB   0x00 // = UNIPHY:DUALLINK
    #define UNIPHYC     0x11 // = UNIPHY1:LINKA
    #define UNIPHYD     0x21 // = UNIPHY1:LINKB
    #define UNIPHYCD   0x01 // = UNIPHY1:DUALLINK
    #define UNIPHYE     0x12 // = UNIPHY2:LINKA
    #define UNIPHYF      0x22 // = UNIPHY2:LINKB
    #define UNIPHYEF    0x02 // = UNIPHY2:DUALLINK
    #define DACA              0x00
    #define DACB          0x10