Jump to content

Firewire issues


kdawg
 Share

99 posts in this topic

Recommended Posts

I've done a lot of test in reducing my dsdt and i found that my firewire now "works" with otplug after sleep also without any code in dsdt, i wasn't avare of this thing because when i first installed my hack ii wasn't able to sleep and so I was thinking that the firewire just don't work at all.

Now i can use it without error on boot and with hotplug working only with some device and others after sleep, using this code:

 

I'll try your new suggestion to add _PWR and post the results

EDIT:sleep not working after some test...

To have sleep full working my actual dsdt is this:

			Device (PCIB) {Name (_ADR, 0x001E0000)
			Name (_PRT, Package (0x09) {
				Package (0x04) {0x0001FFFF,Zero,Zero,0x11},
				Package (0x04) {0x0001FFFF, One,Zero,0x12}, 
				Package (0x04) {0x0001FFFF,0x02,Zero,0x13}, 
				Package (0x04) {0x0001FFFF,0x03,Zero,0x10}, 
				Package (0x04) {0x0002FFFF,Zero,Zero,0x12}, 
				Package (0x04) {0x0002FFFF, One,Zero,0x13}, 
				Package (0x04) {0x0002FFFF,0x02,Zero,0x10}, 
				Package (0x04) {0x0002FFFF,0x03,Zero,0x11}, 
				Package (0x04) {0x0003FFFF,Zero,Zero,0x10} })
			Name (_PRW, Package (0x02) {0x0B,0x04})
//added firewire device / periferica firewire aggiunta
			Device (FRWR){Name (_ADR, 0x05030000)
//system doze instead of sleep					Name (_SUN, 0x0A)
				Name (_GPE, 0x0B) 
//					Name (_PRW, Package (0x02) {0x0B,0x04})	   //added for hotplug/sleep support (in test) seems not working
				Method (_DSM, 4, NotSerialized) {Store (Package (0x08) {
						"built-in",Buffer (One) {0x00}, 
//							"device-id",Buffer (0x04) {0x44, 0x30}, 
//							"vendor-id",Buffer (0x04) {0x06, 0x11}, 
						"device_type",Buffer (0x09) {"Firewire"}, 
						"name",Buffer (0x13) {"VIA VT6306 Fire II"},
						"fwports",Buffer (0x04) {0x02, 0x00, 0x00, 0x00} }, Local0)
					MCDP (Arg2, RefOf (Local0)) Return (Local0) } } }

and here the part for \_GPE:

		Scope (\_GPE) {Name (_PRW, Package (0x02) {0x09,0x03})
		Method (_L09, 0, NotSerialized) {
			Notify (\_SB.PCI0.PEGP, 0x02) Notify (\_SB.PCI0.P0P5, 0x02)
			Notify (\_SB.PCI0.P0P6, 0x02) Notify (\_SB.PCI0.P0P7, 0x02)
			Notify (\_SB.PCI0.P0P8, 0x02) Notify (\_SB.PCI0.RP06, 0x02)
			Notify (\_SB.PCI0.P0P4, 0x02) Notify (\_SB.PWRB, 0x02) }
//			Method (_L0A, 0, NotSerialized) {
//				 Notify (\_SB.PCI0.PCIB.FRWR, 0x02) Notify (\_SB.PWRB, 0x02)}
		Method (_L0B, 0, NotSerialized) {
			   			Notify (\_SB.PCI0.PCIB, 0x02) Notify (\_SB.PWRB, 0x02)}
					Method (_L03, 0, NotSerialized) {
			   			 Notify (\_SB.PCI0.UHC0, 0x02) Notify (\_SB.PWRB, 0x02)}
		Method (_L04, 0, NotSerialized) {
			   			 Notify (\_SB.PCI0.UHC1, 0x02) Notify (\_SB.PWRB, 0x02)}
		Method (_L0C, 0, NotSerialized) {
			   			 Notify (\_SB.PCI0.UHC2, 0x02) Notify (\_SB.PWRB, 0x02)}
		Method (_L0E, 0, NotSerialized) {
			   			 Notify (\_SB.PCI0.UHC3, 0x02) Notify (\_SB.PWRB, 0x02)}
		Method (_L05, 0, NotSerialized) {
			   			 Notify (\_SB.PCI0.UHC4, 0x02) Notify (\_SB.PWRB, 0x02)}
		Method (_L20, 0, NotSerialized) {
			   			 Notify (\_SB.PCI0.UHC5, 0x02) Notify (\_SB.PWRB, 0x02)} }
	Device (PWRB) {Name (_CID, EisaId ("PNP0C0C")) 
			   		Name (_UID, 0xAA) Name (_STA, 0x0B)} }

 

