SYSTEMS AND METHODS FOR ADVANCED ERROR REPORTING USING MULTI-FREQUENCY SIGNALING

An information handling system may include a processor, one or more audio speakers configured to play back audible audio signals, and a basic input/output system (BIOS) comprising a program of instructions comprising boot firmware configured to be the first code executed by the processor when the information handling system is booted or powered on in order to initialize the information handling system for operation. The BIOS may be further configured to monitor for an error occurring during execution of the BIOS and responsive to an error occurring during execution of the BIOS, cause the one or more audio speakers to play back a sequence of one or more multi-frequency audio signals encoding an identity of the error.

TECHNICAL FIELD

The present disclosure relates in general to information handling systems, and more particularly to error reporting in an information handling system using playback of multi-frequency signaling.

BACKGROUND

Many modern information handling systems utilize a basic input/output system (BIOS). Generally speaking, a BIOS may include any system, device, or apparatus configured to identify, test, and/or initialize information handling resources of an information handling system, and/or initialize interoperation of an information handling system with other information handling systems. A BIOS may comprise boot-time services configured to be the first code executed by a processor when an information handling system is booted and/or powered on. As part of its initialization functionality, boot-time services of a BIOS may be configured to set components of an information handling system into a known state, so that one or more applications (e.g., an operating system or other application programs) stored on compatible media (e.g., disk drives) may be executed by a processor and given control of the information handling system.

Because BIOS may execute before many input/output (I/O) components of an information handling system have been initialized for operation, a BIOS may be limited in its ability to communicate or report errors occurring during BIOS execution. For example, using existing approaches, a BIOS may play via speakers of the information handling system one or more monotone “beeps” of different intervals or sequences to report errors, but it may be difficult for a user or technician to decipher such beeps, even with reference to a user manual. Accordingly, improved methods and systems for error signaling during BIOS execution may be desired.

SUMMARY

In accordance with the teachings of the present disclosure, the disadvantages and problems associated with traditional approaches to error signaling in an information handling system may be reduced or eliminated.

In accordance with embodiments of the present disclosure, an information handling system may include a processor, one or more audio speakers configured to play back audible audio signals, and a basic input/output system (BIOS) comprising a program of instructions comprising boot firmware configured to be the first code executed by the processor when the information handling system is booted or powered on in order to initialize the information handling system for operation. The BIOS may be further configured to monitor for an error occurring during execution of the BIOS and responsive to an error occurring during execution of the BIOS, cause the one or more audio speakers to play back a sequence of one or more multi-frequency audio signals encoding an identity of the error.

In accordance with these and other embodiments of the present disclosure, a method may include monitoring, by a basic input/output system (BIOS) comprising a program of instructions comprising boot firmware configured to be the first code executed by a processor when an information handling system is booted or powered on in order to initialize the information handling system for operation, for an error occurring during execution of the BIOS, and responsive to an error occurring during execution of the BIOS, causing, by the BIOS, one or more audio speakers of the information handling system to play back a sequence of one or more multi-frequency audio signals encoding an identity of the error.

In accordance with these and other embodiments of the present disclosure, an article of manufacture may include a non-transitory computer-readable medium and computer-executable instructions carried on the computer-readable medium, the instructions readable by a processor, the instructions, when read and executed, for causing the processor to: (i) monitor, by a basic input/output system (BIOS) comprising a program of instructions comprising boot firmware configured to be the first code executed by the processor when an information handling system is booted or powered on in order to initialize the information handling system for operation, for an error occurring during execution of the BIOS; and (ii) responsive to an error occurring during execution of the BIOS, cause, by the BIOS, one or more audio speakers of the information handling system to play back a sequence of one or more multi-frequency audio signals encoding an identity of the error.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference toFIGS.1and2, wherein like numbers are used to indicate like and corresponding parts.

FIG.1illustrates a block diagram of selected components of an example information handling system102, in accordance with embodiments of the present disclosure. In some embodiments, information handling system102may comprise or be an integral part of a server. In some embodiments, information handling system102may be a personal computer (e.g., a desktop computer or a portable computer). In other embodiments, information handling system102may comprise a mobile device (e.g., smart phone, a tablet computing device, a handheld computing device, a personal digital assistant, or any other device that may be readily transported on a person of a user of such mobile device).

As depicted inFIG.1, information handling system102may include a processor103, a memory104communicatively coupled to processor103, an audio controller112communicatively coupled to processor103, a user interface114communicatively coupled to processor103, and one or more information handling resources128communicatively coupled to processor103.

Memory104may be communicatively coupled to processor103and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory104may include random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to its associated information handling system102is turned off.

As shown inFIG.1, memory104may have stored thereon an operating system106. Operating system106may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to manage and/or control the allocation and usage of hardware resources such as memory, processor time, disk space, and input and output devices, and provide an interface between such hardware resources and application programs hosted by operating system106. In addition, operating system106may include all or a portion of a network stack for network communication via a network interface. Active portions of operating system106may be transferred to memory104for execution by processor103. Although operating system106is shown inFIG.1as stored in memory104, in some embodiments operating system106may be stored in storage media accessible to processor103, and active portions of operating system106may be transferred from such storage media to memory104for execution by processor103.

A BIOS105may include any system, device, or apparatus configured to identify, test, and/or initialize information handling resources of information handling system102, and/or initialize interoperation of information handling system102with other information handling systems. “BIOS” may broadly refer to any system, device, or apparatus configured to perform such functionality, including without limitation, a Unified Extensible Firmware Interface (UEFI). In some embodiments, BIOS105may be implemented as a program of instructions that may be read by and executed on processor103to carry out the functionality of BIOS105. In these and other embodiments, BIOS105may comprise boot-time services130configured to be the first code executed by processor103when information handling system102is booted and/or powered on. As part of its initialization functionality, boot-time services130of BIOS105may be configured to set components of information handling system102into a known state, so that one or more applications (e.g., an operating system or other application programs) stored on compatible media (e.g., disk drives) may be executed by processor103and given control of information handling system102.

Audio controller112may comprise any system, device, or apparatus configured to interface between speakers124and processor103(including BIOS105and/or operating system106executing thereon), in order to process audio data communicated from BIOS105and/or operating system106to audio controller112for playback by speakers124. For example, functionality executed by audio controller112may include, without limitation, buffering audio data received from operating system106, converting audio data in digital format into equivalent analog audio data for playback by speakers124, and/or any other functionality incident for playing back sound on speakers124.

User interface114may comprise any instrumentality or aggregation of instrumentalities by which a user may interact with information handling system102. For example, user interface114may permit a user to input data and/or instructions into information handling system102(e.g., via a keypad, keyboard, touch screen, microphone, camera, and/or other data input device), and/or otherwise manipulate information handling system102and its associated components. User interface114may also permit information handling system102to communicate data to a user (e.g., via a display device, speaker, and/or other data output device). As shown inFIG.1, user interface114may include one or more of a display116, microphone118, camera120, and two or more speakers124.

Display116may comprise any suitable system, device, or apparatus configured to display human-perceptible graphical data and/or alphanumeric data to a user. For example, in some embodiments, display116may comprise a liquid crystal display.

Microphone118may comprise any system, device, or apparatus configured to convert sound incident at microphone118to an electrical signal that may be processed by processor103. In some embodiments, microphone118may include a capacitive microphone (e.g., an electrostatic microphone, a condenser microphone, an electret microphone, a microelectromechanical systems (MEMS) microphone, etc.) wherein such sound is converted to an electrical signal using a diaphragm or membrane having an electrical capacitance that varies based on sonic vibrations received at the diaphragm or membrane.

Camera120may comprise any system, device, or apparatus configured to record images (moving or still) into one or more electrical signals that may be processed by processor103.

A speaker124may comprise any system, device, or apparatus configured to produce sound in response to electrical audio signal input.

In addition to processor103, memory104, BIOS105, audio controller112, and user interface114, information handling system102may include one or more other information handling resources128. Such an information handling resource128may include any component system, device or apparatus of an information handling system, including without limitation, a processor, bus, memory, I/O device and/or interface, storage resource (e.g., hard disk drives), network interface, electro-mechanical device (e.g., fan), display, power supply, and/or any portion thereof. An information handling resource may comprise any suitable package or form factor, including without limitation an integrated circuit package or a printed circuit board having mounted thereon one or more integrated circuits.

