Tech notes for the PCI Latency Patch v0.19d BETA

Important notes:

This 0.19d version of the patch contains a mix of known-good register settings and experimental ones. Do not distribute it.

This product could, in a rare case, damage a computer. Use it carefully and at your own risk. By using it, you agree to the license as shown below.

License:

This software is licensed, not sold. The author of this product has granted you a license to use this product, subject to the following conditions. By possessing, using, or attempting to use this product, you assume all liability for its use. You agree never to take legal action, civil or criminal, against its author for any reason. You may redistribute this product in its original form only. You may not charge money for distribution of the product, unless all such charges are remitted to the author immediately upon payment. The author retains ownership of all intellectual properties embodied in this product.

The goal of this special version of the patch is to maximize the PCI bus bandwidth. The 0.19a version worked well on KT266x but not KT133x. Now 0.19b tries to fix KT133x without damaging KT266x performance.


NorthBridge Patches

Register 76, bits 5 and 4, set to 01
The CPU is given a time slot after every active device in the PCI arbiter's round-robin mechanism.

Scan the PCI bus. If an Ensoniq or Creative PCI64/128 sound card (1274:XXXX) is found and an Athlon chipset is detected, disable "Disconnect when STPGNT# CPU Idle" in the NorthBridge.
I could not find any other solution for these cards.

If (KT133x, KLE133x):
Register 55, bits 5 through 7, set to 0
If (KT266):
Register 95, bits 5 through 7, set to 0
This is the MWQ patch discovered by Linux kernel developers.

If (KT266 or later):
Register 70, bit 2, set to 1; register 94, bit 6, set to 1
On Athlon chipsets only, enable PCI Master Read Caching and its Probe T1 option.

If (KT133x or KX133 or KLE133):
Register 70, bit 2, set to 1;  Register 54, bit 6, set to 1
This was the result of testing SBLive cards on a Biostar KT133. PCI Master Read Caching helped the SBLive Value and a new SBLive 5.1 on this board. Probe T1 helped an Asus A7V stay stable.

If new chipset (Pro266, KT266, P4X266, or later):
Register 70, bit 1 and 3, set to 1
Enable PCI Delay Transaction for performance.
Register 75, bits 3 through 0, set to 0
So far it seems that the PCI arbitration timer can be completely cleared on newer chipsets.
Register 4B, bits 7 through 4, set to 1000
Increase priority of UpCmds, passing from PCI bus to VLink to NorthBridge.

Else if not new chipset:
Register 0D, set to 00
This was a common patch applied to older chipsets. It increases hard disk performance and helped some older chipsets with SBLive problems. This was the only change I found that would improve 686A IDE performance on the Pro133A.
Register 75, bit 7, set to 1; Bits 3 through 0, set to 0101
It hasn't been safe to clear the arbitration timer on older chipsets, so I'm trying a setting of 5*32 clocks as a best balance of performance and SoundBlaster compatibility. Setting bit 7 to 1 forces the arbitration to be fairly divided between PCI and CPU requests.

NorthBridge AGP Controller Patches

If (Pro266, KT266, P4X266, or later versions of any of these three):
Register 42, bit 4, set to 1
Note that bit 4 is undocumented for newer chipsets, but stabilizes ATI Radeon LE and Aureal Vortex II cards.

Other Patches

Scan the PCI bus. If an Aureal Vortex sound card is found(12EB:0001 to 12EB:0003), set its register 40 to FF.
This is an old patch found on various websites.