Jump to content

DSDT: trick retail drivers by changing "device-id" (e.g USB)


zhell
 Share

366 posts in this topic

Recommended Posts

Information on my Motherboard is as follows:

Intel DQ45CB (Intel Q45 + ICH10DO)

localhost:~ rx782p$ LSPCI
00:00.0 Host bridge: Intel Corporation Eaglelake DRAM Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation Eaglelake PCI Express Root Port (rev 03)
00:03.0 Communication controller: Intel Corporation Eaglelake HECI Controller (rev 03)
00:03.2 IDE interface: Intel Corporation Eaglelake PT IDER Controller (rev 03)
00:03.3 Serial controller: Intel Corporation Eaglelake Serial KT Controller (rev 03)
00:19.0 Ethernet controller: Intel Corporation 82567LM-3 Gigabit Network Connection (rev 02)
00:1a.0 USB Controller: Intel Corporation ICH10 USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation ICH10 USB UHCI Controller #5 (rev 02)
00:1a.2 USB Controller: Intel Corporation ICH10 USB UHCI Controller #6 (rev 02)
00:1a.7 USB Controller: Intel Corporation ICH10 USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation ICH10 HD Audio Controller (rev 02)
00:1d.0 USB Controller: Intel Corporation ICH10 USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation ICH10 USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation ICH10 USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation ICH10 USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a2)
00:1f.0 ISA bridge: Intel Corporation ICH10 LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation ICH10 6 port SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation ICH10 SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation ICH10 2 port SATA IDE Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G94 [GeForce 9600 GT] (rev a1)
02:01.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 70)

I don't know Machintosh's subsystem-ID (Intel 82801JI)

Therefore I also try DG45ID's subsystem-id add DSDT.

DG45ID have normal ICH10 Device and have subsystem-vendor-id of Intel.

What chose DG45ID is one of the reasons that subsystem-vendor-id was not changed by DSDT.

DQ45CB  82801JD/DO (ICH10 Family) UHCI Controller #1 [8086'3a64] Subsystem Device [8086:1003]
DG45ID  82801JI (ICH10 Family) UHCI Controller #1  [8086'3a34] Subsystem Device [8086:5002]

The sybsystem-id change.

No Patched DSDT

post-53179-1243575073_thumb.png

Patched DSDT(Device ID & Subsystem-Vendor-ID)

post-53179-1243575175_thumb.png

 

but I got this error msg after patched DSDT.

localhost kernel[0]: USBF: 0.605 EHCI controller unable to take control from BIOS

localhost kernel[0]: USBF: 0.605 AppleUSBEHCI[0xad81800]: unable to obtain ownership: 0xe00002be

localhost kernel[0]: USBF: 0.605 AppleUSBEHCI[0xad81800]::UIMInitialize - Error occurred (0xe00002be)

localhost kernel[0]: USBF: 0.607 AppleUSBEHCI: unable to initialize UIM

localhost kernel[0]: USBF: 0.620 AppleUSBEHCI[0xae48000]: unable to obtain ownership: 0xe00002be

localhost kernel[0]: USBF: 0.623 AppleUSBEHCI[0xae48000]::UIMInitialize - Error occurred (0xe00002be)

localhost kernel[0]: USBF: 0.629 AppleUSBEHCI: unable to initialize UIM

 

In the present, Kext of Slice is necessary for EHCI's problem solving of ownership.

I still have the sleep problem, then I'll try various methods(_WAK method on DSDT etc...) to working Slice's kext.

in Energy Saver -Restart Automatically after a Power Failure is checked...

A review of the setting of bios...

This board feels delicate about Power control and Motherboard Supporting AMT and TPM-Based Security.

Thanks all.

 

Edit update: The subsystem-Vendor-IDdoes not matter, I removed moded subsystem-vondor-id form DSDT.

They work only in device ID Mod well.

Link to comment
Share on other sites

Here is my part of USB dsdt for an GA-EP35 DS3 (ICH9 nonraid)

It has 29xx(hex) ICH pci dev id´s.

Also be carefull with that US31 device which is in the middle between that USB devices. Its NOT! an USB or EHCI device, let it stay as it is.

 

I would NOT change orig. device names (USB0 to UHCI1 for examle), because if you do that you have also more work to change all occurences of that in the dsl.

 

