VOGONS


VIAFSB - DOS FSB utility for VIA chipsets

Topic actions

Reply 20 of 70, by Zeerex

User metadata
Rank Member
Rank
Member
enaiel wrote on 2022-03-25, 22:24:

I thought I saw a reply from you, but it seems to be deleted now. Did you try using the dump command?

Correct, I deleted it until I could try the dump command. I just did and it doesn’t work, the machine crashes before it is able to dump is my guess. SMBus is enabled… is the last thing I see before the computer freezes up. The machine crashes even when performing a GET command. Thank you again for this tool I’m hoping you can get it working

Reply 21 of 70, by enaiel

User metadata
Rank Member
Rank
Member
Zeerex wrote on 2022-03-26, 01:46:

Correct, I deleted it until I could try the dump command. I just did and it doesn’t work, the machine crashes before it is able to dump is my guess. SMBus is enabled… is the last thing I see before the computer freezes up. The machine crashes even when performing a GET command. Thank you again for this tool I’m hoping you can get it working

Okay, that helps - I can now tell exactly where it's crashing. Not only is this PLL write-only (so it's not possible to read the current FSB), it also does not implement the "quick write" I2C protocol that I use to detect if I can contact the PLL on the SMBus. I will have to disable both these checks for this PLL, and try directly writing to it. Looking at the datasheet again, it doesn't mention that it implements the "block write" I2C protocol that I use to write the new FSB to the PLL either. So no reads, no quick writes, no block writes; only write byte, one byte at a time. We'll have to work with that.

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 22 of 70, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie

Hi,
I have tested Abit KT7A v1.3 (PLL205-03) and basically it works. This means you can set FSB freq. within the same PCI/AGP divider domain.
If the FSB freq. you would like to set involves a PCI/AGP divider that is outside of the current one you get a hard freezing and only hard reset will help.
Because of the above behavior duplicates mean a major problem since usually you cannot even set FSB that was your starting point (e.g. in case of 133/33 MHz) since the 1st value in the list is in a different PCI/AGP divider domain (133/44).

Also because of the above behavior you cannot reach 66, 75, 83 MHz FSB (although they are listed) since the lowest FSB value you can set in the BIOS is 100/33 MHz and 66, 75, 83 MHz FSB values involve different PCI/AGP divider.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 23 of 70, by enaiel

User metadata
Rank Member
Rank
Member

Excellent, this is exactly the kind of feedback I'm looking for!

Falcosoft wrote on 2022-03-26, 07:02:
Hi, I have tested Abit KT7A v1.3 (PLL205-03) and basically it works. This means you can set FSB freq. within the same PCI/AGP […]
Show full quote

Hi,
I have tested Abit KT7A v1.3 (PLL205-03) and basically it works. This means you can set FSB freq. within the same PCI/AGP divider domain.
If the FSB freq. you would like to set involves a PCI/AGP divider that is outside of the current one you get a hard freezing and only hard reset will help.
Because of the above behavior duplicates mean a major problem since usually you cannot even set FSB that was your starting point (e.g. in case of 133/33 MHz) since the 1st value in the list is in a different PCI/AGP divider domain (133/44).

I can fix this by letting you choose FSB/PCI combination, instead of just FSB. Will that work?

Also because of the above behavior you cannot reach 66, 75, 83 MHz FSB (although they are listed) since the lowest FSB value you can set in the BIOS is 100/33 MHz and 66, 75, 83 MHz FSB values involve different PCI/AGP divider.

Okay, so what do I need to do to let you reach 66 MHz and similar FSB values that involve different PCI/AGP dividers? I'm here to learn 😀

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 24 of 70, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
enaiel wrote on 2022-03-26, 15:09:

....
I can fix this by letting you choose FSB/PCI combination, instead of just FSB. Will that work?

Yes, I think this is the best you can do.

enaiel wrote on 2022-03-26, 15:09:

Okay, so what do I need to do to let you reach 66 MHz and similar FSB values that involve different PCI/AGP dividers? I'm here to learn 😀

Unfortunately I have no idea. I just mentioned this so someone with the same board also can expect this limitation.
BTW, CPUFSB has the same problem so it is not VIAFSB specific.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 25 of 70, by enaiel

User metadata
Rank Member
Rank
Member

Released version 0.1.6. Changed FSB to float and added ability to choose PCI frequency. Also added support for additional PLL ICS950908 and special logic for W156C as it is write-only.

havli wrote on 2022-03-25, 14:35:

Nice utility

I have ITX board with VIA C3 1GHz and CLE266 + VT8235 chipset. The used PLL seems to be ICS 950908 https://www.datasheetarchive.com/pdf/download … term=950908BGLF

Coud you add support for this one? If so, I will test how it works . 😀

Added support for ICS950908, so please test and let me know 😀

Zeerex wrote on 2022-03-26, 01:46:

Correct, I deleted it until I could try the dump command. I just did and it doesn’t work, the machine crashes before it is able to dump is my guess. SMBus is enabled… is the last thing I see before the computer freezes up. The machine crashes even when performing a GET command. Thank you again for this tool I’m hoping you can get it working

I added special handling for the write-only W156C. Since it does not support reading, the GET command will not work, so please directly try to SET the FSB. I hope it works!

Falcosoft wrote on 2022-03-26, 23:59:
enaiel wrote on 2022-03-26, 15:09:

....
I can fix this by letting you choose FSB/PCI combination, instead of just FSB. Will that work?

Yes, I think this is the best you can do.

Okay, you can now choose the FSB/PCI combination.

Falcosoft wrote on 2022-03-26, 23:59:
enaiel wrote on 2022-03-26, 15:09:

Okay, so what do I need to do to let you reach 66 MHz and similar FSB values that involve different PCI/AGP dividers? I'm here to learn 😀

Unfortunately I have no idea. I just mentioned this so someone with the same board also can expect this limitation.
BTW, CPUFSB has the same problem so it is not VIAFSB specific.

That's interesting that CPUFSB has the same problem. I would've expected it to be smarter than my very first DOS program! I have a theory on how to overcome this limitation using a hint that @BitWrangler had provided earlier. Going to work on that for the next version...

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 26 of 70, by havli

User metadata
Rank Oldbie
Rank
Oldbie

Nice, thank you for adding the support. 😀
Unfortunately it seems not to work properly. From the printings it seems to accept all commands, no errors shown. However the FSB doesn't change, it always remains at 133 MHz (which is default for this board and can't be changed in BIOS).

Also interesting fact is it remembers what I set last time (even after switch off and on again) and reads it as the current FSB. For example here I tried to set 102.
In DOS 7.1 it behaves exactly the same... but checking actual frequency is not as convenient as in Windows.

viafsb.png
Filename
viafsb.png
File size
843.84 KiB
Views
1465 views
File license
CC-BY-4.0

HW museum.cz - my collection of PC hardware

Reply 27 of 70, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
enaiel wrote on 2022-03-26, 15:09:

Okay, you can now choose the FSB/PCI combination.

Thanks, now it works with every FSB which has the same PCI divider.

enaiel wrote on 2022-03-26, 15:09:

That's interesting that CPUFSB has the same problem. I would've expected it to be smarter than my very first DOS program! I have a theory on how to overcome this limitation using a hint that @BitWrangler had provided earlier. Going to work on that for the next version...

I cannot wait to test it 😀

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 28 of 70, by Zeerex

User metadata
Rank Member
Rank
Member

Enaiel, I can confirm an on the fly, software adjustable FSB for Socket 7 AMD K6 thanks to your work on VIAFSB. Thank you!

My W156C sits on a no-name MVP4 board that supports AMD K6-2,2+, and 3+. The board boots via jumper at 120Mhz, and I was able to switch between 83mhz and 120mhz in software. 75Mhz worked too, but the machine crashed both times when i launched monster truck madness soon after. Lower clocks like 66 crashed the machine still. I want to try at a later date setting the board to 66 from boot and going up from there with VIAFSB which will be very interesting indeed. I was able to go from 120Mhz to 83Mhz, then run setmul to adjust the ratio. Super cool.

Some nuts and bolts. Included in the zip file attached are few dumps of failures. However something is broken with the dump command because setting FSB to, say 66Mhz, it crashes the machine still. When using the dump command, it doesn't crash and just presents a tidy VIAFSB: Unable to set FSB.. and gracefully exits. That said, the same unable to set FSB is presented with 83Mhz when using -d, however it runs and sets fine without (see OUT83.TXT for STDOUT capture on that one).

Attachments

  • Filename
    viafsb_W156C.zip
    File size
    4.55 KiB
    Downloads
    38 downloads
    File license
    Fair use/fair dealing exception
  • After_83Mhz_Setmul.png
    Filename
    After_83Mhz_Setmul.png
    File size
    43.82 KiB
    Views
    1448 views
    File license
    Fair use/fair dealing exception
  • After_83Mhz.png
    Filename
    After_83Mhz.png
    File size
    42.35 KiB
    Views
    1448 views
    File license
    Fair use/fair dealing exception
  • BEFORE_120Mhz.png
    Filename
    BEFORE_120Mhz.png
    File size
    46.46 KiB
    Views
    1448 views
    File license
    Fair use/fair dealing exception

Reply 29 of 70, by enaiel

User metadata
Rank Member
Rank
Member
havli wrote on 2022-03-28, 21:02:

Nice, thank you for adding the support. 😀
Unfortunately it seems not to work properly. From the printings it seems to accept all commands, no errors shown. However the FSB doesn't change, it always remains at 133 MHz (which is default for this board and can't be changed in BIOS).

Also interesting fact is it remembers what I set last time (even after switch off and on again) and reads it as the current FSB. For example here I tried to set 102.

That's strange - almost like the FSB is being set in the PLL but the FSB is still locked somehow. Can you please try attaching a dump file:

VIAFSB pll_name fsb_freq -d > dump.txt

Most probably there is some additional bit I need to set that enables it t0 be programmable. Will go through the datasheet again.

In DOS 7.1 it behaves exactly the same... but checking actual frequency is not as convenient as in Windows.

It's actually more convenient if you use ChkCpu 😀

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 30 of 70, by enaiel

User metadata
Rank Member
Rank
Member
Zeerex wrote on 2022-03-29, 02:26:

Enaiel, I can confirm an on the fly, software adjustable FSB for Socket 7 AMD K6 thanks to your work on VIAFSB. Thank you!

That is awesome news!

My W156C sits on a no-name MVP4 board that supports AMD K6-2,2+, and 3+. The board boots via jumper at 120Mhz, and I was able to switch between 83mhz and 120mhz in software. 75Mhz worked too, but the machine crashed both times when i launched monster truck madness soon after. Lower clocks like 66 crashed the machine still. I want to try at a later date setting the board to 66 from boot and going up from there with VIAFSB which will be very interesting indeed. I was able to go from 120Mhz to 83Mhz, then run setmul to adjust the ratio. Super cool.

As @Falcosoft mentioned above, you need to stay within the same PCI divider. For your PLL, if you boot into 120MHz, the other frequencies with the same divider are 75.00, 97.00, 83.30, 95.25, 100.00, 96.20, 105.00, 110.00, 115.00, and 124.00. These will be the frequencies that should not crash your computer. 66 MHz and the remaining frequencies have another divider. I will bake this logic into VIAFSB to prevent future crashes.