this is the config i actually can use to avoid sleep problem and firewire error at boot, if use _SUN i have this error in kernel log and a not complete stop (fan still on) but it can wake up ang it's still working:

kernel[0]: System sleep prevented by FRWR
kernel[0]: System Doze

Link to comment
Share on other sites

Mate, I know for fact that adding a value to (_SUN) is to actually tell the mac/hack the PCI slot of the device... doesn't work for this firewire device, I am afraid. I only used it for the ethernet (GIGE) and graphics (GFX0) devices (PCI Slot 0x01 and 0x02, respectively). I was curious as to why you included it in the first place; glad to know you got it out! It seems you're giving your (_PRW) value in your firewire the callback to the mother device (PCIB) so I am happy this works for you!

Link to comment
Share on other sites

I was curious as to why you included it in the first place;

Just to have it listed under PCI device in system profiler :D

 

For me now it works good only with some device like an external HD wallpowered, with camcorder or another HD 2,5" buspowered i need to make the sleep trick to use them.

 

I've noticed that when i have problem in mounting a device the:

 

Firewire Generation ID

 

in IOReg became -1

 

when all is ok it change every device connection.

 

Could this be related?

Link to comment
Share on other sites

  • 4 months later...

hi MacKonsti

Im trying to fix the frwr in my d55wb mobo. Currently the power conservation is fixed (thanks to your notes).

And now I realized that I have lost sleep with this.

About the PWRB method I have this:

Screen%20shot%202010-06-29%20at%209.57.33%20PM.png

 

Note that _SB.SLPB is your _SB.PWRB. With PWRB I cannot complie. I saw that the rest of the upper methods are using SLPB so I gave it a try and compiled.

 

However, I cannot sleep (auto sleep and manual sleep).

http://dl.dropbox.com/u/363153/dsdt.dsl

 

Thanks for any hint.

Link to comment
Share on other sites

  • 2 weeks later...
UPDATE: this is in the wrong spot, sorry. Please move to appropriate location or delete.

 

It occurred to me people may be having firewire problems with their Gigabyte boards.

 

FireWire runtime power conservation disabled. (2)

 

This is how to fix that.

 

		Method (_L1A, 0, NotSerialized) // <-- Added for firewire
	{
		Notify (\_SB.PCI0.PCIB.FRWR, 0x00)
		Notify (\_SB.PWRB, 0x02)
	}

 

Within the Device (PCIB) I added another device:

				Device (FRWR) // <--Firewire (check to be sure the _GPE value is OK)
			{
				Name (_ADR, 0x00070000)
				Name (_GPE, 0x1A)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x02)
						{
							"fwhub", 
							Buffer (0x04)
							{
								0x00, 0x00, 0x00, 0x00
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}

 

Let me know what kind of results people get.

 

dsdt_GA_EP45_UD3P.dsl.zip

 

 

Hello...

 

I have P5K (Vanilla). Can't seem to find the proper location for the fix. Can you help me.

 

RALS2007.aml.zip

 

Thanks

Link to comment
Share on other sites

It was explained earlier in the thread.

 

Use LSPCI to find the hardware address of the Firewire device, then locate that address in your DSDT - see post #31.

 

You might have to add it under the main PCI Bus device (PCIB) if there is no separate Firewire device in your DSDT already. This was also discussed earlier in the thread.

 

This thread is a DSDT goldmine for ASUS boards:

http://www.insanelymac.com/forum/index.php...t&p=1280888

 

Also try to find user Phoenix Wright's DSDT somewhere around here, it's for P5Q-E but you can probably use his Firewire code with little or no modification.

Link to comment
Share on other sites

i think i hit gold with this SD-pex30009 in RP03 in a Gigabyte EP45T-UD3LR

added GPE 1A (aka 19 in non hex  .. doh i need to corrct FWBR i put FRBR OOPS ..
i found someones ioreg in a real mac .. or VM.. for this same card and it looks good  )
=============================================================
RP03.FWBR, 0x00)
RP03.FWBR.FRWR, 0x00)// for the 800 speed bridge
=============================================================
           Device (RP03)
           {
               Name (_ADR, 0x001C0003)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC3, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKC, 
                       Zero
                   }
               })
               Name (API3, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x12
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC3)
                   }
                   Else
                   {
                       Return (API3)
                   }
               }

               Device (FRBR)
               {
                   Name (_ADR, 0x03000000)
                   Name (_GPE, 0x19)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x04)
                           {
                               "fwhub", 
                               Buffer (One)
                               {
                                   0x00
                               }, 

                               "built-in", 
                               Buffer (One)
                               {
                                   0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }

                   Device (FRWR)
                   {
                       Name (_ADR, 0x04000000)
                       Name (_GPE, 0x19)
                       Name (_SUN, 0x03)
                       Method (_DSM, 4, NotSerialized)
                       {
                           Store (Package (0x06)
                               {
                                   "model", 
                                   Buffer (0x0C)
                                   {
                                       "TI XIO2213 "
                                   }, 

                                   "fwhub", 
                                   Buffer (0x04)
                                   {
                                       0x00, 0x00, 0x00, 0x00
                                   }, 

                                   "built-in", 
                                   Buffer (One)
                                   {
                                       0x00
                                   }
                               }, Local0)
                           DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                           Return (Local0)
                       }
                   Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x1A, // Callback to new (_GPE) Method (_L1A)
0x05
})
}
}

           Device(BLAH)Some device blah blah..

 

