VOGONS


First post, by DenizOezmen

User metadata
Rank Member
Rank
Member

Hi everybody,

recently I toyed around with an ASUS P3B-F, and obviously I came across the modified "Noa" BIOS for this board. While effective, I disliked the way some of the changes were done, so I decided to re-do everything (and add a little bit more). Maybe somebody else can make use of it. The mod is based on the last official beta BIOS 1008.004, has been ported to some other ASUS boards with similar BIOS versions and includes the following changes:

  • support of multipliers 12.5x through 16.0x on the "Advanced" tab of the BIOS Setup Utility, including display of suggested CPU speeds for standard FSB speeds
  • support of displaying normalized frequencies at bootup for multipliers 12.5x through 16.0x at standard FSB speeds
  • fix for the display of processor brand names at bootup, including support for Pentium III-S processors
  • fix for the display of frequency suffixes (A, E, B, EB) at bootup according to Intel datasheets
  • support of additional voltage ranges to suppress Hardware Monitor errors at bootup
  • updated processor microcodes
  • fixed display of multiplier 2.0x for processors with Klamath core
  • unlocked core voltages for undervolting
  • added Setup Utility "Enable" option for Symbios SCSI BIOS to force loading the ROM module even if no matching adapter is present
  • CUBX: updated CMD Ultra66 ROM to version 1.9.16
  • CUBX-E/L: updated Promise Ultra100 ROM to version 2.20.0.14
  • POST fixes for Pentium Pro processors
  • fix for the "Processor Version" and "Processor Family" fields in SMBIOS
  • support for monitoring slow-spinning fans in Hardware Monitor (down to ca. 700 RPM, warnings at ca. 900 RPM)
  • experimental support for Via C3/Cyrix III processors
  • fixed Hardware Monitor errors and erroneous readings ("-6.14V") when using modern PSUs without a -5 V rail
  • changed boot menu hotkey to F10

Due to the number of mods it has become unfeasible to keep all of them as attachments in this thread. All BIOSes have been moved off-site:

Go here for the downloads.

The mods are currently available for these mainboards:

  • CUBX
  • CUBX-E
  • CUBX-L
  • CUV4X
  • CUV4X-CME
  • CUV4X-D
  • CUV4X-DLS
  • CUV4X-E
  • CUV4X-M
  • P2-99
  • P2-99B
  • P2B
  • P2B-B
  • P2B-D
  • P2B-DS
  • P2B-F
  • P2B-N
  • P2B-S
  • P2L97
  • P2L97A
  • P2L97-S
  • P2Z
  • P3B-1394
  • P3B-F
  • P3C-E
  • P3V133
  • P3V4X
  • TUV4X

Make sure you have a working crisis recovery procedure before attempting to use the mods.

