Jump to content

Slow Hard Drive Performance ICH10


195 posts in this topic

Recommended Posts

Since you started the topic here is my gift http://rapidshare.de/files/48357515/jimmydigital00.zip.html

I will not fix more!

 

P.S. fixed also warnings/remarkss...

 

I diffed jd's decompiled dsdt.aml with yours and see the changes you made. The question I have is could a BIOS update for his motherboard fix some of the error/warnings he was getting?

 

If so, should that be recommended before trying to patch dsdt.dsl?

Link to comment
Share on other sites

That might be problematic. I'm running BIOS 0504 and my HPET and RTC0 methods already had the correct code. I only had to modify the TMR and PIC. I see there is a new BIOS 0610, anyone try it? Motherboard is Asus P6T Deluxe V2

 

The only differences with the previous version ( 504 ) are at the method "Method (CUPI, 0, NotSerialized)", I only paste the differences seen:

starting at line 3988 from

If (LLess (Local5, GNVS (0x82A8)))

to

If (LOr (LLess (Local5, GNVS (0x82A8)), LAnd (LEqual (Local5, GNVS (0x82A8)), LEqual (GNVS (0x1786), One))))

and starting at line 4006 from

If (LAnd (LLessEqual (Local5, GNVS (0x82A8)), LEqual (GNVS (0x1786), One)))
{
	Store (0x40000000, Index (G3C2, 0x02))
}
Else
{
	If (LAnd (LLess (Local5, GNVS (0x82A8)), LEqual (GNVS (0x1786), Zero)))
   {
		  Store (0x40000000, Index (G3C2, 0x02))
   }
}

to

(nothing, it's no more there)

 

So it should be safe to update

 

-------------------------------------------

 

jimmydigital00, what about editing the topic title and first post to indicate that it has been fixed by THe KiNG in this same thread :)

Link to comment
Share on other sites

I might have jumped the gun on claiming that this is fixed.

 

I have been transferring files between sata drives a lot tonight and am still experiencing similar problems.

They are not as bad as before but still exist.

For example.

 

I am in SL and I want to grab a file from my Leopard harddrive.

When I click on the drive it takes about 30 seconds to load which may be normal, but when I try to go into another folder I get the spinning wheel icon.

It will sit there for a while or until I load a safari page.

As soon as I start Safari it immediately loads.

 

I am using the DSDT that The King fixed for me and posted above.

 

Is anyone else seeing this?

Is there a kext I should be using?

I am using FakeSMC2 maybe that is the problem?

 

Jim

Link to comment
Share on other sites

I put the computer in 64bit mode and the problem goes away. ;)

Is everyone that this fix worked for running in 64bit?

For me works on both 32/64 bit.

You forgot to say why you run snow on 32 bit, there could be your answer(a driver that loads on 32 bit only and screw things?)

 

Ok I removed floppy and PS2 {censored} from it and also added HDEF(replacement for enabler) use my AD2000b.kext from HERE with new DSDT.aml

Next modds you will do them by yourself.

Link to comment
Share on other sites

To the king:

Whats about the difference in the sight, that SLICE has removed also

IRQNoFlags () {0} IRQNoFlags () {8}

from dsdt HPET ?

 

I looked in my dsdt and searched for all IRQNoFlags () and so i seen that (as you) i can remove Floppy&PS2 things also (has that IRQNoFlags () used).

But do you think that OS X will use them, because they are disabled in my bios ?

Also they are not listedas devices in the IOREGISTRYEXPLORER.

 

Have you looked in your dsdt and found also some entries we didnt talked about ?

Like that i found in that uploaded bios (DSDTNOCRAP)

Name (BUFA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{15}

})

....

Name (PRSA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{3,4,6,7,10,11,12,14,15}

I also have such IRQ (Level, ActiveLow, Shared, ) things in my bios, and the usage looks like really interesting, because Shared word - and shared IRQs are the reason why some have problems using HÜET, USB or have AHCI slow downs.

 

THANKS

Link to comment
Share on other sites

You star, my box works now! Thanks a million. :)

 

Yes, but whats that with the SLICE information:

For PIC I set IRQ 2 - this is help me for brightness control.

HPET - no IRQ

 

The kings has that IRQ 0 +8 settings.

 

I cant see/feel any difference using HPET with or without that 0+8 IRQ settings.

Link to comment
Share on other sites

Had problems using my SATA DVD reader/writer. Couldn't transfer more than 300MB without machine slowing down to point of uselessness. And I had a lot of the "SerialATAPI device reconfiguration failed ... " messages

 

Used King's info to correct and recompile my dsdt.aml on an Asus P6T SE. Bios 0504 already has correct Length for RTC0, added the other corrections and now I can run comfortably in SL 64 bit. No slowdowns, SATA DVD drive works fine as well

 

Kudos to The King !

Link to comment
Share on other sites

Why you don't ask Slice?

You don't need to feel you have to set it like that in DSDT.

Thanks. I leave it standard (0+8 in HPET) because both works. Question was not really urgent.

But what do you think about that other IRQ entries, found in dsdt:

 

IRQ (Level, ActiveLow, Shared, )

{3,4,6,7,10,11,12,14,15}

 

Is there an depencies to our IRQNo removements / adding ?

Ist that an list which IRQs are allowed to share, so if we edit this list may get problems solved by removing some

listed here (not listed, not shared ?) ?

Link to comment
Share on other sites

I have already tested the following configurations for IRQ (Level, ActiveLow, Shared, ) on my ASUS Rampage II Extreme X58 DSDT with the DSDT of my real Mac.

 

The procedure that I propose is as follows:

 

(i) Find on your DSDT the following:

 

Name (PRSA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{3,4,6,7,10,11,12,14,15}

})

Name (PRSB, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{5}

})

 

 

and replace it with:

 

Name (PRSA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{3,4,5,6,7,9,10,11,12,14,15}

})

Name (PRSB, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{}

})

 

 

(ii) Then find:

 

Scope (_SB)

{

Name (BUFA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{15}

})

 

and replace it with:

 

Scope (_SB)

{

Name (BUFA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{3,4,5,6,7,9,10,11,12,14,15}

})

 

That would do the trick.

 

CSharpMac

 

But what do you think about that other IRQ entries, found in dsdt:

 

IRQ (Level, ActiveLow, Shared, )

{3,4,6,7,10,11,12,14,15}

 

Is there an depencies to our IRQNo removements / adding ?

Ist that an list which IRQs are allowed to share, so if we edit this list may get problems solved by removing some

listed here (not listed, not shared ?) ?

Link to comment
Share on other sites

Why are doing things w/o any sense?

did u saw {5,7,10,11,14,15} on MacPro4,1 DSDT?

Also when you try {censored} like that use all board resources(all enabled in BIOS) and try to add extra PCI/PCIE cards, then you will see why I said is {censored}.

Link to comment
Share on other sites

First, I do believe that we just need to be polite in here. This is our forum for the Hard Drive Performance Issues.

KiNG as you know, in the beginning you have said that the Hard Drive Performance Issues were not DSDT related (please go and see your post:

Post # 78 KiNG: After another tons of tests I got to a conclusion, IMHO is not a DSDT bug but a BIOS one.),

and while I politely insisted that it is definitely DSDT related (and we all know that it is the DSDT !) you had insulted me and others who tried to help back then as you are doing now. That is really nice attitude.

Second, I did test this configuration and compared it also with the MacPro4,1 DSDT and I have now added the additional IRQs.

IRQ (Level, ActiveLow, Shared, ) {3,4,5,6,7,9,10,11,12,14,15}

Thanks?

 

Why are doing things w/o any sense?

did u saw {5,7,10,11,14,15} on MacPro4,1 DSDT?

Also when you try {censored} like that use all board resources(all enabled in BIOS) and try to add extra PCI/PCIE cards, then you will see why I said is {censored}.

Link to comment
Share on other sites

Thanks csharpmac try this IRQ (Level, ActiveLow, Shared, ) settings out !

I also think that the realitiy (try out) gives OK or NOT.

And not only to look "how is that in MacPro DSDT" !!!

Why?

Simple: I believe that beside the dsdt, also MacPro EFI (BIOS) and Mainboard may use some different settings we cant compare 1:1 to our PC BIOS/Hardware.

 

And of course , KING, why should it be an great deal to change only the IQQNo (0,8) HPET and leave all the IRQ (Level, ActiveLow, Shared, ) settings in DSDT unchanged ?

I believe that both depend each other !

 

So now i show my investigation of Gigabyte EP35-DS3 DSDT

csharpmac change (+9),... already there in orig. DSDT and only one times found an IRQ (Level...) in DSDT

Name (BUFA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{3,4,5,6,7,9,10,11,12,14,15} // 9 already in orig. DSDT

})

Name (BUFB, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{}

})

 

So, not alle Mainboards(DSDT) needs that change to free IRQs , but maybe usefull to look after that IRQ (Level, ActiveLow, Shared, ) settings.

Link to comment
Share on other sites

First, I do believe that we just need to be polite in here. This is our forum for the Hard Drive Performance Issues.

 

I have no idea what you mean with "our forum"

 