So (for less work) let them as they are and only add that device id stuff (that new method) to each of them. (For my knowledge :afro: )

 

mitch_de,

 

I'm not looking to change my USB - just posted it for others since I seem to be working fine with my unmodified DSDT. I would however like to understand the SATA mod. I don't have a SATA section in my DSDT - just DRV devices.

 

Thanks,

SMF

Link to comment
Share on other sites

I wonder if you checked your BIOS settings for something like: BIOS EHCI Hand-off (it should be enabled), or else try this (if you are a chameleon boot user) AKA :

Add <key>USBBusFix<key><string>Yes<string> to the com.apple.Boot.plist

 

p.s. Which version of BIOS are you using? Please note that the latest version (083) was released on 13-5-2009 – with fixes for sleep and USB.

Link to comment
Share on other sites

The device-id is different for each of the six (3a34-3a39).

Like I didn't knew this – I am using a patched kext (.cpp/.h) for almost a year know. I mean what about using those buffer values as arguments for that new Method?

 

I'm also a step up in the game (using two hacks for testing) to our shutdown problem, which Bart86 mentioned a few posts up, but it is far from reliable – I still need to kill Parallels Desktop 4.0.3 processes and unload its kext first.

Link to comment
Share on other sites

I'm interested in a couple of items and would appreciate some advice - for SATA using device id to make ICH9R appear as ICH10 I would appreciate someone posting their DSDT as the snippet in an earlier post isn't complete and my DSDT extracted with the patcher does not have a SATA section.

 

Second I have a couple of errors - one related to USB - that I would like to see if I could fix via DSDT. Here they are -

 

May 30 06:58:33 localhost kernel[0]: ACPI_SMC_PlatformPlugin::getCPU_PSSData - _PSS evaluation failed
May 30 06:58:34 localhost kernel[0]: ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed
May 30 06:58:34 localhost kernel[0]: ACPI_SMC_PlatformPlugin::registerLPCDriver - WARNING - LPC device initialization failed: C-state power management not initialized
May 30 06:58:34 localhost kernel[0]: ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed


May 30 06:58:33 localhost kernel[0]: USBF:	0.281	AppleUSBOHCI[0xac77000]::CheckSleepCapability - controller will be unloaded across sleep
May 30 06:58:33 localhost kernel[0]: USBF:	0.295	AppleUSBOHCI[0xabdd800]::CheckSleepCapability - controller will be unloaded across sleep

 

Help appreciated.

 

Thanks,

SMF

Link to comment
Share on other sites

Like I didn't knew this – I am using a patched kext (.cpp/.h) for almost a year know. I mean what about using those buffer values as arguments for that new Method?

I'm sorry, I did not understand what you meant. Now I think I get it: You would like to add a method similar to DTGP, but one which would take as arguments just the value for the device-id? I think that would be great and make the DSDT.dsl much more readable.

 

I'm also a step up in the game (using two hacks for testing) to our shutdown problem, which Bart86 mentioned a few posts up, but it is far from reliable – I still need to kill Parallels Desktop 4.0.3 processes and unload its kext first.

Are you referring to auto-sleep, i.e. sleep after idle period? Parallels Desktop is a pain. First, I do not see why they need to load their KEXTs at boot time, it makes no sense to me. Do you need to kill the entire Parallels suite (stopping any running VM) or just some background processes?

Regarding the KEXTs, I wonder if we could modify their plist such that they would be automatically unloaded across sleep. Maybe if we removed all power management capabilities? I found an entry on the darwin drivers list about doing this in the source code.

Link to comment
Share on other sites

I wonder if you checked your BIOS settings for something like: BIOS EHCI Hand-off (it should be enabled), or else try this (if you are a chameleon boot user) AKA :
Add <key>USBBusFix<key><string>Yes<string> to the com.apple.Boot.plist

 

p.s. Which version of BIOS are you using? Please note that the latest version (083) was released on 13-5-2009 – with fixes for sleep and USB.

 

Thanks Master Chief.

I used USBBusFIX=Yes without modified DSDT.

Problem of EHCI was fix by the option.

but UHCI was appear as PCI.

When it combines modified DSDT and EHCIacquire=Yes, both EHCI and UHCI work normally ;)

My choice is two ways.

1. Modified DSDT and EHCIacquire=Yes

2. Silice's IOUSBFamiry.kext

 

