Help - Search - Members - Calendar
Full Version: Iopcifamily Needed But Crashes On Acer Laptop
Project OS X Forums > Snow Leopard Guides & Tutorials > New Users Discussion
Pages: 1, 2
teamcobra
EDIT: Now With $75 AAPL Gift Card Bounty!

Hello everyone, I have an Acer Aspire 6930g notebook, and everything is great except for one (major) problem, the PCI/MiniPCIe cards don't get assigned interrupts (or in LAN's case, interrupts and io registers). I've tried to use modified IOPCIFamily kexts (AnV, Slice, chunnan) with little success, they all cause crashes before hitting the desktop in both SL and 10.5.7 (except Slice's SL IOPCIFamily, which doesn't cause a panic, but has no affect on my system). However, chunnan's kext did bring up wl0 for a glorious moment before locking the system up (verbose boot). I'm wondering if it's possible to hard-code the addresses/interrupts in the DSDT, but I'm not much of a programmer. I'm willing to help debug this in any way possible, and have tried:

IOPCIFamily/AMW0/HPETDevice kexts in many different combinations, both with and without DSDT, and with/without Nullcpupowermanagement
Changing DSDT to use Linux's Values (_OSI)
Changing DSDT to use XP/Vista's Values
IOPCMCIAFamily + IOPCIFamily Kexts


I've also tried with and without netkas' fix for acer laptops (involves modifying the USB kext), but it doesn't seem to help.

Attached are a clean copy of my DSDT from linux, and lspci -vv dumps from linux and osx.

I've been trying to figure this out for 3 months now, and lots of people seem to have the same issue with this model, even in freebsd...

12/12/09: To date, I have successfully booted SL with Chunnan's kext once out of around 300 boots (trying desperately to get back to desktop with it so I can dump the proper ioreg).... It is just as stable/reliable in Leo 10.5.6/10.5.7 sad.gif

Click to view attachment
Click to view attachmentClick to view attachment

Relevant System Specs:
Intel PM45 Chipset (ICH9) with Core2Duo CPU
Nvidia GeForce 9600gs with 512mb ram (on PCI bus of some sort, but has seperate entry in dsdt, where all other pci cards are listed as RP01-0x under PCI0@0 in the DSDT)
Slice
Your problem is very complex. Don't know, if it helps you but try to remove IRQ from those
CODE
                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length     --  set to 2
                            )
     /*                   IRQNoFlags ()    
                            {8}   */   -- comment out
                    })
                }

                Device (TIMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IO (Decode16,
                            0x0050,             // Range Minimum
                            0x0050,             // Range Maximum
                            0x10,               // Alignment
                            0x04,               // Length
                            )
    /*                    IRQNoFlags ()
                            {0} */  -- comment out
                    })
                }

And write USB patch for each USB device
http://www.projectosx.com/forum/index.php?showtopic=461
Add Darwin here
CODE
Method (_INI, 0, NotSerialized)
{
Store (One, PWRS)
Store (0x07D0, OSYS)
If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Linux"))
{
Store (0x03E8, OSYS)
}

If (_OSI ("Windows 2001"))
{
Store (0x07D1, OSYS)
}

If (_OSI ("Windows 2001 SP1"))
{
Store (0x07D1, OSYS)
}

If (_OSI ("Windows 2001 SP2"))
{
Store (0x07D2, OSYS)
}

If (_OSI ("Darwin"))
{
Store (0x07D4, OSYS)
}

If (_OSI ("Windows 2006"))
{
Store (0x07D6, OSYS)
}

If (LAnd (MPEN, LEqual (OSYS, 0x07D1))) {}
}
}
teamcobra
Sorry for the delay everyone! I spent a solid week or so hacking at the DSDT, and freed up a couple IRQs as you suggested, but couldn't seem to fix my USB properly (to display as built-in). I do think you're on to something, as both USB and the broadcom card both get assigned IRQ 19 under OSX. I ended up buying a few Ralink rt3070 usb adapters (thank goodness Ralink fixed their drivers, no KP's yet) and have been using them in the meantime. The bounty is still up however, and I have gotten a PM from someone else with the same notebook, I will keep them posted as well. Also.... I have contacted Acer, and they have released a bios update, but they still haven't actually fixed anything (other than breaking LAN again under linux, shameful). Also, the modded version of the newest acer bios has the same result.
prasys
teamcobra , care to post the diffs you were telling among 3 different BIOSes that you were trying
oldnapalm
Hello,

I have similar problem with Snow Leopard on Acer Aspire 5920.

Mini PCI-e card works using Chun-Nan's 10.5.6 IOPCIFamily. Unfortunately source code is not available. I tried to apply his rev8 patches to IOPCIFamily-113 but it didn't work, 10.5.6 must have a different fix.

lspci diff ("<" = using Chun-Nan's 10.5.6, ">" = using original 10.6.2 IOPCIFamily)
CODE
20,21c20,21
< 01:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express [14e4:1693] (rev 02)
< 02:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)
---
> 06:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)
> 08:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express [14e4:1693] (rev 02)


ioreg diff
CODE

