applestar666 发表于 2023-4-27 01:36

哪些情况需要 HPET 和 MCHC 这两个 SSDT

本帖最后由 applestar666 于 2023-4-27 09:09 编辑

哪些情况需要 SSDT-HPET.aml 和 SSDT-SBUS-MCHC.aml 这两个 SSDT,还有MC__ to MCHC、ADBG to XDBG 和 HPET 的那几个补丁。IRQ 冲突又是什么意思了,搜索了下还是没特别明白。




lwx1901 发表于 2023-4-27 08:54

一、MCHC是macOS对内存控制器的设备名称定义,任何情况下都需要,由于PC机中DSDT表缺失定义,故需要通过SSDT-MCHC.aml补上;二、HPET是高精度计时器的设备名称,一般情况下PC机DSDT表都有定义,不需要我们重复定义

applestar666 发表于 2023-4-27 09:09

lwx1901 发表于 2023-4-27 08:54 https://bbs.pcbeta.com/static/image/common/back.gif
一、MCHC是macOS对内存控制器的设备名称定义,任何情况下都需要,由于PC机中DSDT表缺失定义,故需要通过SSD ...

我贴下 DSDT 里 HPET 的定义,我看里面是定义了个 BUF0,SSDT_HPET 里是 BUFX。所以这种情况我还需要 SSDT_HPET 吗。还有哪些补丁

lwx1901 发表于 2023-4-27 12:29

本帖最后由 lwx1901 于 2023-4-27 12:43 编辑

applestar666 发表于 2023-4-27 09:09 https://bbs.pcbeta.com/static/image/common/back.gif
我贴下 DSDT 里 HPET 的定义,我看里面是定义了个 BUF0,SSDT_HPET 里是 BUFX。所以这种情况我还需要 SSD ...
_STA更名XSTA,_CRS更名XCRS是在你需要通过自定义SSDT表重新定义_STA保留函数和_CRS保留函数时,为了防止在同一范围内因重复定义同一函数造成冲突,才需要通过OC---ACPI---补丁的方式对原DSDT表中的HPET设备范围内的_STA更名XSTA,_CRS更名XCRS,再加载启用你SSDT表中的重新定义_STA保留函数和_CRS保留函数。如果没有重复定义,就不需要上述两个更名补丁!明白不?

_STA为设备状态保留函数,当逻辑判断函数HPTE为真时(返回1),返回0x0F,即表示HPET设备为存在,反之当HPTE为假时(返回0),返回0x00,即HPET设备不存在;


同理,_CRS为设备本地资源信息保留函数,当逻辑判断函数HPTE为真时(返回1),执行CreateDwordField (BUF0, \_SB.PC00.LPCB.HPET._Y70._BAS, HPT0)   HPT0 = HPTB;反之当HPTE为假时(返回0),直接返加BUF0函数。

applestar666 发表于 2023-4-27 19:02

感谢大佬对代码的逐行解释和分析,逻辑大概明白了。
这个图是 SSDTTime 工具生成的 SSDT_HPET,按照代码逻辑来说我理解下 _STA更名XSTA 是不是可以不需要的。

代码逻辑通了,那就是这个 SSDT 的用途了,我搜了下说是 SSDT_HPET 主要是解决 IRQ 冲突的问题,什么是 IRQ 冲突呢,然后我在什么情况下需要这个 SSDT 呢,我看补丁里还多了几个 TIMR IRQ 0 Patch,IPIC IRQ 2 Patch,RTC IRQ 8 Patch,这几个是干嘛用的呢,是否需要呢





zhuce12345 发表于 2023-4-27 22:12

英特尔的4-7代CPU,ACPI的文件只有2个,超过2个的都是多余的

applestar666 发表于 2023-4-28 00:45

zhuce12345 发表于 2023-4-27 22:12 https://bbs.pcbeta.com/static/image/common/back.gif
英特尔的4-7代CPU,ACPI的文件只有2个,超过2个的都是多余的

我13代的cpu
页: [1]
查看完整版本: 哪些情况需要 HPET 和 MCHC 这两个 SSDT