Patent ID: 7315940

Claim:
A method of restarting a card in a network element having a plurality of banks of persistent memory, the method comprising: storing boot-load director code, boot-loader code, and application code in a first one of the memory banks and copies of the boot-load director code, boot-loader code, and application code in a second one of the memory banks; executing the boot-load director code stored in the first memory bank in response to a restart of the card; if the boot-load director code in the first memory bank is valid, copying, by the boot-load director code, the boot-loader code in the first memory bank into random access memory (RAM) and passing execution to the boot-loader code in the RAM, otherwise redirecting execution to the boot-load director code stored in the second memory bank, which copies the boot-loader code stored in the second memory bank into RAM and passes execution to the boot-loader code in the RAM; selecting, by the boot-loader code executing in the RAM, one of the memory banks in order to validate the application code stored therein; and if the application code in the selected memory bank is invalid, selecting, by the boot-loader code executing in the RAM, the other of the memory banks in order to validate the application code stored therein.