Remove PCI clock lock on AMI bios v0700, MSI 6380 v2.0

Only for programmers and BIOS gurus with technical questions.
Post Reply
hal900x
New visitors - please read the rules.
Posts: 8
Joined: Wed Feb 12, 2003 3:31 am

Also known as the K7T266 Pro2. I've gone as far as I can go with my research, and have discovered the wonderful fact that info on patching AMI bios' is quite scarce. By now if this had been an Award I'd be done. In any case, I simply would like to remove the PCI clock lock, and then of course I would need an option to adjust the divider manually. I am a network engineer, and many moons ago an Assembly coder, but I have never decompiled a BIOS before. I've checked each and every register and there is no multiplier, and I have seen on other forums that it is indeed a hardwired lock. I've opened up the latest BIOS, v370, with AMI's most recent configurator, and there are no PCI or AGP multiplier options of any kind, anywhere. Hence I'm assuming that the information would be in Module ID 20, "PCI ADDon ROM", Rom loc is C2B9:0004, Run loc 0D30:105A (although several other modules entitled "user defined" do exist). I can extract the module to a filename of my choice, but here I stay. I'm not sure how to proceed. Firstly, I am not 100% sure if this is in fact the guilty module. Second, I am not sure how to add a multiplier back into the BIOS options (or registers, would be fine), should I succeed. Lastly, I assume I would need a proper decompiler for the extracted module. If this is just too much to ask, so be it. It's been my pet project for a month, having started out with zero knowledge and merely wishing to utilize some more of my memory bandwidth, of which I have plenty to spare, and I do not wish to overclock anything in my system. Hence my plan was to break the clock-lock, drop my Host Clock from 133 to 100, and set the DDR speed at HCLK+33(which is essentially the only option available). Then I would simply use the BIOS' built in FSB incrementer to bring it back up to 132 (highest setting with HCLK=100 to start). This would bring my DDR speed to a total of nearly it's rated 333, without overclocking anything, provided the correct divider was implemented for PCI. As it is, if I dared to try this now, both my PCI bus and my AGP bus would scream for mercy long before 132. This is not an overclocking system, and it is certainly not built to be one. But the high speed ram would be nice to utilize.

Gentlemen,
My Thanks. -Hal900x
hal900x
New visitors - please read the rules.
Posts: 8
Joined: Wed Feb 12, 2003 3:31 am

Hello again. It occured to me that all engineers share the quality of not giving up on a problem, in spite of the fact that it makes no financial sense whatsover. In the time it has taken me to get into this problem thus far, I could have earned enough money to buy 30 brand new motherboards of all chipsets. But that's not us, is it? So, I return with blurred eyes, caffiene overload and lack of sleep. Oh, and hopefully some better questions. Let me sum it up: There is a wealth of utilities to dump an entire Award Bios into a single expanded file, which can then be loaded into either a Hex editor (to find a value, perhaps) or a decompiler. Unfortunately, the only tool I have had success with is AMI's official BIOS configuration utility, AMIBCP.EXE. My version is 7.51.03, and I would be happy to hear from you if you have a newer rev. Now, the utility, for those of you unfamilar, has several user-friendly functions. Basically, it lets you modify an existing bios file's stock settings, and if desired add some options from the template that the Motherboard manufacturer used. There is limited ability to modify the default values, names of the options, etc, but these are all just the visual interface to the registers, which we see when we enter a functional PC's BIOS at post. I can also view and modify the registers for the North and South bridges directly, but hey, we'd all prefer WPCREDIT to raw hex so big hairy deal. Finally, I can view and modify the PCI IRQ routing table, change security options on sections of the BIOS GUI, load and save edited bios files with or without modifications (which produced working files, I have tested this by adding a few hidden performance settings and loaded the bios no problem to my flash).

The last, and only important feature in this case, is the BIOS module editor. Some modules are read-only within the utility, but all are viewable, some can have minor edits performed on header information, and all are extractable. It is truly "Modular" in that all of the modules can be deleted, expanded and/or inserted (either a brand new module, space allowing, or one that you had previosly extracted, altered and recompressed). All the pertinent information is there, such as start and stop offsets, sizes, vendor ID's if applicable, a very short description such as "MP" or "DMI", etc. You can change the module's type, ID, etc. but the important feature is the extraction. You can extract any of the modules to a filename of your choosing. These modules can then be viewed or edited with a Hex Editor, Decompiler, etc. Sorry for the long description, I try to be thorough. So now, what do I need?

