Supermicro PDSMi+ BIOS bugs — finale

A few weeks ago, I received a final statement from Supermicro regarding the bugs I had reported: both are indeed bugs.  Here’s the official word:

We’ve already had a fix for your Kingston flash drive, a Beta version BIOS is attached for floppy BIOS flash disk.  …

For the Sandisk flash drive, our BIOS engineers find the data code which might be embedded in the firmware is kind of old. We may fix it in the future, but we don’t have a date for now.

The Sandisk flash drive we bought two months ago has no problem. So we recommend to contact the Sandisk to replace a new one or you can buy a new one. …

I consider this reasonable/acceptable support, so thumbs up/kudos to Supermicro for taking my claims seriously.  I haven’t had a chance to test the beta BIOS I was given.  And no, I will not provide it here, simply because the vendor should take the responsibility of releasing a new BIOS themselves (plus I don’t want to upset Supermicro).

Here are the exact model numbers of both the Kingston and SanDisk drives, so that anyone who comes across this post of mine will (hopefully) be in better shape afterwards:

  • Kingston DataTraveler 100, 4GB — no external serial or model number
  • SanDisk Micro Cruzer w/ U3, 2GB — model SDCZ6-2048RB

In the case of the 2GB SanDisk Micro Cruzer, Supermicro recommends users contact SanDisk for a replacement.

I’ve purchased an 8GB SanDisk Micro Cruzer (model SDCZ6-8192RB), which has absolutely no problems booting on a PDSMi+ using BIOS v1.3.  So Supermicro’s claim is accurate: SanDisk has some products which contain buggy firmware/boot code.

Realtek everywhere — when will it stop?

Every 4-5 months, I check on the current “motherboard scene” to see what sort of chipsets are available, and what motherboard manufacturers are including on their products.  Most decent boards these days cost over US$100, which makes me concerned over the quality of ASICs and board design in general.  Sure, I could go down to Fry’s Electronics and pick up some generic board for US$40, and then come home to random crashing, or (worse), “driver madness”.

There is a trend current motherboard manufacturers are following which disheartens me greatly: the extensive use of non-Intel Ethernet controllers on consumer Intel chipset motherboards.  Specifically Realtek, Marvell, Attansic/Atheros, and Broadcom NICs or PHYs are being used.

Here’s the current breakdown:

  • Abit: Marvell or Realtek.  Previously used any of the above, and (rarely) Intel
  • Asus: Attansic/Atheros.  Previously used any of the above, and (rarely) Intel
  • Biostar: Realtek or Attansic/Atheros
  • Elitegroup (ECS): Attansic/Atheros, Realtek, or Marvell.  Previously used Realtek
  • Foxconn: Broadcom, Realtek, or Marvell (occasionally Realtek NIC + Marvell PHY).  Previously used Realtek
  • DFI: Realtek
  • EPOX: Realtek
  • Gigabyte: Realtek (exclusively).  Previously used any of the above
  • MSI: Realtek.  A few older boards use Marvell.

The ultra-popular vendors don’t even disclose what brand of NIC/PHY is used on their “Specifications” section: you’re forced to wade through their Drivers page to find horrible truths.

Realtek has quite a history of releasing shoddy drivers, horrible technical specifications/documents (used by open-source developers as well as engineers who wish to use their ICs in their own products), and chipsets which are bug-ridden.  Worse — especially in recent days — the company continually releases new revisions of their ICs (no changes to the silkscreening, yet the actual chip ID revision returned off the PCI bus differs from that of a chip labelled identically, indicating a new revision) and does not document what has changed between hardware revisions, making the lives of driver authors quite miserable.  For full details of actual ASIC bugs, one should refer to the FreeBSD man pages for any of the Realtek drivers — I’m sure Linux has similar commentary.  And let’s not forget about Blizzard and many other software vendors recommending people disable TX/RX checksum offloading on Realtek NICs.

I can accept certain IC bugs, particularly ones which have software (driver-level) workarounds — as long as it doesn’t destroy performance or stability.  For example, if the bug drops my overall throughput rate from 80mbit/sec to 65mbit/sec, or causes data corruption, neither of those are acceptable, but people often accept these flaws by finding workarounds (see above, re: disable RX/TX offloading).  But the one thing I will not accept in this day and age are speed/duplex auto-negotiation bugs.

I’ve personally taken the time to look at Realtek’s driver ChangeLogs, and they contain absolutely no useful information; “fixing duplx probem” does not tell me anything about what was changed in the driver.  This is probably because the comment is written by someone whose first language is Chinese (which is fine, believe me; I took Mandarin for 5 years — that doesn’t give me the right to use shoddy Chinese if I choose to write something in GB/guobiao or BIG5).

What end-users don’t really understand is how all of this gets reflected in the driver itself.  The end-user only knows “it doesn’t work”, “it’s broken”, or “it doesn’t get high speeds!  It’s always 100mbit!”.

Of course, it doesn’t help that consumer networking vendors like D-Link, Linksys, and Netgear release products that aren’t compatible with some NIC/PHYs, too.  Every time I encounter a model of router or switch which doesn’t consistently do proper duplex/speed auto-neg, I make note to never recommend that product and try something else.  Otherwise I’ll open up the hardware to see what IC vendor is used.  “Ohh, Broadcom… sigh…”

Readers may be pondering the obvious question: “So why don’t you switch to using Intel motherboards?  Those all use Intel NIC/PHYs!”  True, but Intel’s boards have historically been expensive, and let’s just say I don’t like the overall feel of them.  I’m particularly fond of Asus motherboards these days, and I’d be going with Gigabyte boards if they offered ones with Intel Ethernet controllers.  At least Intel’s BIOSes on their consumer boards are getting better, offering more options (I don’t care for overclocking, but I do want the ability to control lots of features), and include a BIOS ChangeLog that is quite possibly the best in the industry.