Technique for Viewing/Altering Hardware Facilities within System Firmware
Original Publication Date: 1994-Jun-01
Included in the Prior Art Database: 2005-Mar-27
Blood, RM: AUTHOR [+3]
Disclosed is an technique by which the BootROM of a computer system can incorporate a debugging facility for viewing and/or altering hardware facilities from within the BootROM firmware.
Technique for Viewing/Altering Hardware Facilities within
an technique by which the BootROM of a computer
system can incorporate a debugging facility for viewing and/or
altering hardware facilities from within the BootROM firmware.
system firmware (BootROM) development, firmware
developers rely on hardware debugging tools for verifying newly
changed or written codes. These tools establish the debugging
environment for program break- point control, processor register
content display, system memory display or modification, etc.. It is
a programmer's tendency to add some temporary codes to check the
correctness of the program's logic flow, and the data expected or
established by the program. The temporary codes are removed later
when the checking is satisfactory.
On the other
hand, if the temporary code is just function calls
to execute a stand-alone program which provides the needed services
such as viewing/altering system memory, NVRAM, hardware registers,
and so on, then these function calls can be a part of the firmware.
A mechanism to enable or disable the execution of the stand-alone
program is required.
normally has its Vital Product Data (VPD) as a
part of the firmware which is programmed into the ROM. This VPD
section normally has a data-validating algorithm such as a Cyclic
Redundancy Check (CRC) for verifying its data integrity. A record
may be included to serve the purpose of activating/deactivating the
execution of the stand-alone program. In this disclosure, one byte
is chosen for that. When this selected byte is programmed into the
firmware ROM with the content 0x44 (ASCII code of character 'D'), all
calls to the stand-alone program are enabled.
the mechanism for enabling/disabling control,
the main task is to write the stand-alone program. Again, in this
disclosure, the stand-alone program is an AIX application program
which is compiled in the same environment used by the firmware
development. This program will use its own device driver with an
available asynchronous serial terminal as the console. No operating
system services are used at all.
stand-alone program presents menus, accepts options
entered by the user, and carries out the actions specified by the
options. When a call is made to this stand-alone program, its
calling ID is passed along to an intermediate routin...