Help - Search - Members - Calendar
Full Version: Generic USB2.0 (EHCI) Driver
InsanelyMac Forum > OSx86 Project > Hardware and Drivers > Other Peripheral Devices
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
orByte
QUOTE (JaS @ Mar 3 2008, 04:12 AM) *
Just wanted to report that this works on my custom install of 10.5.2. I included it in my new iso. The only issue is that when it is loaded I need to replug in my network cable to get it to show the cable plugged in. When I use the default usb kext I get two port working and have networking np. I need the four ports so I will replug for now.

Do you have any idea why this would mess with networking.
Also great wrk on this kext, keep it up bro.


I cannot think of anything. Here is the dif for 270.4.1 - There does not appear to be something in there. It could be due to differences between 270 and 308 - there seem to be a few changes but I have not yet time to look at it in detail. Best.

CODE
Only in IOUSBFamily-PCGen-270.4.1: .DS_Store
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI.cpp
62a63,77
>     // custom key defaults
>     _alwaysHardBIOSReset = false;
>     
>     // get custom keys
>     OSDictionary *usbEHCIDict;
>     usbEHCIDict = OSDynamicCast(OSDictionary, propTable);
>     if (OSDynamicCast(OSDictionary, usbEHCIDict) != NULL) {
>         if (usbEHCIDict->getObject("AlwaysHardBIOSReset") != NULL)
>         {
>             OSBoolean * alwaysHardBIOSReset;
>             alwaysHardBIOSReset = OSDynamicCast(OSBoolean, usbEHCIDict->getObject("AlwaysHardBIOSReset"));
>             if (alwaysHardBIOSReset->isTrue()) _alwaysHardBIOSReset = true;
>         }
>     }            
>     
385a401
>     bool            isOwnershipConflict;
387c403
<     USBLog(2, "Attempting to get EHCI Controller from BIOS");
---
>     USBError(1, "Attempting to get EHCI Controller from BIOS");
395c411
<
---
>     USBError(1, "USBLEGCTLSTS value %x", (void*)_device->configRead32(eecp + kEHCI_USBLEGCTLSTS));
398c414,432
<         USBLog(2, "Found USBLEGSUP_ID - value %p - writing OSOwned", (void*)data);
---
>     
>         //We try soft reset first - some systems hang on reboot with hard reset
>         // Definitely needed during reboot on 10.4.6
>         isOwnershipConflict = ((data & kEHCI_USBLEGSUP_OSOwned !=  0) && (data & kEHCI_USBLEGSUP_BIOSOwned !=  0));
>         if (!_alwaysHardBIOSReset && isOwnershipConflict)
>         {
>             USBError(1, "EHCI - Ownership conflict - attempting soft reset ...");
>             USBError(1, "EHCI - toggle OS Ownership to 0");
>             _device->configWrite32(eecp, data ^ kEHCI_USBLEGSUP_OSOwned);
>             for (int i = 0; i < 25; i++)
>             {
>                 data = _device->configRead32(eecp);
>                 if ((data & kEHCI_USBLEGSUP_OSOwned) == 0)
>                     break;
>                 IOSleep(10);            
>             }
>         }    
>     
>         USBError(1, "Found USBLEGSUP_ID - value %p - writing OSOwned", (void*)data);
409c443,466
<         if ((_device->configRead32(eecp) & kEHCI_USBLEGSUP_BIOSOwned) != 0)
---
>         
>         isOwnershipConflict = ((_device->configRead32(eecp) & kEHCI_USBLEGSUP_BIOSOwned) != 0);
>         if (isOwnershipConflict)
>         {                
>             // Soft reset has failed. Assume SMI being ignored
>             // Hard reset
>             // Force Clear BIOS BIT
>             USBError(1, "EHCI - Ownership conflict - attempting hard reset ...");            
>             USBError(1, "EHCI - Force BIOS Ownership to 0");
>             _device->configWrite32(eecp, data ^ kEHCI_USBLEGSUP_BIOSOwned);
>                 for (int i = 0; i < 25; i++)
>                 {
>                     data = _device->configRead32(eecp);
>                     if ((data & kEHCI_USBLEGSUP_BIOSOwned) == 0)
>                         break;
>                     IOSleep(10);            
>                 }        
>             // Disable further SMI events
>             _device->configWrite32(eecp + kEHCI_USBLEGCTLSTS, 0);            
>         }
>         
>         // Final Ownership Resolution Check...
>         isOwnershipConflict = ((_device->configRead32(eecp) & kEHCI_USBLEGSUP_BIOSOwned) != 0);
>         if (isOwnershipConflict)
414,415c471,473
<         else
<             USBLog(2, "acquireOSOwnership done - value %p", (void*)_device->configRead32(eecp));
---
>         
>         USBError(1, "acquireOSOwnership done - value %p", (void*)_device->configRead32(eecp));
>
421a480
>
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI_Interrupts.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI_Interrupts.cpp
266c266
<             clock_get_uptime(&timeStamp);
---
>             clock_get_uptime((uint64_t *) &timeStamp);
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI_RootHub.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI_RootHub.cpp
1131c1131
<         clock_get_uptime( &_lastRootHubStatusChanged );
---
>        clock_get_uptime((uint64_t *) &_lastRootHubStatusChanged );
1207,1209c1207,1211
<             clock_get_uptime( &currentTime );
<             SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
<             absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>             clock_get_uptime((uint64_t *) &currentTime );
>             // Expand Macro below
>             // SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
>             (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&lastRootHubChangeTime));
>             absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);            
1364c1366
<         clock_get_uptime(&_lastRootHubStatusChanged);
---
>         clock_get_uptime((uint64_t *) &_lastRootHubStatusChanged);
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI_UIM.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBEHCI/Classes/AppleUSBEHCI_UIM.cpp
1221c1221
<     clock_get_uptime(&timeStamp);
---
>      clock_get_uptime((uint64_t *) &timeStamp);
2154c2154
<     clock_get_uptime(&timeStamp);
---
>     clock_get_uptime((uint64_t *) &timeStamp);
3679c3679
<     clock_get_uptime(&timeStamp);
---
>     clock_get_uptime((uint64_t *) &timeStamp);
4148,4150c4148,4152
<         clock_get_uptime( &currentTime );
<         SUB_ABSOLUTETIME(&currentTime, &_lastCheckedTime );
<         absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>          clock_get_uptime((uint64_t *) &currentTime );
>         // Expand Macro below
>         // SUB_ABSOLUTETIME(&currentTime, &_lastCheckedTime );
>         (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&_lastCheckedTime));
>         absolutetime_to_nanoseconds((uint64_t ) &currentTime, &elapsedTime);        
4156c4158
<             clock_get_uptime( &_lastCheckedTime );
---
>             clock_get_uptime((uint64_t *) &_lastCheckedTime );
4169,4171c4171,4175
<                 clock_get_uptime( &currentTime );
<                 SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
<                 absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>                  clock_get_uptime((uint64_t *) &currentTime );
>                 // Expand Macro below
>                 // SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
>                 (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&lastRootHubChangeTime));
>                 absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);                
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBEHCI/Headers/AppleUSBEHCI.h IOUSBFamily-PCGen-270.4.1/AppleUSBEHCI/Headers/AppleUSBEHCI.h
261a262,263
>     bool                                    _alwaysHardBIOSReset;                    // Default value of AlwaysHardBIOSReset key
>     
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBEHCI/Headers/USBEHCI.h IOUSBFamily-PCGen-270.4.1/AppleUSBEHCI/Headers/USBEHCI.h
561a562,566
> // USBLEGCTLSTS offset value
> enum {
> kEHCI_USBLEGCTLSTS = 4
> };
>
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI.cpp
122c122
<     clock_get_uptime(&_lastCheckedTime);
---
>      clock_get_uptime((uint64_t *) &_lastCheckedTime);
1174c1174
<         clock_get_uptime (&timeStop);
---
>         clock_get_uptime ((uint64_t *) &timeStop);
1176,1177c1176,1179
<         SUB_ABSOLUTETIME(&timeStop, &timeStart);
<         absolutetime_to_nanoseconds(timeStop, &timeElapsed);
---
>         // Expand Macro below
>         // SUB_ABSOLUTETIME(&timeStop, &timeStart);
>         (*(uint64_t *) (&timeStop)) -= (*(uint64_t *) (&timeStart));
>         absolutetime_to_nanoseconds((uint64_t) &timeStop, &timeElapsed);         
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI_Interrupts.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI_Interrupts.cpp
435c435
<             clock_get_uptime(&timeStamp);
---
>             clock_get_uptime((uint64_t *) &timeStamp);
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI_RootHub.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI_RootHub.cpp
794c794
<         clock_get_uptime( &_lastRootHubStatusChanged );
---
>         clock_get_uptime((uint64_t *) &_lastRootHubStatusChanged );
860,862c860,864
<             clock_get_uptime( &currentTime );
<             SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
<             absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>             clock_get_uptime((uint64_t *) &currentTime );
>             // Expand Macro below
>             // SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
>             (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&lastRootHubChangeTime));    
>             absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);            
937c939
<         clock_get_uptime(&_lastRootHubStatusChanged);
---
>          clock_get_uptime((uint64_t *) &_lastRootHubStatusChanged);
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI_UIM.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBOHCI/Classes/AppleUSBOHCI_UIM.cpp
2090,2092c2090,2094
<         clock_get_uptime( &currentTime );
<         SUB_ABSOLUTETIME(&currentTime, &_lastCheckedTime );
<         absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>         clock_get_uptime((uint64_t *) &currentTime );
>         // Expand Macro below
>         // SUB_ABSOLUTETIME(&currentTime, &_lastCheckedTime );
>         (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&_lastCheckedTime));
>         absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);        
2098c2100
<             clock_get_uptime( &_lastCheckedTime );
---
>              clock_get_uptime((uint64_t *) &_lastCheckedTime );
2111,2113c2113,2117
<                 clock_get_uptime( &currentTime );
<                 SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
<                 absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>                  clock_get_uptime((uint64_t *) &currentTime );
>                 // Expand Macro below
>                 // SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
>                 (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&lastRootHubChangeTime));
>                 absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);                
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI.cpp
370c370
<         clock_get_uptime(&_lastTime);
---
>         clock_get_uptime((uint64_t *) &_lastTime);
1164c1164
<     clock_get_uptime(&timeStamp);
---
>     clock_get_uptime((uint64_t *) &timeStamp);
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI_Interrupts.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI_Interrupts.cpp
145c145
<             clock_get_uptime(&timeStamp);
---
>             clock_get_uptime((uint64_t *) &timeStamp);            
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI_RootHub.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI_RootHub.cpp
547,549c547,551
<                 clock_get_uptime(&currentTime);
<                 SUB_ABSOLUTETIME(&currentTime, &_portRecoveryTime[i-1] );
<                 absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>                 clock_get_uptime((uint64_t *) &currentTime);
>                 // Expand Macro below
>                 // SUB_ABSOLUTETIME(&currentTime, &_portRecoveryTime[i-1] );
>                 (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&_portRecoveryTime[i-1]));    
>                 absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);                
569c571
<                         clock_get_uptime(&_portRecoveryTime[i-1]);
---
>                         clock_get_uptime((uint64_t *) &_portRecoveryTime[i-1]);
624c626
<         clock_get_uptime(&_rhChangeTime);
---
>         clock_get_uptime((uint64_t *) &_rhChangeTime);
873,875c875,879
<             clock_get_uptime( &currentTime );
<             SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
<             absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>             clock_get_uptime((uint64_t *) &currentTime );
>             // Expand Macro below
>             // SUB_ABSOLUTETIME(&currentTime, &lastRootHubChangeTime );
>             (*(uint64_t *) (&currentTime)) -= (*(uint64_t *) (&lastRootHubChangeTime));    
>             absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);            
diff -i -E -b -r IOUSBFamily-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI_UIM.cpp IOUSBFamily-PCGen-270.4.1/AppleUSBUHCI/Classes/AppleUSBUHCI_UIM.cpp
1392c1392
<     clock_get_uptime(&currentTime);
---
>     clock_get_uptime((uint64_t *) &currentTime);
1527,1528c1527,1530
<     SUB_ABSOLUTETIME(&t, &_lastTime);
<     absolutetime_to_nanoseconds(t, &elapsedTime);
---
>     // Expand Macro below
>     // SUB_ABSOLUTETIME(&t, &_lastTime);
>     (*(uint64_t *) (&t)) -= (*(uint64_t *) (&_lastTime));
>     absolutetime_to_nanoseconds((uint64_t) &t, &elapsedTime);    
1547,1548c1549,1552
<                 SUB_ABSOLUTETIME(&t, &_rhChangeTime);
<                 absolutetime_to_nanoseconds(t, &elapsedTime);
---
>                 // Expand Macro below
>                 // SUB_ABSOLUTETIME(&t, &_rhChangeTime);
>                 (*(uint64_t *) (&t)) -= (*(uint64_t *) (&_rhChangeTime));
>                 absolutetime_to_nanoseconds((uint64_t) &t, &elapsedTime);                
1999c2003
<     clock_get_uptime(&timeStamp);
---
>     clock_get_uptime((uint64_t *) &timeStamp);
2118c2122
<     clock_get_uptime(&timeStamp);
---
>    clock_get_uptime((uint64_t *) &timeStamp);
diff -i -E -b -r IOUSBFamily-270.4.1/IOUSBFamily/Classes/IOUSBDevice.cpp IOUSBFamily-PCGen-270.4.1/IOUSBFamily/Classes/IOUSBDevice.cpp
703,704c703,704
<     clock_get_uptime(&currentTime);
<     absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>     clock_get_uptime((uint64_t *) &currentTime);
>     absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);
diff -i -E -b -r IOUSBFamily-270.4.1/IOUSBFamily/Classes/IOUSBLog.cpp IOUSBFamily-PCGen-270.4.1/IOUSBFamily/Classes/IOUSBLog.cpp
143,144c143,144
<             clock_get_uptime(&currentTime);
<             absolutetime_to_nanoseconds(currentTime, &elapsedTime);
---
>             clock_get_uptime((uint64_t *) &currentTime);
>             absolutetime_to_nanoseconds((uint64_t) &currentTime, &elapsedTime);
Only in IOUSBFamily-PCGen-270.4.1: IOUSBFamily-PCGen-270.4.1.xcodeproj
Only in IOUSBFamily-270.4.1: IOUSBFamily.xcodeproj
diff -i -E -b -r IOUSBFamily-270.4.1/IOUSBHIDDriver/Classes/IOUSBHIDDriver.cpp IOUSBFamily-PCGen-270.4.1/IOUSBHIDDriver/Classes/IOUSBHIDDriver.cpp
1031c1031
<     clock_get_uptime(&timeStamp);
---
>     clock_get_uptime((uint64_t *) &timeStamp);
diff -i -E -b -r IOUSBFamily-270.4.1/IOUSBUserClient/Classes/IOUSBDeviceUserClient.cpp IOUSBFamily-PCGen-270.4.1/IOUSBUserClient/Classes/IOUSBDeviceUserClient.cpp
498c498
<         clock_get_uptime(&data->timeStamp);
---
>         clock_get_uptime((uint64_t *) &data->timeStamp);
540c540
<         clock_get_uptime(&data->timeStamp);
---
>         clock_get_uptime((uint64_t *) &data->timeStamp);
diff -i -E -b -r IOUSBFamily-270.4.1/IOUSBUserClient/Classes/IOUSBInterfaceUserClient.cpp IOUSBFamily-PCGen-270.4.1/IOUSBUserClient/Classes/IOUSBInterfaceUserClient.cpp
863c863
<         clock_get_uptime(&data->timeStamp);
---
>         clock_get_uptime((uint64_t *) &data->timeStamp);
902c902
<         clock_get_uptime(&data->timeStamp);
---
>        clock_get_uptime((uint64_t *) &data->timeStamp);


