System and method for secure boot across a plurality of processors
Abstract
A system and method for secure boot across a plurality of processors are provided. With the system and method, boot code is partitioned into a plurality of boot code partitions. Processors of a multiprocessor system are selected to be boot processors and are each provided with a boot code partition to execute in a predetermined boot code sequence. Each processor executes its boot code partition in accordance with the boot code sequence and signals to a next processor the successful and uncompromised execution of its boot code partition. If any of the processors does not signal successful completion and/or uncompromised execution of its boot code partition, the boot operation fails. The processors may be arranged, with regard to the boot operation, in a daisy chain, ring, or master/slave arrangement, for example.
Claims
exact text as granted — not AI-modified1 . A method, in a data processing system having a plurality of processors, for booting the data processing system, comprising:
partitioning boot code into a plurality of boot code partitions; loading, in each of a plurality of boot processors within the plurality of processors of the data processing system, a boot code partition from the plurality of boot code partitions; and executing the plurality of boot code partitions on their respective associated boot processors as a plurality of sessions to thereby boot the data processing system, wherein if any session results in an unsuccessful or compromised execution of a boot code partition, booting of the data processing system fails.
2 . The method of claim 1 , wherein, as execution of each boot code partition in its associated session is completed, an associated boot processor of the plurality of processors that executed the boot code partition signals, to another boot processor associated with a next boot code partition in a boot code sequence, the successful completion of the boot code partition.
3 . The method of claim 1 , wherein executing the plurality of boot code partitions on their respective associated boot processors comprises:
utilizing a security mechanism on communications between boot processors to ensure uncompromised execution of the plurality of boot code partitions on their respective associated boot processors.
4 . The method of claim 3 , wherein the security mechanism comprises at least one of passing a security token between boot processors, passing a digital signature between boot processors, using a password, passing a checksum of a boot code partition, or using public key/private key encryption of the signals.
5 . The method of claim 1 , wherein a number of boot code partitions is equal to a number of boot processors.
6 . The method of claim 1 , further comprising:
randomly selecting the boot processors from the plurality of processors, wherein the boot processors are a sub-set of the plurality of processors.
7 . The method of claim 6 , further comprising:
executing masking code on processors of the plurality of processors that were not randomly selected to be boot processors.
8 . The method of claim 1 , further comprising:
randomly selecting which boot code partition is associated with each boot processor, wherein each boot code partition is different from other boot code partitions.
9 . The method of claim 1 , wherein the sessions for execution of boot code partitions on the boot processors are arranged in one of a daisy-chain arrangement, a ring arrangement, or a master/slave arrangement.
10 . The method of claim 1 , wherein the data processing system is a heterogeneous multiprocessor system-on-a-chip having a first processor the operates according to a first instruction set and one or more second processors that operate according to a second instruction set different from the first instruction set.
11 . A data processing system comprising:
a plurality of processors; a boot code storage coupled to the plurality of processors, wherein the boot code storage stores boot code that is partitioned into a plurality of boot code partitions; and pervasive logic coupled to the plurality of processors, wherein the pervasive logic loads, in each of a plurality of boot processors within the plurality of processors of the data processing system, a boot code partition from the plurality of boot code partitions, and wherein the plurality of boot code partitions are executed on their respective associated boot processors as a plurality of sessions to thereby boot the data processing system, wherein if any session results in an unsuccessful or compromised execution of a boot code partition, booting of the data processing system fails.
12 . The system of claim 11 , wherein, as execution of each boot code partition in its associated session is completed, an associated boot processor of the plurality of processors that executed the boot code partition signals, to another boot processor associated with a next boot code partition in a boot code sequence, the successful completion of the boot code partition.
13 . The system of claim 11 , wherein a security mechanism is utilized in communications between boot processors to ensure uncompromised execution of the plurality of boot code partitions.
14 . The system of claim 13 , wherein the security mechanism comprises at least one of passing a security token between boot processors, passing a digital signature between boot processors, using a password, passing a checksum of a boot code partition, or using public key/private key encryption of the signals.
15 . The system of claim 11 , wherein a number of boot code partitions is equal to a number of boot processors.
16 . The system of claim 11 , wherein the pervasive logic randomly selects the boot processors from the plurality of processors, and wherein the boot processors are a sub-set of the plurality of processors.
17 . The system of claim 16 , wherein processors of the plurality of processors that were not randomly selected to be boot processors execute masking code.
18 . The system of claim 11 , wherein the pervasive logic randomly selects which boot code partition is associated with each boot processor, and wherein each boot code partition is different from other boot code partitions.
19 . The system of claim 11 , wherein the sessions for execution of boot code partitions on the boot processors are arranged in one of a daisy-chain arrangement, a ring arrangement, or a master/slave arrangement.
20 . A computer program product comprising a computer useable medium having a computer readable program, wherein the computer readable program, when executed on a data processing system, causes the data processing system to:
partition boot code into a plurality of boot code partitions; load, in each of a plurality of boot processors, a boot code partition from the plurality of boot code partitions; and execute the plurality of boot code partitions on their respective associated boot processors as a plurality of sessions to thereby boot the data processing system, wherein if any session results in an unsuccessful or compromised execution of a boot code partition, booting of the data processing system fails.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.