KiNG as you know, in the beginning you have said that the Hard Drive Performance Issues were not DSDT related (please go and see your post:

Post # 78 KiNG: After another tons of tests I got to a conclusion, IMHO is not a DSDT bug but a BIOS one.),

 

I have no problem to recognize that I was wrong and more then that I founded the fix in DSDT and share it...

 

and while I politely insisted that it is definitely DSDT related (and we all know that it is the DSDT !) you had insulted me and others who tried to help back then as you are doing now. That is really nice attitude.

 

Telling you that is a {censored} means I insulted you? LOL

 

Second, I did test this configuration and compared it also with the MacPro4,1 DSDT and I have now added the additional IRQs.

IRQ (Level, ActiveLow, Shared, ) {3,4,5,6,7,9,10,11,12,14,15}

 

Ohh so you found on the end that was a {censored}, is so hard to say I was wrong?

Thanks?

 

@ mitch_de If you want to change IRQ's you have to do it on _PRT method returns(that is the IRQ routing table) but is not necessary since it works with IRQ 2 removed, to answer on your older question, when I said that I recommend this on all boards I mean on ICH10 and ICH9 one(dunno for others), not for laptops, and yes since we try to run OS X on unsupported hardware we have to use MP4,1 DSDT as example, and port/fix what is necessary...

Link to comment
Share on other sites

Thanks csharpmac try this IRQ (Level, ActiveLow, Shared, ) settings out !

You are welcome! :-)

So now i show my investigation of Gigabyte EP35-DS3 DSDT

csharpmac change (+9),... already there in orig. DSDT

Note that the Gigabyte EP35-DS3 has Intel P35+ICH9 chipset, and the Asus Rampage II has Intel X58+ICH10 chipset.

The "original" factory BIOS of my Asus Rampage II (X58+ICH10) had this values {3,4,6,7,10,11,12,14,15}

and the real Mac4,1 IDSDT has {3,4,5,6,7,9,10,11,12,14,15}. In my Asus Rampage II I it makes no difference if I keep the "original" values or apply the Mac4,1 ones. My system runs 10.6.1 perfectly with either.

 

Now if you want to go further, I am presenting below some initial modifications on the DSDT in order to improve the surround sound of my Soundcard. These DSDT modifications are based on Solar (thanks!)

 

Device (HDEF)

{

Name (_ADR, 0x001B0000)

Method (_PRW, 0, NotSerialized)

{

Return (Package (0x02)

{

0x0D,

0x05

})

}

 

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x08)

{

"codec-id",

Buffer (0x04)

{

0x89, 0x08, 0xEC, 0x10

},

 

"layout-id",

Buffer (0x04)

{

0x0C, 0x00, 0x00, 0x00

},

 

"device-type",

Buffer (0x11)

{

"CreativeSound"

},

 

"PinConfigurations",

Buffer (0x28)

{

/* 0000 */ 0x50, 0x70, 0x21, 0x01, 0x40, 0x01, 0x13, 0x90,

/* 0008 */ 0x20, 0x30, 0x81, 0x01, 0x41, 0x40, 0x01, 0x01,

/* 0010 */ 0x30, 0xE0, 0xC5, 0x01, 0x60, 0xE0, 0x45, 0x01,

/* 0018 */ 0x0F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x00, 0x40,

/* 0020 */ 0x10, 0x01, 0xA0, 0x90, 0x11, 0x01, 0xA0, 0x90

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

 

 

Name (BUFA, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{3,4,5,6,7,9,10,11,12,14,15}

})

Name (BUFB, ResourceTemplate ()

{

IRQ (Level, ActiveLow, Shared, )

{}

})

CreateWordField (BUFB, One, IRQV)

Device (LNKA)

{

Name (_HID, EisaId ("PNP0C0F"))

Name (_UID, One)

Method (_STA, 0, NotSerialized)

{

And (PIRA, 0x80, Local0)

If (LEqual (Local0, 0x80))

{

Return (0x09)

}

Else

{

Return (0x0B)

}

}

 

Method (_PRS, 0, NotSerialized)

{

Return (BUFA)

}

 

Method (_DIS, 0, NotSerialized)

{

Or (PIRA, 0x80, PIRA)

}

 

Method (_CRS, 0, NotSerialized)

{

And (PIRA, 0x0F, Local0)

ShiftLeft (One, Local0, IRQV)

Return (BUFB)

}

 

Method (_SRS, 1, NotSerialized)

{

CreateWordField (Arg0, One, IRQ1)

FindSetRightBit (IRQ1, Local0)

Decrement (Local0)

Store (Local0, PIRA)

}

}

Link to comment
Share on other sites

YOu have also (like my EP35) 889A Codec ?

I use near same DSDT, only difference is PinConfig, which has at me

"PinConfigurations",

Buffer (One)

{

0x00

}

Worked for me, i will try out yours and look whats changed. NO RISK NO FUN !!!

 

EDIT: Adding your PinConfig (0x28 datas) didnt change anything. All works perfect - same as with Buffer (0x1).

I will stay with that very small Pinconfig (only 01 data added) .

THE LESS ADDED IN DSDT THE BETTER - if it runs ;)

Link to comment
Share on other sites