I udate to BIOS 083(fixes for sleep and USB) from 079.

Sleep problem didn't fixed by new BIOS.

Here is my BIOS setting.

 

USB-Configuration

USB Ports : [Enable]

USB Legacy : [Enable]

 

After Power Failure : [Last State]

Wake on LAN from S5 : [Power On]

ACPI Suspend State : [s3 State]

EIST : [Enable]

Wake System from S5 : [Enable]

 

USB Boot : [Enable]

Boot USB Devices First : [Enable]

USB Mass Strage Emulation Type : [Auto]

 

I will investigate other factors.

Link to comment
Share on other sites

Thanks Master Chief.

I used USBBusFIX=Yes without modified DSDT.

Problem of EHCI was fix by the option.

but UHCI was appear as PCI.

When it combines modified DSDT and EHCIacquire=Yes, both ECHI and UCHI work normally :)

My choice is two ways.

1. Modified DSDT and EHCIacquire=Yes

2. Silice's IOUSBFamiry.kext.....

My motto is: "No more modified kext files" or the more explicit expression "To hell with modified kext files" and thus my personal choice would be option 1 – DSDT and EFI Strings (aka device properties) patching methods give you a much cleaner OS X installation... and this without the fear for upgrade issues.

 

I'm glad that you've got it sorted.

Link to comment
Share on other sites

I'm not on my home computer right now, but I'll try some Airport device id stuff later when I get the chance. :)

 

Also, some people have been able to edit the DSDT/SSDT in order to allow speedstepping to work natively using AppleIntelCPUPM. I've got it working on my system, and hopefully there will be a guide on it soon enough. I think more tests have to be done to make sure it's completely functional and stable.

 

Take care,

 

-Stell

Link to comment
Share on other sites

I removed moded subsystem-vondor-id form DSDT, Because It was meaningless.

They work only in device ID Mod well, Even as for LPC and DRAM Controller, PCI-E Root Port, HD Audio Controller and etc...

(Only USB need EHCIacquire=Yes option in com. apple.boot.plist)

My board is faker 82801JI/82801JIB board now.

 

I try whether various devices work with vanilla Driver by DSDT adding Device ID.

The LAN is still making trial and error.

Thank you for an interesting solution, sorry my terrible English.

Link to comment
Share on other sites

A quick question: is that limited to USB, or can this be done with other devices?

 

In particular, the only devices on an EeePC 1000HE that require patched Apple drivers (as vs. just additional kexts) and thus cause potential issues with each OS update, are the USB-based BT interface and the GMA950 graphics chip set.

 

If instead of patching the GMA950 drivers with the device ID of the chipset used in the EeePC1000HE I could simply use DSDT to patch the ID reported to the OS, and if I could do the same with the Broadcom BT interface, then that would solve a lot of potential issues and would completely eliminate the need to patch drivers...

Link to comment
Share on other sites

All I can say is read this and the one below that.

 

Well, I tried it before I read the posts you referred to. Unfortunately, it doesn't seem to work, although it's obviously not impossible, that I made a mistake in the process of patching the .dsl file, even though it compiled without errors.

 

Anyway, chances are that the device ID is taken from the PCI bus directly, so that didn't work. Too bad.

Link to comment
Share on other sites

Well, I tried it before I read the posts you referred to. Unfortunately, it doesn't seem to work, although it's obviously not impossible, that I made a mistake in the process of patching the .dsl file, even though it compiled without errors.

 

Anyway, chances are that the device ID is taken from the PCI bus directly, so that didn't work. Too bad.

The approach is not specific to USB at all; USB is just one of the most useful fields of application.

If the driver is open source, have a look at the source code. This will tell you what it does and also what the problem is.

Link to comment
Share on other sites

Well I'm learning more as I go. My Gigabyte P35-DQ6 does not have SAT sections it has IDE. Finding this I was able to make my ICH9 appear as an ICH10. I've also changed my USB devices but still seem to have an issue after sleep. After sleep, when I shut down the next restart does not work properly and the system halts. Not sure what's doing that.

 

I do have a question about the "Names" in the DSDT. Does it matter for example if my DSDT has a section labled IDE1 instead of SAT0? System Profiler still shows ICH10 when I inject the device ID. How far are you guys trying to take this to match a MacPro or iMac? (I have a desktop machine) and what are the reasons to choose MacPro over iMac or iMac over MacPro?

 

Thanks for all the help,

SMF

Link to comment
Share on other sites

Well I'm learning more as I go. My Gigabyte P35-DQ6 does not have SAT sections it has IDE. Finding this I was able to make my ICH9 appear as an ICH10. I've also changed my USB devices but still seem to have an issue after sleep. After sleep, when I shut down the next restart does not work properly and the system halts. Not sure what's doing that.

 

I do have a question about the "Names" in the DSDT. Does it matter for example if my DSDT has a section labled IDE1 instead of SAT0? System Profiler still shows ICH10 when I inject the device ID. How far are you guys trying to take this to match a MacPro or iMac? (I have a desktop machine) and what are the reasons to choose MacPro over iMac or iMac over MacPro?

Congratulations on faking ICH10!

Regarding sleep, what was the problem before you faked the device-ids?

On device names, it's just cosmetics. I've seen people recommending to change all occurrences of "AZAL" to "HDEF" to make it easier to enable sound. I found a DSDT for my board that matches a Mac very closely, so I never spent a lot of thought on this.

The model you set in SMBIOS matters much more. You should set it to the model that is closest to your hardware, not closest to your dream machine. I set it to MacPro3,1 for my ICH9-R-based DP35DP mobo. With MacPro4,1 (the model of my dreams...) I get a kernel panic immediately at boot. The model also determines which software updates you receive, so it's good to stick to the reality as close as possible.

Link to comment
Share on other sites

zhell,

 

Thanks for the feedback. Changing the USB device id's didn't change my sleep behavior - it's the same as it always has been. But my USB has always worked so I didn't expect to much different. I would like to figure out the two "AppleUSBOHCI[0xac77000]::CheckSleepCapability - controller will be unloaded across sleep" errors I see (these have been happening since 10.5.6 or 10.5.5). I also need to figure out how to do the SSDT power management fixes for my board so I can get rid of the "ACPI_SMC_PlatformPlugin" errors I see (exact details in post #56 in the thread).

 

I'll take a look at mapping my hardware to the closest Mac model and work the SMBIOS.

 

Thanks,

SMF

Link to comment
Share on other sites

Note: Automatic sleep after an idle period is not enabled by this fix. I don't know if this problem is even related to USB. Users of real Macs report this problem popping up after the 10.5.7 update as well.

 

Bart86 have found a temporary solution for the automatic sleep problem. I can confirm that it works. Tried with a Wii DVD backup.

 

Drfrag

Link to comment
Share on other sites

zhell,

 

Thanks for the feedback. Changing the USB device id's didn't change my sleep behavior - it's the same as it always has been. But my USB has always worked so I didn't expect to much different. I would like to figure out the two "AppleUSBOHCI[0xac77000]::CheckSleepCapability - controller will be unloaded across sleep" errors I see (these have been happening since 10.5.6 or 10.5.5). I also need to figure out how to do the SSDT power management fixes for my board so I can get rid of the "ACPI_SMC_PlatformPlugin" errors I see (exact details in post #56 in the thread).

 

I'll take a look at mapping my hardware to the closest Mac model and work the SMBIOS.

 

Thanks,

SMF

 

you can fix those errors just adding this code to the scope _pr , and if you want to enable speedstep just change your mac model to macpro3,1 or mod the acpi_smc_platformplugin to match your smbios injection, of course EIST and C1E must be enable in bios

 

	External (PDC0)
External (CFGD)

Scope (_PR)
{
	Processor (CPU0, 0x00, 0x00000410, 0x06)
	{
		Method (_CST, 0, NotSerialized)
		{
			If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC0, 0x10
				))))
			{
				Return (Package (0x02)
				{
					One, 
					Package (0x04)
					{
						ResourceTemplate ()
						{
							Register (FFixedHW, 
								0x00,			   // Bit Width
								0x00,			   // Bit Offset
								0x0000000000000000, // Address
								,)
						}, 

						One, 
						0x9D, 
						0x03E8
					}
				})
			}

			If (And (PDC0, 0x0300))
			{
				If (And (CFGD, 0x20))
				{
					Return (Package (0x03)
					{
						0x02, 
						Package (0x04)
						{
							ResourceTemplate ()
							{
								Register (FFixedHW, 
									0x01,			   // Bit Width
									0x02,			   // Bit Offset
									0x0000000000000000, // Address
									,)
							}, 

							One, 
							One, 
							0x03E8
						}, 

						Package (0x04)
						{
							ResourceTemplate ()
							{
								Register (FFixedHW, 
									0x01,			   // Bit Width
									0x02,			   // Bit Offset
									0x0000000000000010, // Address
									,)
							}, 

							0x02, 
							One, 
							0x01F4
						}
					})
				}
			}

			If (And (CFGD, 0x20))
			{
				Return (Package (0x03)
				{
					0x02, 
					Package (0x04)
					{
						ResourceTemplate ()
						{
							Register (FFixedHW, 
								0x01,			   // Bit Width
								0x02,			   // Bit Offset
								0x0000000000000000, // Address
								,)
						}, 

						One, 
						One, 
						0x03E8
					}, 

					Package (0x04)
					{
						ResourceTemplate ()
						{
							Register (SystemIO, 
								0x08,			   // Bit Width
								0x00,			   // Bit Offset
								0x000000000000000C, // Address
								,)
						}, 

						0x02, 
						One, 
						0x01F4
					}
				})
			}

			Return (Package (0x02)
			{
				One, 
				Package (0x04)
				{
					ResourceTemplate ()
					{
						Register (FFixedHW, 
							0x01,			   // Bit Width
							0x02,			   // Bit Offset
							0x0000000000000000, // Address
							,)
					}, 

					One, 
					One, 
					0x03E8
				}
			})
		}
	}

   Processor (CPU1, 0x01, 0x00000410, 0x06)
	{
		Method (_CST, 0, NotSerialized)
		{
			Return (^^CPU0._CST ())
		}
	}

	Processor (CPU2, 0x02, 0x00000000, 0x00)
	{
		Method (_CST, 0, NotSerialized)
		{
			Return (^^CPU0._CST ())
		}
	}

	Processor (CPU3, 0x03, 0x00000410, 0x06)
	{
		Method (_CST, 0, NotSerialized)
		{
			Return (^^CPU0._CST ())
		}
	}
}

