VOGONS


First post, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

Several HX mainboards in my (small) collection were / are limited to a cacheable area of 64MB. Some were released very early, some lack BIOS support, some have no second TAG RAM and cannot be upgraded, some have an incomplete wiring of the COAST (CELP) slot or the manufacturer just wanted to save on costs and snatched the COAST slot, populated 512K L2 cache onboard and failed to adjust the layout for the second TAG chip.
In many cases this can be fixed with a little soldering, wiring and by enabling the 64MB/512MB switch in the AWARD BIOS using Modbin.

At the moment I´m stuck while upgrading an AIR HX mainboard with onboard SCSI chip (Adaptec AIC-7880P). This mainboard is designed very well. The wiring and layout are perfect, it has soldering pads for a second (256K) TAG RAM chip.
So I populated the second TAG chip and adjusted the pull-up/pull-down resistor at pin "TIO 10" of the northbridge to "pull-down" to enable the enhanced cache mode.

Testing with "CTCM7" revealed that the cacheable area is still set to 64MB.
This manboard has an AMI BIOS from 1995 that recognizes all Pentium MMX CPUs but obviously isn´t able to handle a cacheable area of 512MB.
So first I tried with an AWARD HX BIOS for the same Super-I/O (SMC) and the cacheable area can be set perfectly to 512MB or 64MB.
This AWARD BIOS isn´t an option however since it doesn´t support the Adaptec onboard SCSI and I intend to use onboard SCSI. So I tried forcing the AMI BIOS to turn on 512 MB at (cold-) startup.
So far I tried AMIBCB for this. This BIOS tool shows several hidden options that can also be enabled but the 64/512MB switch isn´t among them.
All I found was modyfying the northbridge registers - called "TXC Init Values":

TX_init.JPG
Filename
TX_init.JPG
File size
154.46 KiB
Views
1374 views
File license
Public domain

I couldn´t find a way to add additional keys so I deleted a line that´s about some "error reporting" and inserted the "52h" line.

This is where the Intel HX datasheet comes into play. Here´s the registers for cache configuration at cold-start:

HX_cache_reg1.JPG
Filename
HX_cache_reg1.JPG
File size
131.21 KiB
Views
1369 views
File license
Public domain
HX_cache_reg2.JPG
Filename
HX_cache_reg2.JPG
File size
60.44 KiB
Views
1369 views
File license
Public domain

The register address is 52h and - as far as I understand - it consists of a string of 8 binary values (7:0) that need to be converted to a hex-string that has to be entered into the "TX Init Values" table under the "52h" address.

I set
7:6 to "10" (512K L2 cache)
5:4 to "11" (there are 4 cache chips onboard so I guess thery are wired as "two banks")
3 to "0" (normal cache operation)
2 to "1" (512 MB extended, this is what it´s all about)
1 to "1" (see table in the description of binary "0")
0 to "0" (same as above)

"10110101" converted to hexadecimal would be "B6". I tried that - still 64MB! I also tried some variants - to no avail.

Am I getting something wrong here? Or why are the registers not applied at startup?

Last edited by majestyk on 2022-11-08, 10:07. Edited 1 time in total.

Reply 1 of 64, by Horun

User metadata
Rank l33t++
Rank
l33t++

I do not know why it does not work with AMI bios but if it works with Award bios, why not use the Award BIOS. As one who messed with boards since early 90's have always been an Award fan, hated certain AMI bios back in the day from 486 up.
Just my opinion and also hated most Pheonix core bios which Intel used versus Asus/Giga/etc using Award bios for similar board even in the latter P4's and above....

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 2 of 64, by Sphere478

User metadata
Rank l33t++
Rank
l33t++

Cross linking relevant thread.

Re: Dual Tag Ram mod For Intel 430HX Socket 7

Don’t think it has the answer, but perhaps the author might be able to help.

Btw mr bios may be an option?

Sphere's PCB projects.
-
Sphere’s socket 5/7 cpu collection.
-
SUCCESSFUL K6-2+ to K6-3+ Full Cache Enable Mod
-
Tyan S1564S to S1564D single to dual processor conversion (also s1563 and s1562)

Reply 3 of 64, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

I also prefer AWARD BIOS for this mainboard generation anytime.
But there aren´t too many 430HX mainboards with onboard SCSI.
There´s the Gigabyte "GA-586DX" - but this has a UMC super-I/O chip and
thers´s the ASUS "P/I-P55T2P4S" that comes with a Winbond super-I/O.

Does anyone know what the "Strapping Option" in the Intel datasheet means ?
Quote: "Default Value: SSSS0010 (S=Strapping Option)"

It looks like it´s valid for the first 4 binary values 7:4. Is this some kind of joker value?
If so this would reduce the number of possible combinations.

Last edited by majestyk on 2022-11-08, 07:47. Edited 1 time in total.

Reply 4 of 64, by weedeewee

User metadata
Rank l33t
Rank
l33t
majestyk wrote on 2022-11-08, 07:43:

Does anyone know what the "Strapping Option" in the Intel datasheet means ?
Quote: "Default Value: SSSS0010 (S=Strapping Option)"

from the datasheet page you posted...

" after a hard reset, CC[7:4] reflect the signal levels on the host address lines A[31:28] "

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 5 of 64, by snufkin

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, when power is first applied to a chip then it first reads the state of any strapping configuration pins, before then using them for their normal purpose. Setting the state is usually done by using a resistor to pull the line either low or high as appropriate. Resistance needs to be high enough that it doesn't place a significant load on anything else that drives the line once the chip has started up but low enough to guarantee the input to the chip can be read as a '0' or '1', something like 10-100k seems to be common.