1997c1995
< | | +-o RP04@1C,3 <class IOPCIDevice, id 0x0, registered, matched, active, busy 0 (573 ms), retain 9>
---
> | | +-o RP04@1C,3 <class IOPCIDevice, id 0x0, registered, matched, active, busy 0 (659 ms), retain 27>
1999c1997
< | | | | "AAPL,slot-name" = <"PCI Slot">
---
> | | | | "IOInterruptSpecifiers" = (<1300000007000000>)
2001d1998
< | | | | "IOInterruptSpecifiers" = (<1300000007000000>,<0300000000000100>)
2013c2010
< | | | | "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")
---
> | | | | "IOInterruptControllers" = ("io-apic-0")
2019c2016
< | | | | "IODTPersist" = <2c966f2e90966f2e>
---
> | | | | "IODTPersist" = <a2f1542ea200552e>
2023c2020
< | | | | "ranges" = <0000008200000000000020800000008200000000000020800000000000001000>
---
> | | | | "ranges" = <000000c20000000000000000000000c2000000000000000000000000000010000000008100000
000000000000000008100000000000000000000000000100000>
2026c2023
< | | | +-o IOPCI2PCIBridge <class IOPCI2PCIBridge, id 0x0, registered, matched, active, busy 0 (525 ms), retain 7>
---
> | | | +-o IOPCI2PCIBridge <class IOPCI2PCIBridge, id 0x0, registered, matched, active, busy 0 (445 ms), retain 7>
2032c2029
< | | | | "Bridge Memory Ranges" = (18446744071564181504,18446744071565213695,18446744073708503040,1048575)
---
> | | | | "Bridge Memory Ranges" = (0,1048575)
2036c2033
< | | | | "Bridge IO Ranges" = (61440,4095)
---
> | | | | "Bridge IO Ranges" = (0,4095)
2039,2153c2036,2059
< | | | +-o network@0 <class IOPCIDevice, id 0x0, registered, matched, active, busy 0 (525 ms), retain 9>
< | | | | {
< | | | | "built-in" = <00>
< | | | | "IODeviceMemory" = (({"address"=18446744071564165120,"length"=16384}))
< | | | | "device-id" = <11430000>
< | | | | "IOChildIndex" = 1
< | | | | "name" = "network"
< | | | | "IOName" = "network"
< | | | | "vendor-id" = <e4140000>
< | | | | "revision-id" = <01000000>
< | | | | "acpi-wake-type" = 2
< | | | | "IOPCIResourced" = Yes
< | | | | "subsystem-vendor-id" = <3c100000>
< | | | | "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")
< | | | | "IOPCIExpressLinkCapabilities" = 222225
< | | | | "IOPCIExpressLinkStatus" = 4113
< | | | | "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
< | | | | "class-code" = <00800200>
< | | | | "IOPCIMSIMode" = Yes
< | | | | "compatible" = <"pci103c,1363","pci14e4,4311","pciclass,028000">
< | | | | "subsystem-id" = <63130000>
< | | | | "assigned-addresses" = <1000028200000000000020800000000000400000>
< | | | | "IOPCIExpressASPMDefault" = 1
< | | | | "reg" = <00000200000000000000000000000000000000001000020200000000000000000000000000400
000>
< | | | | "IOInterruptSpecifiers" = (<1300000007000000>,<0600000000000100>)
< | | | | }
< | | | |
< | | | +-o AirPort_Brcm43xx <class AirPort_Brcm43xx, id 0x0, registered, matched, active, busy 0 (9 ms), retain 9>
< | | | | {
< | | | | "IONameMatch" = ("pci106b,4e","pci14e4,4311","pci14e4,4312","pci14e4,4313","pci14e4,4318",
"pci14e4,4319","pci14e4,431a","pci14e4,4320","pci14e4,4324","pci14e4,4325","pci14e4,4328","pci14e4,432b","pci14e4,432c","pci14e4,432d")
< | | | | "IOFeatures" = 8
< | | | | "IOMediumDictionary" = {"00000080"={"Flags"=0,"Index"=0,"Speed"=11000000,"Type"=128}}
< | | | | "IOMatchCategory" = "IODefaultMatchCategory"
< | | | | "CFBundleIdentifier" = "com.apple.driver.AirPortBrcm43xx"
< | | | | "IOMinPacketSize" = 64
< | | | | "IOPacketFilters" = {"IONetworkFilterGroup"=275,"IOEthernetWakeOnLANFilterGroup"=0}
< | | | | "IOModel" = "Wireless Network Adapter (802.11 b/g)"
< | | | | "IOFirmwareVersion" = "Broadcom BCM43xx 1.0 (5.10.91.26)"
< | | | | "IONameMatched" = "pci14e4,4311"
< | | | | "IOVendor" = "Unknown"
< | | | | "IOLinkStatus" = 3
< | | | | "APChipRev" = 1
< | | | | "TruePowerOff" = Yes
< | | | | "IOProbeScore" = 0
< | | | | "IOGeneralInterest" = "IOCommand is not serializable"
< | | | | "IOMaxPacketSize" = 1518
< | | | | "IOClass" = "AirPort_Brcm43xx"
< | | | | "IOProviderClass" = "IOPCIDevice"
< | | | | "IOSelectedMedium" = "00000080"
< | | | | "IOMACAddress" = <001a73530970>
< | | | | "IOPowerManagement" = {"CurrentPowerState"=2}
< | | | | "IOLinkSpeed" = 54000000
< | | | | "APFeatures" = 1
< | | | | "IOActiveMedium" = "00000080"
< | | | | }
< | | | |
< | | | +-o AirPort_Brcm43xxInterface <class AirPort_Brcm43xxInterface, id 0x0, registered, matched, active, busy 0 (8 ms), retain 10>
< | | | | {
< | | | | "IONetworkData" = {"IOEthernetStatsKey"={"Data"=<0000000000000000000000000000000000000
0000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0
0000000000000000000000000000000>,"Access Types"=9,"Size"=216},"IONetworkStatsKey"={"Data"=
<3100000000000000790000000000000000000000>,"Access Types"=9,"Size"=20},"IOOutputQueueStatsKey"={"Data"=
<00010000000000000000000000000000000000000000000000000000000000000000000000000
00000000000>,"Access Types"=9,"Size"=44}}
< | | | | "IOInterfaceState" = 3
< | | | | "IO80211DriverVersion" = "Broadcom BCM43xx 1.0 (5.10.91.26)"
< | | | | "IOInterfaceUnit" = 1
< | | | | "IOActivePacketFilters" = {"IONetworkFilterGroup"=19,"IOEthernetWakeOnLANFilterGroup"=0}
< | | | | "IOInterfaceType" = 6
< | | | | "IO80211Locale" = "FCC"
< | | | | "IOMulticastAddressList" = <01005e0000fb3333000000fb01005e0000013333f8cdf8033333000000013333ff53097001039
3df0b92>
< | | | | "IOLocation" = ""
< | | | | "IOInterfaceNamePrefix" = "en"
< | | | | "IOInterfaceFlags" = 34915
< | | | | "IOInterfaceExtraFlags" = 1073744192
< | | | | "IO80211CountryCode" = "US"
< | | | | "IOControllerEnabled" = Yes
< | | | | "IO80211SSID" = "outlawcowboy"
< | | | | "IO80211BSSID" = <001cf039ebe7>
< | | | | "IO80211RSNDone" = Yes
< | | | | "BSD Name" = "en1"
< | | | | "IOMediaHeaderLength" = 14
< | | | | "IOBuiltin" = Yes
< | | | | "IO80211Channel" = 6
< | | | | "IOMaxTransferUnit" = 1500
< | | | | "IORequiredPacketFilters" = {"IONetworkFilterGroup"=19,"IOEthernetWakeOnLANFilterGroup"=0}
< | | | | "IOMediaAddressLength" = 6
< | | | | "IO80211Band" = "2.4 GHz"
< | | | | "IO80211HardwareVersion" = "vendorid: 0x14e4
< deviceid: 0x4311
< radiorev: 0x22050000
< chipnum: 0x4311
< chiprev: 0x1
< corerev: 0xa
< boardid: 0x1363
< boardvendor: 0x103c
< boardrev: 0x42
< driverrev: 0x50a5b1a
< ucoderev: 0x1fc0506
< bus: 0x1
< "
< | | | | "IOPrimaryInterface" = No
< | | | | }
< | | | |
< | | | +-o IONetworkStack <class IONetworkStack, id 0x0, registered, matched, active, busy 0 (3 ms), retain 9>
< | | | | {
< | | | | "IOResourceMatch" = "IOBSD"
< | | | | "IOMatchCategory" = "IONetworkStack"
< | | | | "CFBundleIdentifier" = "com.apple.iokit.IONetworkingFamily"
< | | | | "IOProbeScore" = 0
< | | | | "IOClass" = "IONetworkStack"
< | | | | "IOProviderClass" = "IOResources"
< | | | | }
< | | | |
< | | | +-o IONetworkStackUserClient <class IONetworkStackUserClient, id 0x0, !registered, !matched, active, busy 0, retain 5>
< | | | {
< | | | "IOUserClientCreator" = "pid 15, configd"
< | | | }
< | | |
< | | +-o RP06@1C,5 <class IOPCIDevice, id 0x0, registered, matched, active, busy 0 (184 ms), retain 9>
---
> | | | +-o pci14e4,4311@0 <class IOPCIDevice, id 0x0, registered, matched, active, busy 0 (445 ms), retain 26>
> | | | {
> | | | "device-id" = <11430000>
> | | | "vendor-id" = <e4140000>
> | | | "IOName" = "pci14e4,4311"
> | | | "subsystem-vendor-id" = <3c100000>
> | | | "IOPCIExpressLinkStatus" = 4113
> | | | "revision-id" = <01000000>
> | | | "reg" = <00000600000000000000000000000000000000001000060200000000000000000000000000400
000>
> | | | "acpi-wake-type" = 2
> | | | "IOPCIResourced" = Yes
> | | | "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")
> | | | "class-code" = <00800200>
> | | | "subsystem-id" = <63130000>
> | | | "IOChildIndex" = 1
> | | | "compatible" = <"pci103c,1363","pci14e4,4311","pciclass,028000">
> | | | "IOInterruptSpecifiers" = (<1300000007000000>,<0300000000000100>)
> | | | "IOPCIExpressASPMDefault" = 1
> | | | "name" = "pci14e4,4311"
> | | | "IOPCIExpressLinkCapabilities" = 222225
> | | | "IOPowerManagement" = {"CurrentPowerState"=2}
> | | | }
> | | |
> | | +-o RP06@1C,5 <class IOPCIDevice, id 0x0, registered, matched, active, busy 0 (221 ms), retain 27>


