Skylake

Приветствуем!

Вот небольшая (а огромная :D) информация по заводу Skylake графики. На данный момент у нас есть положительные отчёты по заводу только HD515, HD520, и HD530.
Если у вас отличная от этих карта, то свяжитесь с нами – попробуем завести!

Upd.1, 16.07.2016 – корректирующая информация о работе на 10.11.5+, 10.12 имеет проблемы (оно и понятно).
Upd.2, 17.07.2016 – исправлена неверная информация по HDMI-звуку.


Полный список Skylake графики:

  • 0x1902 – HD Graphics 510 (Desktop GT1)
  • 0x1906 – HD Graphics 510 (ULT GT1)
  • 0x190B – HD Graphics 510 (Halo GT1)
  • 0x1912 – HD Graphics 530 (Desktop GT2)
  • 0x1916 – HD Graphics 520 (ULT GT2)
  • 0x191B – HD Graphics 520/530 (Halo GT2)
  • 0x191D – HD Graphics P530 (Mobile Xeon GT2)
  • 0x191E – HD Graphics 510/515 (ULX GT2)
  • 0x1921 – HD Graphics 520 (ULT GT2F)
  • 0x1923 – HD Graphics 535 (ULT GT3)
  • 0x1926 – Iris Graphics 540 (ULT GT3E)
  • 0x1927 – Iris Graphics 550 (ULT GT3E)
  • 0x192B – Iris Graphics 555 (Halo GT3)
  • 0x192D – Iris Graphics P555 (Media Server GT3FE)
  • 0x1932 – Iris Graphics 580 (GT4)
  • 0x193B – Iris Graphics P580 (Halo GT4E)
  • 0x193D – Iris Graphics P580 (Workstation GT4E)

Список ig-platform-id (Оригинал: Piker Alpha):

[ 1]  0x191e0000 — Intel® HD Graphics 515..........(ULX GT2)
[ 2]  0x19160000 — Intel® HD Graphics 520..........(ULT GT2)
[ 3]  0x19260000 — Intel® Iris™ Graphics 550.......(ULT GT3)
[ 4]  0x191b0000 — Intel® HD Graphics 530..........(Halo GT2)
[ 5]  0x193b0000 — Intel® Iris™ Pro Graphics 580...(Halo GT4)
[ 6]  0x19120000 — Intel® HD Graphics 530..........(Desktop GT2)
[ 7]* 0x19020001 — Intel® HD Graphics 510..........(Desktop GT1)
[ 8]* 0x19170001 — Skylake Desktop.................(GT1.5)
[ 9]* 0x19120001 — Intel® HD Graphics 530..........(Desktop GT2)
[10]* 0x19320001 — Skylake Desktop.................(GT4)
[11]  0x19160002 — Intel® HD Graphics 520..........(ULT GT2)
[12]  0x19260002 — Intel® Iris™ Graphics 540.......(ULT GT3)
[13]  0x191e0003 — Intel® HD Graphics 515..........(ULX GT2)
[14]  0x19260004 — Intel® Iris™ Graphics 540.......(ULT GT3)
[15]  0x193b0005 — Intel® Iris™ Pro Graphics 580...(Halo GT4)
[16]  0x193b0006 — Intel® Iris™ Pro Graphics 580...(Halo GT4)

* – неактивные ig-platform-id

На данный момент (07.16) в продаже всего два Apple-компьютера на Skylake базе: iMac17,1 (Retina 5K, 27-inch, Late 2015) и MacBook9,1 (Retina, 12-inch, Early 2016)
На борту установлены процессоры:

  • Intel Core i5-6500;
  • Intel Core i5-6600;
  • Intel Core i7-6700K;
  • Intel Core m3-6Y30;
  • Intel Core m5-6Y54;
  • Intel Core m7-6Y75.

Во всех процессорах iMac’а интегрирована HD Graphics 530 (Desktop GT2), с id: 0x1912; а в мобильных интегрирована HD Graphics 510/515 (ULX GT2), с id: 0x191E.
Согласно дампу, в iMac’у используется ig-platform-id 0x19120001, а в MacBook’e ig-platform-id 0x191e0003.

Следовательно, нужно установить соответствующий SMBios для вашего типа компьютера (ноутбук или десктоп).


Мобильная Intel HD520 и 515

520 – Device-id: 0x1916, архитектура ULT GT2
515
– Device-id: 0x191E, архитекрутра ULT GT2

Для завода графики достаточно:

  • Проинжектить ig-platform-id: 0x19160000;
  • Переименовать в ACPI устройство HECI или MEI -> IMEI;
  • Установить 96 мб в биосе (или больше) под видеокарту;
  • Переименовать в ACPI видеокарту GFX0 -> IGPU для завода AGPM;
  • Выключить все “стандартные” клеверные инжекции (InjectIntel, ig-platform-id) во избежание конфликта.
ОЧЕНЬ ВАЖНО: Помните, что при инжекции через Arbitrary, вы должны отключить все прочие инжекции, типа Grapchis/Inject/Intel, или удалить соответствующий _DSM в DSDT!

Инжекция параметров видеокарты:

