Contribute
Register

[Guide] Dell XPS 13 9360 on MacOS Sierra 10.12.x - LTS (Long-Term Support) Guide

Joined
Sep 19, 2011
Messages
334
Motherboard
XPS 13 9360
CPU
i7-8550U
Graphics
UHD 620
Mac
MacBook Pro
I was hoping you'd ask as I'm going to need some help to get this finalised :)

However you will need the following:
1) an SPI flash programmer with SOIC8 SOP8 adapter so you can read/write the Winbond chip without desoldering
2) an understanding of where the Winbond BIOS/ME 32MB chip lies on your board (and easy access to it)

The process is still manual, however these are the steps
1) Dump the whole chip via SPI to a rom/bin file.
2) Dump the descriptor part and load it into FITC
3) Enable reserve_hap=1 and save back into descriptor
4) That should disable secure boot but not bootguard. Thanks to 0xf56=0 we should be able to bypass the latter
5) Decompile BIOS (with the well known tool I won't mention here), add modded ROMs, re-compile
6) Flash modded chip back with SPI

I've managed to complete steps 2, 3, 4 and 5. I'm awaiting the SPI programmer this week and will be able to finish 1 and 6.
 
Joined
Oct 13, 2017
Messages
6
Motherboard
Dell XPS13 9360 (Clover)
CPU
i7-7560u
Graphics
Iris plus 640,3200x1800 QHD
I was hoping you'd ask as I'm going to need some help to get this finalised :)

However you will need the following:
1) an SPI flash programmer with SOIC8 SOP8 adapter so you can read/write the Winbond chip without desoldering
2) an understanding of where the Winbond BIOS/ME 32MB chip lies on your board (and easy access to it)

The process is still manual, however these are the steps
1) Dump the whole chip via SPI to a rom/bin file.
2) Dump the descriptor part and load it into FITC
3) Enable reserve_hap=1 and save back into descriptor
4) That should disable secure boot but not bootguard. Thanks to 0xf56=0 we should be able to bypass the latter
5) Decompile BIOS (with the well known tool I won't mention here), add modded ROMs, re-compile
6) Flash modded chip back with SPI

I've managed to complete steps 2, 3, 4 and 5. I'm awaiting the SPI programmer this week and will be able to finish 1 and 6.
Thanks for the info!

If you have a Raspberry Pi or Beagle Bone around, those can also flash the SPI. Save you a few bucks if you keep anything like that around the house.
 
Joined
Jul 10, 2011
Messages
75
Motherboard
Dell XPS 9360
CPU
Intel Core i7-7560U @ 2,4 GHz
Graphics
Intel Iris 640 FHD
Mac
MacBook Air
Mobile Phone
Android
I was hoping you'd ask as I'm going to need some help to get this finalised :)

However you will need the following:
1) an SPI flash programmer with SOIC8 SOP8 adapter so you can read/write the Winbond chip without desoldering
2) an understanding of where the Winbond BIOS/ME 32MB chip lies on your board (and easy access to it)

The process is still manual, however these are the steps
1) Dump the whole chip via SPI to a rom/bin file.
2) Dump the descriptor part and load it into FITC
3) Enable reserve_hap=1 and save back into descriptor
4) That should disable secure boot but not bootguard. Thanks to 0xf56=0 we should be able to bypass the latter
5) Decompile BIOS (with the well known tool I won't mention here), add modded ROMs, re-compile
6) Flash modded chip back with SPI

I've managed to complete steps 2, 3, 4 and 5. I'm awaiting the SPI programmer this week and will be able to finish 1 and 6.
Cool! I'm awaiting for new bios chips from ali to repair a broken 9350 board, so i'm gonna be able to test in week approx. Once done, I'll have replacement chips just in case of failure;)
Maybe there is a OTP region in the chip, which prevents overwrite after the first init? Like the servicetag on new motherboards shipped for RMA.
 