In operation, in response to an error occurring during execution of BIOS105, BIOS105may be configured to generate one or more multi-frequency signals for playback to speakers124in order to identify such an error in a manner that such one or more multi-frequency signals can be received and translated by a listening device (e.g., a smartphone, tablet, handheld device, or other appropriate device). Information handling system102may generate multi-frequency signals in any suitable manner. For example, to generate such a multi-frequency signal, BIOS105may cause a first tone at a first frequency to be played back through a first speaker124and a second tone at a second frequency to be played back through a second speaker124, such that the two tones combine to form a single multi-frequency signal.

In other embodiments, BIOS105may use a UEFI audio player driver to play back an audio file (e.g., .WAV file) with multi-frequency signals. In yet other embodiments, BIOS105may communicate a command to system-on-a-chip to play back the multi-frequency signals.

In some embodiments, such multi-frequency signaling may be in accordance with dual-tone multi-frequency (DTMF) signaling, which has been historically used in telecommunications signaling systems using voice-frequency band over telephone lines, in which a telephone switching center decodes multi-frequency signals to determine keys pressed by a user of a telephone. The following table shows how DTMF combines one of a set of four lower-frequency tones and one of a set of higher-frequency tones to encode a user input of telephone keys:

Thus, in embodiments in which BIOS105uses DTMF signaling, BIOS105may cause speakers124to play a series of multi-frequency signals that encodes a sequence of one or more digits (e.g., 0-9, A-D, #, *) that uniquely identifies an error that has occurred during BIOS execution. Accordingly, a listening device (a smartphone, tablet, handheld device, other appropriate device, or an application executing on such a device) in proximity to speakers124and having an audio input device (e.g., a microphone) may receive the series of multi-frequency signals played back by speakers124and hardware, software, and/or firmware on the listening device may decode the sequence of one or more multi-frequency signals to determine an identify of the error encoded by the multi-frequency signals. Further, such listening device may generate to the user of the listening device an indication (e.g., a visual indication via a display device of the listening device) of the error that occurred and/or actions that the user may take to remedy the error. In these and other embodiments, the listening device may be configured to communicate (e.g., via a telephonic service, messaging service, or other suitable means of electronic communication) an identity of the error to a customer service center or other location, in order to enable a technician to assist the user of information handling system102in remedying the error.

Information handling system102may generate multi-frequency signals in any suitable manner. For example, in some embodiments, BIOS105may cause a first tone at a first frequency to be played back through a first speaker124and a second tone at a second frequency to be played back through a second speaker124, such that the two tones combine to form a single multi-frequency signal.

FIG.2illustrates a flow chart of an example method200for advanced error reporting using multi-frequency signaling, in accordance with certain embodiments of the present disclosure. According to some embodiments, method200may begin at step202. As noted above, teachings of the present disclosure may be implemented in a variety of configurations of information handling system102.

At step202, BIOS105may begin execution and monitor for diagnostic errors. At step204, BIOS105may determine if any diagnostic error has been detected. If a diagnostic error is detected, method200may proceed to step206. Otherwise, method200may remain at step204until a diagnostic error is detected.

At step206, in response to detection of an error during execution of BIOS105, BIOS105may, via audio controller112, cause speakers124to play back a sequence of one or more multi-frequency signals that encode an identity of the error that occurred. Accordingly, as described above, a listening device may be used to detect such played back sequence of one or more multi-frequency signals, decode the sequence, and display and/or communicate an indication of the error that occurred. After completion of step206, method200may end.

AlthoughFIG.2discloses a particular number of steps to be taken with respect to method200, method200may be executed with greater or lesser steps than those depicted inFIG.2. In addition, althoughFIG.2discloses a certain order of steps to be taken with respect to method200, the steps comprising method200may be completed in any suitable order.

Method200may be implemented using information handling system102or any other system operable to implement method200. In certain embodiments, method200may be implemented partially or fully in software and/or firmware embodied in computer-readable media.