Below you will find information on the unofficial BIOS update for the ASUS A7M266-D motherboard. This update came up as a result of acquiring a used dual-CPU motherboard to stick my overabundance of old Athlon XP processors into. The current version is 1011B (derived from 1011A, which is in turn derived from ASUS's official 1011 Beta 005). Initial versions of the update were hosted and discussed on 2CPU.com forums. Further updates are possible, but unlikely.
ASUS A7M266-D Unofficial BIOS Update (Rev 1011B) NOTICE: This BIOS update was not produced, and hence not supported or endorsed by ASUSTeK Computer Inc. For technical support, please contact Pa3PyX at email@example.com. However, I cannot guarantee timely response or the ability to resolve your problems; moreover, I hereby explicitly disclaim all warranties and all responsibility for damage to your system as a result of using this update. Before You Flash: It is highly recommended that you keep a backup EEPROM chip containing your original BIOS. If updating your BIOS resulted in an unbootable system, please try these things first: a) Remove one of the installed CPU's; b) Reset all the jumpers into their default positions; c) Clear CMOS by removing the battery or shorting out CLRTC pins. If any of these helped, proceed to flash the latest official BIOS release. If not, remove the EEPROM chip from the motherboard's U6 socket and send it (with a working BIOS image) to a place like BadFlash.Com, or bring it to a local workshop for reprogramming. Changes since 1011A: 1) Memory controller setting tweaks for improved RAM throughput. Together, these resulted in about 2 to 5% improvement in DRAM fill rate (according to STREAM benchmarks) on my system. I tried to tweak only those settings that appeared to be safe to tweak, and took a few months to field test them on my system to ensure that there were no adverse effects. But as usual, hardware incompatibility (depending on the quality of your DIMM's) is possible. If you experience memory related glitches after the update (your system no longer passes memory tests like MemTest86 that it used to), roll back to the previous version. If your system becomes unbootable altogether, try lowering your FSB frequency (by adjusting DSW and JEN switches on the motherboard) before trying to roll back. a) Enabled Burst Refresh feature (NB configuration register 0x58 bit 20) for all types of RAM (previsouly not enabled for Unbuffered memory). Burst Refresh allows the DRAM controller to defer (queue) up to 4 memory refresh cycles (normally performed every 8 or 15 ns, depending on the value programmed in the DIMM's SPD) so that they do not interfere with active data requests. b) Increased Idle Cycle Limit setting (NB configuration register 0x54 bits 18:16) from 8 to 16. Idle cycle limit is a performance optimization of the AMD memory controller that is similar to VIA's Bank Interleaving, though not as advanced. AMD System Controller Software/BIOS Design Guide recommends an optimal setting of 8, however, the same setting is listed for both AMD-761 (dual CPU) and AMD-762 (single CPU) north bridges, and appears to be optimal only in a single-processor configuration (at least on my system). With two threads running simultaneously one on each CPU contending for memory access, a setting of 12 or 16 appears to offer higher overall memory throughput (further improvement is not significant with higher settings). Changes since 1011: 1) Applied the same patch to version 1011 Beta 005. (This version is no longer available from ASUSTeK's web site; its existence was brought to my attention on 2cpu.com forums.) Unlike 1011 Beta 003, it correctly recognizes Athlon MP 2600+ CPU's; I haven't noticed any major changes (besides additional CPU support) since 1011 Beta 003. Changes since 1011 Beta 003: 1) Removed the insidious "Different CPU Vcore" shutdown that was introduced by ASUS in Rev 1008 and above and prevented the system from POSTing if the two installed CPU's have different Vcore rating and/or model number. WARNING: In that respect, the system now assumes that the user *knows* what he/she is doing. To my knowledge, the motherboard circuitry mandates that Vcore for both CPU's in a multiprocessor configuration be the same. If you use two MP capable CPU's with different Vcore ratings (close L5 bridge on the CPU to make it MP capable if it's not, i.e. to change Athlon XP into Athlon MP -- more info at http://fab51.com/cpu/barton/athlon-e23.html#L5), then you must use the higher of the two Vcore ratings for stable operation, and ensure that the CPU with lower rated voltage has sufficient cooling. You have two ways to set the desired Vcore for the system: a) Use the on-board jumper set (P0_VID1) to set the desired voltage for both CPU's (see motherboard manual for jumper settings), or: b) Configure start-up VID to identical settings by altering L11 bridges on the CPU's themselves, and leave P0_VID1 at the default setting. For VID to voltage mappings, again refer to http://fab51.com/cpu/barton/athlon-e23.html#L11. This is a "user friendly motherboard proof" method, and you can change the start-up multipliers for your CPU (regardless of whether your motherboard supports changing them) in a similar way by modifying the L3 bridges. But it requires some soldering skills, as the jumper bridges on the CPU are very small and hard to work with. 2) Cosmetic -- modified the BIOS date and removed "Beta 003" from the BIOS version string. It's been about 4 years since the last official release, and by now it should be safe to say that ASUS will not be releasing any more official BIOS updates for this motherboard, as it is long since discontinued and is morally and physically obsolete now. However, more unofficial releases by me are possible in the future, as I work my way through all the hurdles of trying to assemble a working SMP system from spare parts. But this is not likely as I do not possess the source code for this BIOS and thus have to resort to disassembly and hex editing, so making even simple changes (like the ones above) is quite a hassle. Things to be desired (read: dreamed of) in any future releases are: a) 1/5 PCI bus multiplier for FSB frequencies of 166 MHz and above, so that we can take advantage of DDR333/DDR400 memory without also overclocking PCI and AGP devices. Right now, I can't think of any way to implement that, other than messing with the onboard PLL controllers directly (i.e. with a data sheet and a soldering iron). UPDATE: This does not seem feasible at this point. The clock generator used on this board (ICS 94225) has no settings to adjust PCI and AGP multipliers independently of the FSB frequency; it only offers a few presets (that define both FSB frequency and dividers) and also a linear adjustment of FSB within each preset (which the current BIOS already does). None of the presets have 1/5 or 1/6 multipliers, by either pin strapping or configuration registers. A similar IC used on VIA-based motherboards, ICS 94228, provides the needed multipliers, but although it seems to provide a superset of the functionality offered by ICS 94225, it is not pin compatible with it, nor does it even have compatible configuration registers. So even a hardware mod to resolve this issue appears to be quite involved (honestly, beyond my abilities). b) Fix the "memory init failure" problem (continuous beeping) which sometimes occurs in certain configurations after a soft reboot. UPDATE: This appears to have been a hardware problem on my end (bad DIMM connection), rather than a software issue. Credits and Tools of the Trade: AwardMod 1.6, IDA 5.0, Hiew 6.10 Pa3PyX firstname.lastname@example.org http://pa3pyx.come.to/ ICQ: 87405703
Unofficial A7M266-D BIOS Update Rev 1011B (150K). Latest version of the update (12/1/2007).
Unofficial A7M266-D BIOS Update Rev 1011A (150K). Prior version of the unofficial update (11/11/2007), based on the official 1011 Beta 005 from ASUS.
Unofficial A7M266-D BIOS Update Rev 1011 (150K). Initial version of the unofficial update (7/28/2007), based on 1011 Beta 003 from ASUS.
(Semi)official A7M266-D BIOS Update Rev 1011 Beta 005 (150K). The latest official BIOS update for A7M266-D that used to be available from ASUS's European web site only, dated 3/15/2004. (Apparently it was dropped during the site redesign and is no longer available from there; the latest version available from ASUS's web sites now is 1011 Beta 003.)