//рассмотрено на примере 520, для 515 отличия минимальные

Разберем ключи:

  • subsystem-id = 86800000 (8086 = Intel)  – косметика;
  • subsystem-vendor-id = 6B100000 (106B = Apple)  – косметика;
  • AAPL,ig-platform-id = 00001619 (0x19160000) – инжекция ig-platform-ID;
    • На скрине значение для 520,  но также можно попробовать 02001619. Это может повлиять на нумерацию выходов, и на их тип.
    • Для 515 нужно в этом значении выставить 00001e19 (0x191e0000) или 03001e19 (0x191e0003).
  • graphics-options = 0C000000 – на всякий случай;
  • device-id = 16190000 (0x1916) – инжекция ID;
    • Для 515 ставим 1E190000 (0x191E).
  • model = Intel HD Graphics 520 – косметика;
    • Для 515 ставим, разумеется, цифру 515.
  • PciAddr = 00:02.00 (0x00020000 – стандартный PCI адрес встроенной Intel графики)

P.S. — если возникают трудности, то подробнее про инжект через Arbitrary прочитаете в “Клевере цвета хаки”.


Мобильная и Десктопная HD530

Мобильная: Device-id – 0x191B, архитектура HALO GT2
Десктопная:
Device-id0x1912, архитектура Desktop GT2

Для завода графики достаточно:

  • Проинжектить ig-platform-id: 0x19160000;
  • FakeID под HD520: 0x1916;
  • FakePCIID с подтверждением FakeID под HD520;
    //Не актуально, в 10.11.5 всё починили
  • Переименовать в ACPI устройство HECI -> IMEI;
  • Установить 96 мб в биосе (или больше) под видеокарту;
  • Переименовать в ACPI видеокарту GFX0 -> IGPU для завода AGPM;
  • Выключить все “стандартные” клеверные инжекции (InjectIntel, ig-platform-id) во избежание конфликта.

Инжекция параметров видеокарты:

Снимок экрана 2016-07-15 в 22.42.31

Разберем ключи:

  • device-id = 1B190000 (0x191B)  – инжекция ID;
    Для десктопной ставим 12190000 (0х1912).
  • subsystem-id = 86800000 (8086 = Intel) – косметика;
  • subsystem-vendor-id = 6B100000 (106B = Apple) – косметика;
  • AAPL,ig-platform-id = 00001619 (0x19160000) – инжекция ig-platform-ID;
    • Также можно попробовать эти варианты: 00001219 (0x19120000) и 00001B19 (0x191b0000).
  • graphics-options = 0C000000 на всякий случай;
  • model = Intel HD Graphics 530 – косметика;
  • PciAddr = 00:02.00 (0x00020000 – стандартный PCI адрес встроенной Intel графики).

P.S. если возникают трудности, то подробнее про инжект через Arbitrary прочитаете в “Клевере цвета хаки”


Теперь на счет бинарных патчей ACPI:

OS X ругается в лог (в режиме отладки) на отсутствие девайса IMEI. Да, этот тот самый контроллер Intel ME по адресу 0x00160000
Если раньше его наличие в ACPI (до Haswell) было косметикой, а на Haswell+ название было не важно, то на Skylake платформе теперь это строгое требование.
Если вы не знаете как у вас называется устройство, MEI или HECI – впишите оба патча.

config.plist -> ACPI секция -> DSDT -> Patches

Снимок экрана 2016-07-16 в 5.45.25

  • HECI -> IMEI
    Find: 48454349 Replace: 494D4549
    Если ваше устройство называется HECI;
  • MEI -> IMEI
    Find: 4D45495F Replace: 494D4549
    Если ваше устройство называется MEI.
  • Если вы не знаете название своего устройства, впишите оба патча.

Также добавим полезные патчи:

  • GFX0 -> IGPU
    Find: 47465830 Replace: 49475055
    Для того, чтобы карта распознавалась системой именно как iGPU, и цеплялась к AGPM и подобным вещам.
  • HDAS -> HDEF
    Find: 48444153 Replace: 48444546
    На Skylake устройство HDEF стало называться HDAS, а так же получило новый физический адрес. Этот патч переименовывает обратно.
  • B0D3 -> HDAU
    Find: 42304433 Replace: 48444155
    Переименовывает устройство HDMI-звука в понятное системе. Необходим для запуска звука по HDMI.
    Не актуально, теперь HDMI работает аналогично Ivy.

Выделение памяти под видеокарту 96мб:

Если в биосе нельзя менять значение и выделено < 96мб, то получим панику: “minStolenSize <= fStolenMemorySize”

Можно применить как временное решение такой патч:

Name: AppleIntelSKLGraphicsFramebuffer
Find: 4139C4762A
Replace: 4139C4EB2A

Патч присутствует в конфигах, но всё же желательно изменить в биосе параметр.
Как это сделать описано здесь. Но все действия вы делаете на свой страх и риск, имейте ввиду.


FakePCIID:

Ликбез:
Начиная с поколения Haswell выяснилось, что кексты/OpenCL/GL библиотеки, да и вообще кто и что угодно могут перепроверять данные, такие как Vendor Id, Device Id, и прочее через PCI шину. Поэтому Rehabman написал кекст, перехватывающий такие запросы и делающий подмену на уровне системы. Оба кекста положите в инжект клеверу, если у вас иной ID.

Файлы в конце статьи.


Как итог всего вышесказанного:

Мобильные карты –  в итоге хотя бы LVDS (встроенный монитор ноутбука) точно запустится.
Десктопные карты – в итоге хотя бы один из портов DVI-D / HDMI запустится.

Пока что патч коннекторов в разработке. Увы, все выходы без него запустить не получится.
//Хорошие новости!
//Удалось получить корректно работающий патч для десктопной HD530, так что, вероятно, скоро методика патча будет изучена и опубликована!
🙂


HDMI-звук, и просто звук на Skylake

На Skylake устройство HDEF стало называться HDAS, и стало иметь другой адрес.

Патч выше уже переименовывают а HDAS в HDEF; а инжекция этих свойств указана в соответствующих местах нашего конфига (PciAddr).

Одного свойства в “onboard-1” в инжекте Intel HD недостаточно для HDMI звука. На платформах Ivy и ниже аналогичное свойство вешалось на HDEF, а для Haswell+ принято использовать B0D3 устройство по адресу 0x00030000. Но! на skylake применяется старый метод работы HDMI-звука, аналогично Ivy.

Дальше потребуется патч коннекторов и инжект еще одного свойства “onboard-1”.

Инжект свойств на HDEF устройство:

Разберем ключи для HDEF:

  1. layout-id = 03000000 (0x03 = 3) лайоут звука, который используете для AppleHDA (AppleALC)
    //Следовательно, инжекцию через параметр Devices/Audio/Inject=X следует отключить (поставить NO), во избежание двойного патча
  2. subsystem-id = <70720000> (0x7270=Subsystem: Intel Corporation Device) – косметика;
  3. subsystem-vendor-id = <86800000> (8086=Intel) – косметика;
  4. AAPL,slot-name = Built In – косметика;
  5. device_type = Audio Controller – косметика;
  6. hda-gfx = onboard-1 – свойство для HDMI звука;
  7. PciAddr:= 00:1F.03 (0x001F0003) – стандартный PCI адрес HDEF контроллера на Skylake.

Также, необходимо исправить фреймбуфер на предмет преобразования типа коннектора (DP->HDMI), но это пока не представляется возможным.

Дополнительная информация будет сразу после тестов на нескольких машинах.

Есть желание принять участие? Напишите нам!

Как только методика патча фреймбуфера будет разработана, информация появится здесь, и мы расскажем, как получить HDMI-звук.
А пока что, завод звука по HDMI возможен только при условии случайного совпадения HDMI-коннектора с HDMI-портом. Так что, может быть, у вас и без патча подхватится звук. Но мы этого не обещаем 😉


Правильная регулировка яркости:

Ликбез: Яркость любой Intel-графики управляется через специальный регистр. При наличии PNLF устройства в DSDT/SSDT, OS X подключается к нему, и, используя заготовленные настройки к монитору, вписывает туда значение текущей яркости, а для конечного пользователя появляется ползунок. Таким образом минимальный фикс для яркости это фиксы кловера: AddDTGP + AddPNLF (включены в конфиг)

При таком подходе возникают проблемы:

  1. Яркость изменяется не равномерно;
  2. Ползунок на максимум не дает полную яркость монитора, а после сна резко вспыхивает.

Первая проблема из-за того, что OS X не знает 16 ключевых уровней яркости конкретно нашего монитора, и использует стандартный линейный пресет. Вторая проблема связанна с ограничением максимального уровня яркости на системном уровне.

Решение проблем:

Фиксы кловера (AddDTGP + AddPNLF), и подкинуть в кловер IntelBacklight.kext от Rehabman’а.
Написан специально для Intel HD. Знает все особенности Sandy, Ivy, Haswell, Broadwell, и Skylake графики.


P.S. Совет немного в сторону, но относится к данной теме.

На Skylake-платформах обязателен патч кекста AppleAPIC:

Find: C1E8100FB6F0
Replace: BE1700000090
Name: AppleAPIC

Спасибо, Piker Alpha 🙂
Патч присутствует в конфигах. Также неактуально.


Файлы:

Прописанные секции из статьи в формате *.plist. Остальные настройки за вами.

Кексты:

  • IntelBacklight.kext – кекст на управление яркостью монитора ноутбуков;
  • FakePCIID.kext — сам кекст обманщик. Он всё равно не помешает, даже если у вас карта с нативным ID;
  • FakePCIID_Intel_HD_Graphics.kext.zip — плагин для Intel HD530. Для 520 не нужен.

Спасибо за прочтение!

Для вас старались:

  • Денис Skop — автор методов завода и собиратель материала;
  • Вадим Чумаков – исследование патчинга фреймбуфера и корректирующая информация;
  • Piker Alpha — исследование оригинальных данных;
  • Андрей Чернышов — оформление и дополнение.

Оригинальный пост на applelife.ru

Добавить комментарий

%d такие блоггеры, как: