Isolation of a Networking Switch During Reboot
US-2024126560-A1 · Apr 18, 2024 · US
US9880856B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9880856-B2 |
| Application number | US-201414180030-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 13, 2014 |
| Priority date | Feb 22, 2013 |
| Publication date | Jan 30, 2018 |
| Grant date | Jan 30, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The present disclosure describes apparatuses and techniques for patching boot code of read-only memory (ROM). In some aspects, execution of boot code from a ROM is initiated to start a boot process of a device. Execution of the boot code from the ROM is then interrupted to enable execution of other boot code, such as corrected boot code or additional boot code, from another memory. Once the other boot code is executed, execution of the boot code from the ROM is resumed to continue booting the computing device. By so doing, the corrected boot code or additional boot code can be executed during the boot process effective to patch the boot code stored in the ROM.
Opening claim text (preview).
What is claimed is: 1. A method comprising: initiating, from a first read-only memory (ROM), execution of first boot code to start a boot process of a computing device, the execution of the first boot code being advanced in accordance with a program counter of a processor executing the first boot code, the first boot code executed directly from the first ROM; accessing, via a hardware-based interrupt manager that is separate from the processor, a second ROM storing a boot-ROM patch including a first predefined address of the first boot code, a second predefined address of the first boot code, and second boot code: monitoring, via the hardware-based interrupt manager, the program counter or the processor until the program counter reaches the first predefined address of the first boot code; interrupting, via the hardware-based interrupt manager and responsive to the program counter reaching the first predefined address of the first boot code, the execution of the first boot code by the processor to enable execution of the second boot code stored in the second ROM; causing, while the execution or the first boot code is interrupted, the processor to execute the second boot code directly from the second ROM: setting the program counter to the second predefined address of the first boot code, the second predefined address being different from the first predefined address effective to prevent execution of at least a portion of the first boot code stored in the first ROM; and resuming, after the second boot code is executed and from the second predefined address to which the program counter is set, the execution of the first boot code directly from the first ROM to continue the boot process of the computing device without executing the portion of the first boot code stored in the first ROM. 2. The method as recited in claim 1 , wherein: the second ROM is one-time-programmable (OTP) memory having fuses into which the first predefined address, second predefined address and second boot code are burned; and other fuses of the OTP memory being burned effective to prevent other addresses or other boot code from being written to the OTP memory. 3. The method as recited in claim 1 , wherein execution of the first boot code is effective to implement an interrupt service routine, the hardware-based interrupt manager interrupts execution of the first boot code by setting an interrupt, and the interrupt service routine causes execution of the second boot code stored in the second ROM responsive to the interrupt being set. 4. The method as recited in claim 3 , further comprising: clearing, via the interrupt service routine, the interrupt set by the hardware-based interrupt manager; setting, via the interrupt service routine, the program counter of the processor to the second predefined address; and; resuming, via the interrupt service routine, the execution of the first boot code from the second predefined address to which the program counter is set. 5. The method as recited in claim 1 , wherein the first boot code is written into the first ROM during manufacture of a device or chip in which the first ROM is embodied. 6. The method as recited in claim 3 , wherein the method further comprises reading, via the interrupt service routine, the second predefined address from the second ROM. 7. The method as recited in claim 3 , wherein the interrupt service routine is dedicated to servicing the interrupt set by the hardware-based interrupt manager and is configured to return the program counter to the second predefined address instead of an address subsequent the first predefined address. 8. A method comprising: initiating execution of first boot code from a read-only memory (ROM), the execution of the first boot code being advanced in accordance with a program counter of a processor executing the first boot code, the first boot code executed by the processor directly from the ROM; accessing, via a hardware-based interrupt manager that is separate from the processor, a first predefined address in a boot-ROM patch, the boot-ROM1 patch stored in a one-time-programmable (OTP) memory; comparing, via the hardware-based interrupt manager, values of the program counter to the first predefined address; interrupting, via the hardware-based interrupt manager and responsive to the program counter reaching the first predefined address, the execution of the first boot code by setting a hardware-based interrupt; executing, via the processor and instead of a portion of the first boot code, second boot code of the boot-ROM patch stored in the OTP memory, the second boot code executed by the processor directly from the OTP memory; and returning, responsive to completing execution of the second boot code and based on a second predefined address stored in the boot-ROM patch, the program counter to the second predefined address effective to resume execution of the first boot code by the processor and directly from the ROM, the second predefined address being different from the first predefined address such that the first boot code is executed without executing the portion of the first boot code stored in the ROM. 9. The method as recited in claim 8 , wherein execution of the first boot code and the second boot code is effective to load a boot loader and the method further comprises, prior to transferring control to the boot loader, verifying a cryptographic signature or cryptographic hash of the boot loader to ensure authenticity of the boot loader. 10. The method as recited in claim 8 , wherein the execution of the first boot code is interrupted by a hardware-based interrupt and the method further comprises, prior to executing the second boot code, clearing the hardware-based interrupt. 11. The method as recited in claim 8 , wherein the portion of the first boot code includes a coding error, and the second predefined address to which the program counter is returned is located subsequent to the coding error in the first boot code such that the coding error is not executed. 12. The method as recited in claim 8 , wherein the first boot code is burned into the ROM and the second boot code is burned into the OTP memory such that execution of the first boot code and the second boot code implements at least part of a trusted boot process. 13. The method as recited in claim 8 , wherein the second predefined address is different from the first predefined address such that execution of at least one line of the first boot code is prevented. 14. A System-on-Chip comprising: a processor configured to execute, in accordance with a program counter, code to hoot a device in which the System-on-Chip is embodied: a read-only memory (ROM) storing first boot code for the device; a one-time-programmable (OTP) memory storing a boot-ROM patch including a first predefined address, a second predefined address, and second boot code for the device; a register configured to store an address for the program counter; and a hardware-based interrupt manager that is separate from the processor and configured to: compare, as the processor executes the first boot code directly from the ROM, values of the program counter to the first predefined address; interrupt execution of the first boot code directly from the ROM in response to one of the program counter values matching the first predefined address; cause the second predefined address stored in the OTP to be written to the register; cause the processor to execute the second boot code directly from the OTP memory; and cause, after the second boot code is executed directly from the OTP memory, the second predefined address in the register
Bootstrapping (security arrangements therefor G06F21/57) · CPC title
Loading of operating system · CPC title
of program code stored in read-only memory [ROM] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.