DSDT
CODE

Device (RP04)
{
Name (_ADR, 0x001C0003)
OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
{
Offset (0x10),
, 4,
LKDS, 1,
Offset (0x12),
, 13,
LASX, 1,
Offset (0x1A),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset (0x1B),
LSCX, 1,
Offset (0x20),
Offset (0x22),
PSPX, 1,
Offset (0x98),
, 30,
HPEX, 1,
PMEX, 1,
, 30,
HPSX, 1,
PMSX, 1
}

Method (_PRT, 0, NotSerialized)
{
If (\GPIC)
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x13
},

Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x10
},

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

Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x12
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPCB.LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPCB.LNKA,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPCB.LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPCB.LNKC,
0x00
}
})
}
}
}

Pere
team cobra, i have a friend with same Acer laptop and same problem.

I have check the DSDT and found it can be improved (the problem persists, but i think we should have a DSDT to start with).

Here i post your DSDT with the following changes:

Changed CPU code, now it has Speedstep, and just two cores code, so no more freezing on boot.
Added Snowleopard Cmos fix, changed/erased the number of RP0X devices to match just Network and wifi devices.
Created a device for wireless on DSDT (before was not there).
Changed P0P1 device to PCIB, (if this is wrong, please tell me).
Registered SBUS and LPCB to load correctly.
Changed HDEF to AZAL, now VoodooHDA loads correctly.


