A controller that is included in a storage device communicating with a host device , wherein the controller is configured to: receive, from the host device , a plurality of firmware image download commands and a firmware image , wherein the firmware image is divided into a plurality of firmware image chunks and wherein the receiving the firmware image comprises receiving the plurality of firmware image chunks based on the plurality of firmware image download commands; obtain a verification result by performing verification for determining whether the firmware image is valid or damaged; and when a firmware update request for the firmware image is received from the host device, determine whether to perform a firmware update of firmware stored at the storage device using the firmware image by checking the verification result, wherein the controller further comprises: a buffer configured to store the firmware image received from the host device, wherein the controller is configured to store each received firmware image chunk in the buffer; and a register configured to store the verification result of the firmware image, wherein performing the verification comprises performing a verification on all firmware image chunks stored in the buffer in response to the storage of each new firmware image chunk within the buffer; wherein, when the firmware image stored in the buffer is determined to be valid as a result of checking the verification result, the controller is configured to store the firmware image in a memory device and to perform the firmware update by using the firmware image stored in the memory device. receive, from the host device , a plurality of firmware image download commands and a firmware image , wherein the firmware image is divided into a plurality of firmware image chunks and wherein the receiving the firmware image comprises receiving the plurality of firmware image chunks based on the plurality of firmware image download commands; obtain a verification result by performing verification for determining whether the firmware image is valid or damaged; and when a firmware update request for the firmware image is received from the host device, determine whether to perform a firmware update of firmware stored at the storage device using the firmware image by checking the verification result, wherein the controller further comprises: a buffer configured to store the firmware image received from the host device, wherein the controller is configured to store each received firmware image chunk in the buffer; and a register configured to store the verification result of the firmware image, wherein performing the verification comprises performing a verification on all firmware image chunks stored in the buffer in response to the storage of each new firmware image chunk within the buffer; wherein, when the firmware image stored in the buffer is determined to be valid as a result of checking the verification result, the controller is configured to store the firmware image in a memory device and to perform the firmware update by using the firmware image stored in the memory device. a buffer configured to store the firmware image received from the host device, wherein the controller is configured to store each received firmware image chunk in the buffer; and a register configured to store the verification result of the firmware image, wherein performing the verification comprises performing a verification on all firmware image chunks stored in the buffer in response to the storage of each new firmware image chunk within the buffer; wherein, when the firmware image stored in the buffer is determined to be valid as a result of checking the verification result, the controller is configured to store the firmware image in a memory device and to perform the firmware update by using the firmware image stored in the memory device. <EOS>