Edit 2019-10-30: Fixed suffix for Celeron 900; ported changes to ASUS CUBX-E/L, beta revision 1008.004.
Edit 2020-05-12: Fixed display of multiplier 2.0x for Klamath processors on P3B-F.
Edit 2020-05-17: Enabled selection of VCore voltages lower than stock voltage for P3B-F.
Edit 2020-05-20: Fixed a bug that caused the VCore voltage menu to stay hidden.
Edit 2o20-05-21: Added "Enable" option for Symbios SCSI BIOS on P3B-F.
Edit 2020-05-30: Uploaded latest versions for P3V4X and CUBX-E/L after testing.
Edit 2020-06-18: Uplodad latest version for CUBX after testing.
Edit 2021-06-23: Incorporated POST fixes for Pentium Pro processors on P3B-F.
Edit 2021-07-11: Uploaded latest versions with SMBIOS fixes and (untested) Pentium Pro fixes for P3V4X.
Edit 2022-02-05: Uploaded latest versions with slow fan support.
Edit 2022-02-20: Uploaded versions with experimental Via C3 support, fix for Katmai voltage monitor error and port for P3V133
Edit 2022-06-25: Disabled CPU temperature display in Hardware Monitor for Via CPUs; made upper VCore limit for CPUs requesting 1.50 V dependent on CPU core (1.70 V for Tualatin, 1.80 V for other cores)
Edit 2022-12-04: Unlocked all lower VCore voltages, added ports for P3C-E.
Edit 2022-12-11: Uploaded versions with -5 V rail fix; the boards should now play nice with modern PSUs without having to ignore the -5 V monitoring.
Edit 2023-01-07: Temporarily removed mods until VCore limit bug has been resolved.
Edit 2023-01-12: Restored mods.
Edit 2023-03-26: Added port for CUV4X-D.
Edit 2023-03-30: Added port for CUV4X-E.
Edit 2023-07-02: Uploaded versions with boot menu hotkey change.
Edit 2023-07-10: Fixed an error that might cause the wrong frequency suffix to be displayed; added ports for P2B(-F)
Edit 2023-07-11: Added port for P2-99.
Edit 2023-07-15: Added port for P2B-DS.
Edit 2023-08-03: Moved all downloads off-site.
Edit 2023-08-07: Added port for P2B-S.
Edit 2023-08-24: Fixed extension ROM loading for CUV4X-DLS; removed second microcode module accidentally included in P2B-F (without hardware monitor) build.
Edit 2023-10-14: Added port for P3B-1394.
Edit 2024-02-11: Added port for P2B-B.
Edit 2024-06-20: Added ports for P2-99B and TUSL2-C. Updated other P3 class builds to fix partially wrong "Enter Setup" message and missing -5 V rail fixes.
Edit 2024-08-11: Emphasised download link. Removed TUSL2-C from the list, since the mod does not work as intended.

Last edited by DenizOezmen on 2024-08-11, 17:45. Edited 35 times in total.

Reply 1 of 416, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Hi,
Just wanted to let you know I have flashed my P3B-F with your BIOS and everything went fine, thank you ! The final build will be a MS-6905 Slotket and a Tualatin, currently delayed because of coronavirus...
Will update after I installed it.

Reply 3 of 416, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Ah, I love a happy necro post 😁

I found the thread by searching the board for information on the "Noa" bios and was surprised it went unnoticed at the time of posting! Happy it gets some late recognition.

Reply 6 of 416, by vitalm

User metadata
Rank Newbie
Rank
Newbie
DenizOezmen wrote on 2020-04-03, 17:54:

Glad to hear it was useful to you. 😉

Could you please find a way to use throttle.exe or fdapm.com for chipset throttling on the P3B-F? Both utils give 100% performance instead of 1/8, 2/8, 3/8 ... 7/8 slowdown.

W98SE+NUSB3.3, 7AJA2 (KT133A+686B), Athlon XP-M (3x100-16.5x150 MHz), FX5900, Voodoo1, AWE64 ISA (VXD) connected to Line-In of Vortex2 rev.B0AAAA (VXD 2041) for DOS games CD Audio emulation by Daemon Tools 3.47 (volume can be changed in DT drive settings)

Reply 7 of 416, by DenizOezmen

User metadata
Rank Member
Rank
Member
vitalm wrote on 2020-04-04, 19:52:

Could you please find a way to use throttle.exe or fdapm.com for chipset throttling on the P3B-F? Both utils give 100% performance instead of 1/8, 2/8, 3/8 ... 7/8 slowdown.

I've not yet worked with slowdown tools. From a quick glance at the source code, the tools get their information on which controls to use for throttling from different sources (ACPI tables vs. PCI bus scan). The ACPI table of the P3B-F seems to be okay in this regard, and even if it wasn't, this shouldn't matter to throttle.exe.

Unfortunately, I don't have access to my P3B-F at the moment, so I can't do any live tests. No idea if this problem is solvable with a BIOS update.

Reply 8 of 416, by vitalm

User metadata
Rank Newbie
Rank
Newbie
DenizOezmen wrote on 2020-04-05, 09:19:

Unfortunately, I don't have access to my P3B-F at the moment, so I can't do any live tests. No idea if this problem is solvable with a BIOS update.

Thanks. I can run tests or provide a remote access to my P3B-F via Internet (if you find time and write what to do). All my other motherboards do not have any problems with chipset slowdown (boards with VIA chipset have 16 steps of throttling) both in Win98 and in DOS ("throttle.exe -c" to leave L1 cache enabled). I have to use my Acorp 6BX81 (its BIOS has no multiplier change option for unlocked Pentium II) instead of P3B-F.

W98SE+NUSB3.3, 7AJA2 (KT133A+686B), Athlon XP-M (3x100-16.5x150 MHz), FX5900, Voodoo1, AWE64 ISA (VXD) connected to Line-In of Vortex2 rev.B0AAAA (VXD 2041) for DOS games CD Audio emulation by Daemon Tools 3.47 (volume can be changed in DT drive settings)

Reply 9 of 416, by DenizOezmen

User metadata
Rank Member
Rank
Member
vitalm wrote on 2020-04-05, 12:37:

Thanks. I can run tests or provide a remote access to my P3B-F via Internet (if you find time and write what to do). All my other motherboards do not have any problems with chipset slowdown (boards with VIA chipset have 16 steps of throttling) both in Win98 and in DOS ("throttle.exe -c" to leave L1 cache enabled). I have to use my Acorp 6BX81 (its BIOS has no multiplier change option for unlocked Pentium II) instead of P3B-F.

Thanks for the offer. The problem is just that I don't yet know what I should be searching for, so this would be quite time-consuming. You could do one test, however: Could you check whether the attached version of FDAPM behaves differently than the regular one?

Attachments

  • Filename
    FDAPM_patched.zip
    File size
    7.22 KiB
    Downloads
    186 downloads
    File license
    Fair use/fair dealing exception

Reply 10 of 416, by vitalm

User metadata
Rank Newbie
Rank
Newbie

Thank you very much! The patched util works!
Fdapm.com speed4 (4/8) gives 173 score in Speedsys ver.4.78 while the score with speed1 (1/8) is 43 and with speed8 (100%) is 346 on Pentium II 300 (66x4.5) in DOS 7.10.
Tested on "Noa" BIOS from www.rom.by, but it should work on any BIOS revision.
Is it possible to share your finding with the throttle util author, as the latest commit on github.com/FDOS/fdapm was made on 5 Jul 2007?

Attachments

W98SE+NUSB3.3, 7AJA2 (KT133A+686B), Athlon XP-M (3x100-16.5x150 MHz), FX5900, Voodoo1, AWE64 ISA (VXD) connected to Line-In of Vortex2 rev.B0AAAA (VXD 2041) for DOS games CD Audio emulation by Daemon Tools 3.47 (volume can be changed in DT drive settings)

Reply 11 of 416, by DenizOezmen

User metadata
Rank Member
Rank
Member

Thanks for the quick test! Quite interesting that this actually worked.

I'm not sure whether the correct solution to this problem should be implemented in the BIOS or in the throttling applications, however. I'll try and contact the author of throttle.exe, maybe he has some insights.

Background: The ACPI specification defines a 32 bit processor control register (P_CNT) for controlling clock throttle. To enable throttling, one of the register's bits (THT_EN, "throttle enable", offset 4) has to be set to 1, while a continuous block of other bits in the register is used to set the actual requested duty cycle. (Most of the time, these are three bits, giving eight speed settings.) The ACPI speficiation does not make an assumption regarding the function of the register's remaining bits.

Intel's specification update for the PIIX4(E) southbridge, however, states: "Manual throttling mode begins when CC_EN and THT_EN are set. Manual throttling mode is disabled when either CC_EN or THT_EN is disabled." So, there is yet another control bit (CC_EN, "clock control enable") to be set. According to the PIIX4 specification, this is bit 9 in the processor control register. (This bit is set by the patched fdapm.com from the above post. Which by the way also means: Don't use it on a machine with a different southbridge. Nobody knows what might happen.)

