A method of configuring a system, comprising: in response to starting a system including a first non-volatile memory containing system boot code and a second non-volatile memory, performing, by a controller, provisioning of the second non-volatile memory, the provisioning comprising: checking that the second non-volatile memory is uninitialized, and in response to determining that the second non-volatile memory is uninitialized, copying the system boot code from the first non-volatile memory to the second non-volatile memory, the method further comprising: during a programming process at a factory or at a service facility, receiving, by the controller, a command from the system boot code; and in response to the command, retrieving system data from the first non-volatile memory and copying the system data to the second non-volatile memory to obtain a redundant copy of the system boot code, wherein the data are copied from the first non-volatile memory to the second non-volatile memory when a first parameter indicates that the programming mode of the first non-volatile memory is disabled and a second parameter indicates that the programming mode of the second non-volatile memory is enabled, and whereupon, there is a transition to a state in which the programming modes of both the first and second non-volatile memories (204, 216) are disabled. checking that the second non-volatile memory is uninitialized, and in response to determining that the second non-volatile memory is uninitialized, copying the system boot code from the first non-volatile memory to the second non-volatile memory, the method further comprising: during a programming process at a factory or at a service facility, receiving, by the controller, a command from the system boot code; and in response to the command, retrieving system data from the first non-volatile memory and copying the system data to the second non-volatile memory to obtain a redundant copy of the system boot code, wherein the data are copied from the first non-volatile memory to the second non-volatile memory when a first parameter indicates that the programming mode of the first non-volatile memory is disabled and a second parameter indicates that the programming mode of the second non-volatile memory is enabled, and whereupon, there is a transition to a state in which the programming modes of both the first and second non-volatile memories (204, 216) are disabled. during a programming process at a factory or at a service facility, receiving, by the controller, a command from the system boot code; and in response to the command, retrieving system data from the first non-volatile memory and copying the system data to the second non-volatile memory to obtain a redundant copy of the system boot code, wherein the data are copied from the first non-volatile memory to the second non-volatile memory when a first parameter indicates that the programming mode of the first non-volatile memory is disabled and a second parameter indicates that the programming mode of the second non-volatile memory is enabled, and whereupon, there is a transition to a state in which the programming modes of both the first and second non-volatile memories (204, 216) are disabled.