scram69 Posted May 10, 2021 Share Posted May 10, 2021 I am attempting to patch the Whatevergreen Framebuffer for my E7270 (Skylake, 0x19160000) in BigSur/Opencore to support both DVI connectors on the E-port plus PR02X dock. I have tried to follow Herve's example for the same dock, but his post is for Haswell under HighSierra/Clover. The default for this Framebuffer has the internal display as con0 on busID 00, a DP connector as con1 on busID 05, and a DP connector as con2 on busID 04. Jake Lo's config.plist for the e7270 changes the display type from DP to HDMI for con1, enabling the HDMI connector on the laptop itself. The problem is that either DP on the dock shows up as busID 04; plugging DP monitors into both dock ports will not get two separate displays, only one display that is mirrored. As Herve did in his post, I tried adding an additional port/busID (0306) to both con1 (results in kernel panic) or con2 (nothing happens). I tried changing con1 back to DP, but that still did not enable the 2nd dock DP as a separate display. Has anyone been successful in enabling both dock DP ports as separate displays under OpenCore? Link to comment Share on other sites More sharing options...
Administrators Hervé Posted May 10, 2021 Administrators Share Posted May 10, 2021 Hooked my E7270 to my E-Port PR03X docking station (it's the smaller dock model with 1 x DP, 1 x DVI and 1 x VGA, I no longer have the wide PR02X model for testing, sorry). Plugged an external Dell monitor to the DVI port and immediately obtained DVI output on con2, no SKL framebuffer patching required. I did not need to close the LID to get both screens active like it is necessary with HDMI. I also tried DP output out of the E-Port DP port with DP-to-HDMI + HDMI-to-DVI coupled adapters and that also worked OOB and through con2. Given that -as is usually the case with most Dell laptops-: con0 is built-in LCD (LVDS/eDP) con1 is HDMI output con2 is DP/DVI output and that SKL FB 0x19160000 is a 3 x port layout, maybe you would need to patch the SKL framebuffer to convert it to 4 x port layout. SKL FB 0x19160000 is defined as follows: ID: 19160000, STOLEN: 34 MB, FBMEM: 21 MB, VRAM: 1536 MB, Flags: 0x0000090F TOTAL STOLEN: 56 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 124 MB, MAX OVERALL: 125 MB (131608576 bytes) Model name: Intel HD Graphics SKL CRB Camellia: CamelliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3 [0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP [2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP 00000800 02000000 98000000 01050900 00040000 87010000 02040A00 00040000 87010000 You could experiment with the following additional properties in your bootloader config for your iGPU: framebuffer-portcount 4 NUMBER framebuffer-memorycount 4 NUMBER framebuffer-con3-enable 1 NUMBER framebuffer-con3-alldata 03060A000004000087010000 DATA I don't know what you meant by "adding an additional port/busID (0306) to both con1 (results in kernel panic) or con2 (nothing happens)", probably just an error of vocabulary because you cannot add anything to con1 or con2, you can only change their settings, whether BusID, pipe, connector-type or flags. The 1st octet of each connector lines 0000/0105/0204/0306 is the connector index, indicating con0/con1/con2/con3. You may also use and experiment with the 4 x port SKL mobile layout 0x193b0005 (I booted successfully with it): ID: 193B0005, STOLEN: 34 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x0023130A TOTAL STOLEN: 35 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 137 MB, MAX OVERALL: 138 MB (145244160 bytes) Model name: Intel Iris Pro Graphics 580 Camellia: CamelliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz Mobile: 1, PipeCount: 3, PortCount: 4, FBMemoryCount: 4 [0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000001C7 - ConnectorDP [2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000001C7 - ConnectorDP [3] busId: 0x06, pipe: 10, type: 0x00000400, flags: 0x000001C7 - ConnectorDP 00000800 02000000 98000000 01050900 00040000 C7010000 02040A00 00040000 C7010000 03060A00 00040000 C7010000 I've tried HDMI (directly out of the laptop) + DVI (out of the PR03X dock) and got triple display with the default SKL framebuffer 0x19160000, the only patch in place was con1 type set to HDMI (for usual HDMI audio purposes): I disconnected the HDMI monitor and connected a 2nd DVI screen to the DP port of the PR03X dock (with the DP-to-HDMI + HDMI-to-DVI coupled adapters) and both external screens were active as long as they used commonly supported resolutions (one is 1920x1080, the other 1680x1050) given that they only acted mirrored, proving that they run off that same con2 port. In that mode of operation, the Display PrefPane only showed dual, not triple displays. DVI screen appeared to take precedence and if I chose a resolution not supported by the smaller screen, it would go dark in power save mode with an (expected) "Out of range signal" error message. I was not able to get the DVI and DP screens working independently, whether through adding a 4th connector con3 to SKL framebuffer 0x19160000 or running with 4 x port SKL framebuffer 0x193b0005. You may find interesting to know that VGA worked OOB out of the PR03X dock (off con2). As a 2nd independent display alongside the built-in LCD or as a mirror of the DVI/DP output. Without the correct hardware to test further, I cannot say whether dual independent DVI is something achievable or not but it does not look that way. Link to comment Share on other sites More sharing options...
scram69 Posted May 11, 2021 Author Share Posted May 11, 2021 On 5/10/2021 at 6:25 AM, Hervé said: I don't know what you meant by "adding an additional port/busID (0306) to both con1 (results in kernel panic) or con2 (nothing happens)", probably just an error of vocabulary because you cannot add anything to con1 or con2, you can only change their settings I was referring to the example in dortania's OpenCore guide for the IvyBridge Laptop config.plist, where he adds 0304 and 0406 entries to the "alldata" entry for 0205 for framebuffer 04006601. Unfortunately I had no luck with either method you suggested (adding con3 to 0x19160000 or booting with 0x193B0005). Either way, I could only get the 2nd DVI port to act as a mirror of the first. For either attempt Hackintool also reported only the two external connectors - con1 and con2, never a con3. So I will try your other suggestion and see if I can scrounge up a monitor that still has a VGA port. Link to comment Share on other sites More sharing options...
Administrators Hervé Posted May 11, 2021 Administrators Share Posted May 11, 2021 Don't get confused with the patching of Capri layout 0x01660004; it's a single-port (LVDS/eDP) framebuffer so those laptops with HiRes screen that use it have to add ports for any HDMI/DP/DVI outputs. It's a little different for 3-ports SKL framebuffers though the principles remain the same. I don't have any mini DP adapter but if you have 2 x DVI monitors, I'd say you should be able to get them working concurrently through mDP + HDMI with specific adapters directly off the laptop; therefore no need for the docking station. Link to comment Share on other sites More sharing options...
Administrators Hervé Posted May 14, 2021 Administrators Share Posted May 14, 2021 @scram69 Just got an mDP-to-DVI adapter for pennies. I can confirm that mDP output works OOB and out of con2. I could therefore get built-in LCD + mDP-to-DVI + HDMI-to-DVI outputs all working together in a triple display mode with 2 x DVI monitors. You may want to consider this as an alternative to dual-DVI out of your docking station which does not appear to be achievable. Link to comment Share on other sites More sharing options...
scram69 Posted May 17, 2021 Author Share Posted May 17, 2021 Herve, Thanks for the update. I do like the convenience of all the peripherals connected via the dock. However, with the e7270 there is plenty of room behind the laptop when it is connected in the PR02X/3X. So I have ended up using the DP on the dock connected to one monitor (con2) together with an HDMI cable from the 2nd monitor directly connected to the laptop while still in the dock (con1). It's a compromise that minimizes the number of cables that need to be disconnected/reconnected when I move away from the desk. Link to comment Share on other sites More sharing options...
Recommended Posts