Jump to content

Please help me with HD3000 connector table edit


IGotKernelPanic
 Share

12 posts in this topic

Recommended Posts

Hi!

 

 

Here is the connector info for my laptop's LVDS display:


01020300 10070000 10070000 05030000 02000000 30000000

What is 0102 (03 is the number of ports), 1007, 02000000 and 30000000?

 

What i need to change to remove artifacts?

 

Here is the full connector table:

 

01020300 10070000 10070000 05030000 02000000 30000000 04060000 00080000 06000000 06020000 00010000 09000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF

 

And its the original what is in AppleIntelSNBGrahpicsFB:

 

01020400 10070000 10070000 05030000 02000000 30000000 02050000 00040000 07000000 03040000 00040000 09000000 04060000 00040000 09000000 01020100 10070000 10070000 05030000 02000000 30000000 00000000 01000000 40000000 00000000 01000000 40000000 00000000 01000000 40000000 00020300 00000000 FFFFFFFF

Link to comment
Share on other sites

  • 3 weeks later...

there are various fixes for HD3000 artifacts. usually its about memory. but one of my T420 with just 4GB of memory, a different EDID fixed it for awhile. then eventually in el capitan some artifacts showed again. but a memory upgrade from 4 to 8GB + good EDID  (1600x900) fixed it. but your 1368x768 EDID should be fine

 

so do you have 8GB? $20/20 euros should buy a 4GB dim!

 

i don't think reducing buffers will help.

Link to comment
Share on other sites

Thanks for reply. :) I now testing the connector table edits, and with this, i got less artifacts:

 

04020200 10070000 10070000 05030000 02000000 40050000 04060000 00080000 06000000 06020000 00010000 09000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF 

 

I have googled a lot, and found this:

 

Name: AppleIntelFramebufferCapri
Find: 05030000 02000000 30000000
Repl: 05030000 02000000 30020000

The find pattern is unique enough to find only the LVDS connector data in the 01660003 framebuffer config.

 

And... it works. I was able to sucessfully boot with 01660003 injection with this patch and it confirms that the data where we changed 0 to 2 has something to do with dual-link LVDS displays. At least as far as HD4000/Capri is concerned.

I post this here, just to give you an idea of the type of reverse engineering required here.

I still find it interesting that this machine will work with either a 32mb or 64mb BIOS memory, a data value that is often believed to need an exact match.

 

 

 

 

01020300 //FBIndex / Pipes / Ports =3
12130000 12130000 // Maximum brigthenss 0x1312
05030000 02000000 30000000 // @0 LVDS

 

 

So i have changed "FBIndex", i think its Framebuffer Index, and it worked, less artifacts. The pipes... i don't know, what are them, changing the number above 3, i got no mouse cursor, but everything works fine. The 05030000 02000000 40050000 does something too, because if i leave it on 30000000, i get more artifacts, i think, the 4005 changes VRAM size (?). So i just need to find, what value needs change, to what... 

Link to comment
Share on other sites

Now with 04020200 10070000 10070000 05030000 02000000 05010201, i got a freeze, but the computer started working after 5 seconds, so its good, i don't need to restart, when it freezes. Console log:

 

2016. 01. 07. 11:49:30,000 kernel[0]: stampWait: Overflowed checking for stamp 0x8d15a1 on MAIN ring: called from 

2016. 01. 07. 11:49:30,000 kernel[0]: timestamp = 0x8d15a0

2016. 01. 07. 11:49:30,000 kernel[0]: ****  Debug info for *possible* hang in MAIN graphics engine  ****

2016. 01. 07. 11:49:30,000 kernel[0]: ring head    = 0xb6e0bbfc, wrap count = 1463

2016. 01. 07. 11:49:30,000 kernel[0]: ring tail    = 0x0000c560

2016. 01. 07. 11:49:30,000 kernel[0]: ring control = 0x0000f801   enabled, auto report disabled,  waiting, semaphore not waiting, length = 0x010 4KB pages

2016. 01. 07. 11:49:30,000 kernel[0]: timestamps = 0x8d15a0

2016. 01. 07. 11:49:30,000 kernel[0]: Semaphore register values:

2016. 01. 07. 11:49:30,000 kernel[0]: VRSYNC: (0x12044) = 0x8d15a0

2016. 01. 07. 11:49:30,000 kernel[0]: BRSYNC: (0x22040) = 0x0

2016. 01. 07. 11:49:30,000 kernel[0]: RVSYNC: (0x 2040) = 0x0

2016. 01. 07. 11:49:30,000 kernel[0]: BVSYNC: (0x22044) = 0x0

2016. 01. 07. 11:49:30,000 kernel[0]: RBSYNC: (0x 2044) = 0x0

2016. 01. 07. 11:49:30,000 kernel[0]: VBSYNC: (0x12040) = 0x0

2016. 01. 07. 11:49:30,000 kernel[0]: Looks like MAIN ring is stuck waiting on an event

