Jump to content

csharpmac

csharpmac

Member Since 29 Jul 2009
Offline Last Active Oct 28 2009 06:53 AM
-----

Posts I've Made

In Topic: Slow Hard Drive Performance ICH10

28 September 2009 - 09:15 PM

NEW PROBLEM: Sound stuttering when CPU usage.
REASON: SpeedStep keeps on switching too frequently.
After testing and chatting with CSharpMac about my DSDT and SpeedStep here is the SOLUTION:

Removing all the IRQs from the following three devices:
(i) Device RTC / RTC0,
:laser:
(ii) Device TMR / TIMR, and
:laser:
(iii) Device PIC / IPIC.
:laser:

Now I have SpeedStep and all I had to do was the following:
(i) add the Mac Pro CST to my DSDT, (ii) delete the IRQs above, and (iii) create a LPC kext. :rolleyes:
I have also modified the LPC device names in the DSDT as well, including the LPC itself which is named SBRG in my DSDT- on a real iMac/MacPro its name is LPCB.
Also, I have noticed that KEXTs use the "device-id" of devices attached to the PCI bus to decide whether to start and to tweak their behavior depending on the specific device. This allows KEXTs to be tricked into believing that you have hardware that is used by Apple!

:soldiers:
Thanks CSharpMac!


John as we have discussed:

a. Search and Replace SBRG with LPCB

Will need to add dev id to AppleLPC.kext
<string>pci10de,aac</string>


This Device (SBRG) in our new DSDT, renamed and with the device-id patching code in place.
Rename all instances of SBRG to LPCB using search and replace.
This makes the LPC device appear correctly in the PCI device tree - as LPCB@1F under PCI0@0.

b. LPC Devices

i. Search and Replace DMAD with DMAC
ii. Search and Replace RTC0 with RTC
iii. Search and Replace OMSC with LDRC
iv. Search and Replace COPR with MATH
v. Search and Replace (PIC) with (IPIC)
vi. Search and Replace TMR with TIMR


c.

i. Search and Replace USB0 with OHC1
ii. Search and Replace US15 with OHC2
iii. Search and Replace USB2 with EHC1
iv. Search and Replace US12 with EHC2


d. Search and Replace SMB0 with SBUS

e. Search and Replace TRM0 with TRIM

In Topic: Slow Hard Drive Performance ICH10

24 September 2009 - 07:12 AM

Hi CSharpeMac,

Thanks

oq

Try this:
[csharpmac1.aml.zip]
Should work best on vanilla kernel and kexts
[Extra.zip]
CsharpMac

In Topic: Slow Hard Drive Performance ICH10

22 September 2009 - 06:59 PM

Hey Guys, well I tried the .iasl in terminal and got a bunch of errors "no such file or directory". Terminal is not my thing. I wish I could master it. I even trid to expand the zip file on my desktop and do a cd ~/ but for some reason I could even get to this directory without issue. I moved on and used iASLMe =) much better got the file and was able to edit and convert back to .aml file.

So far I tried out CSharpeMac edits. It works better. Seems the DVD drive each time I access it needs to "warm" up then starts to copy files. My test disk has a 30meg folder burned on a real mac and copies in 5 sec. On the Hack about a couple mins. Plus when I launch toast it lags and lags... So there is still and issue there.

I will now try THe KiNG's edits and let you know.

Thanks!

oq


Hi,
I have just created a fast DSDT for your motherboard.
[csharpmac.aml.zip]Test it and inform me about your DVD speed.
CSharpMac

In Topic: Slow Hard Drive Performance ICH10

21 September 2009 - 02:10 PM

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

In Topic: Slow Hard Drive Performance ICH10

19 September 2009 - 07:03 PM

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)
}
}
© 2015 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy