Files
Getting-Started-With-ACPI/assets/js/4.538ec4cb.js

1 line
7.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{319:function(t,e,a){t.exports=a.p+"assets/img/lpc.bfa9cf23.png"},320:function(t,e,a){t.exports=a.p+"assets/img/pci0.4477f361.png"},378:function(t,e,a){t.exports=a.p+"assets/img/rtc-range-check.d964e9c9.png"},379:function(t,e,a){t.exports=a.p+"assets/img/rtc-name.afa4c3f4.png"},380:function(t,e,a){t.exports=a.p+"assets/img/ssdt-before-rename-hedt.4b47d5a3.png"},381:function(t,e,a){t.exports=a.p+"assets/img/ssdt-after-rename-hedt.ea1fe10e.png"},435:function(t,e,a){"use strict";a.r(e);var n=a(25),i=Object(n.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"fixing-system-clocks-on-hedt-manual"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#fixing-system-clocks-on-hedt-manual"}},[t._v("#")]),t._v(" Fixing System Clocks on HEDT: Manual")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"#finding-the-acpi-path"}},[t._v("Finding the ACPI path")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("Edits to the sample SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#compiling-the-ssdt"}},[t._v("Compiling the SSDT")])]),t._v(" "),n("li",[n("a",{attrs:{href:"#wrapping-up"}},[t._v("Wrapping up")])])]),t._v(" "),n("h2",{attrs:{id:"seeing-if-you-need-ssdt-rtc0-range"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#seeing-if-you-need-ssdt-rtc0-range"}},[t._v("#")]),t._v(" Seeing if you need SSDT-RTC0-RANGE")]),t._v(" "),n("p",[t._v("To start, first open your decompiled DSDT you got from "),n("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),n("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),n("p",[t._v("Now search for "),n("code",[t._v("PNP0B00")]),t._v(" and look at the "),n("code",[t._v("_CRS")]),t._v(" entry within it:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(378),alt:""}})]),t._v(" "),n("p",[t._v("And from the above example, we see we have 2 banks of RTC memory:")]),t._v(" "),n("ul",[n("li",[t._v("Bank 1: starts at 0x70 and is length 0x2")]),t._v(" "),n("li",[t._v("Bank 2: starts at 0x74 and is length 0x4")])]),t._v(" "),n("p",[t._v("Now the problem is that the OEM forgot to mat sections 0x72 and 0x73. Because of this, macOS may halt while booting(prominently in Big Sur)")]),t._v(" "),n("p",[t._v("And finally, verify if it has an _STA method as well. This will be used shortly")]),t._v(" "),n("h2",{attrs:{id:"finding-the-acpi-path"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#finding-the-acpi-path"}},[t._v("#")]),t._v(" Finding the ACPI path")]),t._v(" "),n("p",[t._v("Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from "),n("RouterLink",{attrs:{to:"/Manual/dump.html"}},[t._v("Dumping the DSDT")]),t._v(" and "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("Decompiling and Compiling")]),t._v(" with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl",target:"_blank",rel:"noopener noreferrer"}},[t._v("ACPI extension"),n("OutboundLink")],1),t._v(" that can also help).")],1),t._v(" "),n("p",[t._v("To start, search for the following:")]),t._v(" "),n("ul",[n("li",[t._v("Finding the RTC name:\n"),n("ul",[n("li",[t._v("Search "),n("code",[t._v("PNP0B00")])])])]),t._v(" "),n("li",[t._v("Finding the LowPinCount path:\n"),n("ul",[n("li",[t._v("Search "),n("code",[t._v("Name (_ADR, 0x001F0000)")])])])]),t._v(" "),n("li",[t._v("Finding the PCI path:\n"),n("ul",[n("li",[t._v("Search "),n("code",[t._v("PNP0A08")]),t._v(" (If multiple show up, use the first one)")])])])]),t._v(" "),n("p",[t._v("You should get something like the following show up:")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",{staticStyle:{"text-align":"center"}},[t._v("RTC Pathing")]),t._v(" "),n("th",{staticStyle:{"text-align":"center"}},[t._v("LPC Pathing")]),t._v(" "),n("th",{staticStyle:{"text-align":"center"}},[t._v("PCI Pathing")])])]),t._v(" "),n("tbody",[n("tr",[n("td",{staticStyle:{"text-align":"center"}},[n("img",{attrs:{src:a(379),alt:""}})]),t._v(" "),n("td",{staticStyle:{"text-align":"center"}},[n("img",{attrs:{src:a(319),alt:""}})]),t._v(" "),n("td",{staticStyle:{"text-align":"center"}},[n("img",{attrs:{src:a(320),alt:""}})])])])]),t._v(" "),n("p",[t._v("From the above, we can see we have "),n("code",[t._v("RTC")]),t._v(", "),n("code",[t._v("LPC0")]),t._v(" and "),n("code",[t._v("PCI0")]),t._v(". Now we can head to the next stage")]),t._v(" "),n("h2",{attrs:{id:"edits-to-the-sample-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#edits-to-the-sample-ssdt"}},[t._v("#")]),t._v(" Edits to the sample SSDT")]),t._v(" "),n("p",[t._v("Now that we have our ACPI path, lets grab our SSDT and get to work:")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-RTC0-RANGE.dsl",target:"_blank",rel:"noopener noreferrer"}},[t._v("SSDT-RTC0-RANGE.dsl"),n("OutboundLink")],1)])]),t._v(" "),n("p",[t._v("By default, this uses "),n("code",[t._v("PC00.LPC0.RTC")]),t._v(" for the pathing. you'll want to rename accordingly.")]),t._v(" "),n("p",[t._v("Following the example from above, we'll be renaming it to "),n("code",[t._v("PCI0.LPC0.RTC")]),t._v(":")]),t._v(" "),n("p",[n("strong",[t._v("Before")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("External (_SB_.PC00.LPC0, DeviceObj) <- Rename this\n\nExternal (_SB_.PC00.LPC0.RTC_, DeviceObj) <- Rename this\n\nScope (_SB.PC00.LPC0) <- Rename this\n")])])]),n("p",[n("img",{attrs:{src:a(380),alt:""}})]),t._v(" "),n("p",[t._v("Following the example pathing we found, the SSDT should look something like this:")]),t._v(" "),n("p",[n("strong",[t._v("After")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("External (_SB_.PCI0.LPC0, DeviceObj) <- Renamed\n\nScope (_SB.PCI0.LPC0.RTC) <- Renamed\n\nScope (_SB.PCI0.LPC0) <- Renamed\n\n\n\t\t/* <- Remove if your RTC device didn't have an _STA\n\t\tScope (RTC)\n {\n Method (_STA, 0, NotSerialized) // _STA: Status\n {\n If (_OSI (\"Darwin\"))\n {\n Return (Zero)\n }\n Else\n {\n Return (0x0F)\n }\n }\n }\n\t\t*/ <- Remove if your RTC device didn't have an _STA\n")])])]),n("p",[n("img",{attrs:{src:a(381),alt:""}})]),t._v(" "),n("h3",{attrs:{id:"compiling-the-ssdt"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#compiling-the-ssdt"}},[t._v("#")]),t._v(" Compiling the SSDT")]),t._v(" "),n("p",[t._v("With the SSDT done, you're now "),n("RouterLink",{attrs:{to:"/Manual/compile.html"}},[t._v("ready to compile the SSDT!")])],1),t._v(" "),n("h2",{attrs:{id:"wrapping-up"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#wrapping-up"}},[t._v("#")]),t._v(" Wrapping up")]),t._v(" "),n("p",[t._v("Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up:")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/cleanup.html"}},[n("strong",[t._v("Cleanup")])])],1)])])}),[],!1,null,null,null);e.default=i.exports}}]);