Contribute
Register

Possible easy fix for AMD RX 480 in Sierra using FakeSMCkext.

Status
Not open for further replies.
Ok, got acceleration on Nitro+ OC RX 480 8GB setting intel as primary in BIOS, but i really think this method only help to get ports recognized well.

I don't remember how to dump FB port config, but i can do some tests if someone can help on how to do this.
 
Ok, got acceleration on Nitro+ OC RX 480 8GB setting intel as primary in BIOS, but i really think this method only help to get ports recognized well.

I don't remember how to dump FB port config, but i can do some tests if someone can help on how to do this.

Here: http://www.insanelymac.com/forum/topic/303186-how-to-modification-of-amd-fb-clover-injection/

Also, the more I think about it, your conclusion makes sense. Whenever I boot with PCIe selected as primary, I get "No Signal" on my screen. Hence it does seem to be a problem with ports rather than anything else.

EDIT: For reference, this is what my dump looks like:

Code:
Tushars-iMac:~ tushar$ /Users/tushar/Downloads/Decoders/radeon_bios_decode < /Users/tushar/Desktop/Ellesmere.rom
ATOM BIOS Rom:
    SubsystemVendorID: 0x1043 SubsystemID: 0x04fb
    IOBaseAddress: 0x0000
    Filename: AS20.BIN   
    BIOS Bootup Message:
67DFHB.15.50.0.0.AS20                                                      

PCI ID: 1002:67df
Connector at index 0
    Type [@offset 40864]: DisplayPort (10)
    Encoder [@offset 40868]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 40974]: 0x91, OSX senseid: 0x2
Connector at index 1
    Type [@offset 40874]: DisplayPort (10)
    Encoder [@offset 40878]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 41001]: 0x93, OSX senseid: 0x4
Connector at index 2
    Type [@offset 40884]: HDMI-A (11)
    Encoder [@offset 40888]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 41028]: 0x90, OSX senseid: 0x1
Connector at index 3
    Type [@offset 40894]: HDMI-A (11)
    Encoder [@offset 40898]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 41055]: 0x92, OSX senseid: 0x3
Connector at index 4
    Type [@offset 40904]: DVI-D (3)
    Encoder [@offset 40908]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 41082]: 0x95, OSX senseid: 0x6
Tushars-iMac:~ tushar$ /Users/tushar/Downloads/Decoders/redsock_bios_decoder < /Users/tushar/Desktop/Ellesmere.rom
AS20.BIN    :

67DFHB.15.50.0.0.AS20                                                      

Subsystem Vendor ID: 1043
       Subsystem ID: 4fb
Object Header Structure Size: 335
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fb
Display Path Table Offset: 12
Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [4] which is [DVI_D]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Tushars-iMac:~ tushar$
 
Last edited:
Ok that link is an entire bible, written in phoenician for me, but i'll give a try.
 
Ok, i has to search the proper version of ati-personality.pl that works in sierra. Mi card have 5 ports: 2dP, 2 HDMI, 1 DVI-S

So, according to the guide, i have to work with the 5 port's FB, which are (dumped by me with ati-personality):

1. BERBICE
Code:
Personality: Berbice
ConnectorInfo count in decimal: 5
Disk offset in decimal 2055712
0000000 02 00 00 00 00 01 00 00 39 05 01 08 00 00 00 00 20 01 01 01 00 00 00 00
0000024 00 04 00 00 00 01 00 00 00 01 02 43 00 00 00 00 10 00 02 02 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 13 00 00 00 00 21 03 03 03 00 00 00 00
0000072 00 04 00 00 04 03 00 00 00 01 04 53 00 00 00 00 11 02 04 04 00 00 00 00
0000096 00 04 00 00 04 03 00 00 00 01 05 33 00 00 00 00 12 04 05 05 00 00 00 00
0000120

2. ELQUI
Code:
Personality: Elqui
ConnectorInfo count in decimal: 5
Disk offset in decimal 2055840
0000000 02 00 00 00 00 01 00 00 00 01 01 41 00 00 00 00 11 02 02 04 00 00 00 00
0000024 02 00 00 00 00 01 00 00 00 01 02 31 01 00 00 00 21 03 01 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 03 00 00 00 00 20 01 03 01 00 00 00 00
0000072 00 04 00 00 04 03 00 00 00 01 04 03 00 00 00 00 12 04 04 02 00 00 00 00
0000096 00 04 00 00 04 03 00 00 00 01 05 01 00 00 00 00 10 00 05 05 00 00 00 00
0000120

3. CARONI
Code:
Personality: Caroni
ConnectorInfo count in decimal: 5
Disk offset in decimal 2056256
0000000 02 00 00 00 00 01 00 00 00 01 01 41 00 00 00 00 11 02 02 04 00 00 00 00
0000024 02 00 00 00 00 01 00 00 00 01 02 31 01 00 00 00 21 03 01 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 03 00 00 00 00 20 01 03 01 00 00 00 00
0000072 00 04 00 00 04 03 00 00 00 01 04 03 00 00 00 00 12 04 04 02 00 00 00 00
0000096 00 04 00 00 04 03 00 00 00 01 05 01 00 00 00 00 10 00 05 05 00 00 00 00
0000120

4. OPM
Code:
Personality: OPM
ConnectorInfo count in decimal: 5
Disk offset in decimal 2057120
0000000 00 04 00 00 04 03 00 00 00 00 00 01 00 00 00 00 11 02 02 02 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 00 00 01 00 00 00 00 21 03 03 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 00 00 01 00 00 00 00 12 04 01 01 00 00 00 00
0000072 00 04 00 00 04 03 00 00 00 00 00 01 00 00 00 00 10 00 04 04 00 00 00 00
0000096 00 04 00 00 04 03 00 00 00 00 00 01 00 00 00 00 20 01 05 05 00 00 00 00
0000120


What i missing or doing wrong here? There isn't the BAFFIN FB on ati-personality.pl results, so why everyone are working with it?

I'm on 12.3 public beta 1, DCPImanager says it working with DAYMAN FB


Anyway, i'm working on the next step, i'll post the results
 
Ok, i tried with no results.
Here is what i done:

First, dumped bios with DPCI Manager and dumped the bios files with radeon and redsock decoders.

Radeon decoder result
Code:
ATOM BIOS Rom:
    SubsystemVendorID: 0x174b SubsystemID: 0xe347
    IOBaseAddress: 0x0000
    Filename: 347X06SU.X5R
    BIOS Bootup Message:
E347 Polaris10 XT A1 GDDR5 256Mx32 8GB 300e/300m                           

PCI ID: 1002:67df
Connector at index 0
    Type [@offset 40884]: DisplayPort (10)
    Encoder [@offset 40888]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 40994]: 0x90, OSX senseid: 0x1
Connector at index 1
    Type [@offset 40894]: DisplayPort (10)
    Encoder [@offset 40898]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 41021]: 0x92, OSX senseid: 0x3
Connector at index 2
    Type [@offset 40904]: HDMI-A (11)
    Encoder [@offset 40908]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 41048]: 0x91, OSX senseid: 0x2
Connector at index 3
    Type [@offset 40914]: HDMI-A (11)
    Encoder [@offset 40918]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 41075]: 0x93, OSX senseid: 0x4
Connector at index 4
    Type [@offset 40924]: DVI-D (3)
    Encoder [@offset 40928]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 41102]: 0x95, OSX senseid: 0x6

Redosck decoder result
Code:
E347 Polaris10 XT A1 GDDR5 256Mx32 8GB 300e/300m                           

Subsystem Vendor ID: 174b
       Subsystem ID: e347
Object Header Structure Size: 350
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fb
Display Path Table Offset: 12
Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [4] which is [DVI_D]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

RESUME TEXT FILE (How i processed the files)

Code:
FB CONSTRUCTION

Ports Order (decoder and redsock decoder order results)

DP
DP
HDMI-A
HDMI-A
DVI-D

Last 4 digits Code construction (for each one, last digits of the entire port code), based on the guide:

12 02 01 01
22 05 02 03
11 02 03 02
21 03 04 04
10 00 05 06

Constructed code (the last codes with the port type config

00040000 04030000 00010000 12 02 01 01
00040000 04030000 00010000 22 05 02 03
00080000 00020000 00010000 11 02 03 02
00080000 00020000 00010000 21 03 04 04
04000000 14020000 00010000 10 00 05 06

FOR CLOVER PATCH:

FIND (OPM FrameBuffer):

000400000403000000000001000000001102020200000000000400000403000000000001000000002103030300000000000400000403000000000001000000001204010100000000000400000403000000000001000000001000040400000000000400000403000000000001000000002001050500000000

REPLACE:

000400000403000000010000000000001202010100000000000400000403000000010000000000002205020300000000000800000002000000010000000000001102030200000000000800000002000000010000000000002103040400000000040000001402000000010000000000001000050600000000

So, changed to PCIe in BIOS and

1. Without ATIinject in clover: Signal loss
2. Injected OPM ports 05: With hdmi connected singal loss, with dP to VGA adapter signal hangs (i tried volume buttons but no sound)
3. Injected Dayman (that was before this patch, using it with the IGPU+PCIe method): same result as 2.

Maybe i should try with another framebuffer? maybe i should patch the kext directly?

I'll try
 
i have to work with the 5 port's FB
There is only one framebuffer to edit:
Berbice: macbookpro 15 (2.5k internal, 2x 5k)
Florin/Exmoor: imac 27 (5k internal, 2x 5k)
Guariba/Dayman: 4x DP, HDMI, DVI
Baladi: 6 DP

Suggest: Try Guariba/Dayman/Baladi; if working, map framebuffer connector to physical connector. If not working, one display/one physical connector each boot (note IOReg/port to physical connector)
Mapping makes it easier to determine required edits
Reply with results.

Edited/imac framebuffers, experiments
 
Last edited:
There is only one framebuffer to edit:
Berbice: macbookpro 15 (2.5k internal, 2x 5k)
Elqui/Caroni: imac 27 (5k internal, 5k)
OPM: 5 DP

Suggest: Try OPM; if working, map framebuffer connector to physical connector. If not working, one display/one physical connector each boot (note IOReg/port to physical connector)
Mapping makes it easier to determine required edits
Reply with results.

I started with OPM with no results

I have only one display (1920x1080) with VGA and HDMI ports, so i can only test with HDMI to HDMI and dp to VGA adapter, and also with no results

I've setted imac14,2 in SMBIOS

Did you see my ports mapping? are that well done?
 
are that well done?
No idea. Moving 01 in the middle of the connector is not correct. If OPM/Port 0x0 was working, there would be no need to edit it. It is very important to find the framebuffer connectors that work natively. Suggest obtaining DP2HDMI and DVI2HDMI adapters to enable all physical connectors with your HDMI display.
 
i have to work with the 5 port's FB
Not true, higher probability of success with 6 connectors. Try these frambuffers (DP, HDMI, DVI)
Code:
Kext /System/Library/Extensions/AMD9500Controller.kext/Contents/MacOS/AMD9500Controller
Personality: Guariba
ConnectorInfo count in decimal: 6
Disk offset in decimal 1953552
0000000 00 04 00 00 04 03 00 00 00 01 01 01 00 00 00 00 12 04 06 01 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 01 02 01 00 00 00 00 22 05 04 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 01 00 00 00 00 11 02 01 02 00 00 00 00
0000072 00 08 00 00 04 02 00 00 00 01 04 00 00 00 00 00 21 03 05 04 00 00 00 00
0000096 04 00 00 00 04 02 00 00 00 01 05 00 00 00 00 00 00 00 03 06 00 00 00 00
0000120 00 04 00 00 00 01 00 00 00 01 06 01 00 00 00 00 20 01 02 05 00 00 00 00

Personality: Dayman
ConnectorInfo count in decimal: 6
Disk offset in decimal 1953696
0000000 00 04 00 00 04 03 00 00 00 01 01 01 00 00 00 00 12 04 06 01 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 01 02 01 00 00 00 00 22 05 04 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 01 00 00 00 00 11 02 01 02 00 00 00 00
0000072 00 08 00 00 04 02 00 00 00 01 04 00 00 00 00 00 21 03 05 04 00 00 00 00
0000096 04 00 00 00 04 02 00 00 00 01 05 00 00 00 00 00 00 00 03 06 00 00 00 00
0000120 00 04 00 00 00 01 00 00 00 01 06 01 00 00 00 00 20 01 02 05 00 00 00 00

Personality: Baladi
ConnectorInfo count in decimal: 6
Disk offset in decimal 1953872
0000000 00 04 00 00 04 03 00 00 00 01 03 00 00 00 00 00 12 04 03 03 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 01 01 00 00 00 00 00 11 02 01 01 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 02 00 00 00 00 00 21 03 02 02 00 00 00 00
0000072 00 04 00 00 04 03 00 00 00 01 04 00 00 00 00 00 22 05 04 04 00 00 00 00
0000096 00 04 00 00 04 03 00 00 00 01 05 00 00 00 00 00 10 00 05 05 00 00 00 00
0000120 00 04 00 00 04 03 00 00 00 01 06 00 00 00 00 00 20 01 06 06 00 00 00 00
 
Last edited:
Not true, higher probability of success with 6 connectors.

That was not me, was the guide on insanelymac!

Try these frambuffers (DP, HDMI, DVI)
Code:
Kext /System/Library/Extensions/AMD9500Controller.kext/Contents/MacOS/AMD9500Controller
Personality: Guariba
ConnectorInfo count in decimal: 6
Disk offset in decimal 1953552
0000000 00 04 00 00 04 03 00 00 00 01 01 01 00 00 00 00 12 04 06 01 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 01 02 01 00 00 00 00 22 05 04 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 01 00 00 00 00 11 02 01 02 00 00 00 00
0000072 00 08 00 00 04 02 00 00 00 01 04 00 00 00 00 00 21 03 05 04 00 00 00 00
0000096 04 00 00 00 04 02 00 00 00 01 05 00 00 00 00 00 00 00 03 06 00 00 00 00
0000120 00 04 00 00 00 01 00 00 00 01 06 01 00 00 00 00 20 01 02 05 00 00 00 00

Personality: Dayman
ConnectorInfo count in decimal: 6
Disk offset in decimal 1953696
0000000 00 04 00 00 04 03 00 00 00 01 01 01 00 00 00 00 12 04 06 01 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 01 02 01 00 00 00 00 22 05 04 03 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 03 01 00 00 00 00 11 02 01 02 00 00 00 00
0000072 00 08 00 00 04 02 00 00 00 01 04 00 00 00 00 00 21 03 05 04 00 00 00 00
0000096 04 00 00 00 04 02 00 00 00 01 05 00 00 00 00 00 00 00 03 06 00 00 00 00
0000120 00 04 00 00 00 01 00 00 00 01 06 01 00 00 00 00 20 01 02 05 00 00 00 00

Personality: Baladi
ConnectorInfo count in decimal: 6
Disk offset in decimal 1953872
0000000 00 04 00 00 04 03 00 00 00 01 03 00 00 00 00 00 12 04 03 03 00 00 00 00
0000024 00 04 00 00 04 03 00 00 00 01 01 00 00 00 00 00 11 02 01 01 00 00 00 00
0000048 00 04 00 00 04 03 00 00 00 01 02 00 00 00 00 00 21 03 02 02 00 00 00 00
0000072 00 04 00 00 04 03 00 00 00 01 04 00 00 00 00 00 22 05 04 04 00 00 00 00
0000096 00 04 00 00 04 03 00 00 00 01 05 00 00 00 00 00 10 00 05 05 00 00 00 00
0000120 00 04 00 00 04 03 00 00 00 01 06 00 00 00 00 00 20 01 06 06 00 00 00 00

I'll try with Dayman, which is the one used or injected automatically with clover and which is the one works with helper card method.
 
Status
Not open for further replies.
Back
Top