First post, by majestyk
- 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":
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:
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?