Link to comment
Share on other sites

roisoft,

 

Once again giving me good input for my DSDT. I'll put it in and report back later today or tomorrow. Right now I'm using SMBIOSEFI but thinking about using injection via Chameleon. Do you have a preferred method?

 

I'll have to study what you've given me and see if I can learn more! I did wonder why you've only input code to CPU0? I have a core 2 duo at present so would think you would put code for both CPU0 and CPU1.

 

UPDATE: Did a quick compile and had a few errors -

 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright © 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt_new_usb ohci fix.dsl   160:             Method (_CST, 0, NotSerialized)
Warning  1080 -     Reserved method must return a value ^  (_CST)

dsdt_new_usb ohci fix.dsl   162:                     Return (^^.CPU0_CST ())
Error    4095 -                                                ^ Invalid character (0x2E), expecting ASL keyword or name

dsdt_new_usb ohci fix.dsl   162:                     Return (^^.CPU0_CST ())
Error    4095 -                                                    ^ syntax error, unexpected PARSEOP_NAMESEG, expecting ')'

ASL Input:  dsdt_new_usb ohci fix.dsl - 6040 lines, 202756 bytes, 2405 keywords
Compilation complete. 2 Errors, 1 Warnings, 0 Remarks, 31 Optimizations

 

I'll look at it but have attached my full dsdt in case you get a chance to look at it.

 

 

 

 

Thanks again,

SMF

dsdt_new_usb_ohci_fix.dsl.txt

Link to comment
Share on other sites

you have a syntax error, replace

 

Return (^^.CPU0_CST ())

 

by

 

Return (^^CPU0._CST ())

 

 

dsdt.dsl.zip

 

roisoft,

 

Thanks for the fix. Compiled fine and fixed the _CST errors but I've still got the OHCI errors and the PSS error.

 

Jun  8 19:59:10 localhost kernel[0]: USBF:	0.258	AppleUSBOHCI[0xac53800]::CheckSleepCapability - controller will be unloaded across sleep
Jun  8 19:59:10 localhost kernel[0]: USBF:	0.272	AppleUSBOHCI[0xac77000]::CheckSleepCapability - controller will be unloaded across sleep

Jun  8 19:59:12 Stephen-Falatkos-Computer-2 kernel[0]: ACPI_SMC_PlatformPlugin::getCPU_PSSData - _PSS evaluation failed

 

