A7M266-D Unofficial BIOS Update

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
pa3pyx87405703@icqmail.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[3] 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

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

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.)