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, 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.
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
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'.
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?