Go Back   Pro/Forums > ProCooling Geek Bits > Random Nonsense / Geek Stuff
Password
Register FAQ Members List Calendar Chat

Random Nonsense / Geek Stuff All those random tech ramblings you can't fit anywhere else!

Reply
Thread Tools
Unread 03-05-2002, 09:51 AM   #1
EMC2
Cooling Savant
 
EMC2's Avatar
 
Join Date: Feb 2002
Location: Dark Side of the Moon
Posts: 365
Jim and Wcpredit

Well, this is a fast type explanation without any pictures or formatting or niceties of any kind. At best it is a rough draft outline, but it'll get you started on what you want to know. Maybe at some later point I'll take the time to do a proper explanation replete with pictures, some plain language, and nice formatting

Anyway- grab a cup of coffee, 2 excedrin, and read on

Ok, first what the two programs are:

Wcpredit - allows you to display and change the configuration registers of any chip connected to the PCI bus from within windows. Any changes made are temporary and last only until you reset the system. Also handy for exploring how the various chips are setup to see if there are any optimizations that can be made for the way you use your system.

Wcprset - is a small program that writes values to configuration registers of any chip connected to the PCI bus. It runs as a windows service, starts each time windows is booted, and as with Wcpredit the changes made are temporary and last only until you reset your system. It requires installation on your system for proper operation. Changes are made automatically each time you boot up. Once installed, you manually invoke it to make changes to what registers are altered. If you make a mistake in it's setup, you can always do a boot in safe mode and bypass your startup files to allow you to correct the mistakes or remove the program.


So, in a nutshell -

Wcpredit is a one time thing, runs from windows, doesn't require any installation (just unzip in a directory and run it).

Wcprset is a "every time you boot" thing, runs as a windows service, requires installation.


More detailed info -

Both programs access the configuration registers of chips on the PCI bus using special PCI bus cycles. All chips that reside on the PCI bus have these registers. There is a minimum set of registers that a chip must have in order to be compliant with the PCI specification. These include the first group of registers that have the Vendor ID, PCI Bus capabilities, and base address of the chip. Additionally there is a large area that is vendor (or chip) unique that can basically be anything the maker of the IC wants them to be (although there are some standard defined areas depending upon the type of chip it is). It is this last set of registers that usually control the inner workings of the chip and the registers that one would want to change for various optimization reasons. Note also that a single chip (or Device in PCI parlance) can have multiple functions it performs. An example is a typical SouthBridge IC. It contains the ISA bridge, the IDE controller, etc. Each of these is configured as a seperate function within the same Device. To further complicate matters, it is also possible to have multiple devices within a single chip. A good example here is your typical NorthBridge. It contains both the Host Bridge (CPU interface) as well as a PCI-PCI bridge (most cases this is really a PCI-AGP bridge).

Wcpredit is setup as a generic PCI configuration register program, allowing you to read and write the registers. By itself it knows nothing about what the registers are used for. To know what the various registers and bits mean, it requires external files that define the registers and bits within them. These are the *.pcr files. There is a large set of these files for various motherboard chip sets available on the web. They are simple text files with a specified format. You can open one up in any standard text editor to see what they look like. They are usually created by people who have gained access to the data sheets for a particular chip. The standard Wcpredit self extracting file that you download contains most of the common PCR files.


So, to use Wcpredit, you need the program itself and (to make things easier) the PCR file for the chip(s) that you wish to modify.

To run it simply click on the program. It's usually easiest to put the PCR files in the same directory that the program is in. By default, that is where it will look for the files.

When it first starts up, by default it reads in the registers in Device 0 on PCI Bus 0. Note that there can be multiple PCI busses in a system (though almost all standard "desktop" class PCs have only 1). Wcpredit then looks to see if there is a PCR file for the device. It does this by looking for a file whose name matches the Vendor ID/Device ID combination for the chip. For example, the PCR file for an old standard 440BX Northbridge is named "80867190.pcr". The Vendor ID is 8086 (Intel) and the Device ID is 7190 (the 440BX Host to PCI bridge).
If you wish to select a different device, go to the EDIT menu and select the DEVICE item on the menu. A "Select Device" window will pop up where you can select which device you wish to edit.
If Wcpredit finds a PCR file, then it will display in the top and right hand windows the definitions or explanations for the various values. If it doesn't find a matching PCR file, it will still display the "raw" data, you just won't have the descriptions/explanations you would otherwise have and individual bits will by default be named (Reserved) in the right hand window.
At the top of Wcpredit are 3 small windows. These windows provide the basic information regarding the identification of the chip. On the far right hand side, is a window that shows the individual bits of the currently selected register. It is here that any descriptions/explanations for the bits in a register will be displayed if Wcpredit found a PCR file for the device.
The "main window" that dominates the display is the register set for the current device done in a matrix. The numbers in the first column on the left (green by default) is the starting address for that row of register locations in hexidecimal. The first row across the top (also green by default) shows the offset from the starting address for a row. The rest of the data shown (white by default) show the data contained in the registers themselves (again, in hex).
Along the bottom of the Wcpredit display, there are two small windows. The first one shows the address (Offset) and data for the register you have currently selected. The second window shows the hex and binary representation for the data in the register. It is in this 2nd window that you enter data when you make changes.
To select a register, simply left click on it in the main register window. (you can also use the arrow keys to navigate around between the registers). The lower two small windows will update showing you the register address and data. The selected register will have a flashing block cursor over the top of it.
If you wish to change that register, you can either double click the register in the main window OR hit return to change the currently selected register. Once a register is selected for changing, the block cursor will move down to the data display window at the bottom (where the hex and binary values are shown).
Again, you can either use the mouse or the arrow keys to select the bit or nibble (which is what a single hex digit is - 4 bits) to change.
In the window on the right hand side, the bit descriptions (if a PCR file was found) will be displayed for each of the bits in the register byte. An asterick (yellow by default) will show up next to the bit(s) currently selected for change in the "bit description window" to the right of the Wcpredit display. Also, the 3rd little window at the bottom will show which bit(s) number(s) is(are) currently selected for change.
To change the value, simply type it in using the number keys on your keyboard. If you have selected a single bit, you can type 0 or 1. If you have selected a nibble, you can type in 0 thru F (a hex digit). After entering a new value, the cursor will move to the next bit(nibble) in the data entry window.

