A server (200, 300, 400, 500) comprising: a non-volatile memory (230, 530, 720); a programmable security logic (560, 600) coupled to the non-volatile memory; an adapter device (270, 320, 420, 570, 700) coupled to the programmable security logic; and a processor (220, 510) coupled to the programmable security logic and communicatively coupled to the non-volatile memory via the programmable security logic, wherein the adapter device includes instructions that, upon execution, cause the adapter device to: hold the processor in power reset; i) verify firmware stored in the non-volatile memory, while the processor is held in reset; ii) modify firmware stored in the non-volatile memory that could not be verified previously or failed the verification via the programmable security logic while the processor is held in reset to make the firmware stored in the non-volatile memory secure by updating the unverified firmware; after i) and ii), cause the programmable security logic to enter a protected mode, wherein, in the protected mode, the programmable security logic is configured to deny at least a portion of requests to write to the non-volatile memory and to disconnect untrusted components of the server from the processor such that a client execution environment provided by the server is not accessible from the untrusted components of the server; release the processor from reset; and cause the processor to load a customer image after the processor is released from reset. a non-volatile memory (230, 530, 720); a programmable security logic (560, 600) coupled to the non-volatile memory; an adapter device (270, 320, 420, 570, 700) coupled to the programmable security logic; and a processor (220, 510) coupled to the programmable security logic and communicatively coupled to the non-volatile memory via the programmable security logic, wherein the adapter device includes instructions that, upon execution, cause the adapter device to: hold the processor in power reset; i) verify firmware stored in the non-volatile memory, while the processor is held in reset; ii) modify firmware stored in the non-volatile memory that could not be verified previously or failed the verification via the programmable security logic while the processor is held in reset to make the firmware stored in the non-volatile memory secure by updating the unverified firmware; after i) and ii), cause the programmable security logic to enter a protected mode, wherein, in the protected mode, the programmable security logic is configured to deny at least a portion of requests to write to the non-volatile memory and to disconnect untrusted components of the server from the processor such that a client execution environment provided by the server is not accessible from the untrusted components of the server; release the processor from reset; and cause the processor to load a customer image after the processor is released from reset. hold the processor in power reset; i) verify firmware stored in the non-volatile memory, while the processor is held in reset; ii) modify firmware stored in the non-volatile memory that could not be verified previously or failed the verification via the programmable security logic while the processor is held in reset to make the firmware stored in the non-volatile memory secure by updating the unverified firmware; i) verify firmware stored in the non-volatile memory, while the processor is held in reset; ii) modify firmware stored in the non-volatile memory that could not be verified previously or failed the verification via the programmable security logic while the processor is held in reset to make the firmware stored in the non-volatile memory secure by updating the unverified firmware; after i) and ii), cause the programmable security logic to enter a protected mode, wherein, in the protected mode, the programmable security logic is configured to deny at least a portion of requests to write to the non-volatile memory and to disconnect untrusted components of the server from the processor such that a client execution environment provided by the server is not accessible from the untrusted components of the server; release the processor from reset; and cause the processor to load a customer image after the processor is released from reset.