Todo: Register the DRAM controller (now is orphan code on DSDT).

The WMID device on DSDT is the one in charge of the special buttons, for example to turn on the WIFI, your machine doesn´t use AMW0 code as this new model has the WMID 2.0 specifications. (Something like the Sony SNC notebook controller, this maybe the root of the problem, but i´m not sure, just thinking).


Can you attach the iopcifamily that has worked for you?. I did try a lot of them and none worked.

Here is the edited DSDT (You can compare to yours to find the differences).

Click to view attachment
oldnapalm
Here is the IOPCIFamily which works for me (Chun-Nan's).

Boot with "arch=i386 -legacy".
Click to view attachment
Pere
Thanks, will try it. smile.gif

Edit: The laptop freeze on boot right after Fakesmc load when using chunan IOPCIFamily.kext.
smaky
I edited my dsdt.aml in my 6930g and what now i have in System Profiler


Click for full size - Uploaded with plasq's Skitch

Maybe anybody make injector for broadcom because drivers are not loaded on system startup?
teamcobra
Okay, time for an update: I got an extra bios never released on acer's site preloaded on one of the laptops, and have dumped it, but linux/osx issues didn't seem to be any different. Here's a zip full of my dsdt dumps, and also the IOPCIFamily that worked once in 10.5.8 (but like I stated earlier, is not even close to stable). Good luck guys, and as usual, I will be following wink.gif

Click to view attachment
Click to view attachment
smaky
I have small update, I found somewhere hack for freebsd, where PCI-bridge didn`t work too like under Leopard.
I post that code here:
CODE

ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);

+ if (device_get_unit(dev)==2){
+ pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+ pci_enable_busmaster(dev);
+ pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+ pci_write_config(dev, PCIR_MEMBASE_1, 0xf020, 2);
+ pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf020, 2);
+ pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+ }
+ if (device_get_unit(dev)==3){
+ pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+ pci_enable_busmaster(dev);
+ pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+ pci_write_config(dev, PCIR_MEMBASE_1, 0xf030, 2);
+ pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf030, 2);
+ pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+ }
pcib_attach_common(dev);
sc = device_get_softc(dev);
sc->ap_handle = acpi_get_handle(dev);


This code is for file: acpi_pcib_pci.c

And amaizing but broadcom wirelles card work under Freebsd.
So maybe samobody have time and readressing bad acpi for snowe for acer 6930.
I personaly don`t have time for coding, because study, study and again study.

Ps. sory for my bad english i don`t have time for check grammar :-)
teamcobra
Time for another update, I suppose......

Pere: Tried the DSDT when you first posted it, no luck. I can confirm that AMW0/WMI2.0 should not be affecting power to the card, as pin20 is taped, and wireless does work in linux (even with all amw/wmi modules blacklisted, also wifi on/off button does nothing). I think smaky is the closest with the freebsd patch, and it would seem like this needs to be implemented into chameleon in order to properly work. I have not been able to find anyone proficient in adding ACPI code to chameleon unfortunately, and have contacted several people who maintain their own branches/versions of chameleon. I am currently using AsereBLN 1.1.9 , and although it has added support for the PM45 northbridge controller, the results are still the same. At this point, I'm at a loss. Bounty still stands, and I will be notified by email/checking all responses! I just got my Magic Mouse, and I want to share some of that love asap! biggrin.gif

P.S.: Parts Affected: PCI-to-PCI Bridge, ExpressCard Slot, Wifi (on PCI-PCI Bridge), Lan (Attansic L1e, Same). Also, my Wifi card is a genuine Apple Airport Extreme card, no plist editing required.
teamcobra
Time for another update, I suppose......

Pere: Tried the DSDT when you first posted it, no luck. I can confirm that AMW0/WMI2.0 should not be affecting power to the card, as pin20 is taped, and wireless does work in linux (even with all amw/wmi modules blacklisted, also wifi on/off button does nothing). I think smaky is the closest with the freebsd patch, and it would seem like this needs to be implemented into chameleon in order to properly work. I have not been able to find anyone proficient in adding ACPI code to chameleon unfortunately, and have contacted several people who maintain their own branches/versions of chameleon. I am currently using AsereBLN 1.1.9 , and although it has added support for the PM45 northbridge controller, the results are still the same. At this point, I'm at a loss. Bounty still stands, and I will be notified by email/checking all responses! I just got my Magic Mouse, and I want to share some of that love asap! biggrin.gif

P.S.: Parts Affected: PCI-to-PCI Bridge, ExpressCard Slot, Wifi (on PCI-PCI Bridge), Lan (Attansic L1e, Same). Also, my Wifi card is a genuine Apple Airport Extreme card, no plist editing required.
oldnapalm
Hello,

dborca compiled a Snow Leopard version of IOPCIFamily.kext (v113) with Chun-nan's patches, it's working fine on my Aspire 5920. Source available.

http://www.insanelymac.com/forum/index.php...t&p=1460172
teamcobra
Hrm, just fragged my install using that kext.... My system now hangs randomly at boot, but the most common place is right after "PCI configuration changed (bridge=3 device=16 yenta=0)." I did notice that my broadcom wireless card gets detected properly, but I can't boot into the desktop in normal or safe mode, and single-user mode won't boot either to get an ioreg dump..... Back to square one, thank god I have backups sad.gif

Edit: Save, thanks to terminal and an old distro dvd, will see if I can help him debug the kext smile.gif
teamcobra
Time for another update, this time with a goodie (but not the holy grail). I've got a modded bios on one of my 6930g's that has options for enabling/disabling ASPM on each pcie device, as well as a few other options. Instead of posting the BIOS however (as it seems to have issues with winphlash, 1 unrecoverable machine and _very_ close to a 2nd), I'll post a dsdt with no ASPM set on the pcie devices, also modified with rtc/usb/ehci fixes, and sleeps properly. This DSDT _should_ also expose the other pcie slots, but it does not actually fix wifi/lan/expresscard yet. I have also tested this new bios with the recent IOPCIFamily, but it still panics on boot. In the next day or so, I will take screencaps of each of the unlocked menus of the BIOS, and if someone would like to hack away at the DSDT and have me flip settings in the BIOS until we have a working combination, I'm all for it. I've also found 2 other modded bioses that I haven't flashed yet, and they're based on an older revision, not sure when I'll get to test them honestly, brave 6930g users PM me if you'd like to try one of them and help narrow it down wink.gif

Click to view attachment
Darkening
QUOTE (teamcobra @ Jun 1 2010, 10:04 AM) *
Instead of posting the BIOS however (as it seems to have issues with winphlash, 1 unrecoverable machine and _very_ close to a 2nd)


Here's the Winphlash64 settings I used to flash that bios and all of its evolving previous versions. Theres lots of posts about not using any winphlash especially 64 but I've flashed this machine 20+ times and not bricked yet <touches wood>. I did have a working recovery solution before I tried any of my mods. Use the dos version that comes with the original Acer bios download and avoid winphlash altogether although that phlash16 wont work in recovery mode.

CODE
[Main]
Shutdown=1
RetryCount=3
UpdateMode=3
FormatVersion=2
UpdateFlags=9109a2
UserFlags=0
;UpdateFlags=408228a6
;UserFlags=800000
UserMask=d121a4
PSIFlags=880
UserMode=ffffffff
BackupFile=FLASHABL.bak
ImageFile=BIOSMOD_SLIC.WPH


[UI]
NoDelayTime=1
DisCancel=1
Advanced=0
Confirmation=1
;SaveEscdMode=1
;SaveUefiVarVolMode=1
;SaveSetupVarVolMode=1


We may still be able to resurrect the bricked machine. It took me two days in total, spread over the space of a week to find a working combination. Use a good, fast (important) 2 gig or less usb flash drive so that it can be reliably formatted to FAT and won't stutter during the flash. Use wincris to format the flash drive. Copy the files in the rar over to the flash drive, these are the files that work for me. Use the Fn+Esc power on. If your bad flash didn't trash the boot block hopefully you'll be sorted. http://www.megaupload.com/?d=BD0IQA42

Regards and good luck.
teamcobra
Will test later tonight, as I'm away from the machine in question, but I'm 99.999% sure the boot block got wiped too, to be honest. Since you did the original mod, and have some interest in osx, do you have the pci-bridge working (wifi, lan... I have an apple airport card, replaced the intel) on your 6930g? I've been fighting with this for over one year, and honestly, your work has been the first real breakthrough in months.
teamcobra
Worst fears confirmed, boot block is trashed, still under warranty though :/ Oh well, took one for the team, I suppose... now to actually get the pci bridge fixed.....
smaky
QUOTE (teamcobra @ Jun 1 2010, 09:04 AM) *


Anybody try last teamcobra dsdt for 6930?I make many combination with any kind of sleepenabler, but sleep still dosn`t work. Any solution?
teamcobra
QUOTE (smaky @ Jun 3 2010, 02:20 PM) *
Anybody try last teamcobra dsdt for 6930?I make many combination with any kind of sleepenabler, but sleep still dosn`t work. Any solution?


No sleepenabler and no nullcpupm, the bios I mentioned is in Darkening's link (he's the original modder), but read what he has to say about flashing, and either flash in dos or windows, DO NOT try to flash first with a crisis recovery disk, or you'll greatly increase your chances of bricking it (for good). Be careful, and good luck.
smaky
Ok I resolve problem with sleep and it probably will work with any bios (I personaly test with 3238 and work like charm).
I change pmVersion in sleepenabler and use teamcobra dsdt.
Everything work when "mac" back from sleep (sound, network from usb dongle, etc).
This sleepenabler is for 10.6.3.
Click to view attachment
buoo
Hi

I have an Aspire 5739g (Cantiga PM45) and I have installed Snow Leopard 10.6.3 with AsereBLN v1.1.9 and DSDT modified by me

The last problems are Lan and Wifi
Reading the Ioreg I noticed that Bridge IORanges and MemoryRange are respectively 0x0 e 0xfff and they are the same for every Pci Bridge



The Lan card's error is:

localhost kernel[0]: [AttansicL1eEthernet] Error: Couldn't map io regs
localhost kernel[0]: [AttansicL1eEthernet] Error: Couldn't probe adapter

How can I solve these problems ?

p.s. This is my second post in this forum so be good with me tongue.gif
nobb1x
hello guys, i'm not sure if i can help but i have an Acer Aspire 5935G, one year old, updated with latest bios.
it has GM45 chipset and ICH9M like many notebooks around, gfx card is a geforce GT130M
it use an Insyde bios and on this pc the pci works flawlessy on snow leopard, gfx,both wired and wifi cards (which i have replaced because the original intel is unsupported)
if any of you want to analyze the dsdt coming with this laptop i upload it here. it is the unpatched dsdt extractd
from the bios, not the current one i use on leopard, but using the original one too the pci works.
i'm using a 100% retail snow leopard installation, just anval bootloader,a patched dsdt,voodoops2,voodoohda and voodoobattery.

Click to view attachment
buoo
up
smaky
Any progress with 6930 BIOS? Mwybe we should report that bug ACER development team, becausee still doesn`t work PCI on FREEBSD.
teamcobra
No progress, and it also affects Linux, depending on BIOS revision. Acer doesn't care at all, I've logged at least 10 different support tickets/called their paid support, complete joke. Note that I bought 3 of these at once, and they still didn't care, at all, if you use an OS other than Windows (not an option here). Last Acer product I buy, for sure (and honesty, last non-Apple laptop, although I greatly appreciate the hard work that goes into device support for osx86; consider me a convert)!
darkuttek
As this problem seriously irritates me as well, I'll throw in some money too -- I offer a bounty of $75 US (payment through paypal) to the first one to solve this problem. Wlan or lan aren't that critical to me, but I really need that expresscard.

http://www.projectosx.com/forum/index.php?...amp;#entry11819
darkuttek
Okay, something new on this issue:

On Kexts.com I got some help on this issue, a DSDT file. I have no idea, for what kind of hardware it has been specifically written for, but it can be called a step into the right direction. When I boot OSX with the new DSDT file, one of the PCIe bridges GOT REAL ADDRESS. I can confirm this, as plugging my ExpressCard in resulted in a different kind of kernel panic laugh.gif -- one mentioning Firewire for the first time!

The problem, however, is that the SATA doesn't work with that DSDT, and the boot process stops with the OSX not being able to find the root device.

I have spent this whole day trying to look for an answer to this issue (also trying to use some parts of the new DSDT in the one ripped from this computer) but to no avail. However, maybe someone from this site would have better luck with it?

http://www.kexts.com/kexts-com-premium-sup...ci-bridges.html
Slice
Not sure if it helps you but you can try.
Click to view attachment
Bronza
hi guys
I have acer 6930g with the same problem !
In my case
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
Region 0: Memory at <unassigned> (64-bit, non-prefetchable)
05:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
Region 0: Memory at <unassigned> (64-bit, non-prefetchable) [disabled]

my SMBUS kext are not loaded (my ID is in the kext)

I'm not sure, but I if SMBUS not work properly , maybe PCI on it will not work too.

can someone check is the SMBUS are the same like me?

sorry for my eng!!!

EDTED: I see that on the firs post here (teamcobra) ,his LSPCI-OSX.txt are the same situation whit SMBUS.
yuanyelss
Anyone tried 6930 last teamcobra the DSDT? I have many such combinations with any sleepenabler, but sleep is still dosn `t work. Any solution?
Bronza
ok guys

when I make DSDT edit , I have this (pic 1)
Click to view attachment

When I use IOPCIFamily (chun-nan) i can't boot , just freezing (pic 2) but I see that my broadcom is detected.
Click to view attachment
maczor
QUOTE (nobb1x @ Jun 9 2010, 10:20 PM) *
hello guys, i'm not sure if i can help but i have an Acer Aspire 5935G


Hi, I got exactly same machine - can you please share more (what kind of wifi you got there now, modified dsdt, modified bios?)
anything that can help.

I manage to install Snow but it works weird.

hope you'll get this.
darkuttek
As this thing seems to come bite me all the time, I'm back here again. I really think that this is an issue that should be fixed with a custom tailored IOPciFamily.

The original source can be found here:
http://opensource.apple.com/source/IOPCIFa...OPCIFamily-115/

Now then, the "only thing" to do is finding out, how to merge this bsd code patch mentioned earlier to that source

CODE

     ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);

+    if (device_get_unit(dev)==2){
+    pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+    pci_enable_busmaster(dev);
+    pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+    pci_write_config(dev, PCIR_MEMBASE_1, 0xf020, 2);
+    pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf020, 2);
+    pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
+    if (device_get_unit(dev)==3){
+        pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+        pci_enable_busmaster(dev);
+        pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+        pci_write_config(dev, PCIR_MEMBASE_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
     pcib_attach_common(dev);
     sc = device_get_softc(dev);
     sc->ap_handle = acpi_get_handle(dev);


Simple, eh? laugh.gif
darkuttek
We should possibly look in this file:

http://opensource.apple.com/source/IOPCIFa...IOPCIBridge.cpp

Lots of interesting functions, such as "IOPCIBridge::addBridgeMemoryRange", "IOPCIBridge::addBridgePrefetchableMemoryRange"
etc...
darkuttek
Looked a bit more carefully on the patch, and it seems that it is a "dirty hack fix" indeed. It first finds out which device it is configuring, and if it is the one with address problems, the addresses are then set to those mentioned in the code.

Some information about this problem in FreeBSD:
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/135070

So, I guess the best way forward would be now to find a way to set the IO addresses for our pci bridges in the IOPciFamily code.
darkuttek
And yet one posting. This might be the function we are looking for to do our dirty hack in:

CODE
bool IOPCI2PCIBridge::configure( IOService * provider )
{
    UInt32      end;
    UInt32      start;
    bool        ok;

    IOByteCount offset = 0;

    if (bridgeDevice->extendedFindPCICapability(kIOPCIPCIExpressCapability, &offset))
        fXpressCapability = offset;

    if (fXpressCapability)
    do
    {
        IOReturn ret;

        if (bridgeDevice->getProperty(kIOPCIHotPlugKey))
            setProperty(kIOPCIHotPlugKey, kOSBooleanTrue);
        else if (bridgeDevice->getProperty(kIOPCILinkChangeKey))
        {
            setProperty(kIOPCILinkChangeKey, kOSBooleanTrue);
            fLinkChangeOnly = true;
        }
        else
            break;

        if (!gCommonWorkLoop)
            gCommonWorkLoop = IOWorkLoop::workLoop();
        fWorkLoop = gCommonWorkLoop;
            
        fBridgeInterruptSource = IOFilterInterruptEventSource::filterInterruptEventSource(
                      this,
                      OSMemberFunctionCast(IOInterruptEventSource::Action,
                                            this, &IOPCI2PCIBridge::handleInterrupt),
                      OSMemberFunctionCast(IOFilterInterruptEventSource::Filter,
                                            this, &IOPCI2PCIBridge::filterInterrupt),
                      provider, 0);
        if (!fBridgeInterruptSource)
            break;

        ret = fWorkLoop->addEventSource( fBridgeInterruptSource );
        if (kIOReturnSuccess != ret)
            break;

        uint16_t slotStatus  = bridgeDevice->configRead16( fXpressCapability + 0x1a );
        uint16_t linkStatus  = bridgeDevice->configRead16( fXpressCapability + 0x12 );
        uint16_t linkControl = bridgeDevice->configRead16( fXpressCapability + 0x10 );

        LOG("hotp configure slotStatus %x, linkStatus %x, linkControl %x\n",
            slotStatus, linkStatus, linkControl);

        fPresence = (0 != ((1 << 13) & linkStatus));
        fPresence &= (0 != ((1 << 6) & slotStatus));
        if (fPresence)
        {
            if (!fLinkChangeOnly)
                bridgeDevice->setProperty(kIOPCIOnlineKey, kOSBooleanTrue);
        }
        else if (!((1 << 4) & linkControl))
        {
            LOG("disable link\n");
            linkControl |= (1 << 4);
            bridgeDevice->configWrite16( fXpressCapability + 0x10, linkControl );
        }

//      fHotplugFirstBus = bridgeDevice->configRead8( kPCI2PCISecondaryBus );
//      fHotplugLastBus  = bridgeDevice->configRead8( kPCI2PCISubordinateBus );
//      LOG("first bus %d, last bus %d\n", fHotplugFirstBus, fHotplugLastBus);    

        fBridgeInterruptEnablePending = true;
    }
    while(false);

    uint8_t secBus = bridgeDevice->configRead8( kPCI2PCISecondaryBus );
    if (!secBus)
    {
        LOG("Bridge has secBus 0\n");
        return (false);
    }

    end = bridgeDevice->configRead32( kPCI2PCIMemoryRange );
    if (end)
    {
        start = (end & 0xfff0) << 16;
        end |= 0x000fffff;
        ok = addBridgeMemoryRange( start, end - start + 1, false );
    }

    end = bridgeDevice->configRead32( kPCI2PCIPrefetchMemoryRange );
    if (end)
    {
        start = (end & 0xfff0) << 16;
        end |= 0x000fffff;
        ok = addBridgePrefetchableMemoryRange( start, end - start + 1, false );
    }

    end = bridgeDevice->configRead32( kPCI2PCIIORange );
    if (end)
    {
        start = (end & 0xf0) << 8;
        end = (end & 0xffff) | 0xfff;
        ok = addBridgeIORange( start, end - start + 1 );
    }

    saveBridgeState();
    if (bridgeDevice->savedConfig)
    {
        configShadow(bridgeDevice)->bridge = this;
        configShadow(bridgeDevice)->flags |= kIOPCIConfigShadowBridge;
        if (OSTypeIDInst(this) != OSTypeID(IOPCI2PCIBridge))
            configShadow(bridgeDevice)->flags |= kIOPCIConfigShadowBridgeDriver;
    }

    return (super::configure(provider));
}
darkuttek
While installing Xcode and getting the sources I decided to take one more look at the earlier IOPCIFamily modifications, that is those made by Chun-Nan and Slice. While it seems that Slice's isn't unfortunately having an effect, Chun-Nan's certainly is -- even if it is hanging during the boot. This is evident of the message "PCI Configuration changed", which is displayed when using Chun-Nan's file. The number of bridges informed of in this message changes if I plug in my Firewire Expresscard.

Now then, I have downloaded the source for IOPCIFamily-115 (10.6.6) and done myself those same changes according to the patch file. Now I "only" have to find out why the boot process hangs and then try to stumble on how to fix it.

On this issue: does anyone know how to get the DLOG entries displayed during boot process? Or should I rather add my own IOLOGs to the code in order to find out which part of the code is run last before the freeze..
darkuttek
Dear friends,


I'm happy to announce that I have been able to acquire memory addresses to the PCI bridges!!!!!!!

Currently I don't yet know if this is pure luck, removing one kext or if this has something to do with my great coding skills (just added some logging, laugh.gif) but in case it isn't the first or the last, you can try this:

Remove the AppleBCM5701Ethernet.kext. It is located within IONetworkingFamily.kext/Contents/PlugIns
then install Chun-nan's IOPCIFamily compiled by dborca. And give it some reboots!

I fear that this hasn't yet fixed everything, but it's comforting to know that it is possible to fix this ... seeing those memory ranges in IORegistryExplorer sure is a great joy! wink.gif
darkuttek
QUOTE (darkuttek @ May 2 2011, 01:35 AM) *
Dear friends,


I'm happy to announce that I have been able to acquire memory addresses to the PCI bridges!!!!!!!

Currently I don't yet know if this is pure luck, removing one kext or if this has something to do with my great coding skills (just added some logging, laugh.gif) but in case it isn't the first or the last, you can try this:

Remove the AppleBCM5701Ethernet.kext. It is located within IONetworkingFamily.kext/Contents/PlugIns
then install Chun-nan's IOPCIFamily compiled by dborca. And give it some reboots!

I fear that this hasn't yet fixed everything, but it's comforting to know that it is possible to fix this ... seeing those memory ranges in IORegistryExplorer sure is a great joy! wink.gif


Ok, it certainly seems that it was closer to luck than anything else. Thus far only that one boot has been successful. Will be next testing if fixing DSDT to be closer to real Macs helps. Regardless, this has been a fine day smile.gif I'll upload soon my kernel log, as it now contains lots of information from IOPCIFamily and reconfiguration of buses.
darkuttek
QUOTE (darkuttek @ May 2 2011, 02:12 AM) *
Ok, it certainly seems that it was closer to luck than anything else. Thus far only that one boot has been successful. Will be next testing if fixing DSDT to be closer to real Macs helps. Regardless, this has been a fine day smile.gif I'll upload soon my kernel log, as it now contains lots of information from IOPCIFamily and reconfiguration of buses.


More news!

I fixed my DSDT (changed USBs to UHCs and EHCs & added sleep enabling on them, removed SAT1 and renamed SAT0 to SATA, removed processors which were extra, HPET & RTC IRQ fixes, see this board -- many thanks to Project OSX!). Now three working boots in a row, I think I can confirm this. Installed the hacked Broadcom BCM5764M ethernet driver, now writing this with the built in ethernet smile.gif Finally got rid of that USB2ETHERNET -stick!

My Firewire Expresscard still gives me KP though, but it might be problem with the card now. Got to find a OSX compatible esata-expresscard to know for sure.

If dborcas IOPCIFamily doesn't get you anywhere, please inform me and I'll give you my great achievement, kext that will write lots of info on verbose wink.gif

Teamcobra, am I egilible on that bounty now? I certainly have reclaimed the one I myself promised! laugh.gif
pauliebb
QUOTE (darkuttek @ May 2 2011, 01:53 AM) *
More news!

I fixed my DSDT (changed USBs to UHCs and EHCs & added sleep enabling on them, removed SAT1 and renamed SAT0 to SATA, removed processors which were extra, HPET & RTC IRQ fixes, see this board -- many thanks to Project OSX!). Now three working boots in a row, I think I can confirm this. Installed the hacked Broadcom BCM5764M ethernet driver, now writing this with the built in ethernet smile.gif Finally got rid of that USB2ETHERNET -stick!

My Firewire Expresscard still gives me KP though, but it might be problem with the card now. Got to find a OSX compatible esata-expresscard to know for sure.

If dborcas IOPCIFamily doesn't get you anywhere, please inform me and I'll give you my great achievement, kext that will write lots of info on verbose wink.gif

Teamcobra, am I egilible on that bounty now? I certainly have reclaimed the one I myself promised! laugh.gif



that sounds amazing! can you explain step by step how to do this and post dsdt so i can also use built in ethernet?

assuming youre also on acer 6930g, been waiting for this for over a year... im using iatokos v7 or iatkos S 1.6.2.

please help
darkuttek
QUOTE (pauliebb @ May 3 2011, 11:41 PM) *
that sounds amazing! can you explain step by step how to do this and post dsdt so i can also use built in ethernet?

assuming youre also on acer 6930g, been waiting for this for over a year... im using iatokos v7 or iatkos S 1.6.2.

please help


Running Acer Aspire 7730G, but I guess it's about the same. I'll post full step by step information as soon as I have the time. smile.gif
pauliebb
QUOTE (darkuttek @ May 3 2011, 09:44 PM) *
Running Acer Aspire 7730G, but I guess it's about the same. I'll post full step by step information as soon as I have the time. smile.gif


thank you, so much,
pauliebb
i had almost given up hope.

i have an acer aspire 6930g. tried to run osx on it for a long time now, tried both sl and leo but couldnt get any network access without external usb.

tried many kexts, failed boots, kernel panics, etc...

never tried dsdt, wondering if you could post dsdt file so i could attempt to get my ethernet working myself? or even wireless via pcie card?
darkuttek
QUOTE (pauliebb @ May 4 2011, 01:05 AM) *
i had almost given up hope.

i have an acer aspire 6930g. tried to run osx on it for a long time now, tried both sl and leo but couldnt get any network access without external usb.

tried many kexts, failed boots, kernel panics, etc...

never tried dsdt, wondering if you could post dsdt file so i could attempt to get my ethernet working myself? or even wireless via pcie card?


Okay, here are the steps to take: http://www.projectosx.com/forum/index.php?showtopic=2118

Teamcobra, I hope you try it too smile.gif
pauliebb
QUOTE (darkuttek @ May 4 2011, 11:16 PM) *
Okay, here are the steps to take: http://www.projectosx.com/forum/index.php?showtopic=2118

Teamcobra, I hope you try it too smile.gif


thanks so much for this, especially the time it must have taken to write that.

xcode is 4gb download and i dont have it yet, im using my ipodtouch to connect to net in mac and for some reason its limiting speed to about 100kbs, so ill try it and let you know when done.

is there anyway i can do this without xcode or even the large download?
darkuttek
QUOTE (pauliebb @ May 5 2011, 03:12 AM) *
thanks so much for this, especially the time it must have taken to write that.

xcode is 4gb download and i dont have it yet, im using my ipodtouch to connect to net in mac and for some reason its limiting speed to about 100kbs, so ill try it and let you know when done.

is there anyway i can do this without xcode or even the large download?


Unfortunately no. Xcode contains all libraries and tools for compiling programs on OSX.

But well, if you post those lspci -v from both linux and osx I could take a look and possibly compile for you the kext?
pauliebb
QUOTE (darkuttek @ May 5 2011, 09:52 AM) *
Unfortunately no. Xcode contains all libraries and tools for compiling programs on OSX.

But well, if you post those lspci -v from both linux and osx I could take a look and possibly compile for you the kext?


that sounds fantastic! hope it doesnt take too much of your time but i guess doing it will make me a tester.

ok im currently running iatkos v7 with the settings suggested all over the internet and everything runs great apart from pcie cards (wifi/ethernet) etc...

heres the txt logs of running both in both. unfortunately i had to reboot to ubuntu to get the lspci from there so stopped my xcode download, really hoping this works now!

thanks in advance, biggrin.gif

edit: for some reason my attachments arent showing, heres pastebin links: (hope thats ok mods)

osx 1.5.7 iatkos v7: http://pastebin.com/5wrzxYgm

linux ubuntu (10.04 i think) : http://pastebin.com/cRkD7zMj

edit2: ok sorry, the attachments show now, leaving pastebin for additional options
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.