EDIT: Ooops I did the wrong diff. I should have done 303. But the basic result is the same... I suspect it could be a 303 vs 308 issue.
SimonTuffGuy
Just wanted to confirm that I used:

QUOTE
1. Darwin 9.0.0 - PCGenUSBEHCI_303.4.5.kext.zip ( 121.04K ) Number of downloads: 1370
- Any support queries must include the output of 'kextstat' and 'dmesg | grep -i USB'. After the test phase, I will release full sources etc.


and followed these directions:

QUOTE
(A). The risk takers approach
---------------------------------------------------

sudo su
rm -R /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins/AppleUSBEHCI.kext
cp -R <path to>/PCGenUSBEHCI.kext /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins
chown -R root:wheel /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins/PCGenUSBEHCI.kext
chmod -R 755 /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins/PCGenUSBEHCI.kext
touch /System/Library/Extensions
shutdown -r now


I've got 10.5.1 installed on my HP dv8000t laptop and I've got 4 functional USB drives on the laptop. From what I can gather, the high speed USB is already there. smile.gif

This is perfect. One step closer to having a fully functional hackintosh. smile.gif
bcas9472
QUOTE (orByte @ Sep 25 2006, 04:06 PM) *
I shall keep you posted. Working title is: GenPCUSBEHCI.kext .
Best,


You are a bloody genious, you got my Integrated Secure Digital Card reader working.

Thanks a million
macgirl
orByte is possible to modify the AppleUSBEHCI.kext to make it not waking up the computer?

on some models the System.log shows USB (EHCI) causes wake event (or someting like that).

I deleted the AppleUSBEHCI.kext and my Lappy (Dell XPS M1330) can sleep propperly, but of course high speed devices are connected as USB 1.0 without EHCI kext.

I'm trying to see if part of the code can be modified to bypass that behavior, any suggestions?

PCGenUSBEHCI have the same result sad.gif
clintoy
new link to kext:

http://www.mediafire.com/?q2pgbzk51my
orByte
QUOTE (macgirl @ Mar 13 2008, 04:13 AM) *
orByte is possible to modify the AppleUSBEHCI.kext to make it not waking up the computer?

on some models the System.log shows USB (EHCI) causes wake event (or someting like that).

I deleted the AppleUSBEHCI.kext and my Lappy (Dell XPS M1330) can sleep propperly, but of course high speed devices are connected as USB 1.0 without EHCI kext.

I'm trying to see if part of the code can be modified to bypass that behavior, any suggestions?

PCGenUSBEHCI have the same result sad.gif


Hi macgirl,

This is always something I wanted to work at but I never have got around to it. My understanding is not complete but here goes: Have a look at AppleUSBEHCI::CheckSleepCapability in AppleUSBEHCI_PwrMgmt.cpp esp. around lines 105-136. What happens there is that, the code decides what type of power management support to give to the (on-board & other) usb devices it finds. In Hackintosh units, according to the comments at 105-108, the APPL clock-id property is not found and all these devices are registered as non on-board with 'controller cannot sleep' at line 134. And, as a consequence, when EHCI is enabled the devices do not sleep properly. But I never went into detail, and it would be great for someone to look into.

Hope this helps smile.gif
Best
macgirl
Thanks a lot, I will play with that and see if I can make any change.
orByte
QUOTE (JaS @ Mar 3 2008, 04:12 AM) *
Just wanted to report that this works on my custom install of 10.5.2. I included it in my new iso. The only issue is that when it is loaded I need to replug in my network cable to get it to show the cable plugged in. When I use the default usb kext I get two port working and have networking np. I need the four ports so I will replug for now.Do you have any idea why this would mess with networking.Also great wrk on this kext, keep it up bro.
Hi again, I finally made a diff of 303 vs. 308 and it looks like in 308 there are some changes in interrupt handling. I suspect that could be the cause for the network troubles. Also, released my source for 303 in post 1 now: PCGen-303.4.5 sourceBest
QUOTE (macgirl @ Mar 14 2008, 11:42 PM) *
Thanks a lot, I will play with that and see if I can make any change.
CheersPS: I have released the PCGen-303.4.5 source. Here it is: PCGen-303.4.5 sourceBest
Superhai
QUOTE (orByte @ Mar 15 2008, 11:38 AM) *
PS: I have released the PCGen-303.4.5 source. Here it is: PCGen-303.4.5 sourceBest


I wanted to try to compile it... but it seems like my isp either blocks or have no route to www.sendspace.com. sad.gif

edit:!! worked it out by using a proxyweb...
so now it is compiled and its time to see if something can be worked out!
Superhai
QUOTE (orByte @ Mar 14 2008, 05:10 PM) *
My understanding is not complete but here goes: Have a look at AppleUSBEHCI::CheckSleepCapability in AppleUSBEHCI_PwrMgmt.cpp esp. around lines 105-136.


I did remove the checks and always set sleepcapability to true, and for me it seem like it is working well.
macgirl
Yes, it worked, that is very cool. thumbsup_anim.gif
orByte
Cheers! tongue.gif
Schweppes
orByte, i follow all the steps to install...but doesnt work in my 10.5.2 with 9.2.0 (ToH) kernel.
My USB devices (like a pendrive) mounts on desktop and works, but slow (i think is working in USB 1.1 speed) the BIOS is set to USB 2.0

i'm using IOUSBFamily v 3.0.8. (the last version that comes with 10.5.2 upgrade)
nchellzz
hi orbyte

i've managed to get USB high speed bus working to 480mps biggrin.gif finally

but now my ipod won't mount, flash disk does mount though.. any ideas?

i'm using 10.4.9 darwin 8.9.1
IOUSBFamily-270.4.1
Eric.C
so does this work with the ASUS P5B? my front USB ports currently don't have USB2.0
Trauma!
I've installed this Kext on an Asus P5B with Kalyway 10.5 updated to 1.5.2.
And that's worked great, no more error messages while booting the os.
My USB card reader know wors at every boot and my external USB 2 Hard drive
runs faster than before !!!!!

Great Job Mr orByte !!!

I'did remove the AppleUSBEHCI.kext from the plugins folder of IOUSBFamily.kext.
And installed the PCGenUSBEHCI.kext with KextHelper b7, rebooted and that's working fine. biggrin.gif
Slice
Thank you orByte for the good job!
I change this way also USBIrDA and USBStorage.
Now I can copy large files to USB flash without finder hangs smile.gif
meansizzler
Does this work on VIA 6412?, have a fPCI card with that chipset....
meansizzler
Does this work on VIA 6412?, have a fPCI card with that chipset....
cyclonefr
yes it works great even with 9.2.2 kernel
slice i never experienced any bug with my usb HDD....weirdo i'll try it later on
good to see usefull dev smile.gif
lateralusman
Ok this is very confusing...how do I do this?

Do I do it like trauma23? remove the AppleUSBEHCI.kext from the plugins folder of IOUSBFamily.kext.
And installed the PCGenUSBEHCI.kext with KextHelper b7, and then reboot?
Or what?

Thanks
meansizzler
QUOTE (cyclonefr @ Mar 24 2008, 12:33 PM) *
yes it works great even with 9.2.2 kernel
slice i never experienced any bug with my usb HDD....weirdo i'll try it later on
good to see usefull dev smile.gif


Is that a reply to my question?
kazzi
Thanks, I'll try to fix my internal USB camera!
cyclonefr
QUOTE (meansizzler @ Mar 25 2008, 03:31 AM) *
Is that a reply to my question?
no
Gujal
Thanks a lot.

Works perfect on my Asus P5B with Vanilla kernel 9.2.2.
This is what I get during boot

USBF: 0.362 Found USBLEGSUP_ID - value 0x10001 - writing OSOwned
USBF: 0.622 EHCI - Ownership conflict - attempting hard reset ...
USBF: 0.622 EHCI - Force BIOS Ownership to 0
USBF: 0.622 acquireOSOwnership done - value 0x1000001
Slice
Sorry, no change. Finder hangs trying to copy 56Mb to USB Flash.
Wiwi
OK, leopard with 9.1 kernel works perfectly, even with speedstep kernel, but not 9.2 (vanilla, speedstep...)...

But it's strange, it do the resetting with success at boot, but after boot if i plug a usb peripheric, it will be alimented but not used, dsmeg said that : specific matching failed...

Looks like another pb... Because usb working in system information all peripherics are shown...BUt not used by the system...

Anyone got an idea ???
Wiwi
Hey !

Working after updating system.kext from 10.5.2 !!!!!!!!
Schweppes
orByte, could you help me please?
orByte
QUOTE (Schweppes @ Mar 31 2008, 10:36 PM) *
orByte, could you help me please?


Sorry, I have not done any testing with 10.5.2. The PCGenUSBEHCI latest version was developed on 10.5.0/10.5.1. Maybe someone else who is running it on 10.5.2 can help.

Best
macbrush
O ran the latest version on my Asus P35 Pro mobo, and had no problem at all until I play WoW. I have already turned off all sound and voice feature, but somehow affect my kernel so bad that my M-Audio FW produce jittering sound, and the whole machine started to feel sluggish.

My system log produced a lot of errors like the following one as soon as I launch WoW, and restart is require for the problem to go away.

Apr 3 02:28:01 sic kernel[0]: USBF: 752.380 AppleUSBUHCI[0xaaf0000]::AddIsochFramesToSchedule - end - startFrame(0x533443) finFrame(0x533447)

Kernel: ToH 9.2.2 (vanilla won't work since my mobo doesn't support HPET)
Chipset: P35
USB Controller: 29358086
OS: 10.5.2
USB Headphone/mic set: 000c0x0d8c (I only use the mic though)
Sound: M-Audio FW Unit Software Version: 0x14001 Unit Spec ID: 0xA02D

I solved it by using AppleUSBEHCI.kext instead.

Hope this would help your development.If you want more info, please let me know.
Lokii
Ive been trying to get USB working, but usb 2 just wont function.

When I install pcgenusbehci 303 my usb pen drive immediatly shows up, but after a reboot, its gone again.

Anyone have any suggestions? Thanks!
Lokii
Updating to 10.5.2 sorted out the problem!
drakken
I've got a Kalyway 10.5.2 and this seems to have fixed the USB issues with thumb drives and external HDs, but my iPod and iPhone don't mount.

Anyone else solve this problem?
homer007
works fine for me !!!
QUOTE
USBF: 1.103 Attempting to get EHCI Controller from BIOS
USBF: 1.103 USBLEGCTLSTS value c0042000
USBF: 1.103 Found USBLEGSUP_ID - value 0x1000001 - writing OSOwned
USBF: 1.103 acquireOSOwnership done - value 0x1000001
enemix
Hi, I installed this on my HP G5009 (notebook) and it works great, although i had to also install the modified IOUSBMassStorage kext. Now my usb harddrive is detected correctly.

However, my printer/scanner (a Brother DCP-7010) is not recognized as a USB2 device, which makes hi-res scanning painfully slow. Is there some kext available to generally recognize USB2 peripherals and not just harddrives?

EDIT: using 10.5.2 Leo4allv3
thristan
no USB ports working here.


i tried with the apple update of IOUSBFamily but nothing worked.

in verbose mode it says:

Failed to load extension com.orByte.driver.PCGenUSBEHCI

[...]

AppleUSBEHCI: unable to initialize UIM


any solution??
sg
wondering if these will fix some problems im getting with external USB drivers, every few minutes while transfering files to/from my USB drives the transfer will pause and i'll start seeing these messages in console:

USBF: 1043.462 AppleUSBEHCI[0x6fb3000]::Found a transaction past the completion deadline on bus 0xfd, timing out! (Addr: 2, EP: 8)

after about a minute it will continue, but it will keep happening every few minutes. Some real intel/mac users have reported that they get those same messages for external USB drives and simply connecting it through a USB powered HUB will fix it.
BugsB
well then remove AppleUSBEHCI.kext, and you won't have any probs with it anymore ......
thristan
do you refer to my problem, Bugs?

sg
QUOTE (BugsBunny @ May 6 2008, 06:13 AM) *
well then remove AppleUSBEHCI.kext, and you won't have any probs with it anymore ......


isnt ehci part of usb 2.0? if i remove it i would be stuck at usb1.0 speeds.
enemix
QUOTE (sg @ May 6 2008, 08:53 PM) *
isnt ehci part of usb 2.0? if i remove it i would be stuck at usb1.0 speeds.


If you installed PCGenUSBEHCI.kext it will be loaded instead.
BugsB
If you don't remove Apple's EHCI then orbyt's EHIC most likely will not get loaded. There were just very few cases where Apple's EHCI did not interfere with orbyte's EHCI. You guys don't want to rely on your luck, do you .. wink.gif

apart from that the procedure has been covered many times here .. :-\
sg
yes, so i'm using the default apple usb/ehci kexts, my question was if the modified ones in this thread fix the issue i'm getting.
BugsB
you'll never find out unless you give it a shot.

sorry man, but you are being too complicated .. wink.gif just back up the org kext and - GO 4 IT
AstrAir
Thanks orByte, works for me too.
enemix
QUOTE (drakken @ Apr 27 2008, 06:41 AM) *
I've got a Kalyway 10.5.2 and this seems to have fixed the USB issues with thumb drives and external HDs, but my iPod and iPhone don't mount.


I have the same problem, Ipod not mounting. When plugging in the Ipod I get this message in system log:

May 9 21:35:18 c-654fe555 kextd[10]: a different version of dependency extension /System/Library/Extensions/System.kext/PlugIns/Mach.kext is already loaded

Maybe it's of some help?
sg
QUOTE (enemix @ May 9 2008, 07:54 PM) *
I have the same problem, Ipod not mounting. When plugging in the Ipod I get this message in system log:

May 9 21:35:18 c-654fe555 kextd[10]: a different version of dependency extension /System/Library/Extensions/System.kext/PlugIns/Mach.kext is already loaded

Maybe it's of some help?


that means you have a mismatch between your kernel and your system.kext extension. you need to make sure you have the matching kernel and extension for those 2, rest can be any version almost.
enemix
QUOTE (sg @ May 11 2008, 07:39 AM) *
that means you have a mismatch between your kernel and your system.kext extension. you need to make sure you have the matching kernel and extension for those 2, rest can be any version almost.


Thanks a lot, had to manually install the 9.2.2 System.kext and now it works =)
greatchinu
i have iatkos v1.0ir2 installed but usb mounting doesn't work
the kernel is 9.1.0
i tried to install the PCgenusbehci kext unfortunately tho it gives an error saying that
it was not installed properly and cannot be used.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.