1. A device comprising: a controller comprising an interface and an interface state machine; non-volatile storage coupled to the interface state machine, the non-volatile storage storing initialization parameters; and a non-volatile memory module storing firmware for the device, the memory module coupled to the controller via the interface; wherein the controller is configured to: initialize the interface using the initialization parameters and the interface state machine; train the interface using the initialization parameters and the interface state machine; and execute the firmware from the non-volatile memory module.