2016. 01. 07. 11:49:30,000 kernel[0]: After attempt to clear wait condition = 0x0000f001 no longer waiting

 
Link to comment
Share on other sites

Now i know, my laptop has EDID problems. I tried to extract EDID from windows, but i think, its not correct, because i got artifacts with it. I have tried EDID from display's datasheet, same problem, artifacts. Here is the two EDID:

 

From Windows 7 x64 SP1:

 

00 FF FF FF FF FF FF 00 36 7F 03 90 08 00 00 00

00 01 01 03 80 00 00 FF 2F 00 00 A0 57 49 9B 26
10 48 4F 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 66 21 56 AA 51 00 1E 30 46 90
14 00 00 00 00 00 00 18 00 00 00 FD 00 00 3C 00
60 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81
 
 
And this is from display's datasheet (i have found display model in laptop's datasheet, i don't know, its correct or not.):
 
00 FF FF FF FF FF FF 00 06 AF 2C 32 00 00 00 00
00 13 01 03 80 1D 10 78 0A 15 85 97 58 53 8A 26
25 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 
01 01 01 01 01 01 26 1B 56 64 50 00 16 30 30 20
36 00 25 A4 10 00 00 18 00 00 00 0F 00 00 00 00
00 00 00 00 00 00 00 00 00 20 00 00 00 FE 00 41
55 4F 0A 20 20 20 20 20 20 20 20 20 00 00 00 FE
00 42 31 33 33 58 57 30 33 20 56 32 20 0A 00 49
 
So they are not same, i get artifacts with both. How can i get a correct EDID for my display? I have tried to change panel size, but i don't know, what is the needed value, the datasheet says:
 
 
KoiGVeI.png
 
So i don't know, what need i do...
Link to comment
Share on other sites

Thanks for fast reply. :) I can't get native EDID from IOReg in OSX, because it boots only when i inject an EDID, without that, i got black screen. I don't get any artifacts in Windows. My laptop:

 

Acer Aspire 3750

I3 2310M

HD3000

4Gb DDR3 1333Mhz RAM (single channel)

120Gb SSD

AR5B97 Wi-Fi

AR8151 Lan

 

The OS:

 

OSX 10.11.2 (15C50)

Windows 7 x64 SP1

Clover 3330

 

I use vanilla graphics kexts, with Clover patch for VGA and HDMI out.

Link to comment
Share on other sites

Yes. I have tried to remove HDMI and VGA connector too, nothing, i got artifacts.

 

Edit: Now i try editing the EDID, with this, i have no artifacts/freezes since a hour:

 

00 FF FF FF FF FF FF 00 06 AF 20 33 00 00 00 00

0B 14 01 03 80 1D 10 78 FF 33 85 99 56 55 91 27
17 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 66 21 56 AA 51 00 1E 30 46 E4
14 00 25 A5 10 00 00 18 00 00 00 FD 00 00 3C 00
60 09 00 00 00 00 00 00 00 00 00 00 00 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
 
I just note, i using slide=0 kernel flag, i think my laptop have VRAM and EDID problems, not just EDID. The VRAM problems got solved by slide=0, i just need a good EDID...
Link to comment
Share on other sites

  • 3 months later...

Bump. I can edit the BIOS, so able to change DVMT memory sizes. I can change DVMT-Prealloc too, but every values has artifacts... 32, 64, 128, 256Mb, artifacts. But... If i disable internal screen, and using external, sometimes it stops artifacts... What is this?

Link to comment
Share on other sites

Here is the bios menu:

 

Kepernyofelvetel54.png

 

IGD - Gtt size: 1-2Mb

IGD - Aperture size: 128-256-512Mb

IGD - DVMT Pre-Allocated: 32-64-128-256Mb

IGD - DVMT Size: 128-256Mb

 

I have tried all variations without success, but... I haven't repatched the DSDT, and now tested it under Windows. When i change GTT, DVMT PreAlloc., DVMT Size, the DSDT changes, i have compared before - after. So when i changed the sizes under OSX, i haven't changed the DSDT, can this be problem?

Link to comment
Share on other sites

  • 7 months later...

Interesting  :D

i've got same problem, sometimes my ihd 3000 artifact.

boot args "slide=0" can't solve this problem, i try to inject EDID, i dump it with linux, but it can't solve my artifact.

 

here is my EDID :

 

00 ff ff ff ff ff ff 00 0e 14 a9 17 00 00 00 00 31 14 01 03 80 1e 11 78 0a c3 0d 94 57 4f 8c 27 20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 78 1d 56 c2 50 00 26 30 3b 27 36 00 35 ad 10 00 00 18 78 1d 56 c2 50 00 26 30 3b 27 36 00 35 ad 10 00 00 18 00 00 00 fe 00 43 50 54 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 43 4c 41 41 31 34 30 57 42 30 31 41 20 00 09

Link to comment
Share on other sites

 Share

×
×
  • Create New...