1. A computing device comprising: a processor; an embedded controller; a first memory storing system boot code, wherein the first memory is accessible by both the processor and the embedded controller over a bus; a second memory electrically isolated from the bus and storing a system boot code copy, wherein the second memory is accessible by the embedded controller but inaccessible by the processor, wherein the embedded controller is to: during a period in which the processor is not accessing the first memory, replace the system boot code in the first memory with the system boot code copy from the second memory; and during initialization of the embedded controller: first attempt to start the computing device by executing a first controller code stored in the second memory; and in response to being unable to start the computing device by executing the first controller code, attempt to start the computing device by executing a second controller code stored in the first memory, wherein the system boot code copy in the second memory is a first system boot code copy that is updateable, and wherein the second memory further stores a second system boot code copy that is immutable, the second system boot code copy being in addition to the system boot code and the first system boot code copy.