Some nuts and bolts. Included in the zip file attached are few dumps of failures. However something is broken with the dump command because setting FSB to, say 66Mhz, it crashes the machine still. When using the dump command, it doesn't crash and just presents a tidy VIAFSB: Unable to set FSB.. and gracefully exits. That said, the same unable to set FSB is presented with 83Mhz when using -d, however it runs and sets fine without (see OUT83.TXT for STDOUT capture on that one).

I should've mentioned that the dump command does a dry run - it will get the current FSB (except in your case), but it will not actually write to the PLL to set the FSB. It lets me see what would've been written, which is useful for me since I don't have all these PLLs to test with. That's why it will always gracefully exit. Thanks for testing!

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 32 of 70, by havli

User metadata
Rank Oldbie
Rank
Oldbie
enaiel wrote on 2022-03-29, 03:13:

That's strange - almost like the FSB is being set in the PLL but the FSB is still locked somehow. Can you please try attaching a dump file:

VIAFSB pll_name fsb_freq -d > dump.txt

Most probably there is some additional bit I need to set that enables it t0 be programmable. Will go through the datasheet again.

Thanks for the tip - here it is. I tried to set FSB from 133 to 100 MHz (underclocking is what I am intrested in case of this board).

Filename
dump.txt
File size
9.24 KiB
Downloads
47 downloads
File license
CC-BY-4.0

HW museum.cz - my collection of PC hardware

Reply 33 of 70, by enaiel

User metadata
Rank Member
Rank
Member
havli wrote on 2022-03-29, 19:20:

Thanks for the tip - here it is. I tried to set FSB from 133 to 100 MHz (underclocking is what I am intrested in case of this board).

Thanks, the SMBus port I got from the VIA Southbridge looks very wrong. Either my code is wrong, or the VIA Southbridge is buggy. Either way, I will just hardcode it for now and provide an updated build soon.
Oh and If you boot into 133, the lowest you will be able to go is 111, based on the PCI dividers.

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 34 of 70, by enaiel

User metadata
Rank Member
Rank
Member

Released version 0.1.7 that uses a hard coded SMBus address since I'm not getting the correct one when I query the VIA Southbridge.

havli wrote on 2022-03-29, 19:20:

Thanks for the tip - here it is. I tried to set FSB from 133 to 100 MHz (underclocking is what I am intrested in case of this board).

Please download version 0.1.7 and try again. Try to set your FSB to 111. Thanks for testing!

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 35 of 70, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie

Hi,
Just a minor correction.
I have seen you extended the Q&A section with this part:

The only way to change the PCI divider is to change the boot FSB
frequency using hardware jumpers. The BIOS will not let you change the PCI
divider, so without jumpers, there is no way to change the PCI divider.

Unfortunately this is not absolutely correct. The PCI divider CAN be successfully changed through BIOS on Abit KT7A (2x divider is not available but 3x and 4x are).
What is more there are no hardware jumpers at all that are related to FSB speeds or PCI divider on this board. The PCI divider changing problem only affects tools that try to change FSB and PCI divider at run-time.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 36 of 70, by enaiel

User metadata
Rank Member
Rank
Member
Falcosoft wrote on 2022-03-30, 05:00:

Unfortunately this is not absolutely correct. The PCI divider CAN be successfully changed through BIOS on Abit KT7A (2x divider is not available but 3x and 4x are).
What is more there are no hardware jumpers at all that are related to FSB speeds or PCI divider on this board. The PCI divider changing problem only affects tools that try to change FSB and PCI divider at run-time.

Thanks for the correction. I have changed that line to:

The only way to change the PCI divider is to change the boot FSB frequency using hardware jumpers or from the BIOS. Not all motherboards have these jumpers or this ability in their BIOS.

It is interesting that you can change the divider in your BIOS. As per my understanding, which may be wrong, there are 2 ways to set the FSB on the PLL, one is using hardware latched pins, and the other is through software controlled pins. The hardware latches can only be configured using jumpers, and if your motherboard doesn't have them, then it is permanently latched to a particular FSB. As far as I can tell, the BIOS changes the FSB through software using the SMBus, just like VIAFSB.

So if you don't mind, can you do a quick experiment? Change the FSB using the BIOS to a 3x divider. Run VIASB with the dump option and try to change to a 4x divider. Then change the FSB using the BIOS to a 4x divider. And run VIAFSB with the dump option and try to change to a 3x divider. The dump command won't actually set the FSB, so it shouldn't crash when crossing PCI dividers. I'm interested in seeing if the BIOS does anything different from my tool, or it's just because it's doing it at the start of the boot process it' s able to change the PCI divider.

Dump Command: VIAFSB [pll_name] [fsb_freq/[pci_freq]] -d > dump.txt

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50

Reply 37 of 70, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
enaiel wrote on 2022-03-30, 12:02:

...
So if you don't mind, can you do a quick experiment? Change the FSB using the BIOS to a 3x divider. Run VIASB with the dump option and try to change to a 4x divider. Then change the FSB using the BIOS to a 4x divider. And run VIAFSB with the dump option and try to change to a 3x divider. The dump command won't actually set the FSB, so it shouldn't crash when crossing PCI dividers. I'm interested in seeing if the BIOS does anything different from my tool, or it's just because it's doing it at the start of the boot process it' s able to change the PCI divider.

Dump Command: VIAFSB [pll_name] [fsb_freq/[pci_freq]] -d > dump.txt

Hi,
Here are the requested dumps:

Filename
D3XTO4X.TXT
File size
5.03 KiB
Downloads
53 downloads
File license
Public domain
Filename
D4XTO3X.TXT
File size
5.03 KiB
Downloads
42 downloads
File license
Public domain

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 38 of 70, by havli

User metadata
Rank Oldbie
Rank
Oldbie
enaiel wrote on 2022-03-30, 02:53:

Released version 0.1.7 that uses a hard coded SMBus address since I'm not getting the correct one when I query the VIA Southbridge.

havli wrote on 2022-03-29, 19:20:

Thanks for the tip - here it is. I tried to set FSB from 133 to 100 MHz (underclocking is what I am intrested in case of this board).

Please download version 0.1.7 and try again. Try to set your FSB to 111. Thanks for testing!

Thanks for the effort - tested now, but it seems to have problem communicating with the ICS. The log file is attached.

Filename
dump2.txt
File size
8.29 KiB
Downloads
38 downloads
File license
CC-BY-4.0

HW museum.cz - my collection of PC hardware

Reply 39 of 70, by enaiel

User metadata
Rank Member
Rank
Member
Falcosoft wrote on 2022-03-30, 15:15:
Hi, Here are the requested dumps: D3XTO4X.TXT D4XTO3X.TXT […]
Show full quote

Hi,
Here are the requested dumps:
D3XTO4X.TXT
D4XTO3X.TXT

Thanks! From your dumps:

FSB 100.00/33.3 (3x):
Set by ---BIOS: 7A FF FD FF FF 1B 03 00 02
Set by -VIAFSB: 7A FF FD FF FF 1B 03 00 02

FSB 133.30/33.30 (4x)
Set by ---BIOS: FA FF FD FF FF 1B 03 00 02
Set by -VIAFSB: FA FF FD FF FF 1B 03 00 02

As you can see, VIAFSB is setting the exact same bytes on your PLL as your BIOS, but the BIOS is able to change PCI dividers on the PLL and VIAFSB is not. The only difference is that the BIOS is changing the FSB at the start of the boot process, while we are doing it after the computer has booted. Too bad, I was hoping there was a trick I was missing 🙁

#1 VIA C3 Ezra-T 1.0GHz / MSI MS-6368 / Voodoo2+ViRGE GX / SBPro2+YMF744+AWE64+SC-7
#2 Pentium III-S Tualatin 1.40GHz / QDI A10T / Voodoo3 3000+GF4 Ti4200 / Audigy+AU8830+SC-50