IP Library Granted Patent US 12,182,268
Granted Patent B2
US 12,182,268 · App. 17/899,941 · Granted Dec 31, 2024

Device self-mitigation of electrical transients

Inventor: Robert Michael Dolezal (Buford, GA)
Assignee: NCR Voyix Corporation
G06F21/572G06F9/4401G06F21/575
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,182,268
App. No.
17/899,941
Granted
Dec 31, 2024
Kind
B2
Abstract

During startup or boot of a device, software or firmware associated with a processor and/or microcontroller of the device slow walks the handover of control to critical initialization or steady-state functions to account for any instability due to an electrical transient that may cause the processor and/or microcontroller to perform erratically or non-deterministically during startup or boot. The wait time associated with the slow-walk handover of control is optimized to ensure that no instability due to transients is present when the wait time expires. In an embodiment, after the wait time expires, firmware/software associated with the bootloader and/or Basic Input/Output System (BIOS) may further continuously calculate a checksum value for the corresponding target software/firmware and compare the calculated value against an expected checksum value. When the calculated checksum matches the expected checksum, remaining portions of the firmware/software for the bootloader and/or BIOS are given control.

Claims (38)

1. A method, comprising:

detecting a startup process on a device;

delaying a portion of the startup process from handing over control to a startup firmware by processing delaying instructions and accounting for any electrical transient present on the device;

permitting the startup process to execute the delayed portion of the startup process, wherein the startup process passes control to the startup firmware after the processing of the delaying instructions is complete; and

iterating to the delaying for a second startup firmware, wherein the startup firmware is associated with a bootloader of the startup process and the second startup firmware is associated with a Basic Input/Output System (BIOS) of the startup process.

2. The method of claim 1 further comprising:

processing the detecting, the delaying, and the permitting by processor software for a processor of the device or microcontroller firmware for a microcontroller of the device.

3. The method of claim 1 further comprising:

continuously calculating a checksum value for the startup firmware by a first portion of the startup firmware until a calculated checksum value for the startup firmware equals an expected checksum value; and

processing a second portion of the startup firmware.

4. The method of claim 1 , wherein detecting further includes identifying an event indicating that the device was restarted, powered on, or booted causing the startup process to initiate on the device.

5. The method of claim 1 , wherein delaying further includes processing a nested loop set of instructions as the delaying instructions.

6. The method of claim 5 , wherein processing further includes processing a no-operation instruction during each iteration of an inner loop for the nested loop set of instructions.

7. The method of claim 6 , wherein processing further includes obtaining a number of iterations for each loop as configuration parameters or as parameters that are hardcoded.

8. The method of claim 1 , wherein delaying further includes utilizing circuitry of a microcontroller or a processor of the device to detect and to mitigate an electrical transient.

9. The method of claim 8 , wherein permitting further includes processing the permitting when the microcontroller or the processor releases control.

10. The method of claim 1 , wherein permitting further includes executing the portion associated with the startup process causing control to pass to the startup firmware after the delaying instructions complete.

11. A method, comprising:

detecting a startup process on a device;

delaying a portion of the startup process from handing over control to a startup firmware by processing delaying instructions and accounting for any electrical transient present on the device; and

permitting the startup process to execute the delayed portion of the startup process, wherein the startup process passes control to the startup firmware after the processing of the delaying instructions is complete, wherein permitting further includes identifying the startup firmware as a bootloader firmware for a bootloader of the device that loads a Basic Input/Output System (BIOS) for execution on the device.

12. A method, comprising:

detecting a startup process on a device;

delaying a portion of the startup process from handing over control to a startup firmware by processing delaying instructions and accounting for any electrical transient present on the device; and

permitting the startup process to execute the delayed portion of the startup process, wherein the startup process passes control to the startup firmware after the processing of the delaying instructions is complete, wherein permitting further includes identifying the startup firmware as a Basic Input/Output System (BIOS) firmware for a BIOS of the device that loads an operating system for execution on the device.

13. A method, comprising:

identifying initiation of a boot of a device;

intentionally delaying a bootloader from execution for a delay time and accounting for any electrical transients that are present during the boot on the device;

processing a first portion of the bootloader as a loop that continuously calculates a checksum value on a second portion of the bootloader after the delay time expires;

determining that the calculated checksum value equals an expected checksum value for the second portion of the bootloader;

processing the second portion of the bootloader to load a Basic Input/Output System (BIOS) responsive to determining that the calculated checksum value equals the expected checksum value for the second portion of the bootloader; and

processing the BIOS to load an operating system on the device.

14. The method of claim 13 , wherein intentionally delaying further includes determining the delay time when a nested loop completes processing, wherein each inner loop of the nested loop performs a no-operation for a first number of iterations and each outer loop of the nest loop executes the inner loop for the first number of iterations.

15. The method of claim 13 , wherein processing the BIOS further includes:

processing a first portion of the BIOS as a loop that continuously calculates a checksum value on a second portion of the BIOS until a calculated checksum value for the second portion equals an expected checksum value for the second portion of the BIOS; and

processing the second portion of the BIOS to load the operating system on the device.

16. The method of claim 15 , wherein processing the first portion of the BIOS further includes processing the operating system on the device.

17. The method of claim 16 , wherein processing the operating system further includes loading and processing, by the operating system, device drivers for the device.

Assignments (3)
CHANGE OF NAME Recorded Nov 9, 2023
From: NCR CORPORATION
To: NCR VOYIX CORPORATION
Reel/Frame 065532/0893 →
SECURITY INTEREST Recorded Oct 25, 2023
From: NCR VOYIX CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 065346/0168 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2022
From: DOLEZAL, ROBERT MICHAEL
To: NCR CORPORATION
Reel/Frame 060951/0452 →