You can continue making changings until you are satisfied with the data. DO NOT HIT RETURN UNTIL YOU ARE SURE THAT THE CHANGES ARE WHAT YOU WANT.
To actually have the changes made to the register itself, either hit RETURN or left click on the SET button in the lower right hand corner. If you decide you don't want to make the changes, click on the CANCEL button or press the ESCAPE key on your keyboard.


Other notes -
You can also change the register display so that it shows the registers grouped in words (16 bits at a time) or long words (32 bits at a time).
By using the "View" menu, "Structure View" you can see the predefined (by PCI specification) registers in the chip.
From the "File" menu, you can load PCR files (in case they aren't named by the standard Wcpredit convention), as well as save or load an entire set of registers. This last capability allows you to save the default configuration or a special configuration you have created for later use.
EMC2 is offline   Reply With Quote
Unread 03-05-2002, 09:16 PM   #2
Jim
Cooling Savant
 
Join Date: Feb 2002
Location: Illinois
Posts: 389
Default

EMC2-
Thank you VERY much for this info.

Jim
Jim is offline   Reply With Quote
Unread 03-06-2002, 05:53 PM   #3
Jim
Cooling Savant
 
Join Date: Feb 2002
Location: Illinois
Posts: 389
Default

Emc2-

I went through your explanation of Wcpredit and Wcprset and preformed the Register edit described in the article entitled: "AMD Mobo Airconditioning".

All I needed to do was change the Reg 62 entry from B3 to B7. This I did after reading your explanation with no problems. I did not entirely grasp the subject matter on the PCR file. I made the change in the Reg without the presence of a PCR file.

The change did nothing to improve my idle temps. I went into Bios and enabled ACPI but still no difference.

If the lack of the PCR file made the difference than I need to try this again, but my understanding of the PCR file is that it identifies what each value in a particlar Registry does. Any additional guidance on this is appreciated. I did change Reg 62 back to B3.

Anyway EMC2, thanks much for all your effort, you made this easier to understand and the tweak much easier to follow. Even though it didn't work I still have more understanding of what goes on inside the box.

Thanx again,
Jim
Jim is offline   Reply With Quote
Unread 03-08-2002, 07:54 PM   #4
EMC2
Cooling Savant
 
EMC2's Avatar
 
Join Date: Feb 2002
Location: Dark Side of the Moon
Posts: 365
Default

The PCR file is simply a "definition file" that allows Wcpredit to show you what the bits in the registers mean and what type the chip you are looking at is (for example, identify the chip as an AMD760 NorthBridge). They have no functional purpose as regards the operation of the program.

Enabling ACPI in the BIOS alone won't get things going. Setting the proper bits in the Northbridge only enables the power savings feature (which is what reduces the idle temp). To actually "trigger it", there are registers in the Southbridge involved. This is usually done by one of two things, either the OS itself (if IT has ACPI installed and enabled and understands you chipset) or by a CPU "cooler" program.

For example, in the KT266x chipset, setting the proper bits in the NorthBridge ENABLES the power savings feature of the STOP/GNT cycles. However, to trigger the cycles, a register must be read in the SouthBridge. The BIOS code is not where this triggering occurs. Again, the triggering mechanism is done by either the OS or a "cpu cooler" program (either CPUCool that I gave you the link to or VCool are ones I know work properly with your chipset).

If you really want to see, just download CPUCool for a quick "what does it do to my IDLE temps if the power saving feature is turned on and triggered".
EMC2 is offline   Reply With Quote
Unread 03-08-2002, 08:07 PM   #5
Jim
Cooling Savant
 
Join Date: Feb 2002
Location: Illinois
Posts: 389
Default

ECM2-

Where dat link to CPU Cool?

Jim
Jim is offline   Reply With Quote
Unread 03-08-2002, 09:53 PM   #6
EMC2
Cooling Savant
 
EMC2's Avatar
 
Join Date: Feb 2002
Location: Dark Side of the Moon
Posts: 365
Default

It was in the post that started this over in the watercooling forum, lol (the one about the new res as I remember).

To save you time CPUCool home page
EMC2 is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 04:35 AM.


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
(C) 2005 ProCooling.com
If we in some way offend you, insult you or your people, screw your mom, beat up your dad, or poop on your porch... we're sorry... we were probably really drunk...
Oh and dont steal our content bitches! Don't give us a reason to pee in your open car window this summer...