九邪 发表于 2022-12-19 20:57

SSDT-DMAC.aml是否需要imac20,2机型

最近,在给EFI做补丁,把一些没有设备给补上去,

看到两个补丁,但不知是否有用

一个是SSDT-DMAC.aml,,另一个是SSDT-DMAR.aml

remyxo 发表于 2022-12-19 21:24

医生说了没病别乱吃药

hugarninwow 发表于 2022-12-19 21:53

# 添加缺失的部件

## 描述

添加缺失的部件只是一种完善方案,非必要!

### 使用说明

**DSDT中:**

- 搜索 `PNP0200`,如果缺失,可添加 ***SSDT-DMAC***。

- 搜索 `MCHC`,如果缺失,可添加 ***SSDT-MCHC***。

- 搜索 `PNP0C01`,如果缺失,可添加 ***SSDT-MEM2***。

- 搜索 `0x00160000`,如果缺失,可添加 ***SSDT-IMEI***。

- 6 代以上机器,搜索 `0x001F0002`,如果缺失,可添加 ***SSDT-PPMC***。

- 6 代以上机器,搜索 `PMCR` 、 `APP9876`,如果缺失,可添加 ***SSDT-PMCR***。

说明:@请叫我官人 提供方法,目前已成为 OpenCore 官方的 SSDT 示例。
> Z390 芯片组 PMC (D31:F2) 只能通过 MMIO 启动。由于 ACPI 规范中没有 PMC 设备,苹果推出了自己的命名 `APP9876`、从 AppleIntelPCHPMC 驱动中访问这个设备。而在其它操作系统中,一般会使用 `HID: PNP0C02`、`UID: PCHRESV` 访问这个设备。
> 包括 APTIO V 在内的平台,在初始化 PMC 设备之前不能读写 NVRAM(在 SMM 模式中被冻结)。
> 虽然不知道为什么会这样,但是值得注意的是 PMC 和 SPI 位于不同的内存区域,PCHRESV 同时映射了这两个区域,但是苹果的 AppleIntelPCHPMC 只会映射 PMC 所在的区域。
> PMC 设备与 LPC 总线之间毫无关系,这个 SSDT 纯粹是为了加快 PMC 的初始化而把该设备添加到 LPC 总线下。如果将其添加到 PCI0 总线中、PMC 只会在 PCI 配置结束后启动,对于需要读取 NVRAM 的操作来说就已经太晚了。

- 搜索 `PNP0C0C`,如果缺失,可添加 ***SSDT-PWRB***。

- 搜索 `PNP0C0E`,如果缺失,可添加 ***SSDT-SLPB***,《PNP0C0E睡眠修正方法》需要这个部件。

### 注意

使用以上部分补丁时,注意 `LPCB` 名称应和原始ACPI名称一致。

hugarninwow 发表于 2022-12-19 21:58

DMAR则与VT有关。如果主板BIOS中设置开启CPU的VT全部功能,则有可能需要将主板原有DMAR删除,加入修改后的DMAR,否则可能导致网卡、声卡等出现问题。当然如果没问题,就不需要drop掉它,也不需要修改的DMAR。

开启VT后的macOS系统,会在IoReg里面发现Apple VTD。

184457 发表于 2022-12-19 21:59

我只给自己打了个DMAR的SSDT,用来修复VTD虚拟化的,然后跑了跑虚拟机,

yahoo! 发表于 2022-12-19 22:51

.这俩干嘛用的?

lwx1901 发表于 2022-12-19 23:10

本帖最后由 lwx1901 于 2022-12-19 23:18 编辑

DMAC是设备名,DMAR是ACPI组件名,不是一回事。白果机中有这个设备DMAC,SSDT-DMAC.aml才是SSDT。DMAR不是SSDT,独立于DSDT
SSDT-DMAC将DMA控制器公开给系统,直接访问缓存地址控制器。

xytchina2008 发表于 2022-12-20 08:08

不懂这些是干什么的
页: [1]
查看完整版本: SSDT-DMAC.aml是否需要imac20,2机型