DB1 Posted November 29, 2009 Share Posted November 29, 2009 Tested both of them. Neither one shows the FW800 card. Appear to be working fine otherwise. Interestingly, the built-in FireWire 400 does not seem to work in any of the cases including the 3.1 version. I am including the IOReg output from 3.2, 3.2 w/3.1 FW, and 3.1. Many thanks. bikinifarm, I just noticed in the dsdt's I last posted for you to try I had this: OperationRegion (BIOS, SystemMemory, 0xCFF8E064, 0x2D) // This code needs to match the one from your original dsdt extract. Looking back over previous dsdt's of yours I think it should be: 0xCFF8E064, 0xFF Change this on both versions and let me know if it resolves and which one. Link to comment Share on other sites More sharing options...
bikinifarm Posted November 29, 2009 Share Posted November 29, 2009 bikinifarm, I just noticed in the dsdt's I last posted for you to try I had this: OperationRegion (BIOS, SystemMemory, 0xCFF8E064, 0x2D) // This code needs to match the one from your original dsdt extract. Looking back over previous dsdt's of yours I think it should be: 0xCFF8E064, 0xFF Change this on both versions and let me know if it resolves and which one. Thanks DB1 for hanging in there with me. Unfortunately, neither one resolved the issue. Per BlackCH's recommendation, attaching full IOReg for the two 3.2 dsdt's (non-working) plus the working 3.1. Many thanks. IOReg.zip Link to comment Share on other sites More sharing options...
bikinifarm Posted November 30, 2009 Share Posted November 30, 2009 @DB1/BlackCH I am thinking that BlackCH is probably right about the interrupts. I did a little digging into the IOReg with my rather limited understanding of interrupts, and I find; Nvidia uses interrupt 10,7 in dsdt version 3.1 and 3.2, but there is the following difference: 3.1: | | | | "IOInterruptSpecifiers" = (<1000000007000000>,<0000000000000100>) 3.2: | | | | "IOInterruptSpecifiers" = (<1000000007000000>,<0100000000000100>) FW (Builtin) uses interrupt 14,7 in version 3.1 but uses 12,7 in version 3.2. FW (800) uses interrupt 10,7 in version 3.1, and MIA in version 3.2. Also, it seems that USB is also using 12,7. Seems like interrupt changes in ver 3.2 may possibly be driving the FW800 going MIA. Could the change to the interrupt 10,7 be the culprit? Many thanks. Link to comment Share on other sites More sharing options...
BlackCH Posted November 30, 2009 Share Posted November 30, 2009 @DB1/BlackCH I am thinking that BlackCH is probably right about the interrupts. I did a little digging into the IOReg with my rather limited understanding of interrupts, and I find; Nvidia uses interrupt 10,7 in dsdt version 3.1 and 3.2, but there is the following difference: 3.1: | | | | "IOInterruptSpecifiers" = (<1000000007000000>,<0000000000000100>) 3.2: | | | | "IOInterruptSpecifiers" = (<1000000007000000>,<0100000000000100>) FW (Builtin) uses interrupt 14,7 in version 3.1 but uses 12,7 in version 3.2. FW (800) uses interrupt 10,7 in version 3.1, and MIA in version 3.2. Also, it seems that USB is also using 12,7. Seems like interrupt changes in ver 3.2 may possibly be driving the FW800 going MIA. Could the change to the interrupt 10,7 be the culprit? Many thanks. IMO the problem is related to IRQs. It used happens the same between HPET and onboard firewire. What you might try is to free resources (disable on board firewire for example; Also disable unused devices in BIOS like paralell, serial ports, etc -. I dont know if that make a difference but worth trying)) and hope either your graphics or your firewire card get assigned to another irq or maybe plugging the card in a different slot. Maybe there is a way to force devices to be assigned to a specific IRQ but I do not know it. Maybe you can ask Master Chief at the P5K Pro thread Link to comment Share on other sites More sharing options...
DB1 Posted November 30, 2009 Share Posted November 30, 2009 IMHO I dont think it's IRQ problem. v3.2 IOREG | | | +-o FRWR@2 <class IOPCIDevice, [color="#0000FF"]id 0x100000152[/color], registered, matched, active, busy 0 (1584 ms), retain 10> | | | | +-o AppleFWOHCI <class AppleFWOHCI,[color="#0000FF"] id 0x1000001c9[/color], !registered, !matched, active, busy 0 (1162 ms), | | | | +-o IOFireWireController <class IOFireWireController, [color="#0000FF"]id 0x1000001cb[/color], registered, matched, active, busy | | | | +-o IOFireWireLocalNode <class IOFireWireLocalNode, i[color="#0000FF"]d 0x1000002a8[/color], registered, matched, active, busy 0 (1162 ms), retain 12> | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, [color="#708090"]id 0x1000002bf[/color], !registered, !matched, active, busy 0, retain 4> | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, [color="#0000FF"]id 0x1000002c0[/color], !registered, !matched, active, busy 0, retain 4> | | | | +-o IOFireWireIP <class IOFireWireIP, [color="#0000FF"]id 0x1000002c1[/color], registered, matched, active, busy 0 (68 ms), retain 5> | | | | +-o IOFWInterface <class IOFWInterface,[color="#0000FF"] id 0x1000002c3[/color], registered, matched, active, busy 0 (66 ms), retain 10> | | | | +-o IONetworkStack <class IONetworkStack, [color="#0000FF"]id 0x1000002ef[/color], registered, matched, active, busy 0 (5 ms), retain 9> | | | +-o pci104c,8025@0 <class IOPCIDevice, [color="#0000FF"]id 0x100000172[/color], registered, matched, active, busy 0 (561 ms), retain 10> | | | +-o AppleFWOHCI <class AppleFWOHCI, [color="#0000FF"]id 0x1000001d0[/color], !registered, !matched, active, busy 0, retain 6> | | | [color="#FF0000"]+-o IOFireWireController <class IOFireWireController, [/color][color="#0000FF"]id 0x1000001d2[/color], [color="#FF0000"]!registered, !matched, active, busy 0, [u][b]retain 6>[/b][/u][/color] v3.1 IOREG | | | +-o FRWR@2 <class IOPCIDevice, [color="#0000FF"]id 0x100000158[/color], registered, matched, active, busy 0 (1639 ms), retain 9> | | | | +-o AppleFWOHCI <class AppleFWOHCI, [color="#0000FF"]id 0x1000001c1[/color], !registered, !matched, active, busy 0 (828 ms), retain 6> | | | | +-o IOFireWireController <class IOFireWireController, [color="#0000FF"]id 0x1000001c3[/color], registered, matched, active, busy 0 | | | | +-o IOFireWireLocalNode <class IOFireWireLocalNode,[color="#0000FF"] id 0x1000002ba[/color], registered, matched, active, busy 0 | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, [color="#0000FF"]id 0x1000002cf[/color], !registered, !matched, | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, [color="#0000FF"]id 0x1000002d0[/color], !registered, !matched, | | | | +-o IOFireWireIP <class IOFireWireIP, [color="#0000FF"]id 0x1000002d1[/color], registered, matched, active, busy 0 (88 ms), | | | | +-o IOFWInterface <class IOFWInterface, [color="#0000FF"]id 0x1000002d3[/color], registered, matched, active, busy 0 (85 ms), | | | | +-o IONetworkStack <class IONetworkStack, [color="#0000FF"]id 0x1000002f7[/color], registered, matched, active, busy 0 (16 | | | +-o pci104c,8025@0 <class IOPCIDevice, [color="#0000FF"]id 0x10000017c[/color], registered, matched, active, busy 0 (16045 ms), retain | | | +-o AppleFWOHCI <class AppleFWOHCI, [color="#0000FF"]id 0x1000001bf[/color], !registered, !matched, active, busy 0 (15235 ms), retain | | | +-o [color="#FF0000"]IOFireWireController <class IOFireWireController[/color], [color="#0000FF"]id 0x1000001c4[/color],[color="#FF0000"] registered, matched, active, busy 0 [/color] [color="#008000"] | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x1000002d4, !registered, !matched, | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x1000002d5, !registered, !matched, | | | | +-o IOFireWireIP <class IOFireWireIP, id 0x1000002d6, registered, matched, active, busy 0 (86 ms), | | | | +-o IOFWInterface <class IOFWInterface, id 0x1000002d8, registered, matched, active, busy 0 (85 ms), | | | | +-o IONetworkStack <class IONetworkStack, id 0x1000002f7, registered, matched, active, busy 0 (16 | | | +-o IOFireWireDevice@30e002002a0275 <class IOFireWireDevice, id 0x1000002bc, registered, matched, active, busy 0 (15134 ms), retain 27> | | | +-o IOFireWireUnit <class IOFireWireUnit, id 0x1000002bd, registered, matched, active, busy 0 (15115 ms), retain 9> | | | | +-o IOFireWireSBP2Target <class IOFireWireSBP2Target, id 0x1000002d9, registered, matched, active, busy 0 (14304 ms), retain 10> | | | | | +-o IOFireWireSBP2LUN <class IOFireWireSBP2LUN, id 0x1000002db, registered, matched, active, busy 0 (14304 ms), retain 8> | | | | | +-o com_apple_driver_Oxford_Semi_FW912 <class com_apple_driver_Oxford_Semi, id 0x100000339, registered, matched, active, busy 0 (8284 ms), retain 8> | | | | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDeviceNub, id 0x100000345, registered, matched, active, busy 0 (193 ms), retain 6> | | | | | | +-o IOSCSIPeripheralDeviceType0E <class IOSCSIPeripheralDeviceType0E, id 0x1000003b4, !registered, !matched, active, busy 0 (63 ms), retain 6> | | | | | | +-o IOReducedBlockServices <class IOReducedBlockServices, id 0x1000003b9, registered, matched, active, busy 0 (63 ms), retain 5> | | | | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver, id 0x1000003bd, registered, matched, active, busy 0 (58 ms), retain 7> | | | | | | +-o ST365064 0A Media <class IOMedia, id 0x1000003cc, registered, matched, active, busy 0 (54 ms), retain 10> | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, id 0x1000003cd, registered, matched, active, busy 0 (2 ms), retain 5> | | | | | | +-o IOGUIDPartitionScheme <class IOGUIDPartitionScheme, id 0x1000003d0, !registered, !matched, active, busy 0 (39 ms), retain 7> | | | | | | +-o EFI System Partition@1 <class IOMedia, id 0x1000003d5, registered, matched, active, busy 0 (13 ms), retain 8> | | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, id 0x1000003dc, registered, matched, active, busy 0 (9 ms), retain 5> | | | | | | +-o Untitled@2 <class IOMedia, id 0x1000003d6, registered, matched, active, busy 0 (39 ms), retain 9> | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, id 0x1000003dd, registered, matched, active, busy 0 (10 ms), retain 6> | | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x10000033c, !registered, !matched, active, busy 0, retain 4> | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x1000002da, !registered, !matched, active, busy 0, retain 4> | | | +-o IOFireWireUnit <class IOFireWireUnit, id 0x1000002be, registered, matched, active, busy 0 (15104 ms), retain 9> | | | | +-o IOFireWireSBP2Target <class IOFireWireSBP2Target, id 0x1000002dc, registered, matched, active, busy 0 (14292 ms), retain 10> | | | | | +-o IOFireWireSBP2LUN <class IOFireWireSBP2LUN, id 0x1000002de, registered, matched, active, busy 0 (14292 ms), retain 8> | | | | | +-o com_apple_driver_Oxford_Semi_FW912 <class com_apple_driver_Oxford_Semi, id 0x100000340, registered, matched, active, busy 0 (8271 ms), retain 8> | | | | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDeviceNub, id 0x100000347, registered, matched, active, busy 0 (166 ms), retain 6> | | | | | | +-o IOSCSIPeripheralDeviceType0E <class IOSCSIPeripheralDeviceType0E, id 0x1000003b6, !registered, !matched, active, busy 0 (49 ms), retain 6> | | | | | | +-o IOReducedBlockServices <class IOReducedBlockServices, id 0x1000003bb, registered, matched, active, busy 0 (49 ms), retain 5> | | | | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver, id 0x1000003be, registered, matched, active, busy 0 (46 ms), retain 7> | | | | | | +-o Maxtor 6 L250R0 Media <class IOMedia, id 0x1000003cf, registered, matched, active, busy 0 (42 ms), retain 10> | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, id 0x1000003d1, registered, matched, active, busy 0 (3 ms), retain 5> | | | | | | +-o IOGUIDPartitionScheme <class IOGUIDPartitionScheme, id 0x1000003d7, !registered, !matched, active, busy 0 (30 ms), retain 7> | | | | | | +-o EFI System Partition@1 <class IOMedia, id 0x1000003da, registered, matched, active, busy 0 (14 ms), retain 8> | | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, id 0x1000003de, registered, matched, active, busy 0 (8 ms), retain 5> | | | | | | +-o TimeMachine@2 <class IOMedia, id 0x1000003db, registered, matched, active, busy 0 (30 ms), retain 9> | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, id 0x1000003e0, registered, matched, active, busy 0 (7 ms), retain 6> | | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x100000343, !registered, !matched, active, busy 0, retain 4> | | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x1000002dd, !registered, !matched, active, busy 0, retain 4> | | | +-o IOFireWireUserClientIniter <class IOFireWireUserClientIniter, id 0x1000002bf, !registered, !matched, active, busy 0, retain 4> [/color] I think it is something to do with how the device is identified as you will notice above all the device element id's are different (between the v3.1 (working) & v3.2 (not working)) Also IOFirewireController appears not to be being fed or acquiring the necessary information needed in v3.2. (Red highlighted & green in v3.1 missing v3.2) notice the difference on that line! So I think something done in v3.2 is preventing the correct id of the device being detectable. How to put right could take a while. I notice on the PRO thread MC is working on Firewire problems so there may be a fix in v3.3. @bikinifarm Can you please try this in terminal lspci -d 1106:3044 -xxxvvv with your v3.1 dsdt installed and post the output. BTW - OSXRestart works ok for me with dsdt v3.1 & also does sleep / wake. Give it a try. Link to comment Share on other sites More sharing options...
bikinifarm Posted November 30, 2009 Share Posted November 30, 2009 @DB1; I installed PCITools v3, but could not successfully run the command, and got lspci:Cannot find any working access method. I assumed that this was related to the fact that the FW800 pci card was not showing up under pci cards (About this Mac) with dsdt v3.1, reverted to the dsdt v3 which was showing the FW800 pci card, albeit not exactly the right one. The information I get out of "About this Mac" (out of dsdt 3.0) is in the picture. How else can I get to the info? Thanks. Link to comment Share on other sites More sharing options...
DB1 Posted November 30, 2009 Share Posted November 30, 2009 @DB1; I installed PCITools v3, but could not successfully run the command, and got lspci:Cannot find any working access method. I assumed that this was related to the fact that the FW800 pci card was not showing up under pci cards (About this Mac) with dsdt v3.1, reverted to the dsdt v3 which was showing the FW800 pci card, albeit not exactly the right one. The information I get out of "About this Mac" (out of dsdt 3.0) is in the picture. How else can I get to the info? Thanks. Get Snow Leopard compatible LSPCI here. You have cleared up one thing up for me - I thought it was a device being used from a firewire port, I now realise it's a firewire pci card (I'm not on the ball just recent!). I just noticed in your post where you first gave your IOREG with screenshots and something garbed my attention. IDE device! We have no code for IDE in dsdt v3.1 & v3.2 if you remove JMB0. Did you take out JMB0 in v3.0? Don't understand why it worked in 3.1 (Maybe some other code we removed in v3.2). It might be worth trying with JMB0 in if only to eliminate. I'll also look back and see what PCI if any we removed. Also you could try this Q6600_3.2__dsdt.zip I've added FWBR - Firewire Bridge Device (no JMB0 in this) Link to comment Share on other sites More sharing options...
Master Chief Posted November 30, 2009 Share Posted November 30, 2009 @DB1/bikinifarm, You may need to revert/undo this change: - OperationRegion (SMBI, SystemIO, 0x4000, 0x10) + OperationRegion (SMBI, SystemIO, 0x0400, 0x10) BTW: I haven't checked, but did you remove the UAR1 code? If yes, have you disabled it in your BIOS? And when nothing appears to work, then you may need to undo the big code removal, starting with: Name (DCAT, Package (0x15) I would start by commenting out this part in DSDT V3.1: Method (_PRS, 0, NotSerialized) { Return (CMPR) } Also disable the serial port in your BIOS. This will tell you if the UAR1 removal is causing you trouble – the extra free IRQ might cause the shift, which I don't see here BTW. Link to comment Share on other sites More sharing options...
DB1 Posted November 30, 2009 Share Posted November 30, 2009 @DB1/bikinifarm, You may need to revert/undo this change: - OperationRegion (SMBI, SystemIO, 0x4000, 0x10) + OperationRegion (SMBI, SystemIO, 0x0400, 0x10) BTW: I haven't checked, but did you remove the UAR1 code? If yes, have you disabled it in your BIOS? And when nothing appears to work, then you may need to undo the big code removal, starting with: Name (DCAT, Package (0x15) I would start by commenting out this part in DSDT V3.1: Method (_PRS, 0, NotSerialized) { Return (CMPR) } Also disable the serial port in your BIOS. This will tell you if the UAR1 removal is causing you trouble – the extra free IRQ might cause the shift, which I don't see here BTW. Thanks for the pointers Chief. SMBI is still in our v3.2 but we did take out UAR1, I'm not having any problems but then I don't have any firewire cards or devices to test. v3.1 works ok for bikinifarm it's the jump we did to v3.2 causing him the problem. Link to comment Share on other sites More sharing options...
Master Chief Posted November 30, 2009 Share Posted November 30, 2009 Thanks for the pointers Chief. SMBI is still in our v3.2 but we did take out UAR1, I'm not having any problems but then I don't have any firewire cards or devices to test. v3.1 works ok for bikinifarm it's the jump we did to v3.2 causing him the problem. You're welcome. Make sure that he test the address change. And removing the serial port (UAR1) did free one IRQ, which should be good. I also don't see any changes with or without UAR1. Do you? Do you have his DSDT V3.1 and V3.2? If yes, please attach them so that I can have a look. TIA. Link to comment Share on other sites More sharing options...
DB1 Posted November 30, 2009 Share Posted November 30, 2009 You're welcome. Make sure that he test the address change. And removing the serial port (UAR1) did free one IRQ, which should be good. I also don't see any changes with or without UAR1. Do you? Do you have his DSDT V3.1 and V3.2? If yes, please attach them so that I can have a look. TIA. No apparent changes for me with or without UAR1. v3.1 & 3.2 dsl attached. 3.1___3.2.zip Some remove the JMB0 code if they have no ATA devices, I use it but in a shorter format than attached dsl. Link to comment Share on other sites More sharing options...
bikinifarm Posted December 1, 2009 Share Posted December 1, 2009 Get Snow Leopard compatible LSPCI here. You have cleared up one thing up for me - I thought it was a device being used from a firewire port, I now realise it's a firewire pci card (I'm not on the ball just recent!). I just noticed in your post where you first gave your IOREG with screenshots and something garbed my attention. IDE device! We have no code for IDE in dsdt v3.1 & v3.2 if you remove JMB0. Did you take out JMB0 in v3.0? Don't understand why it worked in 3.1 (Maybe some other code we removed in v3.2). It might be worth trying with JMB0 in if only to eliminate. I'll also look back and see what PCI if any we removed. Also you could try this Q6600_3.2__dsdt.zip I've added FWBR - Firewire Bridge Device (no JMB0 in this) Let me try to address the new information one at a time: Here is the output from the lspci (running dsdt 3.1): sh-3.2# lspci -d 1106:3044 -xxxvvv 05:02.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev c0) (prog-if 10 [OHCI]) Subsystem: ASUSTeK Computer Inc. Unknown device 81fe Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 64 (8000ns max), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 20 Region 0: Memory at febff000 (32-bit, non-prefetchable) Region 1: I/O ports at ec00 [disabled] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2+,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00: 06 11 44 30 06 00 10 02 c0 10 00 0c 08 40 00 00 10: 00 f0 bf fe 01 ec 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 fe 81 30: 00 00 00 00 50 00 00 00 00 00 00 00 14 01 00 20 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 01 00 02 e4 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Regarding the JMB0, the version you gave to me (the working one) had the JMB0 in there. I did not bother removing it. So, to answer your question, yes in version 3.1, the JMB0 section is still there. I will try all the dsdt(s) you guys have provided and respond as soon as I have the answers. Link to comment Share on other sites More sharing options...
Master Chief Posted December 1, 2009 Share Posted December 1, 2009 Okay. Try this: Device (FRWR) { Name (_ADR, 0x00030000) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "fwports", Buffer (0x04) { 0x02, 0x00, 0x00, 0x00 } }, Local0) MCDP (Arg2, RefOf (Local0)) Return (Local0) } } No more Name (_GPE, 0xnn). That should work.. Link to comment Share on other sites More sharing options...
BlackCH Posted December 1, 2009 Share Posted December 1, 2009 Notice that the onboard firewire is located at PCIB@0x00020000, hence Name (_ADR, 0x00020000) Anyway I belive his problems are not with the onboard VIA chip, but with a TexasInstrument (vendor 104c) FW 800 PCI card located in PCIB@0 (pci104c,8025@0 if you look at his ioreg). Moreover, if you compare both IOREGS (3,1 and 3,2, post #827) in this section you will see that in the IOREG corresponding to the 3,2 dsdt the device misses the "IOInterruptSpecifiers" = (<1000000007000000>) key shown in the 3,1 IOREG. IMO that means theres no IRQ assigned to the device, isnt it? Link to comment Share on other sites More sharing options...
DB1 Posted December 1, 2009 Share Posted December 1, 2009 Notice that the onboard firewire is located at PCIB@0x00020000, hence Name (_ADR, 0x00020000) Anyway I belive his problems are not with the onboard VIA chip, but with a TexasInstrument (vendor 104c) FW 800 PCI card located in PCIB@0 (pci104c,8025@0 if you look at his ioreg). Moreover, if you compare both IOREGS (3,1 and 3,2, post #827) in this section you will see that in the IOREG corresponding to the 3,2 dsdt the device misses the "IOInterruptSpecifiers" = (<1000000007000000>) key shown in the 3,1 IOREG. IMO that means theres no IRQ assigned to the device, isnt it? Ah, I see where your coming from now. (I been barking up the wrong tree!). The question is then what is stopping acquiring of IOInterruptSpecifiers. Seems he had JMB0 in 3.1 when it was working for him (I thought he removed it), in 3.2 he took that out then I provided a dsdt without. I'll not be surprised if he puts that back in and it works. (Oxford IDE Device). Lets wait for confirmation. Link to comment Share on other sites More sharing options...
BlackCH Posted December 1, 2009 Share Posted December 1, 2009 Ah, I see where your coming from now. (I been barking up the wrong tree!). The question is then what is stopping acquiring of IOInterruptSpecifiers. Seems he had JMB0 in 3.1 when it was working for him (I thought he removed it), in 3.2 he took that out then I provided a dsdt without. I'll not be surprised if he puts that back in and it works. (Oxford IDE Device). Lets wait for confirmation. either that or he has some of the other onboard devices enabled (serial, parallel port)... Just a guess Im using a PCI card (wifi in signature) and is doing fine with 3,1 and 3,2 dsdt files. Later today I'll try a firewire 400 PCI card I have laying around to see if I can reproduce the behavior Link to comment Share on other sites More sharing options...
Master Chief Posted December 1, 2009 Share Posted December 1, 2009 It is extremely early for me, having breakfast, and I was wondering if there is a before/after combo zip of both the DSDT's he is using and ioreg output? And yes this is an IRQ problem. Edit: Never mind. I found the ioreg dumps in post #827 Ok. The IRQ's that are normally used for the COM (UAR1) port – being IRQ4 and IRQ3 – and the LPT port – being IRQ7 and IRQ5 – are free/available in DSDT V3.2 whereas before they were bound to these ports. Let's have a look at a particular code snippet: Device (UAR1) { Name (_UID, One) Name (_HID, EisaId ("PNP0501")) Method (_STA, 0, NotSerialized) { Return (DSTA (Zero)) } ............ Method (_PRS, 0, NotSerialized) { Return (CMPR) } Name (CMPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x03F8, // Range Minimum 0x03F8, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {4} DMA (Compatibility, NotBusMaster, Transfer8, ) {} } StartDependentFnNoPri () { IO (Decode16, 0x03F8, // Range Minimum 0x03F8, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8, ) {} } StartDependentFnNoPri () { IO (Decode16, 0x02F8, // Range Minimum 0x02F8, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8, ) {} } StartDependentFnNoPri () { IO (Decode16, 0x03E8, // Range Minimum 0x03E8, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8, ) {} } StartDependentFnNoPri () { IO (Decode16, 0x02E8, // Range Minimum 0x02E8, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8, ) {} } EndDependentFn () }) Which I presume has been removed in his V3.2? And that explains why they show up under SATA in his "IOReg 3.2 with 3.1 FW". I take it that his PCI card can only handle certain IRQs and we got to know which onces it support. But there must be more/something else wrong because I also see a number of other IRQs there like 0, 1, 2, 6, 8 and 9. What else was changed? Link to comment Share on other sites More sharing options...
bikinifarm Posted December 1, 2009 Share Posted December 1, 2009 Here are some answers: @BlackCH/Post 829: "Also disable unused devices in BIOS like paralell, serial ports, etc" Serial Port, JMicron, Parallel Port have been disabled in BIOS throughout these tests. @DB1/Post 832: "We have no code for IDE in dsdt v3.1 & v3.2 if you remove JMB0" The IDE device is sitting in the FW800 box. It is not connected to the ASUS motherboard. The box converts that to FW800. I do not believe an IDE driver is needed as it is handled in the box's hardware. The interface to the box is FW800 which we have the issue. We have tested a variety of dsdt's with or without JMB0, and it did not make a difference. @MasterChief/Post 833: "If yes, have you disabled it in your BIOS" The serial port has been disabled all along. Link to comment Share on other sites More sharing options...
Master Chief Posted December 1, 2009 Share Posted December 1, 2009 .. @MasterChief/Post 833: "If yes, have you disabled it in your BIOS" The serial port has been disabled all along. I need the working (3.1) and failing DSDT (3.2) to be able to do something for you. Also, please answer the questions in my previous post. Thanks. p.s. Disconnect iPod/iPhones et all (stuff with Apple serial #) when you generate ioreg dumps! Now I'm off to plasterboards, sanding and painting again (: Link to comment Share on other sites More sharing options...
bikinifarm Posted December 1, 2009 Share Posted December 1, 2009 I need the working (3.1) and failing DSDT (3.2) to be able to do something for you. Also, please answer the questions in my previous post. Thanks. p.s. Disconnect iPod/iPhones et all (stuff with Apple serial #) when you generate ioreg dumps! Now I'm off to plasterboards, sanding and painting again (: I attach the working 3.1, and the variety of stuff we tried with the 3.2 that did not work. @DB1/Post 832: "Also you could try this" Unfortunately, still no go. Many thanks DB1, BlackCH, and Master Chief... Working3.1.zip NonWorking3.2.zip Link to comment Share on other sites More sharing options...
BlackCH Posted December 1, 2009 Share Posted December 1, 2009 And that explains why they show up under SATA in his "IOReg 3.2 with 3.1 FW". I take it that his PCI card can only handle certain IRQs and we got to know which onces it support. But there must be more/something else wrong because I also see a number of other IRQs there like 0, 1, 2, 6, 8 and 9. What else was changed? I have those too : Link to comment Share on other sites More sharing options...
bikinifarm Posted December 1, 2009 Share Posted December 1, 2009 You may need to revert/undo this change: - OperationRegion (SMBI, SystemIO, 0x4000, 0x10) + OperationRegion (SMBI, SystemIO, 0x0400, 0x10) Did not resolve issue. Device (FRWR) { Name (_ADR, 0x00020000) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "fwports", Buffer (0x04) { 0x02, 0x00, 0x00, 0x00 } }, Local0) MCDP (Arg2, RefOf (Local0)) Return (Local0) } } Tried with BlackCH's correction from post 839. Does not resolve issue. Link to comment Share on other sites More sharing options...
DB1 Posted December 1, 2009 Share Posted December 1, 2009 I have those too : Not on my hack at the moment but just checked sata on my mac mini and shows only 2 Interrupts 13 & 2, I'll check later on the hack. @bikinifarm - Name (_ADR, 0x00020000) is the correct address always for the onboard firewire. 0x00030000 for the PRO I'm sure the Chief will get to the bottom of it between plasterboard and paint. Who said blokes can't multi task LOL Link to comment Share on other sites More sharing options...
BlackCH Posted December 1, 2009 Share Posted December 1, 2009 my other hack (signature) has 5 irq on the SATA device: 11,4,5,6,7 Link to comment Share on other sites More sharing options...
Master Chief Posted December 1, 2009 Share Posted December 1, 2009 ...I'm sure the Chief will get to the bottom of it between plasterboard and paint. Who said blokes can't multi task LOL That and having enough of plasterboard LOL Anyway I found something in Device (PCIB) that isn't right: Method (_PRT, 0, NotSerialized) { Return (Package (0x09) // New: Previously AR01 { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 }, 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, 0x14 } }) } Versus: Name (_PRT, Package (0x09) // PCI Routing Table AR01 (ACPIspec30a.pdf / 6.2.11 / page 204). { [color="#008000"]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, [/color][color="#FF0000"]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 }[/color] }) in the failing DSDT. Link to comment Share on other sites More sharing options...
Recommended Posts