Neither the unmodified fdapm.com nor throttle.exe modify this bit, and it seems like on the P3B-F, it is not guaranteed to be set at boot. Now one could argue that the programs are ACPI compliant, while the additional control bit is a special quirk of the PIIX4 southbridge. On the other hand, I'm not sure whether an application can expect this bit to be set, since any application could also clear it. Maybe there is also some setting in the P3B-F's BIOS setup menu that has an effect on this bit?

Reply 12 of 416, by vitalm

User metadata
Rank Newbie
Rank
Newbie

Thanks for the very good explanation! It's not usual, even here on vogons. Earlier (two years ago) I had tested all official BIOS revisions for my P3B-F rev.1.04, changed varios BIOS options, but nothing helped.
Is it possible to mod BIOS to properly set and report unlocked Klamath as 2x with L2 enabled?
As no retail CPUs had 2x multi, all Slot1 boards I tested had 3 or 2.5 as the lowest ratio in BIOS. When you set 2x by jumpers, it shows by BIOS as 2x with L2 disabled.
And when you set 2x with L2 enabled by jumpers, both BIOS and utils like Speedsys report 5x with L2 enabled (60x5 instead of 150x2 for FSB actually set to 150).
gerwin has many posts about the "undocumented 2x with L2 enabled", starting from year 2009, e.g. Re: slot 1 Mobo
2x multi (with L2 enabled) is very useful for switching FSB "on the fly" in Win98, varying from 50 MHz on 440FX/LX to 150 on 440 BX.

W98SE+NUSB3.3, 7AJA2 (KT133A+686B), Athlon XP-M (3x100-16.5x150 MHz), FX5900, Voodoo1, AWE64 ISA (VXD) connected to Line-In of Vortex2 rev.B0AAAA (VXD 2041) for DOS games CD Audio emulation by Daemon Tools 3.47 (volume can be changed in DT drive settings)

Reply 13 of 416, by DenizOezmen

User metadata
Rank Member
Rank
Member

Well ... the processor itself does not really report its speed per se. Even the BIOS does a speed test to determine the internal clock frequency. If the FSB clock equals one of the standard values (i.e. 66, 100, 133 MHz), the BIOS compares the measured value against pre-defined tables and chooses the best match for display purposes (during POST).

The multiplier is actually read from a model specific register (MSR 2Ah) of the processor. However, the appropriate (read-only!) part of the register only contains a more or less arbitrary bit pattern, which has to be translated to a sensible value for display in the BIOS setup screen. (Once again, a table of fixed strings is used here.)

So, my guess would be that a Klamath core processor running with a multiplier of 2.0x (and L2 cache enabled) reports the same bit pattern in MSR 2Ah that later got redefined for the 5.0x multiplier of newer cores. If so, the BIOS should report the correct core frequency (at POST), the correct FSB frequency in the setup screen, but the wrong multiplier in the setup screen, is that correct?

In that case it should theoretically be possible to implement an exception into the BIOS. However, it would really only correct the displayed value within the setup screen, which seems like quite a bit of work for a very small gain. Any software that reads the multiplier from the MSR the same way (and possibly uses it for FSB calculation) would have to implement a similar hack, since the information returned by the processor is simply ambiguous in this regard.

By the way: Is the speed selection in the P3B-F's BIOS setup fully unlocked when using a Klamath core, i.e. can you choose the multiplier yourself in jumperfree mode?

Reply 14 of 416, by vitalm

User metadata
Rank Newbie
Rank
Newbie

Thanks for the quick answer.

DenizOezmen wrote on 2020-04-05, 22:52:

... the BIOS should report the correct core frequency (at POST), the correct FSB frequency in the setup screen, but the wrong multiplier in the setup screen, is that correct?

Yes. Re: Pentium 2 @ 133 mhz project ,help

