The Firmware Police

Originally published 03 May 2001 as a Tech Reflections article for Low End Mac.

A lot of people, Dan Knight included, think Apple made a big mistake with their latest firmware update. The problem, in case you missed it, was that a lot of users found some or all of their RAM was disabled by the update. The blame has been laid squarely at Apple's feet by much of the Mac community, particularly in Fool Me Twice by John Holmes. I think John — and Dan, for that matter — have been a bit too harsh on Apple.

First, let me present some short facts:

  1. According to hundreds of reader reports on MacInTouch, factory-installed Apple RAM has not been affected in any way except in one case where the reader ordered more RAM direct from the Apple Store than came on the "stock" G4/400.
  2. Apple did not release an official statement about the problem until 4 April, some 11 days after reports of trouble first began appearing.
  3. Vendors whose memory modules were failing under the update had a wide variety of responses.

Both Holmes and Knight lay the blame entirely with Apple. The blame does not rest entirely with Apple but, for the most part, with the RAM vendors and their suppliers. Apple simply enforced specifications that had already been in place. The problem, according to Tahoe Peripherals' sales manager, is that "any RAM that is not coded to the latest JEDEC Standard EPROM and is hard-set to run at CAS-2 will be rejected as 'out of spec' after the firmware upgrade."

Apple has, in all their Developer Notes since at least the iMac (and probably earlier), specified JEDEC-standard RAM. (JEDEC is an industry organisation that sets semiconductor standards, including those for RAM, much like the IEEE sets standards for electronic interfaces.) There's a small chip (the EPROM) on each RAM module that contains speed-coding information. Let's look at this in terms of cars. Say you have a car that has an unbalanced wheel, but at 45 MPH that wheel is just fine. At 55 MPH, it vibrates a lot and makes your car shake like crazy. Now say you have cruise control on this car, and the cruise is permanently engaged. If you have cruise control made to official specifications, you can set the cruise for 45 MPH or 55 MPH. If your cruise isn't made to official specifications, however, you can only set the cruise for 55 MPH.

This is a lot like what happened with the RAM modules. As best anyone can tell (and nobody really knows for sure), Apple's firmware update dropped the RAM timing back from 2-2-2 (the fastest speed) to 3-2-2 (only very slightly slower) for the sake of stability (to get rid of that vibration in the unbalanced wheel, if you will). RAM modules that didn't have information about how to run in 3-2-2 mode, a mode they should be completely backwards-compatible with according to the JEDEC standards, in their EPROM chips failed when the firmware update was applied. Glenn Anderson's (not Dean Anderson's, as Holmes would have you believe — Dean Anderson was the middle and last name of the actor who played McGyver) DIMM First Aid utility appears to simply add the missing information to the EPROM, thereby rendering the module usuable (and compliant with the standard it should have complied with in the first place). Glenn is doing not what Apple should have done in the first place, as Holmes suggests, but what the various affected RAM manufacturers should have done.

Interestingly enough, one user claims a 30% increase in memory bandwidth (as reported by Gauge Pro, which I trust) after having applied the firmware update. If the firmware update can achieve this sort of performance increase, Apple is to be commended for tightening their very lenient tolerances. Apple's only fault in this was in neglecting to inform the end user that some RAM might be out of spec, but I see little blame to be placed here as Apple does not (and should not) routinely test RAM from third-party suppliers and could not possibly have known about the problem beforehand. Any RAM suppliers who are manufacturing DIMMs as PC100-compliant (or PC133-compliant) and neglecting to include the necessary timing information in the chip are simply not selling what they claim to be selling.

John Holmes goes on to suggest that the firmware update was installed not by his choice but by Apple, and in fact even states he was "not paying attention" when Software Update downloaded and installed the new firmware for him. While I don't have direct experience with the new firmware update, firmware updates I've applied in the past have required not only a great deal of user interaction, but fairly shout "READ THE README FILE" at you when you launch the updater. Granted, Apple didn't know this update would disable any RAM, but they assumed — logically, but incorrectly — that the various RAM manufacturers were supplying vendors with spec-compliant RAM. Regardless, Holmes absolves himself of any responsibility — and gives this responsibility to Apple — for applying an update that, unless a lot has changed in six months, required a great deal of his own interaction. This just isn't right.

While I do agree with many people that 11 days of silence on Apple's part was rather extreme, and that Apple — knowing users could have third-party RAM installed — did not apparently bother testing any third-party RAM, the responsibility for the disabled RAM lies mostly with the RAM vendors and suppliers for not ensuring the full standards compliance of the products they sold.

Practical note: RAMseeker has put up a page of vendor policies with regard to disabled RAM. All vendors except for AccessMicro will replace or reprogram RAM disabled by the firmware update, so I highly recommend you avoid AccessMicro for RAM purchases unless you have the firmware update installed already. Kudos to all the vendors who are replacing or reprogramming the out-of-spec RAM, as they should, and kudos especially to Ramjet, MacSolutions, and TechWorks, who all had extended their warranties to fix their own problems, as they should have, one full business day after the story broke.

copyright ©2000-2004 by Chris Lawson