Jump to content

Mojave and r9 270x fixing frame buffer


BakaPhoenix
 Share

3 posts in this topic

Recommended Posts

System:

Xeon x3440

Gigabyte h55m-usb3

Sapphire R9 270x vapor-x

 

The GPUs works fine using HDMI but as soon I plug in my secondary dvi monitor the os freeze (but I still get input on both monitors).

Tried with Lilu + weg and and without weg both won't work on my dvi monitor.

I tried to patch the frame buffer following this guide:

but apparently Mojave AMDxxxxController.kext is formatted a little bit different from how the guide explain it.

I tried to fix on my own but I can't manage to fix it

 

This is the content of the decode

ATOM BIOS Rom: 
	SubsystemVendorID: 0x174b SubsystemID: 0xe270
	IOBaseAddress: 0x0000
	Filename: 270X0400.U44
	BIOS Bootup Message: 
C63101 CURACAO XT GDDR5 64Mx32 2GB 150e/150m                                

PCI ID: 1002:6810
Connector at index 0
	Type [@offset 43534]: DisplayPort (10)
	Encoder [@offset 43538]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 43644]: 0x90, OSX senseid: 0x1
Connector at index 1
	Type [@offset 43544]: HDMI-A (11)
	Encoder [@offset 43548]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 43671]: 0x92, OSX senseid: 0x3
Connector at index 2
	Type [@offset 43554]: DVI-I (2)
	Encoder [@offset 43558]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 43708]: 0x95, OSX senseid: 0x6
Connector at index 3
	Type [@offset 43564]: DVI-I (2)
	Encoder [@offset 43568]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 43708]: 0x95, OSX senseid: 0x6
Connector at index 4
	Type [@offset 43574]: DVI-D (3)
	Encoder [@offset 43578]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 43735]: 0x94, OSX senseid: 0x5

And this is the decoder 

C63101 CURACAO XT GDDR5 64Mx32 2GB 150e/150m                                

Subsystem Vendor ID: 174b
       Subsystem ID: e270
Object Header Structure Size: 355
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fd
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 [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 [2] which is [DVI_I]
	encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [2] which is [DVI_I]
	encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
Connector Object Id [4] which is [DVI_D]
	encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false

 

So what I got from it should be this 

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

Since the Mojave controller looks different from previous os I tried to adapt the section from what dp and HDMI port looks in the Futomaki frame buffer

 

Original:

00000000 00000000 00040000 04030000 00010101 00000000
12040401 00000000 00040000 04030000 00010201 00000000
22050502 00000000 04000000 14020000 00010300 00000000
00000606 00000000 00080000 04020000 00010400 00000000

The patch is made:

11020505 0000000000 04000000 14020000  00010101 0000000000
22050203 0000000000 00080000 00020000 00010201 0000000000
10000306 0000000000 00020000 04020000 00010300 0000000000
12040101 0000000000 00040000 04030000 00010400 0000000000

 

Anyone can tell me where I'm wrong or have any idea on how can I fix the problem?

Thanks

Link to comment
Share on other sites

Hi !

 

did you try boot option with WEG

 

  • -raddvi to enable DVI transmitter correction (required for 290X, 370, etc.).

anyway

 

Find "ati-personality.pl" to dump original framebuffer info. 

 

sudo ./ati-personality.pl > name.txt

 

you get...

Personality: Futomaki
ConnectorInfo count in decimal: 4
Disk offset in decimal 365888
00 04 00 00 04 03 00 00 00 01 01 01 00 00 00 00 12 04 04 01 00 00 00 00
00 04 00 00 04 03 00 00 00 01 02 01 00 00 00 00 22 05 05 02 00 00 00 00
04 00 00 00 14 02 00 00 00 01 03 00 00 00 00 00 00 00 06 06 00 00 00 00
00 08 00 00 04 02 00 00 00 01 04 00 00 00 00 00 11 02 01 03 00 00 00 00

 

fix

00 04 00 00 04 03 00 00 00 01 01 01 00 00 00 00 12 04 04 01 00 00 00 00 dp

00 08 00 00 04 03 00 00 00 01 02 01 00 00 00 00 22 05 05 03 00 00 00 00 hdmi

04 00 00 00 14 02 00 00 00 01 03 00 00 00 00 00 10 00 06 06 00 00 00 00 dvi 

04 00 00 00 04 02 00 00 00 01 04 00 00 00 00 00 11 02 01 05 00 00 00 00 dvi

 

good luck.

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...