MICROS Workstation 5A BIOS Notes

BIOS updates for the MICROS Workstation 5A POS Touch-screen Terminal are extremely hard to find. I wasn't able to really improve the performance or eliminate some of the linux errors that were appearing by updating the BIOS, but here are the notes I have made in the process of trying.

BIOS VERSIONS:

BIOS, VERSION, BUILD DATE
Q1000g EB(SF).006 06/24/10
Q2010b EB(SF).006 08/12/11
Q2010g EB(SF).006 02/22/12
Q2011d ?
Q2012F EB(SF).006 09/11/13

After BIOS update, select "BIOS->Exit->Reload Win32 Factory CMOS Defaults" then adjust the boot device and POST options to your liking.

One unit has Q1000g - and it happens to not have the "Invalid BIOS _PSS frequency" messages.

The BIOS installed that came with my machines was Q2010g (and Q2010b on machine #3), but Q2012F is also available.

WS5A Q2011d BIOS

WS5A Q2012F BIOS

Updating BIOS version in Micros WS5A

To update the BIOS, load the new files onto a bootable DOS USB drive and run the .BAT file, which flashes the appropriate parts of the BIOS using fprog.exe.

fprog -h
Flash Programming Tool. Version 0.8.16
Copyright (c) Intel Corporation. 2007-2008
[-?] Displays help screen.
[-c] Erase entire flash part.
[-b] Check to see if the flash part is erased.
[-i] Displays information about the flash image.
[-f:<file>] Load binary file into flash.
[-v:<file>] Compare binary file to flash.
[-d:<file>] Dump flash contents to file or "STDOUT".
address
[-address:<value>] Flash address to load/verify/dump file.
[-a:<value>] Same as /address.
[-length:<value>] Number of bytes to load/verify/dump.
[-l:<value>] Same as /length.
[-desc] Load/verify/dump Descriptor region.
[-bios] Load/verify/dump BIOS region.
[-me] Load/verify/dump ME region.
[-gbe] Load/verify/dump GbE region.
[-y] Do NOT prompt when a warning occurs.
[-q] Do NOT display output to the screen.
[-e] Do NOT erase area before writing to flash.
[-p:<file>] Specifies a flash part definition file to use.
[-swseq] Specifies to use software sequencing to flash.
[-hwseq] Specifies to use hardware sequencing to flash

To dump a BIOS to file

fprog -d filename.bin

To update the BIOS run the file Q2012F.BAT, which executes the command. You MUST run the .BAT file or you will damage your BIOS (unfortunately I did this).

fprog -f:Q2012F.BIN -a:1048576

I've settled on installing the Q1000g BIOS on all machines as it is the only BIOS which does not invoke the "Invalid BIOS _PSS frequency" messages. (are these only under AntiX, possibly other Linux?)

In case of bricking through failed BIOS modification, the Workstation 5 and Workstation 5A Field Service Guide shows the location of the BIOS chip in the 5A (its in a cool little openable enclosure).

BIOS chip was a PCT 25VF016B

Borked BIOS flash broke wired ethernet (with fix)

Unfortunately I didn't use the .BAT file when attempting to update BIOS and so overwrote important parts of the BIOS (Everything seemed to work except the onboard Ethernet seemed to break after this incorrect flashing). To fix it I dumped the BIOS from another identical machine and used a hex editor to replace the mac address with the one from the label on the back of the broken machine (00A0A4196239). I didn't bother trying to fix the motherboard serial or any other unique identifier. Then I re-flashed the entire BIOS:

fprog -f:BIOSFILE.BIN

However, I think due to my botched initial attempt, the onboard Intel e1000e ethernet adapter was semi-nuked. eth0 did not show up in linux, although the controller was detected. dmesg showed up the error "The NVM Checksum Is Not Valid".

$ sudo lspci | grep Ethernet
00:19.0 Ethernet controller: Intel Corporation 82567V-3 Gigabit Network Connection (rev 04)

`ifconfig -a` did not show the interface.

$ dmesg | grep -e eth -e e1000
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
e1000e 0000:00:19.0: The NVM Checksum Is Not Valid
e1000e: probe of 0000:00:19.0 failed with error -5

Per various posts on this error I tried downloading the Intel Ethernet Connections Boot Utility but met with 'Unable to write default configuration to EEPROM'.

Network eth0 missing, “The NVM Checksum Is Not Valid” with Asus Maximus IX Hero desktop motherboard and Ubuntu 16.10

How to repair the checksum of the non-volatile memory (NVM) of Intel Ethernet Controller I219-V of an ASUS laptop?

sudo ./bootutil64e -NIC 1 -defcfg

Connection to QV driver failed - please reinstall it!

Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.7.03.0
Copyright (C) 2003-2019 Intel Corporation

Setting PXE EEPROM words back to defaults on NIC 1...error
Unable to write default configuration to EEPROM

Port Network Address Location Series  WOL Flash Firmware                Version
==== =============== ======== ======= === ============================= =======
  1   00A0A4196239     0:25.0 Gigabit YES FLASH Not Present

Anyhow, I got the issue fixed by Booting to DOS and running (BOOTUTIL.EXE extracted from PREBOOT.EXE](https://web.archive.org/web/20190718115946/http://downloadmirror.intel.com/19186/eng/PREBOOT.EXE), per the instructions, e1000e - The NVM Checksum Is Not Valid. Good old DOS got me through where fancy pancy Linux would have been a greater chour.

BOOTUTIL.EXE -NIC=1 -DEFAULTCONFIG

If that hadn't worked, my next step would be to try using the fprog -gbe argument to dump the GbE region from a working machine and then restore it to the broken machine - though I have no idea if that would have been successful or not. Also seems like it would have been possible to proceed in linux with bootutil64e by first compiling the 'QV driver', perhaps?


@electroluckydip