US 12,455,967 B2
Data storage device and method for using a dynamic floating flash region to secure a firmware update
Anusuya Jayachandran, Bengaluru (IN); and Senthil Kumar Veluswamy, Bengaluru (IN)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Jul. 25, 2023, as Appl. No. 18/225,813.
Claims priority of provisional application 63/465,589, filed on May 11, 2023.
Prior Publication US 2024/0378293 A1, Nov. 14, 2024
Int. Cl. G06F 21/57 (2013.01); G06F 8/654 (2018.01); G06F 12/02 (2006.01); G06F 12/14 (2006.01)
CPC G06F 21/572 (2013.01) [G06F 8/654 (2018.02); G06F 12/1408 (2013.01); G06F 2212/1052 (2013.01); G06F 2212/2022 (2013.01); G06F 2221/033 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A data storage device comprising:
a first non-volatile memory;
a second non-volatile memory; and
a processor configured to communicate with the first and second non-volatile memories and further configured to:
receive, from a host, a firmware download command and a firmware update;
divide the firmware update into a number of portions, wherein the number of portions depends on a size and/or a layout of the second non-volatile memory;
determine whether there is available free memory space in the second non-volatile memory to store the portions of the firmware update; and
in response to determining that there is available free memory space in the second non-volatile memory to store the portions of the firmware update:
determine addresses in the second non-volatile memory to store the portions of the firmware update, wherein the addresses are determined on-the-fly as opposed to being predetermined;
store the portions of the firmware update in the addresses in the second non-volatile memory; and
store an encrypted version of an address of a first portion of the firmware update in a configuration file;
wherein the portions of the firmware update are stored in a linked fashion such that an address of a given portion of the firmware update is stored in a previous portion of the firmware update.