testing as i type.. thanks guys.

 

Edit: seems it says 800 speed. . but camera canon hv20 is not detected in the 400 port.

changing sun 03 to FWBR now called FRWR on 0x03000000

instead of the 800 chipset on 0x00400000

its backwards.! in windows it shows its using the 0x04000000

but i read this and its same issue i have.

http://www.insanelymac.com/forum/index.php...st&p=841860

 

so im exchanging at newegg the card i have for that SD-NEC-4F and its cheaper.

EDIT: 11-11-2010 the above code didnt quite work right for me, but was close.

ended up getting $15 LaCie 130820 TI chipset and it works with pci slot 2 ( slot 1 might work but i had SUN 0x03 then i changed ) in EP45T-UD3LR. well works with dsdt code.

in HUB0.FRWR after _PRT section (see below)

P.S. dont forget to add _GPE section call way up in dsdt :(

example of mine

Method (_L1A, 0, NotSerialized)

{

Notify (\_SB.PCI0.HUB0.FRWR, Zero)

Notify (\_SB.PWRB, 0x02)

}

 

               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PICM)
                   }
                   Else
                   {
                       Return (APIC)
                   }
               }

               Device (FRWR) //code starts here*************
               {
                   Name (_ADR, 0x04000000)
                   Name (_GPE, 0x1A)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x04)
                           {
                               "fwhub", 
                               Buffer (0x03)
                               {
                                   0x00, 0x00, 0x00
                               }, 

                               "built-in", 
                               Buffer (One)
                               {
                                   0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               } // code ends here ********************

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x0B, 
                       0x05
                   })
               }
           }

p.s. the Name (_ADR, 0x04000000) u can find it in the first post screen of pc. mines 4. for firewire device in slot 2 pci.

 

i also added the hpet fix with the 4 irq's

Link to comment
Share on other sites

  • 1 month later...

Hi, can anyone help me, please.

 