So some register values can be set by the designer before any code has started to run. OTOH, the datasheet does say that the values in this register can be overwritten by writing the register. Maybe something else is configured by reading the register before your modification writes to the register? It must be important somehow for those 4 bits to be set very early on otherwise they would have just been left as ordinary pins and the register value set once code was running.

Reply 6 of 64, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

The register values I enter in the BIOS chipset init table seem to be disregarded.
I just tried with the first (7:6) values set to "00" and cache is still enabled and reported correctly in the BIOS summery. If I disable it in the BIOS setup menue, it gets disabled and is no longer reported.
So while BIOS can (and is supposed to) overwrite hardcoded values after reset, entries / switches in the BIOS setup menue overwrite any values I enter in the BIOSes chipset init table. They are applied towards the end of the process.
Somewhere inside the code for the setup menue switches the register strings get modified / overwritten. If the binary value for cacheable size is generally set to "0" there, my entries in the init table are useless.
Entries in the init table would - if this assumption holds true - only make sense for registers (strings) that don´t get touched by the menue switches at all.

Reply 7 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie

Check TIO[10] : is it pull-upped or pull-downed ?
For 512mb cacheable area it should be pull-downed.

Attachments

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 9 of 64, by weedeewee

User metadata
Rank l33t
Rank
l33t

Have you tried incorporating the scsi bios with the award bios ?
or use the scsi bios separately from the main bios ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 10 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
majestyk wrote on 2022-11-08, 14:56:

Yes, I did that - see second paragraph of my opening post.

Yes, I see now. I peeked into the bios a little bit and changed one byte (I took bios-image from theretroweb.com).
Maybe you will give it a try on your own risk if you have a hardware programmer and if you'd like, of course.

P.S. the modded bios was deleted as it has a bad checksum

Attachments

Last edited by Roman555 on 2022-11-10, 13:35. Edited 2 times in total.

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 11 of 64, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for digging deeper!
The modded BIOS stops at "d0 --" (post-card output).

(The revision of my board is the one with onboard 2nd VRM below the CPU-socket.)

Here´s the BIOS the board came with:

Filename
54TPIO.7z
File size
114.18 KiB
Downloads
40 downloads
File license
Public domain

Reply 12 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
majestyk wrote on 2022-11-09, 13:42:

Thanks for digging deeper!
The modded BIOS stops at "d0 --" (post-card output).

(The revision of my board is the one with onboard 2nd VRM below the CPU-socket.)

Thanks. Sorry to read it. The disassembling and modding is slick and unpredictable way.
Than maybe the more robust way would be to add a SCSI ext ROM into a working compatible BIOS or add a ROM extension that writes a necessary value into a some register ( e.g. 52h ).
First way can be done using a specific utility applied to a compatible bios (cbrom or something).
Second way ... I have read about it 😀

P.S. Ok. I'll peek into the original bios
P.P.S. It's the same. It just has config data of your system

P.P.P.S. It looks like I forgot to recalculate checksum and that causes "d0" error.
Yes, that's it. There's a checksum at 0x1E000 that covers the bootblock. AMIBCP 7 doesn't correct this checksum.

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 13 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
majestyk wrote on 2022-11-09, 13:42:

Thanks for digging deeper!
The modded BIOS stops at "d0 --" (post-card output).

I supposedly corrected the checksum. I hope the post-code "d0" is gone. My IDA-script gives a good result but who knows...

Attachments

  • Filename
    air430hx3.zip
    File size
    114.09 KiB
    Downloads
    34 downloads
    File comment
    (AIR) 54TPI (REV. 4.0) modded (checksum corrected, cacheable area is still 64mb)
    File license
    Fair use/fair dealing exception
Last edited by Roman555 on 2022-11-10, 13:38. Edited 1 time in total.

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 15 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
majestyk wrote on 2022-11-09, 19:52:

No more "d0", but still 64MB 🙁

I wonder if the "init early" settings get overwritten later during startup?
Thanks for your help!

Welcome!
Yes, I've thought about it. And you have proven that some code overwrite the register

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 17 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
majestyk wrote on 2022-11-10, 10:20:

Fun fact: The AWARD BiOSes I tried here enable the enlarged cacheable area no matter if TIO10 is being pulled up or down at startup.

The behaviour is normal because straps can be overridden later.
Have you tried to inject the SCSI ext ROM into them using CBROM ? It might work

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 18 of 64, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

I have used CBROM a couple of times for simpler mods, so each time I have to re-learn the syntax.

In the meantime I found another (later) AMI BIOS from November 1997 for the AOPEN AP53 mainboard.
It provides the "enlarged cacheable area" option as a hidden entry under the chipset settings. I activated the option using AMIBCP, set the entry to 512MB and....
....snareroll....still 64MB 🙁
I then even added the 52h register string, needless to say - still 64MB.

This BIOS is quite promising otherwise with some additional features and it even detects "onboard SCSI" (without providing the Adaptec BIOS of course).
Here´s the Aopen BIOS with the cacheable area switch enabled:

Filename
AP53R2A.rar
File size
114.42 KiB
Downloads
34 downloads
File license
Fair use/fair dealing exception

Reply 19 of 64, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
majestyk wrote on 2022-11-11, 17:43:

...
This BIOS is quite promising otherwise with some additional features and it even detects "onboard SCSI" (without providing the Adaptec BIOS of course).
...

When Award bios , that you've mentioned in your first post , is installed does Windows find Adaptec AIC-7880P as a PCI device?
If it does then I can try to add the scsi oprom from the original bios into the award bios. Just attach it here.

P.S. There's an interesting problem - how BIOS detects the second tag-chip is installed.
Does it just believe that if you've chosen the option in settings then a chipset can start caching a bigger area ?

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]