Patent ID: 7770021

Claim:
An information handling system comprising: a semiconductor package that includes one or more processors, a first memory area, and a locked nonvolatile memory, wherein the locked nonvolatile memory includes a key value and wherein the locked nonvolatile memory is inaccessible from outside the semiconductor package; a system memory interconnected to the processors with a bus; and a software loader for authenticating and loading software, the software loader located within the semiconductor package, wherein the software loader performs steps comprising: reading a software image from the first memory area, wherein the software image comprises a prefix value, a plurality of blocks of software code, and a suffix value; reading the key value from the locked nonvolatile memory; generating a seed value using the prefix value and the key value; seeding a hashing algorithm with the seed value; reading the first block of software code; hashing the first block of software code using the seed value, the hashing resulting in an updated seed value; processing each remaining block of software code, wherein the processing comprises: reading a next block of software code; hashing the next block of software code using the updated seed value, the hashing resulting in a hash value; and setting the updated seed value equal to the hash value; after all blocks of software code have been processed, performing the following: generating an expected hash value using the suffix value and the key value; authenticating the software program based upon the expected hash value and the hash value; in response to the expected hash value being equal to the hash value, loading the software program; and executing the loaded software program.