Kernel.log:

             Aug 25 16:32:31 localhost kernel[0]: npvhash=4095
               Aug 25 16:32:31 localhost kernel[0]: PAE enabled
               Aug 25 16:32:31 localhost kernel[0]: 64 bit mode enabled
               Aug 25 16:32:31 localhost kernel[0]: Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386
               Aug 25 16:32:31 localhost kernel[0]: vm_page_bootstrap: 512768 free pages and 11520 wired pages
               Aug 25 16:32:31 localhost kernel[0]: standard timeslicing quantum is 10000 us
               Aug 25 16:32:31 localhost kernel[0]: mig_table_max_displ = 73
               Aug 25 16:32:31 localhost kernel[0]: [sleepEnabler] Registering PowerManagement dispatch table...
               Aug 25 16:32:31 localhost kernel[0]: [sleepEnabler] in the event of a kernel panic, please use pmVersion...
               Aug 25 16:32:31 localhost kernel[0]: [sleepEnabler] Calling pmInitComplete()...
               Aug 25 16:32:31 localhost kernel[0]: NullCPUPowerManagement::init: properties=0x3d05a80
               Aug 25 16:32:31 localhost kernel[0]: NullCPUPowerManagement::start
               Aug 25 16:32:31 localhost kernel[0]: AppleACPICPU: ProcessorId=1 LocalApicId=0 Enabled
               Aug 25 16:32:31 localhost kernel[0]: AppleACPICPU: ProcessorId=2 LocalApicId=1 Enabled
               Aug 25 16:32:31 localhost kernel[0]: AppleACPICPU: ProcessorId=3 LocalApicId=130 Disabled
               Aug 25 16:32:31 localhost kernel[0]: AppleACPICPU: ProcessorId=4 LocalApicId=131 Disabled
               Aug 25 16:32:31 localhost kernel[0]: calling mpo_policy_init for Quarantine
               Aug 25 16:32:31 localhost kernel[0]: Security policy loaded: Quarantine policy (Quarantine)
               Aug 25 16:32:31 localhost kernel[0]: calling mpo_policy_init for Sandbox
               Aug 25 16:32:31 localhost kernel[0]: Security policy loaded: Seatbelt sandbox policy (Sandbox)
               Aug 25 16:32:31 localhost kernel[0]: calling mpo_policy_init for TMSafetyNet
               Aug 25 16:32:31 localhost kernel[0]: Security policy loaded: Safety net for Time Machine (TMSafetyNet)
               Aug 25 16:32:31 localhost kernel[0]: Copyright © 1982, 1986, 1989, 1991, 1993
               Aug 25 16:32:31 localhost kernel[0]: The Regents of the University of California. All rights reserved.
               Aug 25 16:32:31 localhost kernel[0]: MAC Framework successfully initialized
               Aug 25 16:32:31 localhost kernel[0]: using 10485 buffer headers and 4096 cluster IO buffer headers
               Aug 25 16:32:31 localhost kernel[0]: IOAPIC: Version 0x20 Vectors 64:87
               Aug 25 16:32:31 localhost kernel[0]: ACPI: System State [s0 S3 S4 S5] (S3)
               Aug 25 16:32:31 localhost kernel[0]: RTC: Only single RAM bank (128 bytes)
               Aug 25 16:32:31 localhost kernel[0]: netkas presents fakesmc, a kext which emulates smc devicembinit: done (64 MB memory set for mbuf pool)
               Aug 25 16:32:31 localhost kernel[0]: From path: "uuid", 
               Aug 25 16:32:31 localhost kernel[0]: Waiting for boot volume with UUID D8EF33D8-F29A-36D9-9564-C7806068DACF
               Aug 25 16:32:31 localhost kernel[0]: Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>
               Aug 25 16:32:31 localhost kernel[0]: com.apple.AppleFSCompressionTypeZlib kmod start
               Aug 25 16:32:31 localhost kernel[0]: com.apple.AppleFSCompressionTypeZlib load succeeded
               Aug 25 16:32:31 localhost kernel[0]: FireWire runtime power conservation disabled. (2)
               Aug 25 16:32:31 localhost kernel[0]: Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IDE1@1F,2/AppleIntelPIIXATARoot/CHN0@0/AppleIntelICHxSATA/ATADeviceNub@0/AppleATADiskDriver/IOATABlockStorageDevice/IOBlockStorageDriver/MAXTOR STM3160215AS MAXTOR STM3160215AS/IOGUIDPartitionScheme/OSX86 Snow@2
               Aug 25 16:32:31 localhost kernel[0]: BSD root: disk0s2, major 14, minor 4
               Aug 25 16:32:31 localhost kernel[0]: FireWire (OHCI) VendorID 1033 ID f2 PCI now active, GUID 00004c0100004096; max speed s400.
               Aug 25 16:32:31 localhost kernel[0]: USBMSC Identifier (non-unique): P01070225080640 0x152e 0x2507 0x0
               Aug 25 16:32:31 localhost kernel[0]: USBMSC Identifier (non-unique): 080715102655 0x424 0x2228 0x539
               Aug 25 16:32:31 localhost kernel[0]: Cannot get audit control port
               Aug 25 16:32:31 localhost kernel[0]: Warning: audit space low (< 5% free)on audit log file-system
               Aug 25 16:32:32 localhost kernel[0]: systemShutdown false
               Aug 25 16:32:34 Popeye-Rocks-Hackintosh kernel[0]: NVDANV50HAL loaded and registered.
               Aug 25 16:32:34 Popeye-Rocks-Hackintosh kernel[0]: Previous Shutdown Cause: 0
               Aug 25 16:32:39 Popeye-Rocks-Hackintosh kernel[0]: Warning: audit space low (< 5% free)on audit log file-system
               Aug 25 16:32:42 Popeye-Rocks-Hackintosh kernel[0]: IPv6 packet filtering initialized, default to accept, logging disabled
               Aug 25 16:32:43 Popeye-Rocks-Hackintosh kernel[0]: FakeSMC: key info not found MSDS, length - 6
               Aug 25 16:32:43 Popeye-Rocks-Hackintosh kernel[0]: Waiting for DSMOS...
               Aug 25 16:32:54 Popeye-Rocks-Hackintosh kernel[0]: Warning - kext com.apple.iokit.CHUDKernLib has immediate dependencies on both com.apple.kernel* and com.apple.kpi.* components; use only one style.
               Aug 25 16:32:54 Popeye-Rocks-Hackintosh kernel[0]: DSMOS has arrived
               Aug 25 16:32:54 Popeye-Rocks-Hackintosh kernel[0]: AttansicL2Ethernet: Ethernet address 00:1e:8c:14:57:40
               Aug 25 16:32:59 Popeye-Rocks-Hackintosh kernel[0]: ACPI_SMC_PlatformPlugin::start - waitForService(resourceMatching(AppleIntelCPUPowerManagement) timed out
               Aug 25 16:32:59 Popeye-Rocks-Hackintosh kernel[0]: MacFUSE: starting (version 2.0.3, Dec 19 2008, 09:57:57)
               Aug 25 16:33:09 Popeye-Rocks-Hackintosh kernel[0]: Warning: audit space low (< 5% free)on audit log file-system
               Aug 25 16:33:39: --- last message repeated 2 times ---
               Aug 25 16:36:45 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x713f380 done, status e00002d6
               Aug 25 16:36:46 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x4052f00 done, status e00002d6
               Aug 25 16:36:55: --- last message repeated 15 times ---
               Aug 25 16:36:55 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x4796180 done, status e00002d6
               Aug 25 16:37:01: --- last message repeated 6 times ---
               Aug 25 16:36:58 Popeye-Rocks-Hackintosh kernel[0]: AppleFWOHCI_AsyncTransmit::allocateCommandElement - no free elements
               Aug 25 16:36:58 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x4796180 done, status e00002be
               Aug 25 16:37:13 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x4066680 done, status e00002d6
               Aug 25 16:37:25: --- last message repeated 23 times ---
               Aug 25 16:37:25 Popeye-Rocks-Hackintosh kernel[0]: AppleFWOHCI_AsyncTransmit::allocateCommandElement - no free elements
               Aug 25 16:37:25 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x4066680 done, status e00002be
               Aug 25 16:37:34 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x456ba00 done, status e00002d6
               Aug 25 16:37:37: --- last message repeated 1 time ---
               Aug 25 16:37:37 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x63a6f80 done, status e00002d6
               Aug 25 16:37:45: --- last message repeated 9 times ---
               Aug 25 16:37:45 Popeye-Rocks-Hackintosh kernel[0]: AppleFWOHCI_AsyncTransmit::allocateCommandElement - no free elements
               Aug 25 16:37:45 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x63a6f80 done, status e00002be
               Aug 25 16:40:01 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x4650280 done, status e00002d6
               Aug 25 16:40:09: --- last message repeated 9 times ---
               Aug 25 16:40:09 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x6b3f680 done, status e00002d6
               Aug 25 16:40:12: --- last message repeated 1 time ---
               Aug 25 16:40:11 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x6c08500 done, status e00002d6
               Aug 25 16:40:12 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x479b480 done, status e00002d6
               Aug 25 16:40:20 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x451dc80 done, status e00002d6
               Aug 25 16:40:20 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x451dc80 done, status e00002d6
               Aug 25 16:40:20 Popeye-Rocks-Hackintosh kernel[0]: AppleFWOHCI_AsyncTransmit::allocateCommandElement - no free elements
               Aug 25 16:40:20 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x451dc80 done, status e00002be
               Aug 25 16:42:02 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x7119100 done, status e00002d6
               Aug 25 16:42:08: --- last message repeated 9 times ---
               Aug 25 16:42:08 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x6d62b80 done, status e00002d6
               Aug 25 16:42:15: --- last message repeated 13 times ---
               Aug 25 16:42:15 Popeye-Rocks-Hackintosh kernel[0]: AppleFWOHCI_AsyncTransmit::allocateCommandElement - no free elements
               Aug 25 16:42:15 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x6d62b80 done, status e00002be
               Aug 25 16:42:48 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x6d62b80 done, status e0008020
               Aug 25 16:42:48 Popeye-Rocks-Hackintosh kernel[0]: Write for 0x6d62b80 done, status e00002d7

 

lspci:

             00:00.0 Host bridge [0600]: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub [8086:2770] (rev 02)
               00:01.0 PCI bridge [0604]: Intel Corporation 82945G/GZ/P/PL PCI Express Root Port [8086:2771] (rev 02)
               00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 01)
               00:1c.0 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 [8086:27d0] (rev 01)
               00:1c.1 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 [8086:27d2] (rev 01)
               00:1d.0 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 01)
               00:1d.1 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 [8086:27c9] (rev 01)
               00:1d.2 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 [8086:27ca] (rev 01)
               00:1d.3 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 [8086:27cb] (rev 01)
               00:1d.7 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller [8086:27cc] (rev 01)
               00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev e1)
               00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01)
               00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01)
               00:1f.2 IDE interface [0101]: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller [8086:27c0] (rev 01)
               00:1f.3 SMBus [0c05]: Intel Corporation 82801G (ICH7 Family) SMBus Controller [8086:27da] (rev 01)
               02:00.0 Ethernet controller [0200]: Attansic Technology Corp. L2 100 Mbit Ethernet Adapter [1969:2048] (rev a0)
               03:00.0 PCI bridge [0604]: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge [10b5:8112] (rev aa)
               04:00.0 FireWire (IEEE 1394) [0c00]: NEC Corporation uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr [1033:00f2] (rev 01)
               05:00.0 VGA compatible controller [0300]: nVidia Corporation Unknown device [10de:05e2] (rev a1)

My aml file & ioreg.

dsdt.dsl.zip

Popeye_Rock___.ioreg.zip

 

Tryed this metod editing aml, but if I add them lines and compile dsdt finish with error - Device DTGP not exist

 

Thanks

 

This is what done:

Device (P0P9)
                  {
                      Name (_ADR, 0x001C0000)
                      Method (_PRW, 0, NotSerialized)
                      {
                          Return (GPRW (0x09, 0x04))
                      }

                      Method (_PRT, 0, NotSerialized)
                      {
                          If (PICM)
                          {
                              Return (AR09)
                          }

                          Return (PR09)
                      }

                      Device (FRWR) // FireWire (IEEE 1394) [0c00]: NEC Corporation uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr [1033:00f2] (rev 01)
                      {
                          Name (_ADR, 0x04000000) // My firewire address reported by 'lspci -n'
                          Name (_GPE, 0x09) // Callback to (_GPE) Method (_L09) for device owning firewire (P0P9)

                          Method (_DSM, 4, NotSerialized)
                          {
                              Store (Package (0x06)
                              {
                                  "built-in",
                                  Buffer (0x01)
                                  {
                                      Zero
                                  },
                                  "fwhub",
                                  Buffer (0x04)
                                  {
                                      0x00, 0x00, 0x00, 0x00
                                  },
                                  "device-id",
                                  Buffer (0x04)
                                  {
                                      0xf2, 0x00, 0x00, 0x00 // Board device ID is [00f2] reported by 'lspci -n'
                                  }
                              }, Local0)
                              DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                              Return (Local0)
                          }

                          Method (_PRW, 0, NotSerialized)
                          {
                              Return (Package (0x02)
                              {
                                  0x1A, // Callback to new (_GPE) Method (_L1A)
                                  0x05
                              })
                          }
                      }
                  }

 

Scope (\_GPE)
              {
                  Method (_L09, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.P0P1, 0x02)
                      Notify (\_SB.PCI0.P0P9, 0x02)
                      Notify (\_SB.PCI0.P0P8, 0x02)
                      Notify (\_SB.PCI0.P0P7, 0x02)
                      Notify (\_SB.PCI0.P0P6, 0x02)
                      Notify (\_SB.PCI0.P0P5, 0x02)
                      Notify (\_SB.PCI0.P0P4, 0x02)
                  }

                  Method (_L0B, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.P0P3, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L1D, 0, NotSerialized)
                  {
                      \_SB.PCI0.SBRG.SIOH ()
                  }

                  Method (_L08, 0, NotSerialized)
                  {
                      \_SB.PCI0.SBRG.SIOH ()
                  }

                  Method (_L04, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.USB2, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L0C, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.USB3, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L0E, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.USB4, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L05, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.MC97, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L03, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.USB1, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L0D, 0, NotSerialized)
                  {
                      Notify (\_SB.PCI0.EUSB, 0x02)
                      Notify (\_SB.PWRB, 0x02)
                  }

                  Method (_L1A, 0, NotSerialized)
                  {
                     Notify (\_SB.PCI0.P0P9.FRWR, 0x00)
                     Notify (\_SB.PWRB, 0x02)
                  }
              }

              Device (PWRB)
              {
                  Name (_HID, EisaId ("PNP0C0C"))
                  Name (_UID, 0xAA)
                  Name (_STA, 0x0B)
              }
          }

 

 

