Abstract:
Method and apparatus for conveniently diagnosing and conveying to a user the cause of a catastrophic failure during POST of a non-booting PC is described. In one embodiment, when an ID code identifying a POST procedure is written to port 80h, the ID code is also written to a POST code field in a non-volatile memory device. If the PC “hangs” prior to completion of POST, there will be a non-zero byte in the POST code field identifying which POST procedure resulted in the hang. Accordingly, if during boot-up of the PC, a non-zero byte is detected in the POST code field, the ID code will be beeped to the user to identify the POST procedure that caused the PC to hang. If POST completes successfully, the POST code field is set to zero and POST continues through the normal sequence. In an alternative embodiment, after the ID code identifying the next POST procedure to be performed has been written to port 80h and to the POST code field, a timeout value is added to a watchdog timer, at which point the POST procedure is initiated. If the watchdog timer times out, the PC will automatically re-boot. Upon re-boot, if the value stored in the POST code field is non-zero, the POST code field value will be beeped as a message to the user, as described above.