关于dsdt中显卡部分的问题
说出问题之前先上配置信息:
机型: ACER E5 572G 57DW
CPU: Intel Core i5 4210M
显 卡: Intel HD Graphics 4600
nVIDIA GeForce 840M
声卡: ALC 283
网卡: Realtek RTL 8111
BCM94352hmb
一、我初始dsdt里没有核显和独显的数据描述部分,是我从ssdt里挪过来的,起初只将
- Device (IGPU)
- {
- Name (_ADR, 0x00020000) // _ADR: Address
- }
挪过来的时候,无论是否含有独显屏蔽补丁,独显都屏蔽失效,没挪过来之前,独显屏蔽有效;
而后我再将独显部分的描述代码挪过来的时候,发现独显屏蔽生效,挪过来的部分代码如下:
- Name (LTRS, Zero)
- Name (OBFS, Zero)
- Device (PEG0)
- {
- Name (_ADR, 0x00010000) // _ADR: Address
- OperationRegion (PEGR, PCI_Config, 0xC0, 0x30)
- Field (PEGR, DWordAcc, NoLock, Preserve)
- {
- Offset (0x02),
- PSTS, 1,
- Offset (0x2C),
- GENG, 1,
- , 1,
- PMEG, 1
- }
- Device (PEGP)
- {
- Name (_ADR, Zero) // _ADR: Address
- Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
- {
- Return (GPRW (0x09, 0x04))
- }
- }
- }
二、当我再注入核显参数时发现:无论有无独显屏蔽补丁,独显都屏蔽失效;注入的信息是以下蓝色字体:
- Device (IGPU)
- {
- Name (_ADR, 0x00020000) // _ADR: Address
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x0A)
- {
- "AAPL,slot-name",
- Buffer (0x10)
- {
- "PCI Express 3.0"
- },
- "Built-In",
- Buffer (0x03)
- {
- "00"
- },
- "name",
- Buffer (0x22)
- {
- "Intel HD Graphics 4600 Controller"
- },
- "model",
- Buffer (0x17)
- {
- "Intel HD Graphics 4600"
- },
- "device_type",
- Buffer (0x0F)
- {
- "VGA Controller"
- }
- })
- }
- }
三、最后我再注入独显信息的时候发现,无论有无独显屏蔽补丁,独显都能屏蔽,注入的代码如下蓝色字体:
- Device (PEGP)
- {
- Name (_ADR, Zero) // _ADR: Address
- Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
- {
- Return (GPRW (0x09, 0x04))
- }
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x0A)
- {
- "AAPL,slot-name",
- Buffer (0x13)
- {
- "PCI Express 3.0 x4"
- },
- "Built-In",
- Buffer (0x03)
- {
- "00"
- },
- "name",
- Buffer (0x1F)
- {
- "nVIDIA GeForce 840M Controller"
- },
- "model",
- Buffer (0x29)
- {
- "nVIDIA GeForce 840M (Acer) Video Adapter"
- },
- "device_type",
- Buffer (0x10)
- {
- "HDMI Controller"
- }
- })
- }
- }
四、独显屏蔽补丁如下:
- Device (RMD1)
- {
- Name (_HID, "RMD10000") // _HID: Hardware ID
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- If (CondRefOf (\_SB.PCI0.PEG0.PEGP._OFF))
- {
- \_SB.PCI0.PEG0.PEGP._OFF ()
- }
- }
- }
五、效果图:
1、dsdt部分效果图
2、Mac下系统报告效果图:
六、想问问大佬们一下这是什么原理?
另外付上最终dsdt
|