Joined
Jul 3, 2014
Messages
930
Motherboard
Dell XPS 9360 (KabyLake R)
CPU
Intel i7 8550U
Graphics
Intel UHD 620
Mac
MacBook, MacBook Pro
Mobile Phone
Android
Intel UHD Graphics 620 works with AppleIntelKBLGraphics (on UHD display), it needs the following changes:

  • Addition in Rehabman's SSDT-IGPU hotpatch under LAPH section:
    Code:
                // KabyLake/UHD620
                0x5917, 0, Package()
                {
                    "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x16, 0x59 }, //UHD/QHD+
                    "model", Buffer() { "Intel UHD Graphics 620" },
                    "device-id", Buffer { 0x16, 0x59, 0x00, 0x00 },
                    "hda-gfx", Buffer() { "onboard-1" },
                },
  • Addition in FakePCIID_Intel_HDGraphics.kext:
    Code:
            <key>UHD620</key>
            <dict>
                <key>CFBundleIdentifier</key>
                <string>org.rehabman.driver.FakePCIID</string>
                <key>FakeProperties</key>
                <dict>
                    <key>RM,device-id</key>
                    <data>FlkAAA==</data>
                </dict>
                <key>IOClass</key>
                <string>FakePCIID</string>
                <key>IOMatchCategory</key>
                <string>FakePCIID</string>
                <key>IOPCIClassMatch</key>
                <string>0x03000000&amp;0xff000000</string>
                <key>IOPCIPrimaryMatch</key>
                <string>0x59168086 0x59178086</string>
                <key>IOProbeScore</key>
                <integer>9001</integer>
                <key>IOProviderClass</key>
                <string>IOPCIDevice</string>
            </dict>
  • Framebuffer patch in Clover
    Code:
                <dict>
                    <key>Comment</key>
                    <string>0x59160000, 80MB framebuffer 12MB cursor bytes (credit RehabMan)</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>AQMDAwAAIAIAAAAA</data>
                    <key>Name</key>
                    <string>com.apple.driver.AppleIntelKBLGraphicsFramebuffer</string>
                    <key>Replace</key>
                    <data>AQMDAwAAAAUAAMAA</data>
                </dict>
  • CoreDisplayFixup.kext and Lilu.kext in Clover kext folder
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,692
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Intel UHD Graphics 620 works with AppleIntelKBLGraphics (on UHD display), it needs the following changes:

  • Addition in Rehabman's SSDT-IGPU hotpatch under LAPH section:
    Code:
                // KabyLake/UHD620
                0x5917, 0, Package()
                {
                    "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x16, 0x59 }, //UHD/QHD+
                    "model", Buffer() { "Intel UHD Graphics 620" },
                    "device-id", Buffer { 0x16, 0x59, 0x00, 0x00 },
                    "hda-gfx", Buffer() { "onboard-1" },
                },
  • Addition in FakePCIID_Intel_HDGraphics.kext:
    Code:
            <key>UHD620</key>
            <dict>
                <key>CFBundleIdentifier</key>
                <string>org.rehabman.driver.FakePCIID</string>
                <key>FakeProperties</key>
                <dict>
                    <key>RM,device-id</key>
                    <data>FlkAAA==</data>
                </dict>
                <key>IOClass</key>
                <string>FakePCIID</string>
                <key>IOMatchCategory</key>
                <string>FakePCIID</string>
                <key>IOPCIClassMatch</key>
                <string>0x03000000&amp;0xff000000</string>
                <key>IOPCIPrimaryMatch</key>
                <string>0x59168086 0x59178086</string>
                <key>IOProbeScore</key>
                <integer>9001</integer>
                <key>IOProviderClass</key>
                <string>IOPCIDevice</string>
            </dict>
  • Framebuffer patch in Clover
    Code:
                <dict>
                    <key>Comment</key>
                    <string>0x59160000, 80MB framebuffer 12MB cursor bytes (credit RehabMan)</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>AQMDAwAAIAIAAAAA</data>
                    <key>Name</key>
                    <string>com.apple.driver.AppleIntelKBLGraphicsFramebuffer</string>
                    <key>Replace</key>
                    <data>AQMDAwAAAAUAAMAA</data>
                </dict>
  • CoreDisplayFixup.kext and Lilu.kext in Clover kext folder
This is actually Coffee Lake HD620, isn't it?

Note: I really need to do some work on SSDT-IGPU.dsl to allow for SKL-spoof vs. KBL native.
 
Joined
Jul 3, 2014
Messages
930
Motherboard
Dell XPS 9360 (KabyLake R)
CPU
Intel i7 8550U
Graphics
Intel UHD 620
Mac
MacBook, MacBook Pro
Mobile Phone
Android
I thought it was Coffee Lake at first, but ark.intel.com says the following: "Products formerly Kaby Lake R"
While a comparable desktop processor for Coffee Lake shows "Products formerly Coffee Lake"

In the list of Intel Graphics Processors, the CPU is marked as Kaby Lake and the GPU device ID indicates as much: 0x59 series.

Notably, AppleIntelKBLGraphics.kext also supports 0x3E928086, which is the UHD Graphics 630, which is Coffee Lake based.
So in the end it looks like the driver for Coffee Lake based GPU's is still AppleIntelKBLGraphics.kext

Since my graphics card is 0x59178086 (Intel UHD Graphics 620), I thought 0x59168086 (Intel HD Graphics 620) would be closest. Clock rates min/max are identical across both devices for i5 and i7 versions.
 
