Diagnostic boot cycles in a heterogeneous computing platform
Systems and methods include an Information Handling System (IHS) that is adapted to provide diagnostic boot cycles. Once an IHS is powered, a boot sequence is initiated. During or after booting of the IHS, a request is detected for a diagnostic boot cycle by a requestor, such as by the operating system of the IHS. When a diagnostic boot cycle has been requested, an EC (Embedded Controller) of the IHS is booted in a diagnostic mode to perform a diagnostic test on one or more hardware components of the IHS. The results of the diagnostic test are stored to the NVRAM (Non-Volatile Random-Access Memory) that stores the boot code and that is accessible to the requestor of the diagnostic test once the IHS has been rebooted to a non-diagnostic mode.
1 . An Information Handling System (IHS), that comprises:
an Embedded Controller (EC);
a Non-Volatile Random-Access Memory (NVRAM); and
one or more processors coupled to the NVRAM, wherein the NVRAM comprises boot instructions that, upon execution by the one or more processors, cause the IHS to perform operations that comprise:
initiate a boot sequence, wherein the boot sequence comprises a Unified Extensible Firmware Interface (UEFI) boot sequence;
detect a request from a requestor for a diagnostic boot cycle, wherein the requestor comprises an operating system (OS) application configured to execute on the IHS, and wherein the request is encoded within one or more UEFI variables by UEFI core services in response to a request for diagnostic operations from the OS application;
in response to detection of the request for the diagnostic boot cycle, in a boot device selection phase of the UEFI boot sequence, query the one or more UEFI variables and designate a diagnostic boot mode of the EC as a boot device, and boot the EC in the diagnostic boot mode to perform one or more diagnostic tests on one or more hardware components of the IHS, wherein the one or more diagnostic tests are selected based on one or more additional UEFI variables that specify requested diagnostic tests and wherein the EC performs the one or more diagnostic tests while the OS application is not active and while other hardware of the IHS is configured to operate in a low-power or standby mode such that the EC has exclusive use of the one or more hardware components under test;
store results of the one or more diagnostic tests to a dedicated partition of the NVRAM, wherein the dedicated partition comprises a dedicated partition of UEFI NVRAM and wherein the diagnostic boot mode exits upon write of the results to the NVRAM; and
boot the IHS, wherein the requestor has access to the diagnostic test results stored in the dedicated partition of the NVRAM.
2 . The IHS of claim 1 , wherein the diagnostic boot cycle is requested via one or more UEFI variables.
3 . The IHS of claim 2 , wherein the diagnostic boot cycle request comprises a request for a diagnostic test supported by the IHS.
4 . The IHS of claim 3 , wherein the request for the diagnostic test is specified in one or more additional UEFI variables in addition to the one or more UEFI variables that signal the request for the diagnostic boot cycle.
5 . The IHS of claim 3 , wherein the diagnostic test comprises a diagnostic test of system memory of the IHS.
6 . The IHS of claim 1 , wherein the diagnostic boot cycle request comprises a request for a first boot mode of the EC.
7 . The IHS of claim 6 , wherein the first boot mode of the EC supports one or more diagnostic tests on a first hardware component of the IHS.
8 . The IHS of claim 1 , wherein the requestor further comprises at least one of: an OS kernel, or a user application configured to execute on the IHS.
9 . The IHS of claim 8 , wherein the OS application comprises an OS application configured to execute on an SoC (System-on-Chip) of the IHS.
10 . The IHS of claim 1 , wherein the boot instructions executed by the one or more processors further cause the IHS to map the stored results of the diagnostic test to Advanced Configuration and Power Interface (ACPI) entries designated for diagnostic results.
11 . The IHS of claim 10 , wherein the requestor is configured to access the diagnostic test results by a query to the ACPI entries designated for diagnostic results.
12 . A method for booting an Information Handling System (IHS), the method comprising:
initiating a boot sequence, wherein the boot sequence comprises a Unified Extensible Firmware Interface (UEFI) boot sequence;
detecting a request from a requestor for a diagnostic boot cycle, wherein the requestor comprises an operating system (OS) application configured to execute on the IHS and wherein the request is encoded within one or more UEFI variables by UEFI core services in response to a request for diagnostic operations from the OS application;
in response to detecting the request for the diagnostic boot cycle, in a boot device selection phase of the UEFI boot sequence, querying the one or more UEFI variables and designating a diagnostic boot mode of an Embedded Controller (EC) as a boot device, and booting the EC in the diagnostic boot mode to perform one or more diagnostic tests on one or more hardware components of the IHS, wherein the one or more diagnostic tests are selected based on one or more additional UEFI variables that specify requested diagnostic tests and wherein the EC performs the one or more diagnostic tests while the OS application is not running and while other hardware of the IHS operates in a low-power or standby mode such that the EC has exclusive use of the one or more hardware components under test;
storing results of the one or more diagnostic tests to a dedicated partition of a Non-Volatile Random-Access Memory (NVRAM) of the IHS, wherein the dedicated partition comprises a dedicated partition of UEFI NVRAM, wherein the results are stored by the EC, and wherein the diagnostic boot mode exits upon writing the results to the NVRAM;
mapping the stored results to Advanced Configuration and Power Interface (ACPI) entries;
preventing, based, at least in part, upon resetting diagnostic boot cycle request variables, wherein the diagnostic boot cycle request variables comprise the one or more UEFI variables used to request the diagnostic boot cycle, diagnostic boot cycle triggering until a subsequent request is detected; and
booting the IHS, wherein the requestor has access to the diagnostic test results stored in the dedicated partition of the NVRAM by a query to the ACPI entries.
13 . The method of claim 12 , wherein the diagnostic boot cycle is requested via one or more UEFI variables encoded by UEFI core services in response to a request for diagnostic operations from the requestor.
14 . The method of claim 12 , wherein the diagnostic boot cycle request comprises a request for a first boot mode of the EC.
15 . The method of claim 12 , wherein the requestor further comprises at least one of: an OS kernel, or a user application running on the IHS.
16 . A Non-Volatile Random-Access Memory (NVRAM) storage device that comprises instructions stored thereon, wherein execution of the instructions by one or more processors of an Information Handling System (IHS) causes the one or more processors to perform operations that comprise:
initiate a boot sequence, wherein the boot sequence comprises a Unified Extensible Firmware Interface (UEFI) boot sequence;
detect a request from a requestor for a diagnostic boot cycle, wherein the requestor comprises an operating system (OS) application configured to execute on the IHS and wherein the request is encoded within one or more UEFI variables by UEFI core services in response to a request for diagnostic operations from the OS application;
in response to detection of the request for the diagnostic boot cycle, in a boot device selection phase of the UEFI boot sequence, query the one or more UEFI variables and designate a diagnostic boot mode of an Embedded Controller (EC) as a boot device, and boot the EC in the diagnostic boot mode to perform one or more diagnostic tests on one or more hardware components of the IHS, wherein the one or more diagnostic tests are selected based on one or more additional UEFI variables that specify requested diagnostic tests and wherein the EC performs the one or more diagnostic tests while the OS application is not active and while other hardware of the IHS operates in a low-power or standby mode such that the EC has exclusive use of the one or more hardware components under test;
store results of the one or more diagnostic tests to a dedicated partition of the NVRAM, wherein the dedicated partition comprises a dedicated partition of UEFI NVRAM, wherein the results are stored by the EC, and wherein the diagnostic boot mode exits upon write of the results to the NVRAM;
map the stored results to Advanced Configuration and Power Interface (ACPI) entries;
prevent, based, at least in part, upon reset of diagnostic boot cycle request variables, wherein the diagnostic boot cycle request variables comprise the one or more UEFI variables used to request the diagnostic boot cycle, re-entry to a diagnostic boot cycle unless a subsequent request is detected; and
boot the IHS, wherein the requestor has access to the diagnostic test results stored in the dedicated partition of the NVRAM by a query to the ACPI entries.
17 . The NVRAM storage device of claim 16 , wherein the requestor further comprises an operating system (OS) kernel configured to execute on the IHS.