SMF

Link to comment
Share on other sites

You can to use a linux LiveCD to dump your P-States. Boot using a livecd open a terminal and type dmesg |grep ACPI , you will see something like this

 

[    0.000000]  BIOS-e820: 00000000bf5e0000 - 00000000bf5e3000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000bf5e3000 - 00000000bf5f0000 (ACPI data)
[    0.000000]  modified: 00000000bf5e0000 - 00000000bf5e3000 (ACPI NVS)
[    0.000000]  modified: 00000000bf5e3000 - 00000000bf5f0000 (ACPI data)
[    0.000000] ACPI: RSDP 000F6ED0, 0014 (r0 GBT   )
[    0.000000] ACPI: RSDT BF5E3040, 0038 (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
[    0.000000] ACPI: FACP BF5E30C0, 0074 (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
[    0.000000] ACPI: DSDT BF5E3180, 5620 (r1 GBT    GBTUACPI     1000 MSFT  100000C)
[    0.000000] ACPI: FACS BF5E0000, 0040
[    0.000000] ACPI: HPET BF5E8900, 0038 (r1 GBT    GBTUACPI 42302E31 GBTU       98)
[    0.000000] ACPI: MCFG BF5E8980, 003C (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
[    0.000000] ACPI: APIC BF5E8800, 0084 (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
[    0.000000] ACPI: SSDT BF5E9020, 03AB (r1  PmRef    CpuPm     3000 INTL 20040311)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.018870] ACPI: Core revision 20080926
[    0.020940] ACPI: Checking initramfs for custom DSDT
[    0.528383] ACPI: bus type pci registered
[    0.529357] ACPI: EC: Look up EC in DSDT
[    0.539115] ACPI: Interpreter enabled
[    0.539123] ACPI: (supports S0 S3 S4 S5)
[    0.539147] ACPI: Using IOAPIC for interrupt routing
[    0.546137] ACPI: No dock devices found.
[    0.546154] ACPI: PCI Root Bridge [PCI0] (0000:00)
[    0.547314] pci 0000:00:1f.0: quirk: region 0400-047f claimed by ICH6 ACPI/GPIO/TCO
[    0.548422] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.548784] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT]
[    0.548913] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX4._PRT]
[    0.549040] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX5._PRT]
[    0.549161] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
[    0.571062] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 11 12 14 *15)
[    0.571209] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
[    0.571353] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.571497] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.571641] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
[    0.571786] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 *6 7 9 10 11 12 14 15)
[    0.571928] ACPI: PCI Interrupt Link [LNK0] (IRQs 3 4 5 6 7 9 10 11 12 *14 15)
[    0.572077] ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
[    0.572254] ACPI: WMI: Mapper loaded
[    0.572319] PCI: Using ACPI for IRQ routing
[    0.592037] pnp: PnP ACPI init
[    0.592053] ACPI: bus type pnp registered
[    0.596017] pnp: PnP ACPI: found 14 devices
[    0.596020] ACPI: ACPI bus type pnp unregistered
[    0.596025] PnPBIOS: Disabled by ACPI PNP
[    1.439004] ACPI: Power Button (FF) [PWRF]
[    1.439059] ACPI: Power Button (CM) [PWRB]
[    1.439561] ACPI: SSDT BF5E8A00, 022A (r1  PmRef  Cpu0Ist     3000 INTL 20040311)
[    1.439884] processor ACPI_CPU:00: registered as cooling_device0
[    1.439889] ACPI: Processor [CPU0] (supports 8 throttling states)
[    1.440105] ACPI: SSDT BF5E8EC0, 0152 (r1  PmRef  Cpu1Ist     3000 INTL 20040311)
[    1.440408] processor ACPI_CPU:01: registered as cooling_device1
[    1.440413] ACPI: Processor [CPU1] (supports 8 throttling states)
[  101.579957] parport_pc 00:09: reported by Plug and Play ACPI

 

take a look at ACPI: SSDT BF5E8A00, 022A (r1 PmRef Cpu0Ist 3000 INTL 20040311) and ACPI: SSDT BF5E8EC0, 0152 (r1 PmRef Cpu1Ist 3000 INTL 20040311) (maybe you will get more ssdt entries),

 

download ACPIDUMP and still in the terminal type

 

acpidump -a 0xBF5E8A00 -l 0x022a > cpu0ist (repeat this for all the ssdt entries)

acpidump -a 0xBF5E8EC0 -l 0x0152 > cpu1ist

now use iasl to decompile all the files dumped with acpidump (iasl -d cpu0ist etc...) and you will get the .dsl files

 

i.e.

/*
* Intel ACPI Component Architecture
* AML Disassembler version 20081031
*
* Disassembly of cpu0ist, Sat Jun  6 00:22:32 2009
*
*
* Original Table Header:
*     Signature        "SSDT"
*     Length           0x0000022A (554)
*     Revision         0x01
*     Checksum         0x81
*     OEM ID           "PmRef"
*     OEM Table ID     "Cpu0Ist"
*     OEM Revision     0x00003000 (12288)
*     Compiler ID      "INTL"
*     Compiler Version 0x20040311 (537133841)
*/
DefinitionBlock ("cpu0ist.aml", "SSDT", 1, "PmRef", "Cpu0Ist", 0x00003000)
{
   External (CFGD)
   External (\_PR_.CPU0, DeviceObj)

   Scope (\_PR.CPU0)
   {
       Method (_PPC, 0, NotSerialized)
       {
           Return (0x00)
       }

       Method (_PCT, 0, NotSerialized)
       {
           If (LEqual (And (CFGD, 0x00060000), 0x00020000))
           {
               Return (Package (0x02)
               {
                   ResourceTemplate ()
                   {
                       Register (SystemIO, 
                           0x10,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000880, // Address
                           ,)
                   }, 

                   ResourceTemplate ()
                   {
                       Register (SystemIO, 
                           0x10,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000882, // Address
                           ,)
                   }
               })
           }

           If (LEqual (And (CFGD, 0x00060000), 0x00040000))
           {
               Return (Package (0x02)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x00,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }, 

                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x00,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }
               })
           }

           If (LOr (And (CFGD, 0x4000), And (CFGD, 0x00010000)))
           {
               Return (Package (0x02)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x00,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }, 

                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x00,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }
               })
           }

           Return (Package (0x02)
           {
               ResourceTemplate ()
               {
                   Register (SystemIO, 
                       0x10,               // Bit Width
                       0x00,               // Bit Offset
                       0x0000000000000880, // Address
                       ,)
               }, 

               ResourceTemplate ()
               {
                   Register (SystemIO, 
                       0x10,               // Bit Width
                       0x00,               // Bit Offset
                       0x0000000000000882, // Address
                       ,)
               }
           })
       }

       Method (_PSS, 0, NotSerialized)
       {
           If (LEqual (And (CFGD, 0x00060000), 0x00020000))
           {
               Return (SPSS)
           }

           If (LEqual (And (CFGD, 0x00060000), 0x00040000))
           {
               Return (NPSS)
           }

           If (LOr (And (CFGD, 0x4000), And (CFGD, 0x00010000)))
           {
               Return (NPSS)
           }

           Return (SPSS)
       }

       Name (SPSS, Package (0x02)
       {
           Package (0x06)
           {
               0x00000640, 
               0x000157C0, 
               0x000000A0, 
               0x0000000A, 
               0x00000036, 
               0x00000000
           }, 

           Package (0x06)
           {
               0x000004B0, 
               0x000109A0, 
               0x000000A0, 
               0x0000000A, 
               0x00000136, 
               0x00000001
           }
       })
       Name (NPSS, Package (0x02)
       {
           Package (0x06)
           {
               0x00000640, 
               0x000157C0, 
               0x0000000A, 
               0x0000000A, 
               0x00000823, 
               0x00000823
           }, 

           Package (0x06)
           {
               0x000004B0, 
               0x000109A0, 
               0x0000000A, 
               0x0000000A, 
               0x0000061D, 
               0x0000061D
           }
       })
   }
}

Link to comment
Share on other sites

Hi roisoft,

how or where do you inject those ssdt dumps into dsdt? Is it even possible with the original chameleon 2 ?

And what about those external stuff?

DefinitionBlock ("SSDT/cst1.aml", "SSDT", 1, "AMI", "CPU1PM", 0x00000001)
{
External (NCPU)
External (CFGD)
External (TYPE)
External (\_PR_.CPU1, DeviceObj)

 

thx

Link to comment
Share on other sites

 Share

×
×
  • Create New...