Joined
Jul 3, 2014
Messages
930
Motherboard
Dell XPS 9360 (KabyLake R)
CPU
Intel i7 8550U
Graphics
Intel UHD 620
Mac
MacBook, MacBook Pro
Mobile Phone
Android
Question in general with regards to PCI NVMExpress.

In system reports it shows:

Apple SSD Controller:
WDC WDS512G1X0C-00ENX0:


Capacity: 512.11 GB (512,110,190,592 bytes)
TRIM Support: Yes
Model: WDC WDS512G1X0C-00ENX0
Revision: B35500WD
Serial Number: xxxx
Link Width: x4
Link Speed: 8.0 GT/s

This would indicate that mac OS sees a PCIe x4 on my XPS 9360. Meaning I could leverage the speed if I change it to a Samsung PM961 PCIe NVMe SSD.

  1. Is the link width report in macOS "trustworthy"? What are other ways to determine this, probably through Linux?
  2. With High Sierra, is the Samsung PM961 (which is limited to 512-byte format only) natively supported through IONVMeFamily.kext?

Edit: Linux corroborates the information from mac OS

Code:
# sudo lspci -vv | grep -P "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9a-f]|LnkSta:"
....
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
00:1d.0 PCI bridge: Intel Corporation Device 9d18 (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
3a:00.0 Network controller: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC (rev 01)
       LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
3b:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
       LnkSta:    Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
3c:00.0 Non-Volatile memory controller: Sandisk Corp Device 5001 (prog-if 02 [NVM Express])
       LnkSta:    Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
...
This indicates that the Non-Volatile memory controller is running at PCI express x4 (8GT/s) in the 8th gen XPS 9360.

Can others confirm what theirs is on?
 
Last edited:
Joined
Oct 6, 2017
Messages
19
Motherboard
xps13-9360(Clover)
CPU
i7-7560u
Graphics
lris plus 640,3200x1800
BIOS Guard Support is the cause as the roms come in that format

setup_var 0xF56 -> 01
Can you provide your clover file? I can not sleep awake
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,692
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I thought it was Coffee Lake at first, but ark.intel.com says the following: "Products formerly Kaby Lake R"
While a comparable desktop processor for Coffee Lake shows "Products formerly Coffee Lake"

In the list of Intel Graphics Processors, the CPU is marked as Kaby Lake and the GPU device ID indicates as much: 0x59 series.

Notably, AppleIntelKBLGraphics.kext also supports 0x3E928086, which is the UHD Graphics 630, which is Coffee Lake based.
So in the end it looks like the driver for Coffee Lake based GPU's is still AppleIntelKBLGraphics.kext

Since my graphics card is 0x59178086 (Intel UHD Graphics 620), I thought 0x59168086 (Intel HD Graphics 620) would be closest. Clock rates min/max are identical across both devices for i5 and i7 versions.
Good to know. I guess no CoffeeLake mobile yet, just KabyLake R (which, unfortunately, have 8xxx naming).
(no)Thanks Intel (eg. Nice job with confusing naming).
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,692
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Question in general with regards to PCI NVMExpress.

In system reports it shows:

Apple SSD Controller:
WDC WDS512G1X0C-00ENX0:


Capacity: 512.11 GB (512,110,190,592 bytes)
TRIM Support: Yes
Model: WDC WDS512G1X0C-00ENX0
Revision: B35500WD
Serial Number: xxxx
Link Width: x4
Link Speed: 8.0 GT/s

This would indicate that mac OS sees a PCIe x4 on my XPS 9360. Meaning I could leverage the speed if I change it to a Samsung PM961 PCIe NVMe SSD.

  1. Is the link width report in macOS "trustworthy"? What are other ways to determine this, probably through Linux?
  2. With High Sierra, is the Samsung PM961 (which is limited to 512-byte format only) natively supported through IONVMeFamily.kext?

Edit: Linux corroborates the information from mac OS

Code:
# sudo lspci -vv | grep -P "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9a-f]|LnkSta:"
....
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
00:1d.0 PCI bridge: Intel Corporation Device 9d18 (rev f1) (prog-if 00 [Normal decode])
       LnkSta:    Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
3a:00.0 Network controller: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC (rev 01)
       LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
3b:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
       LnkSta:    Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
3c:00.0 Non-Volatile memory controller: Sandisk Corp Device 5001 (prog-if 02 [NVM Express])
       LnkSta:    Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
...
This indicates that the Non-Volatile memory controller is running at PCI express x4 (8GT/s) in the 8th gen XPS 9360.

Can others confirm what theirs is on?
The WD SSD you already have is NVMe.
512 byte block size NVMe is better supported in 10.13. Fully compatible/hassle free? Not quite (problems with TRIM on some).
 
Top