Jump to content

Firewire issues


  • Please log in to reply
98 replies to this topic

#61
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,125 posts
  • Gender:Male
  • Location:Brazil
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..

#62
popeyeq

popeyeq

    InsanelyMac Protégé

  • Members
  • PipPip
  • 58 posts
  • Gender:Male

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

Attached Files



#63
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,125 posts
  • Gender:Male
  • Location:Brazil
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:
Attached File  P5Q_E_Firewire.png   152.52KB   99 downloads
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.

#64
barnum

barnum

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 132 posts
  • Gender:Male
  • Location:france

This is the LSI Firewire controller on my ASUS P5Q-E board:
Attached File  P5Q_E_Firewire.png   152.52KB   99 downloads


Hi,

I have a P5Q PRO, can you give me your dsdt file to compare with mine ?

regards,
Barnum

#65
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,125 posts
  • Gender:Male
  • Location:Brazil
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.

#66
barnum

barnum

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 132 posts
  • Gender:Male
  • Location:france

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

#67
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,125 posts
  • Gender:Male
  • Location:Brazil
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.

#68
barnum

barnum

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 132 posts
  • Gender:Male
  • Location:france

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

#69
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,125 posts
  • Gender:Male
  • Location:Brazil
As I said, I haven't changed anything in my DSDT since then.

I don't bother with the Firewire because I don't own any Firewire devices.

But if I did I would try implementing the code example from post #50.

#70
Defender666

Defender666

    InsanelyMac Protégé

  • Members
  • PipPip
  • 93 posts
entering lspci gives me command not found.

Am i supposed to enter this command on a Linux Boot?

#71
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male

entering lspci gives me command not found.

Am i supposed to enter this command on a Linux Boot?

Or you can install lspci for mac it's linked somewhere in the forum

#72
JBraddock

JBraddock

    Ph.D (Can) in Human Rights

  • Members
  • PipPipPipPipPipPipPip
  • 549 posts
  • Location:UK
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.
Thanks,

#73
MacKonsti

MacKonsti

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 233 posts
  • Gender:Male
  • Location:Muppet Show

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...

#74
weizh126

weizh126

    InsanelyMac Protégé

  • Members
  • PipPip
  • 64 posts
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!


Attached File  Screen_shot_2010_09_24_at_______11.28.01.png   22.17KB   46 downloads
this is my dsdt.amlAttached File  DSDT.aml.zip   11.46KB   10 downloads
any suggestion will be appreciated, thx you guys~~
sorry for my poor english :)

#75
JBraddock

JBraddock

    Ph.D (Can) in Human Rights

  • Members
  • PipPipPipPipPipPipPip
  • 549 posts
  • Location:UK

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.

#76
mwolski

mwolski

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts
Hello, I have a problem with sleep prevented by firewire.

kernel[0]: System sleep prevented by FRWR

This is my DSDT's part with FRWR:

Method (_PRW, 0, NotSerialized)
				{
					Return (Package (0x02)
					{
						0x0B, 
						0x05
					})
				}
				Device (FRWR)
				{
					Name (_ADR, 0x06040000)
					Name (_GPE, 0x0B)

					Method (_DSM, 4, NotSerialized)
					{
						Store (Package (0x06)
						{
							"built-in",
							Buffer (0x01)
							{
								Zero
							},
							"fwhub",
							Buffer (0x04)
							{
								0x00, 0x00, 0x00, 0x00
							},
							"device-id",
							Buffer (0x04)
							{
								0xf7, 0x00, 0x00, 0x00
							}
						}, Local0)
						DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
						Return (Local0)
					}
				}

I also have Method L1A im my _GPE section.
Firewire works but the only issue is that it blocks sleep. Can anyone help me, please?

#77
polkaholga

polkaholga

    InsanelyMac Geek

  • Donators
  • 152 posts
  • Gender:Male
  • Location:Otherland
Name (_GPE, 0x0B)

I think there's the problem, you don't point to Method L1A !!!

It should be Name (_GPE, 0x1A).

Try it like this & tell me if it works


#78
mwolski

mwolski

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts
Unfortunately nothing changed. FRWR still prevents system from sleeping.

#79
polkaholga

polkaholga

    InsanelyMac Geek

  • Donators
  • 152 posts
  • Gender:Male
  • Location:Otherland
well...

what about some detailed info about your specs and a zipped dsdt.aml ?
not easy to help someone just from a code snippet... :D

#80
mwolski

mwolski

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts
Oh, sorry.

Snow Leopard 10.6.4 Retail on Maxdata IW 4510 laptop.


Intel Dual Core T2080
945GM ICH7,
GMA950,
2GB RAM,
Realtek ALC883

Firewire:
06:04.0 FireWire (IEEE 1394) [0c00]: O2 Micro, Inc. Firewire (IEEE 1394) [1217:00f7] (rev 02).

I have native Power Management so I don't use any disablers. Shutdown and Restart works fine.

When I delete Firewire kexts form S/L/E my laptop sleeps but... it can't wake the display up. I mean, the display wakes but the backlight doesn't. So if I look carefully i can barely see my desk and the screen won't light up.

I don't really use Firewire (but it works now, which is great), but I thought that if I do everything correctly then maybe the sleep will work as it should work. More I care about sleep (and deep sleep) feature, than Firewire.

I've attached my DSDT.aml and I would be grateful for any help.

Attached File  DSDT.aml.zip   7.38KB   19 downloads





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy