InfiniteMac OSx86

InfiniteMac OSx86 (http://infinitemac.com/forum.php)
-   10.X (http://infinitemac.com/forumdisplay.php?f=36)
-   -   OHCI built-in fix (http://infinitemac.com/showthread.php?t=6477)

cynargo 08-15-2010 09:33 PM

OHCI built-in fix
 
Hi,

I see there are DSDT fixes that make OS X detect EHCI and UHCI controllers as "built-in" and make you able to wake up your hackintosh by eg. clicking or pressing a key on keyboard.
My question is if there are any DSDT fixes for OHCI controller, which is present on nVidia and AMD based motherboards. Some MacBooks were based on nv chipset, so I think it shouldn't be that hard.
Anyway, I can't figure it out myself - I've tried but it only made my OHCI controllers disappear from OS X and I don't like it ;)

Thanks :)

lemonsoda 08-17-2010 08:42 PM

Yes!!!

i saw this first on a tonymac dsdt file for sata. To make the sata device register using apple naming conventions and standards for port names etc, they just deleted all the code around the DEVICE entries leaving just device names and physical locations in brackets So following this exmaple for usb, delete all the code underneath each usb device entry in your dsdt, leaving just the device name and locations as follows (i renamed the usb devices prior to this mod using replace)

also make sure you use your ADR Values and not mine!!!

0000 = 1st device in group
0001 = 2nd device in group

some groups are big some are small. rename the devices (optional) based on ioreg data. You will end up with something like this :-


Device (OHC1)
{
Name (_ADR, 0x00020000)
}

Device (OHC2)
{
Name (_ADR, 0x00020001)
}

Device (EHC1)
{
Name (_ADR, 0x00020002)
}


the os should then take over at boot to fill in the gaps! try it and let me know what you think. Do not remove any other usb related code as this is still needed for correct power management etc (i think) If anyone is reading, please let me if this is a bad idea. I copied someone else. I run the sata hack on another machine and its works fine. Good luck and let me know if this works for you. I think this method can be applied to many different devices for internal location etc

Cheers

lemonsoda

lemonsoda 08-17-2010 09:29 PM

re nvidia macs, try and get the io reg and dsdt dumps from the models you discussed. Maybe you can use the same code (with a little tweaking) I heard some guy use a mac dsdt just removing smc and fixing pci devices etc. see tip in post 17 on this subject. http://www.insanelymac.com/forum/ind...ic=145792&st=0 Sounds like a serious but fun undertaking and a worthwhile experiment as you will end up with a mac -efi at the end of it!! just make sure you dont apply cpu voltage changes in dsdt unless they are your entries!! cheers LS

cynargo 08-20-2010 09:44 AM

I've tried leaving only the "Name( ... )| as you said, but no effect.
I've also tried making the "OHC" device look more like the one in nv based MacBook
Code:

            Device (OHC1)
            {
                Name (_ADR, 0x00120000)
                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x03)
                        {
                            "AAPL,device-internal",
                            0x60,
                            Buffer (0x01)
                            {
                                0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

But that also doesn't work. I guess it needs something more, but I can't figure out what.

lemonsoda 08-20-2010 07:23 PM

thx for feedback,

I was having some issues with text fomatting before. scripts weren't enabled! What i suggsted should have worked, at least for internal usb device location in ioreg.

Did you leave the Device (OHC1) bracket below, and the name section below it in as well? if it was just name with the device part it would not have worked.

Device (OHC1)
{
Name (_ADR, 0x00020000)
}

for a sleep fix i think you need to add PWRB OR SLPB button (desktop or laptop) devices on the L0 locations (if they are not already there, I haven't tried wake by keyboard on amd)

Try that first, if you are still having issues, try having a look at some other dsdt of the same board. You could do a google search.

I did come across an old nvidia dsdt which he fixed his sleep issues, not sure if internal but he uses the injecion thing. I dont have amd to test!

http://osx86.net/f84/dsdt-for-a8n-sl...working-t6299/

good luck with that and let me know how you get on.

Cheers,

LS

ps do you have legacy usb enabled? this is not good. called either usb: storage, kb or mouse on amd in bios

make sure this is disbaled. If you dont have many options in bios, you can get a chamelon patch that force disables it, i know that some nvdia chipset hand an issue with that, so you could try this :-

http://forum.voodooprojects.org/index.php?topic=866.0

not sure if this made it into the main branch. anv's latest one has it but it kp's on amd!! find a better one with integated patch or patch chamelon source yourself and build you own version!!!

as you know, these are options, not definite fixes!

cynargo 08-21-2010 09:14 PM

I've downloaded AppleUSBOHCI sources, and it looks like it generally checks if there's "AAPL,clock-id" present. If it's not it turns off power management for this OHCI controller and shows it as expansion card instead of built-in. Just like with EHCI controllers. The problem is that, when I add "AAPL,clock-id" into OHCI's DSM method OSX stops detecting this controller (when I add it to one of EHCI controllers everything is fine)

Code:

            Device (OHC1)
            {
                Name (_ADR, 0x00120000)
                Name (_PRW, Package (0x02)
                {
                    0x0B,
                    0x03
                })
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }
                Method(_DSM, 4, NotSerialized)
                {
                        Store (Package (0x0B)
                        {
                                "device-id",
                                Buffer (0x04)
                                {
                                        0x97, 0x43, 0x00, 0x00
                                },
                                "AAPL,clock-id",
                                Buffer (One)
                                {
                                        0x01
                                },
                                "AAPL,current-available",
                                0x0FA0,
                                "AAPL,current-extra",
                                0x044C,
                                "AAPL,current-in-sleep",
                                0x0FA0,
                                Buffer (One)
                                {
                                        0x00
                                }
                        }, Local0)
                        DTGP(Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                }
            }

Any ideas ?

lemonsoda 08-22-2010 03:32 AM

Hi mate,

does sleep work by just modding ehci? take a look at this post, it only has clock id on the ehci ports

http://osx86.net/f84/uhci-ehci-built...sdt-fix-t3849/

otherwise you could take another look at that nvidia mac dsdt? does that use ohci?

also have another look at the a8n post i linked to a few posts ago, that seems to implement something on all usb devices

as im sure you know, you can also look in ioreg to see how the devices appear to the os, then you know which ones are which!

Cheers,

LS

lemonsoda 08-22-2010 04:16 PM

just seen this, it has the offset for legacy usb fix for mcp79 (i think)

http://www.projectosx.com/forum/inde...381&#entry9381

hope that might be useful

Cheers

wastez 01-13-2011 11:20 AM

Does anyone fix the problem with ohci? Because i canīt get it working.....

Thx & Greetz

cheops2006 02-02-2011 03:08 PM

Yes this works

Code:

    Device (OHC1)  // OHCI
                {
                    Name (_ADR, 0x00040000)
                    Method (_S1D, 0, NotSerialized)
                    {
                        Return (0x01)
                    }
                    Method (_S3D, 0, NotSerialized)
                    {
                        Return (0x02)
                    }
                    Name (_PRW, Package (0x02)
                    {
                        0x0D,
                        0x03
                    })
                                        Method (_DSM, 4, NotSerialized)
                        {
                            Store (Package ()
                                {
                                    "AAPL,device-internal", 0x00,
                                    Buffer (One) {0x00}
                                }, Local0)
                            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                            Return (Local0)
                        }
                }


dragonspeed 02-15-2011 03:28 AM

Quote:

Originally Posted by wastez (Post 52261)
Does anyone fix the problem with ohci? Because i canīt get it working.....

Thx & Greetz

This one works for me (with sleep)

Device (USB0)
{
Name (_ADR, 0x00020000)
Method (_S1D, 0, NotSerialized)
{
Return (One)
}

Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

wastez 02-15-2011 11:24 AM

Thx i will try it.... Hope this works because i tried so much and nothing seems to work....

wastez 02-16-2011 09:25 AM

I tried this too but it also doesnīt work.....
Iīve no idea anymore to get it working.....

Thx & Greetz

Imkantus 02-18-2011 04:13 PM

Quote:

Originally Posted by wastez (Post 52749)
Iīve no idea anymore to get it working.....

You can use this IOUSBFamily.kext it will force OHCI/EHCI to be recognized as internal. http://osx86.co/f36/usb3-capable-iou...sb3-fix-t6782/