Error after compiling DSDT:


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091214 [Dec 16 2009]
Copyright © 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  1319:                     Buffer (0x04)
                         {
                             0x00, 0x00, 0x00, 0x00
                        },
                        "device-id",
                          Buffer (0x04)
                         {
                             0xf2, 0x00, 0x00, 0x00
                        }
                     }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                     Return (Local0)
                   }

                  Method (_PRW, 0, NotSerialized)
                   {
                     Return (Package (0x02)
                    {
                         0x1A,
                         0x05
                      })
                }
             }    
           }
Error    4064 -    Object does not exist ^  (DTGP)

/Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  2930:                         Method (OCOP, 1, Serialized)
Warning  1088 -                                                                        Not all control paths return a value ^  (OCOP)

/Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  3206:                         Method (PROC, 3, Serialized)
Warning  1088 -                                                                        Not all control paths return a value ^  (PROC)

/Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  3343:                                             Subtract (Local2, 0x1E)
Warning  1106 -                                                                                          Result is not used, operator has no effect ^ 

/Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  3344:                                             Subtract (Local4, 0x4B)
Warning  1106 -                                                                                          Result is not used, operator has no effect ^ 

/Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  3443:                             Store (PROC (Local0, Local1, Zero), Local2)
Warning  1093 -                                                                    Called method may not always return a value ^ 

ASL Input:  /Users/popeyerock/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 7021 lines, 230127 bytes, 3297 keywords
Compilation complete. 1 Errors, 5 Warnings, 0 Remarks, 54 Optimizations

 

after deleting line:

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Finaly could compile dsdt without error, but no change. same msg in kernel log:

FireWire runtime power conservation disabled. (2)

 

What I try to do is to get footage from camcorder to HDD. FinalCut recognize my cam, but after few seconds it lost connection.

Here is few errors from kernel & system logs:

FW_Errors.rtf

Link to comment
Share on other sites

Nothing to see on your attached .aml file. :)

 

You should attach a zipped dsl with what you've done, then probably someone can help you.

I also recommand to read this P5K Pro... not exactly your board, but

defenately a very good source to help you fix your problem.

Link to comment
Share on other sites

Nothing to see on your attached .aml file. :)

 

You should attach a zipped dsl with what you've done, then probably someone can help you.

I also recommand to read this P5K Pro... not exactly your board, but

defenately a very good source to help you fix your problem.

 

Thanks for advise, Just update my post.

Link to comment
Share on other sites

The Firewire device belongs to the PCI bridge:

 

00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev e1)

 

You've placed it under P0P9 which (on your motherboard) is a PCI Express port, and you can clearly see that if you compare the address in DSDT with your LSPCI output.

 

DTGP is not a device, it's a "method". I don't know what it does, but it's used when adding new devices, or adding code to existing devices. It's present in DSDTs from real Macs but never on PCs. You put DTGP there yourself in the first place. If you have it in your DSDT then it needs to be there, you can't just go deleting random bits of code to get rid of error messages! If there's a problem with the code, go back to where you copied and pasted it from and recheck that it looks like it should.

 

Here's the entire method:

 

	Method (DTGP, 5, NotSerialized)
{
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
				/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			}))
	{
		If (LEqual (Arg1, One))
		{
			If (LEqual (Arg2, Zero))
			{
				Store (Buffer (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

			If (LEqual (Arg2, One))
			{
				Return (One)
			}
		}
	}

	Store (Buffer (One)
		{
			0x00
		}, Arg4)
	Return (Zero)
}

 

You can place it anywhere in your DSDT. Don't place it inside another method or device.

 

Here's the DSDT replacement for HDAEnabler.kext, with the DTGP caller at the end:

			Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x08)
					{
						"subsystem-id", 
						Buffer (0x04)
						{
							0xA0, 0x00, 0x00, 0x00
						}, 

						"subsystem-vendor-id", 
						Buffer (0x04)
						{
							0x6B, 0x10, 0x00, 0x00
						}, 

						"layout-id", 
						Buffer (0x04)
						{
							0x0C, 0x00, 0x00, 0x00
						}, 

						"PinConfigurations", 
						Buffer (Zero) {}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

 

Here it is at the end of an ethernet device:

 

				Device (LAN0)
			 {
				 Name (_ADR, Zero)
				 Name (_PRW, Package (0x02)
				 {
					 0x09, 
					 0x03
				 })
				 Method (_DSM, 4, NotSerialized)
				 {
					 Store (Package (0x04)
						 {
							 "built-in", 
							 Buffer (One)
							 {
								 0x01
							 }, 

							 "location", 
							 Buffer (0x02)
							 {
								 "1"
							 }
						 }, Local0)
					 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					 Return (Local0)
				 }
			 }

 

The DTGP method and caller "DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))" is always the same for every modified or added device and it's always placed at the end right before the last Return statement.

I have no idea what it does or why it's necessary though. Maybe someone here knows what it does..

Link to comment
Share on other sites

The Firewire device belongs to the PCI bridge:

 

Lol, nice. so I got it all wrong. My Firewire is PCI Express x1 card. That's why I put it under P0P9 device. Can you explain me why it belong to PCI Bridge? And how do I locate it in DSDT?

 

O and there wasn't DTGP method in my dsdt. I only paste code from 1st post and hope for magic.

 

 

Thanks anyway

post-149559-1283038252_thumb.png

Link to comment
Share on other sites

You didn't say, so I assumed your Firewire controller was on-board.

This is the LSI Firewire controller on my ASUS P5Q-E board:

P5Q_E_Firewire.png

As you can see it's tucked in under the PCI Bridge.

 

An unmodified DSDT only has data for devices that are built in to the motherboard. Therefore all you will see is code for the expansion slots themselves, not for the expansion cards that are plugged into them. Make sure P0P9 is the correct slot - you can check this with ioregistryexplorer. I think there's also a switch you can use with LSPCI that makes it show the slot names but I can't remember what it is.

 

On my ASUS board P0P9 is home to an on-board PCI-E Marvell 88E8056 Ethernet Controller. I don't know if P0P9 is shared with a PCI-E slot though, I guess it could be.

 

Anyhow, if what you pasted had a DTGP caller at the end as in the examples I posted, then you must add the DTGP method to your DSDT.

Link to comment
Share on other sites

There's nothing in it that you haven't seen if you have the last DSDT posted by Beerkex'd or Phoenix Wright.

 

Since installing Chameleon 2.0 RC5 I've put back the original CPU scope but that's the only change.

Can you give me a link to the Beerkx'd or Phoenix Wright dsdt, I search and I can't find it

 

regards,

Barnum

Link to comment
Share on other sites

I don't know if you're aware of this but I think this is the third time you ask me to do that, and I've given you the same answer before.

 

It's in the P5K Pro thread.. as you should know. Unless there are other barnums here.

 

I know but the last DST publish by Beerkx'd (Mar 10 2010, 09:57 AM) only contain that for firewire :

                Device (FRWR)
               {
                   Name (_ADR, 0x00030000)
                   Name (_GPE, 0x18)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "fwports", 
                               Buffer (0x04)
                               {
                                   0x02, 0x00, 0x00, 0x00
                               }
                           }, Local0)
                       MCDP (Arg2, RefOf (Local0))
                       Return (Local0)
                   }
               }

It seem that you have implemented in you dsdt the good code to have firewire, my motherboard is quite the same than your for the firewire part so I only ask you if you can share this part of you dsdt.

 

regards,

Barnum

Link to comment
Share on other sites

  • 3 weeks later...
The hack that MacKonsti shared in this post is working on my HP HDX 16. I don't have that boot message anymore. I don't have a Firewire device to test hot plug but I hope it will work.

The actual device will work, of course; it's the behaviour that might change. I learned to live with that error, it doesn't bother me anymore. That DSDT hack resulted to the fact that (my board) doesn't recognize the attached firewire device upon boot, only after sleep/wake or if it is connected after the system fully boots. That was the drawback I concluded...

Link to comment
Share on other sites

i don't care whether my firewire works, and i think eveything is ok, and i can see this message in kernel log

FireWire (OHCI) VendorID 1217 ID f7 built-in now active, GUID 00023f8cc940a9f6; max speed s400.

but the only problem is when after waking up my computer, there are too many errors in my kernel log as below.

--- last message repeated 5 times ---
FireWire GUID 00d0510000000001 is invalid!

 

post-611522-1285299142_thumb.png

this is my dsdt.amlDSDT.aml.zip

any suggestion will be appreciated, thx you guys~~

sorry for my poor english :)

Link to comment
Share on other sites

The actual device will work, of course; it's the behaviour that might change. I learned to live with that error, it doesn't bother me anymore. That DSDT hack resulted to the fact that (my board) doesn't recognize the attached firewire device upon boot, only after sleep/wake or if it is connected after the system fully boots. That was the drawback I concluded...

I see. As I said earlier, I don't have a firewire device right now but if I've tried I'll let you know the result.

Thanks for your time.

Link to comment
Share on other sites

 Share

×
×
  • Create New...