First, is this everything? The entire BIOS consists of the interface, the IRQ routing table, the 3 sets of registers, and the modules? If this is the case, then for my purposes the only place to look would be the modules. I have already scrubbed the Bridge registers time and time again. Trust me, nothing there. This was confirmed by a few BIOS sites where others had looked for a clock divisor within the bridge registers with no success. Well, it's very cumbersome to have to extract 20 or so little modules, not really knowing what each one does unless it's something obvious like "DMI" or "POST". The vast majority of you, the Award users, merely dump the whole thing into a single file. I would like to do the same. If anyone knows of a way to do this with an AMI bios, please let me know. If it is of any help, the AMI BIOS version is 0700, the size is 256Kb and the Tag is 1AARK200. If no such utility is available, I would just like confirmation that I need only extract all the modules, and comb through them each, one by one, with the viewer of my choice. Regardless of whether I am able to get the whole thing in one file or not, I still need a hint as to the offset I am looking for. Per my initial post, I am looking for the "PCI clock suspension" feature, and how to disable/modify it to allow me to manually adjust the PCI/AGP timings. Hints as to the correct Module(assuming I am not able to combine them), hints as to what sequence of bytes to look for, etc are what I most need. I have perused some of these modules, converting to ascii to see if any readable text exists, and it is only seldom. In fact, this was how I discovered I was quite wrong about which module I am looking for. The "PCI Add-On Module" I discussed in my first post turned out to the the Highpoint Raid Controller, which is "missing" for my K7T266 Pro2 (essentially a crippled K7T266 Pro2-RU, easily modded and reinserted to allow the same capabilties and, with a little more tweaking, full-blown RAID arrays and more). However, I am not interested in RAID, I am interested in keeping my PCI clock speed as close to 33 as possible, as I discussed above. I have found many freeware hex editors and compilers, and while waiting hopefully for an answer to this thread, I will attempt to use some of the Award-based tools to extract my entire BIOS. Wish me luck, and any of you with experience of the offsets to look for on the Via KT266A chipset BIOS's, please respond. I refuse to give up. I have invested a huge amount of time in this, so "winning" is not the point. I could simply buy another motherboard. The point is, I really want to learn.

Thanks,
Hal
soupy
Absentee administrator
Posts: 1086
Joined: Thu Mar 21, 2002 1:06 am
Location: Ontario, Canada
Contact:

I'm fairly sure pci divider is limited by the chipset, but if you can find a way around it, you'll be a hero.
Flash your BIOS at your own risk.
Denniss
BIOS Guru
Posts: 3153
Joined: Thu Mar 21, 2002 8:16 pm
Location: Near Hannover (CEBIT) Germany
Contact:

PCI and AGP clock and it's dividers from FSB are limited by chipset and the PLL chip used on the mainboard - usually no way to go around it

A little higher PCI-clock up to ~37MHz should be no problem
hal900x
New visitors - please read the rules.
Posts: 8
Joined: Wed Feb 12, 2003 3:31 am

yep,it's hardware. I found the easy way to see what each module does: I found a secret option to force the POST to display the "friendly name" of every installed module. Nothing remotely interesting showed up, so I'm assuming you are correct. Well, certainly learned something: Don't buy clock-locked boards. Sure, 35 or 36 MAYBE on my highly sensitive board, but that doesn't help much with my plan. You see, the BIOS has a formula for the DDR speed such that:

LET HCLK = 100 OR 133.
IF HCLK >= DDRCLK THEN (DDRCLK=HCLK) OR (DDRCLK=HCLK-33).
IF HCLK < DDRCLK THEN (DDRCLK=HCLK) OR (DDRCLK=HCLK+33).

So I had hoped to set HCLK=100 and DDRCLK=(HCLK+33). Then I could use the overclocking increments of the board, one Mhz at a time, to get all the way back to a 132 HCLK, and my DDR would be screaming. Unfortuantely, so were my PCI and AGP busses, as you might imagine. This is what started ths whole quest.

So altering this formula might be my next step. It appears in the setup options under chipset options. Its probably hardware locked too, though.
hal900x
New visitors - please read the rules.
Posts: 8
Joined: Wed Feb 12, 2003 3:31 am

Well, this thread has now officially moved away from BIOS-related posts, so if anyone has any pointers for me, appreciated. I'll make this my last post to this thread. I've obtained the datasheet for my PLL-IC, and it can be software programmed. Unfortunately the outdated SOFTFSB by H-Oda only supports one Byte of software select mode/Frequency selection information, and my Cypress W310-02 has two (at minimum). The datasheet is fairly straightforward, the software-select override bit is in one byte, and the Frequency select bits can occupy up to two different bytes (yeah, alot of possible FSB/PCI frequency combos). Anyone familiar with SOFTFSB knows, besides the fact it has not been updated since NT, it only has support for a single control byte. You can force any bits you want, but that doesn't work with his interface, since some of the bits need to be dynamic. Anyone know of a more advanced/updated software solution for programming the clock control chip, pls lemme know.
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

Thanks for posting - I know it's been rather one-way but interesting to read. Good luck !
hal900x
New visitors - please read the rules.
Posts: 8
Joined: Wed Feb 12, 2003 3:31 am

Thanks folks. Although it was not the ideal answer, the answer given by respondents to my post was the correct one. As the closer to this issue, I wanted to let readers know that I have corresponded with Wolfram Podien, author of CPUCOOL and CPUFSB, who has experience with my PLL IC. We have compared datasheets, and he, being far more experienced than I, has assured me that this particular chip has no way around the PCI divider, short of a soldering gun. I had examined the datasheet and thought I saw a way, but I trust Mr. Podien's experience completely. So, I wait until I can afford a new P4 Mobo before I take the smoking gun to that IC. Thanks again! I'll be starting a new thread on another AMI BIOS-related issue on this same board, so anyone with knowledge of VIA's 8233 SouthBridge registers(particularly, tho not necessarily if you have any AMI BIOS experience), please take a look.
Post Reply