DenizOezmen wrote on 2020-04-05, 22:52:

In that case it should theoretically be possible to implement an exception into the BIOS. However, it would really only correct the displayed value within the setup screen, which seems like quite a bit of work for a very small gain. Any software that reads the multiplier from the MSR the same way (and possibly uses it for FSB calculation) would have to implement a similar hack, since the information returned by the processor is simply ambiguous in this regard.

I agree that the gain is very small. My thought was like "If CPU=Klamath then show 2x instead of 5x".

DenizOezmen wrote on 2020-04-05, 22:52:

By the way: Is the speed selection in the P3B-F's BIOS setup fully unlocked when using a Klamath core, i.e. can you choose the multiplier yourself in jumperfree mode?

Yes, exactly like on Abit BX6 (unfortunately, the BX6 has no FSB/4 divider for PCI). If Klamath was manufactured before August 1998.

W98SE+NUSB3.3, 7AJA2 (KT133A+686B), Athlon XP-M (3x100-16.5x150 MHz), FX5900, Voodoo1, AWE64 ISA (VXD) connected to Line-In of Vortex2 rev.B0AAAA (VXD 2041) for DOS games CD Audio emulation by Daemon Tools 3.47 (volume can be changed in DT drive settings)

Reply 16 of 416, by DenizOezmen

User metadata
Rank Member
Rank
Member
greasemonkey90s wrote on 2020-04-06, 01:55:

Can this be ported for the cuv4x as well since the p3v4x are damn near identical just slot1 vs s370 difference?.

I did look at other some BIOSes from the same time, including the CUV4X, and found only those listed in the first post to be similar enough for a straight port. (And the CUBX "non-E/L", for which I did not post the modified BIOS because I have no board to test it on.)

The CUV4X BIOS seems to be based on a slightly newer codebase and shares more similarities with the TUV4X: For example, it already supports multipliers greater than 12.0x. So, this would be a different mod. Fixing the brand names would probably be similar, and updating the microcode should be straight forward as usual (if needed). Unfortunately, I didn't find the hardware monitor code, since that seems to have been rewritten, so I currently wouldn't know how to add a new voltage monitoring range if necessary. (Does the CUV4X even complain about the CPU voltage when fitted with a Tualatin core processor?)

Reply 17 of 416, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Hey DenizOezmen, as it seems you know your BIOS stuff really well, I've been using this faq with great information about the P3B-F and there is this entry:

"Q: What is the biggest harddisk that can be used on the P2B / P3B boards?A: The biggest harddisk that can be used on any of the boards of the P2B or P3B family is 128GB (technically, this is not a board/chipset limitation, but a bios limitiation, however those boards won't get further bios updates). To get this to work, you likely need the newest beta bios (for most of these boards, the last released final bios is really ancient, for all boards of the P2B family the newest version is 1014 beta 3), download it at asus. (As a side note, the 128GB mentioned above are binary Gigabytes (2^28*512 Bytes = 2^37 Bytes), whereas harddisk manufacturers use decimal Gigybytes (128 binary GB = 137 decimal GB), so if you see a harddisk advertised as "135GB" it should work.)"

In your opinion would it be possible to create a custom BIOS to lift that size limit on the P3B-F or would it be too complex?

Reply 18 of 416, by DenizOezmen

User metadata
Rank Member
Rank
Member
Boohyaka wrote on 2020-04-06, 08:23:

In your opinion would it be possible to create a custom BIOS to lift that size limit on the P3B-F or would it be too complex?

Ah, the infamous 48 bit LBA support problem. I'm by no means a BIOS expert, but from my limited understanding, this should be possible. I don't know enough about this topic to try it, though.

Reply 19 of 416, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Noooo, you were the chosen one! 😁

Yep, that famous LBA problem. If you (someone that managed to understand and dislike the implementation of some changes in the Noa BIOS and provide an updated version of his own) do not know how to do it, that's probably not trivial 😀