Hi csharpemac and the king.

 

Thanks alot for your edits. But how does a mere mortal like myself (noob I guess) apply these to the DSDT? What editor are you using to edit the DSDP and save the new .aml file?

 

I've been searching around but most of the info is assuming the reader knows what tools to use.

 

 

Thanks I have a ASUS P6T with a sata DVD on second port I really need to get working.

 

oq

Link to comment
Share on other sites

Hi csharpemac and the king.

 

Thanks alot for your edits. But how does a mere mortal like myself (noob I guess) apply these to the DSDT? What editor are you using to edit the DSDP and save the new .aml file?

 

I've been searching around but most of the info is assuming the reader knows what tools to use.

 

 

Thanks I have a ASUS P6T with a sata DVD on second port I really need to get working.

 

oq

 

THE STEPS

First, you would need to copy the iasl tool to your /usr/bin directory so it can be run from anywhere.

IASL is Intels AML Compiler/decompiler. It is extremely strict on the rules of ACPI Specification, which is why I like to use it for OSX86.

Unzip iasl.zip and copy it as follows:

$ cp iasl /usr/bin/

 

Operating-systems use tables to get information about hardware.

A little light reading

ACPI specs

Vendor specific ACPI specs

DSDT stands for Differentiated System Description Table. It is a part of the ACPI specification and it supplies configuration information about a base system.

The DSDT comprises a system description table header, followed by a definition block. The definition block is encoded using ACPI Machine Language (AML), and unlike other definition blocks on the system, the DSDT definition block can not be unloaded, as it provides the basic ACPI namespace scope that all other dynamic definition blocks can later add onto.

For the file named dsdt.aml, you would need to decompile it to get it in a readable form.

Since you moved iasl to /usr/bin, you can run it from anywhere.

Type this code to get the DSDT.dsl file :

 

$ ./iasl -d dsdt.aml

 

Intel ACPI Component Architecture

AML Disassembler version 20090730 [Aug 12 2009]

Copyright © 2000 - 2009 Intel Corporation

Supports ACPI Specification Revision 4.0

 

Loading Acpi table from file dsdt.aml

Acpi table [DSDT] successfully installed and loaded

Pass 1 parse of [DSDT]

Pass 2 parse of [DSDT]

Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

................................................................................

.............................................................................

Parsing completed

Disassembly completed, written to "dsdt.dsl"

 

Now you should have a readable file that you can edit using any good editor named dsdt.dsl. Also, I highly recommend you to download TextWrangler for this job. TextWrangler is fully featured and functional — it will not expire.

Right click on the original file and open with TextWrangler

Quick key "command+J"

and enter the line you want and click "Go To"

 

Note the bracket structure.

Follow the if's all the way down...

For example:

Method (WQAA, 1, NotSerialized)

{

If (LEqual (Arg0, Zero))

{

Store (T2D0, Local0)

Return (Local0)

}

If (LEqual (Arg0, One))

{

Store (T2D1, Local0)

Return (Local0)

}

snip.....

......snap

If (LEqual (Arg0, 0x21))

{

Store (TDBB, Local0)

Return (Local0)

}

}

Method (WQAB, 1, NotSerialized)

{

If (LEqual (Arg0, Zero))

{

Store (TD2E, Local1)

Return (Local1)

 

In this example there is a need to place return before that closing bracket. The resulting structure is

 

Store (TDBB, Local0)

Return (Local0)

}

 

Return (Zero)

}

 

Method (WQAB, 1, NotSerialized)

{

If (LEqual (Arg0, Zero))

{

Store (TD2E, Local1)

Return (Local1)

 

Got it? Good. Remember your start line will shift as you add lines but your in the ballpark and the Method is named in the error if you get confused.

 

Finally, after all your edits, go to the command-prompt console, run the command to make your new fixed dsdt.aml :

$ ./iasl -sa dsdt.dsl

 

After you master the above method, you can then use the iASLMe20090730 updated application [iASLMe20090730.app.zip] to easily compile and decompile your edits:

i.e from dsdt.dsl ----> dsdt.aml or dsdt.aml ----> dsdt.dsl.

To use successfully this application, you would need to actually drop your dsdt file with valid extention (*.dsl; *.aml) on the application icon. It will be Compiled/DeCompiled and placed near your input file.

 

An other application editor that should be also noted is the DSDTSE editor.

 

 

 

CSharpMac

Link to comment
Share on other sites

Hi csharpemac and the king.

....

Is not the king is THe KiNG, pay attention on the details...if you do the same with your DSDT you may get trouble.. :)

 

Latest Intel ASL compiler for OS X is 03 September 2009 take a look HERE for latest release.

As editor I prefer TextMate.

If you are a total n00b you can use DSDTSE.app

 

Good luck!

Link to comment
Share on other sites

 Share

×
×
  • Create New...