System and method for boot activation of firmware images
By introducing auxiliary firmware slots and auxiliary file system slots into the storage device, detecting and activateing the firmware image waiting to be activated, the recursive crash problem of storage devices when firmware is damaged is solved, and the effect of retaining user data when updating firmware is achieved.
Patent Information
- Application Number
- CN202210747530.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-10-15
- Filing Date
- 2022-06-28
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2042-06-28
AI Technical Summary
Existing storage devices fail to start properly when the firmware is damaged, resulting in recursive crashes and it is difficult to retain user data when updating the firmware.
By introducing auxiliary firmware slots and auxiliary file system slots into the storage device, detecting and activating the firmware image waiting to be activated, ensuring that user data is not erased when firmware is updated.
This implements update of firmware on storage devices without erasing user data, avoids recursive crash issues, and ensures accessibility of data.
Smart Images

Figure CN115599461B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 215,981, filed on June 28, 2021, which is incorporated herein by reference. Technical Field
[0003] The present disclosure relates generally to storage devices and, more particularly, to installing a firmware image in a storage device. Background Art
[0004] The storage device can be powered up using firmware. As part of powering up, an initial hardware configuration can be performed and other features can be loaded. In addition, an internal file system can be loaded so that user data can be accessed.
[0005] However, if the firmware is corrupted (for example, if one or more bits are accidentally changed or unreadable, or if an unexpected event occurs during a normal firmware update), this boot process may not be able to complete. The storage device may crash recursively in the following situations: the firmware may fail to load, the storage device may attempt to restart, fail again, attempt to restart again, and so on. If the boot process fails to complete, the data on the storage device may become inaccessible. Correcting this problem may require resetting the storage device, which may result in loss of user data.
[0006] There is still a need to update the firmware on storage devices without erasing user data. Summary of the invention
[0007] Embodiments of the present disclosure include a storage device that can support boot activation. When the storage device is booted, the storage device can check whether firmware waiting for boot activation is stored. If firmware waiting for boot activation is found, the storage device can attempt to activate the firmware. If the boot activation is successful, the activated firmware can replace the existing firmware; otherwise, the existing firmware may replace the (unsuccessfully activated) firmware. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The accompanying drawings described below are examples of how to implement embodiments of the present disclosure and are not intended to limit the embodiments of the present disclosure. Various embodiments of the present disclosure may include elements not shown in a particular drawing and / or may omit elements shown in a particular drawing. The accompanying drawings are intended to provide illustrations and may not be drawn to scale.
[0009] Figure 1 A system including a storage device supporting boot activation according to an embodiment of the present disclosure is shown.
[0010] Figure 2 The embodiment according to the present disclosure is shown Figure 1 Details of the machine.
[0011] Figure 3 A solid state drive (SSD) supporting dictionary decoding according to an embodiment of the present disclosure is shown.
[0012] Figure 4 The embodiment according to the present disclosure is shown Figure 3 Firmware NAND memory details.
[0013] Figure 5 An example layout of a firmware image according to an embodiment of the present disclosure is shown.
[0014] Figure 6 The embodiment according to the present disclosure is shown Figure 3 Details of the SSD controller.
[0015] Figure 7 The embodiment according to the present disclosure is shown Figure 6 Details of the updater.
[0016] Fig. 8A The embodiment according to the present disclosure is shown Figure 1 Flowchart of an example process for downloading and activating a firmware image on a storage device.
[0017] Figure 8B Continuing according to the embodiment of the present disclosure Figure 1 Flowchart of an example process for downloading and activating a firmware image on a storage device.
[0018] Fig. 9A The embodiment according to the present disclosure is shown Figure 1 A flowchart of an example process for activating a firmware image for a storage device.
[0019] Fig. 9B Continuing according to the embodiment of the present disclosure Figure 1 A flowchart of an example process for activating a firmware image for a storage device.
[0020] Fig.10 The embodiment according to the present disclosure is shown Figure 1 An alternative flow chart of an example process for downloading and activating a firmware image for a storage device.
[0021] Fig.11 The embodiment according to the present disclosure is shown Figure 1
[0046] Still another alternative flow chart of an example process for downloading and activating a firmware image to a storage device.
[0022] Fig. 12A The embodiment according to the present disclosure is shown Figure 1 Flowchart of an example process for downloading and activating a firmware image on a storage device.
[0023] Fig. 12B Continuing according to the embodiment of the present disclosure Figure 1 Flowchart of an example process for downloading and activating a firmware image on a storage device.
[0024] Fig.13A The embodiment according to the present disclosure is shown Figure 1 Another flow chart of an example process for activating a firmware image on a storage device.
[0025] Fig. 13B Continuing according to the embodiment of the present disclosure Figure 1 A flowchart of another example process for activating a firmware image on a storage device.
[0026] Fig.14 The embodiment according to the present disclosure is shown Figure 1 A flowchart of a process of updating a file system on a storage device.
[0027] Fig.15 The embodiment according to the present disclosure is shown Figure 1 A flowchart of an example process for completing activation of a firmware image by a storage device. DETAILED DESCRIPTION
[0028] Reference will now be made in detail to embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. In the following detailed description, many specific details are set forth to enable a thorough understanding of the present disclosure. However, it should be understood that one of ordinary skill in the art may practice the present disclosure without these specific details. In other cases, well-known methods, processes, components, circuits, and networks are not described in detail to avoid unnecessarily obscuring various aspects of the embodiments.
[0029] It should be understood that although the terms first, second, etc. can be used to describe various elements in this article, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, without departing from the scope of the present disclosure, the first module can be referred to as the second module, and similarly, the second module can be referred to as the first module.
[0030] The terms used in the description of the disclosure herein are only used for the purpose of describing specific embodiments and are not intended to limit the disclosure. As used in the description of the disclosure and the appended claims, the singular forms "one" and "the" are also intended to include plural forms unless the context clearly indicates. It should also be understood that the term "and / or" used herein refers to and includes any and all possible combinations of one or more related listed items. It will also be understood that the term "comprising" when used in this specification specifies the presence of stated features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or combinations thereof. The components and features of the accompanying drawings do not have to be drawn to scale.
[0031] The storage device may use firmware to initiate operation at power-up. The power-up may include initial hardware configuration of the storage device, loading of various features of the storage device, and loading of an internal file system.
[0032] If the firmware becomes corrupted, user data stored on the storage device can become inaccessible. For example, the storage device may get stuck in a recursive loop of booting, failing to load the firmware, and then restarting in an attempt to resolve the problem. Because errors in the firmware may not be correctable, this loop may repeat forever (or until the user removes power to the storage device).
[0033] Although it may be possible to salvage the storage device by resetting it to its original factory condition, this operation may result in the loss of user data. For example, if the storage device is returned to the manufacturer, the simplest solution for the manufacturer is to reset the storage device to its original factory condition. However, doing so may result in the loss of the internal file system and / or the erasure of all user data.
[0034] Embodiments of the present disclosure enable user data to be retained while updating firmware. A firmware image may be loaded into a secondary firmware slot. Upon startup, the storage device may identify the presence of the firmware in the secondary firmware slot, detect that the firmware has a flag indicating that activation is required, and may activate the firmware. If activation is successful, the firmware may be copied to the primary firmware slot for future use; otherwise, the existing firmware in the primary firmware slot may be copied to the secondary firmware slot. If activation is successful, access to user data on the storage device may be restored.
[0035] Embodiments of the present disclosure may include a tag in the firmware that may identify the firmware as supporting boot activation. The firmware may also include a tag that indicates whether boot activation has been successfully performed (and may not need to be performed again). Embodiments of the present disclosure may include storing different firmware in different firmware slots of a storage device, so that boot activation may be attempted while retaining the existing firmware (even if the existing firmware does not successfully boot). Embodiments of the present disclosure may also include multiple file system slots, so that the internal file system may be updated in one slot to support downloaded firmware while retaining the original file system in another slot in case boot activation fails.
[0036] Figure 1 A system including an accelerator supporting dictionary decoding according to an embodiment of the present disclosure is shown. Figure 1 In the present invention, machine 105 may also be referred to as a host, and may include a processor 110, a memory 115, and a storage device 120. Processor 110 may be any type of processor. (For ease of illustration, processor 110 and other components discussed below are shown outside the machine: embodiments of the present disclosure may include these components within the machine.) Although Figure 1 A single processor 110 is shown, but machine 105 may include any number of processors, each of which may be a single-core or multi-core processor, each of which may implement a reduced instruction set computer (RISC) architecture or a complex instruction set computer (CISC) architecture (among other possibilities), and which may be mixed in any desired combination.
[0037] The processor 110 may be coupled to a memory 115. The memory 115 may be any kind of memory, such as flash memory, dynamic random access memory (DRAM), static random access memory (SRAM), permanent random access memory, ferroelectric random access memory (FRAM), or non-volatile random access memory (NVRAM), such as magnetoresistive random access memory (MRAM), etc. The memory 115 may also be any desired combination of different memory types and may be managed by a memory controller 125. The memory 115 may be used to store what may be referred to as "short-term" data: that is, data that is not expected to be stored for a long time. Examples of short-term data may include temporary files, data used locally by an application (which may have been copied from other storage locations), etc.
[0038] The processor 110 and the memory 115 may also support an operating system under which various applications may run. These applications may issue requests (also referred to as commands) to read data from or write data to the memory 115 or the storage device 120. The storage device 120 may be accessed using a device driver 130. Figure 1The generic term "storage device" is used, but embodiments of the present disclosure may include any storage device format that may benefit from the use of data quality metrics, examples of which may include hard disk drives and solid-state drives (SSDs). Any references below to "SSDs" should be understood to include these other embodiments of the present disclosure. In addition, although Figure 1 One storage device 120 is shown, but embodiments of the present disclosure may include any number (one or more) of storage devices.
[0039] Figure 2 The embodiment according to the present disclosure is shown Figure 1 Details of the machine 105. Figure 2 In the embodiment of the present invention, generally, the machine 105 includes one or more processors 110, which may include a memory controller 125 and a clock 205, which may be used to coordinate the operation of the components of the machine. The processor 110 may also be coupled to a memory 115, which may include, by way of example, a random access memory (RAM), a read-only memory (ROM), or other state preservation medium. The processor 110 may also be coupled to a storage device 120 and a network connector 210, which may be, for example, an Ethernet connector or a wireless connector. The processor 110 may also be connected to a bus 215, to which a user interface 220 and input / output (I / O) interface ports that may be managed using an I / O engine 225, as well as other components, may be attached.
[0040] Figure 3 A solid state drive (SSD) supporting dictionary decoding according to an embodiment of the present disclosure is shown. Figure 3 In the embodiment, SSD 120 may include an interface 305. Interface 305 may be used to connect SSD 120 to Figure 1 The SSD 120 may include more than one interface 305: for example, one interface may be used for block-based read and write requests, and another interface may be used for key-value read and write requests. Figure 3 Implies that interface 305 is Figure 1 The physical connection between SSD 120 and machine 105 can be represented by interfaces 305, but interfaces 305 can also represent protocol differences that can be used across a common physical interface. For example, SSD 120 can be connected to machine 105 using a U.2 or M.2 connector, but can support both block-based requests and key-value requests: processing different types of requests can be performed by different interfaces 305.
[0041] SSD 120 may also include a host interface layer 310 that may manage interface 305. If SSD 120 includes more than one interface 305, a single host interface layer 310 may manage all interfaces, SSD 120 may include a host interface layer for each interface, or some combination thereof may be used.
[0042] SSD 120 may also include SSD controller 315, various channels 320-1, 320-2, 320-3, and 320-4, and various flash memory chips 325-1, 325-2, 325-3, 325-4, 325-5, 325-6, 325-7, and 325-8 may be arranged along these channels. SSD controller 315 may manage the delivery of read requests and write requests to flash memory chips 325-1 to 325-8 along channels 320-1 to 320-4. Although Figure 3 Four channels and eight flash memory chips are shown, but embodiments of the present disclosure may include any number (one or more, without limitation) of channels including any number (one or more, without limitation) of flash memory chips.
[0043] Although pages can be written to and read from, SSDs do not typically allow data to be overwritten: that is, existing data may not be replaced "in place" with new data. Instead, when data is to be updated, the new data is written to a new page on the SSD, and the original page is invalidated (marked in preparation for erasure). As a result, SSD pages typically have one of three states: free (ready to be written to), valid (contains valid data), and invalid (no longer contains valid data, but is unusable until erased) (the exact names of these states can vary).
[0044] While pages can be written and read individually, blocks are the basic unit of data that can be erased. That is, pages are not erased individually: all pages in a block are typically erased at the same time. For example, if a block contains 230 pages, then all 230 pages in the block are erased at the same time. This arrangement may cause some management problems for the SSD: if you choose to erase a block that still contains some valid data, then before the block can be erased, the valid data may need to be copied to a free page elsewhere on the SSD. (In some embodiments of the present disclosure, the erase unit may be different from a block: for example, it may be a super block, which, as described above, may be a collection of multiple blocks).
[0045] Since data is written and erased in different units (pages vs. blocks), if the SSD waits until a block contains only invalid data before erasing the block, the SSD may actually run out of available storage space, even though the amount of valid data may be less than the capacity advertised by the SSD. To avoid this, the SSD controller 315 may include a garbage collection controller (in Figure 3Not shown, but referenced below Figure 5 Further discussion). The function of garbage collection can be to identify blocks that contain all or nearly all invalid pages and free up those blocks so that valid data can be written to them again. But if the blocks selected for garbage collection include valid data, then that valid data will be erased by the garbage collection logic (because the unit of erase is blocks, not pages). To avoid this data loss, the garbage collection logic can program the valid data in those blocks into other blocks. Once the data has been programmed into the new block (and the table that maps logical block addresses (LBAs) to physical block addresses (PBAs) has been updated to reflect the new location of the data), the block can be erased, returning the state of the pages in the block to the idle state.
[0046] SSDs also have a limited number of times each cell can be written to before the cell can no longer be trusted to retain data correctly. This number is usually measured as a count of the number of program / erase cycles that the cell has experienced. Typically, the number of program / erase cycles that a cell can support means that the SSD will remain reliably functional for a reasonable period of time: for an individual user, a user may be more likely to replace an SSD because of insufficient storage capacity than because the number of program / erase cycles has been exceeded. But in an enterprise environment where data may be written and erased more frequently, the risk of a cell exceeding its program / erase cycle count may be greater.
[0047] To help offset this risk, SSD controller 315 may employ a wear leveling controller ( Figure 3 Wear leveling may involve selecting data blocks to program data based on the program / erase cycle counts of the blocks. By selecting blocks with lower program / erase cycle counts to program new data, the SSD is able to avoid increasing the program / erase cycle counts of some blocks beyond their reliable operating point. By keeping the wear level of each block as close as possible, the SSD can remain reliable for a longer period of time.
[0048] SSD controller 315 may include a flash translation layer (FTL) 330 (which may be more generally referred to as a translation layer for storage devices that do not use flash memory) and firmware NAND storage 335 (which may be more generally referred to as a controller for storage devices that do not use flash memory). FTL 330 may handle LBA or other logical IDs (defined by Figure 1The processor 110 uses the physical block address (PBA) and other physical addresses where data is stored in the flash memory chips 325-1 to 325-8. The FTL 330 may also be responsible for relocating data from one PBA to another, which may occur when performing garbage collection and / or wear leveling. The firmware NAND 335 may store a copy of the firmware and other related information. Although Figure 3 The firmware NAND 335 is shown as using NAND storage, but embodiments of the present disclosure may include other forms of storage, such as NOR storage.
[0049] Figure 4 The embodiment according to the present disclosure is shown Figure 3 The firmware of NAND memory 335 has details. Figure 4 , the firmware NAND 335 may include two firmware slots 405 and 410. The firmware slot 405 may be referred to as a primary firmware slot, and the firmware slot 410 may be referred to as a secondary firmware slot. The firmware NAND 335 may include more than one memory to prevent problems that may arise from using only one firmware slot. For example, an error may occur, causing some information in the primary firmware slot 405 to be damaged, in which case the firmware may not be read from the primary firmware slot 405. By including the secondary firmware slot 410, the firmware may be read from the secondary firmware slot 410 even if the firmware may not be successfully read from the primary firmware slot 405. Therefore, the firmware stored in the primary firmware slot 405 and the secondary firmware slot 410 may be the same firmware.
[0050] Firmware NAND 335 may also include internal file system slots 415 and 420. A distinction may be made between an "internal file system" that manages the internal configuration of the storage device and the management / logging of files and a "file system" that provides access to user data space. Any reference to a "file system" below should be understood to refer to an "internal file system" unless the context implies otherwise. File system slots 415 and 420 may store information about files used to access the storage device. Figure 1 The firmware NAND 335 may include a secondary file system slot 420, like the firmware slots 405 and 410, to prevent problems when reading data from the primary file system slot 415. Therefore, the file systems stored in the primary file system slot 415 and the secondary file system slot 420 may be the same file system.
[0051] Although Figure 4Only two firmware slots 405 and 410 and two file system slots 415 and 420 are shown, but embodiments of the present disclosure may include any number (one or more) of slots for firmware or file systems. By including more than one auxiliary slot, the firmware NAND 335 can provide additional protection against possible read or write errors.
[0052] Figure 5 An example layout of a firmware image according to an embodiment of the present disclosure is shown. Figure 5 , a firmware image 505 is shown. The firmware image 505 may include elements such as a header 510, a signature 515, images 520-1, 520-2, and 520-3, a signature 525, and a trailer 530. The header 510 may include any header information; similarly, the trailer 530 may include any trailer information. The images 520-1, 520-2, and 520-3 may include any desired data. Although Figure 5 Three images 520-1, 520-2, and 520-3 are shown, but embodiments of the present disclosure may include any number (zero or more) of images. Images 520-1, 520-2, and 520-3 may include a management FTL or another core, a control Figure 1 An image of the performance or management of the storage device 120 (or its core).
[0053] Signature 515 can be used to protect a portion of firmware image 505. For example, as shown in portion 535, signature 515 can be used to protect images 520-1, 520-2, and 520-3, signature 525, and trailer 530. Signature 515 can be any form of signature used to protect a portion of firmware image 505. For example, signature 515 can be a signature generated using a digital signature algorithm, firmware encryption, or a parity check code such as a cyclic redundancy check (CRC) code. Therefore, the term "signature" should be understood to include protections other than digital signatures.
[0054] As described below, portions of firmware image 505 may be changed during the boot activation of firmware image 505. If signature 515 may not be easily modified, then the firmware image 505 may be stored in the Figure 4 The signature 515 may be removed from the firmware slots 405 and / or 410 of the system. However, if the signature 515 can be easily modified—for example, if the signature 515 is a CRC code—then the signature 515 may be left in place.
[0055] Similarly, signature 525 can be used to protect a portion of firmware image 505. For example, as shown in portion 540, signature 525 can be used to protect trailer 530. Signature 525 can be any form of signature used to protect a portion of firmware image 505. For example, signature 525 can be a signature generated using a digital signature algorithm or a parity check code, such as a cyclic redundancy check (CRC) code.
[0056] As discussed below, portions of firmware image 505 may be changed during the boot activation of firmware image 505. If signature 525 may not be easily modified, then the firmware image 505 may be stored in a Figure 4 The signature 525 may be removed from the firmware slots 405 and / or 410. However, if the signature 525 can be easily modified—for example, if the signature 525 is a CRC code—then the signature 525 may be left in place.
[0057] exist Figure 5 , the trailer 530 is shown as including a tag 545. The tag 545 may be a field indicating whether the firmware image 505 has been activated. For example, if the firmware image 505 has not yet been activated, Figure 1 If the firmware image 505 is activated in the storage device 120, the tag 545 may be set to 1, and once the firmware image 505 has been activated, the tag 545 may be changed to 0. The trailer 530 (and other parts of the firmware image 505) may include Figure 5 Other tags not shown in FIG: For example, header 510 may include a tag indicating that firmware image 505 may undergo boot activation (which may be different from tag 545, which indicates whether firmware image 505 has actually been activated).
[0058] Before entering Figure 3 Before discussing the details of what components the controller 315 may include in embodiments of the present disclosure, Figure 3 It may be useful to describe how the controller 315 may operate. As described above, if Figure 1 If the storage device 120 becomes a recursive corrupted disk, it is not possible to routinely update the existing firmware to correct the problem. For example, when the bootrom firmware (which may be responsible for Figure 1 When the storage device 120 is initialized and the main firmware is loaded, a recursive crash of the disk may occur. As a result, Figure 1 The storage device 120 can be restarted. However, if the restart Figure 1 If the storage device 120 is unable to correct the problem—which could happen if the main firmware itself stored the error—then the process could repeat indefinitely, preventing Figure 1 The storage device 120 reaches a stage where the user can update the main firmware. Figure 1 If the storage device 120 is returned to the manufacturer and placed in the manufacturer mode, it is possible to update the firmware. However, the conventional method of updating the firmware in the manufacturer mode may result in Figure 1 It is undesirable to erase some or all user data from storage device 120.
[0059] To solve this problem, when the firmware image 505 is downloaded, the firmware image 505 can be stored in Figure 4 The auxiliary firmware slot 410, instead of Figure 4 Then, the next time you start Figure 1 storage device 120 (ie, the next time Figure 1 When power is restored to the storage device 120 as a result of an unexpected power outage, a traditional power outage process, or Figure 1 The bootrom firmware may detect that the storage device 120 is part of a reboot. Figure 4 The auxiliary firmware slot 410 stores the firmware that is waiting to be activated. Then, the bootrom firmware can be Figure 4 The auxiliary firmware slot 410 loads the firmware and can try to activate the firmware instead of Figure 4 The main firmware slot 405 loads the firmware.
[0060] activation Figure 4 The firmware in the auxiliary firmware slot 410 may include a check that the firmware is correct. Figure 4 The firmware in the auxiliary firmware slot 410 may also include Figure 1 The file system of the storage device 120 is updated. Updating the file system may support Figure 4 The firmware in the auxiliary firmware slot 410 is necessary. This update of the file system may include modifying some files: for example, modifying them into an updated file format suitable for the updated file system.
[0061] if Figure 4 If the firmware in the auxiliary firmware slot 410 is successfully activated, the activated firmware can be copied to Figure 4 The main firmware slot 405 is inserted into the main firmware slot 405 so that the firmware can be used at the next startup. Figure 4 The firmware in the auxiliary firmware slot 410 (and Figure 4 The firmware in the main firmware slot 405 of the bootrom firmware can be modified to reflect that the firmware has been successfully activated: for example, by modifying the value of tag 545. By modifying tag 545, the bootrom firmware will recognize that the firmware has been activated and will not attempt to boot the firmware again. After tag 545 is modified, the activated firmware can be copied to Figure 4In addition, after the firmware is successfully activated, Figure 4 The auxiliary file system slot 420 can be copied to Figure 4 The main file system slot 415.
[0062] On the other hand, if Figure 4 If the firmware in the auxiliary firmware slot 410 is not successfully activated, Figure 4 The existing firmware in the main firmware slot 405 can continue to be used. Figure 1 The storage device 120 can store the firmware from Figure 4 Copy the main firmware to slot 405 Figure 4 The auxiliary firmware slot 410 of the firmware is not attempted to be further activated. Figure 4 The firmware in the main firmware slot 405 has an error, then the activation is successful Figure 4 Failure of the firmware in the auxiliary firmware slot 410 may not correct the error, but Figure 1 The storage device 120 will not deteriorate due to the attempt to repair it. That is, if the storage device 120 is stored in Figure 4 If the firmware in the auxiliary firmware slot 410 cannot be successfully activated, Figure 1 The storage device 120 is reset to factory condition, Figure 1 The storage device 120 can still be used (although with the loss of the storage device 120). Figure 1 some or all user data on storage device 120 as a potential expense).
[0063] Figure 6 The embodiment according to the present disclosure is shown Figure 3 Details of the controller 315. Figure 6 , various modules of the controller 315 are shown, any and / or all of which may be implemented using hardware, such as a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a central processing unit (CPU), a graphics processing unit (GPU), a general purpose GPU (GPGPU), or a tensor processing unit (TPU), etc. Any and / or all of these modules may also be implemented using software running on appropriate hardware. Embodiments of the present disclosure are intended to cover all of these variations.
[0064] The firmware downloader 605 can be used to download a firmware image. The firmware downloader 605 can be used as part of a main-to-main firmware. Figure 1 The firmware downloader 605 may be used to download firmware updates as part of the normal operation of the storage device 125, or the firmware downloader 605 may be used to Figure 1 The firmware image is downloaded when the storage device 125 is in manufacturer mode.
[0065] The protection remover 610 may be used to remove the protection applied to the firmware downloaded by the firmware downloader 605. For example, as described above with reference to Figure 5 As discussed, Figure 5 The signature 515 can be used to protect Figure 5 Various other parts of the firmware image 505: for example, Figure 5 images 520-1, 520-2 and 520-3, Figure 5 Signature 525 or Figure 5 The tail of 530. If Figure 5 The signature (or other protection) may not be modified when the firmware image 505 is modified - for example, if the change is related to Figure 5 The value associated with tag 545 will cause the change Figure 5 Signature 515 and / or 525 values, but Figure 5 The signature 515 and / or 530 is not modifiable (or cannot be easily modified) - then the protection remover 610 can be used to remove the protection. In this way, then Figure 5 The data in the firmware image 505 may be modified without affecting the Figure 5 Any protection of the firmware image 505 creates problems.
[0066] Validator 615 can be used to validate Figure 5 The firmware image 505 applied to Figure 5 Any signature or other protection of the firmware image 505 is Figure 5 The firmware image 505 is correct. Note that the operation of the verifier 615 can be Figure 5 Before activation of the firmware image 505, because verification can be Figure 5 The firmware image 505 is stored in Figure 4 occurs before the auxiliary firmware slot 410.
[0067] In the Figure 4 Before the firmware image 505 is stored in any slot, the eraser 620 can be used to erase the firmware image 505 from the Figure 4 The firmware slot 405 and / or 410 of the embodiment of the present invention can be used to erase information. For example, as described above, before new data is written to the flash memory, it may be necessary to erase the flash memory. Erase 620 can be used to perform this erasure to allow Figure 5 The firmware image 505 is written Figure 4 firmware slots 405 and / or 410. Once Figure 4 If the firmware slot 405 and / or 410 is erased, the firmware repository 625 can be used to Figure 5 The firmware image 505 is stored in Figure 4 firmware slots 405 and / or 410.
[0068] The determiner 630 may determine Figure 4 Whether the firmware in the auxiliary firmware slot 410 is tagged for startup activation. For example, the determiner 630 may be for Figure 5 Tags 545 Check Figure 5 firmware image 505, and in determining Figure 5 The label 545 is set to indicate Figure 5 The firmware image 505 is waiting to be activated, and uses this information to try and activate the firmware image stored in Figure 4 The activator 635 can then execute Figure 4 Activation of the firmware in the auxiliary firmware slot 410.
[0069] As part of activation, the file system replicator 640 may copy the file system from Figure 4 The main file system slot 415 is copied to Figure 4 In this way, updates to the file system that may be needed to support the firmware can be made in the auxiliary file system slot 420. Figure 4 If the firmware activation is unsuccessful, then Figure 4 The original file system in the primary file system slot 415 can remain in place so that the file system can still be used if possible. The file system replicator 640 can also be used after a successful activation. Figure 4 When the firmware in the auxiliary firmware slot 410 is updated, the updated file system is Figure 4 The auxiliary file system slot 420 is copied to Figure 4 of the primary file system slot 415, or if Figure 4 The firmware activation of the auxiliary file system slot 410 fails, and the existing file system can be removed from Figure 4 The main file system slot 415 is copied to Figure 4 Auxiliary file system slot 420.
[0070] Verifier 645 can be used to verify Figure 4 The primary file system slot 415 or Figure 4 The file system in the auxiliary file system slot 420 is correct: that is, the file system is not corrupted. Figure 4 The primary file system slot 415 or Figure 4 If the file system in the auxiliary file system slot 420 is damaged, then if possible, Figure 5 The repairer 650 can repair the damage.
[0071] Once known Figure 4 The file system in the auxiliary file system slot 420 is correct (not damaged or repaired), and the updater 655 can update Figure 4The file system in the auxiliary file system slot 420 is connected to Figure 4 The firmware in the auxiliary firmware slot 410 is consistent.
[0072] in spite of Figure 4 Whether the file system in the auxiliary file system slot 420 is not damaged, repaired or unrepairable, and regardless of Figure 4 Whether the file system in the auxiliary file system slot 420 is successfully updated to match Figure 4 The eraser 660 can erase the firmware in the auxiliary firmware slot 410. Figure 4 415 and / or 420, so that the file system replicator 640 can then transfer the file system from Figure 4 The file system slot 415 or 420 is copied to the other. For example, if the file system is not damaged or is repairable and is successfully updated, the eraser 660 can erase Figure 4 The information in the master file system slot 415 is stored in the master file system slot 415, and the file system replicator 640 can update the file system from Figure 4 The auxiliary file system slot 420 is copied to Figure 4 Otherwise, if the file system is damaged and cannot be repaired, or if the file system cannot be successfully updated, the eraser 660 may erase the primary file system slot 415. Figure 4 The file system replicator 640 can remove the file system from the secondary file system slot 420. Figure 4 The main file system slot 415 is copied to Figure 4 of the auxiliary file system slot 420. Note that, functionally, eraser 660 may be identical to eraser 620 (since both erase data from the slot), and that one module may perform both functions.
[0073] if Figure 4 If the firmware in the auxiliary firmware slot 410 is successfully activated, the label setter 665 can update Figure 5 The label 545 reflects Figure 4 The firmware in the auxiliary firmware slot 410 is successfully activated. Then the eraser 620 can be used to erase Figure 4 The firmware duplicator 670 can transfer the firmware from one of the firmware slots 405 or 410 to the Figure 4 The firmware of one slot 405 or 410 is copied to the other. For example, if Figure 4 If the firmware in the auxiliary firmware slot 410 is successfully activated, the eraser 620 can erase Figure 4 The information in the master firmware slot 405, and the firmware copier 670 can transfer the firmware from Figure 4 The auxiliary firmware slot 410 is copied to Figure 4 in the main firmware slot 405. Otherwise, if Figure 4 If the firmware in the auxiliary firmware slot 410 is not successfully activated, the eraser 620 can erase the firmware. Figure 4 The information in the auxiliary firmware slot 410, and the firmware copier 670 can transfer the firmware from Figure 4 Copy the main firmware to slot 405 Figure 4 The firmware duplicator 670 is located in the auxiliary firmware slot 410 of the system. Note that, in function, the firmware duplicator 670 may be identical to the file system duplicator 640 (since both copy data from one slot to another), and that one module may perform both functions.
[0074] Figure 7 The embodiment according to the present disclosure is shown Figure 6 Details of the updater 655. Figure 7 , the updater 655 is shown to include a difference identifier 705, a format updater 710, and a file updater 715. The difference identifier 705 can identify Figure 4 The file system in the primary file system slot 415 ("existing file system") and Figure 4 The difference between the file system in the auxiliary file system slot 420 ("updated file system") of FIG. 710 can then update the format for storing information in the updated file system, and the file updater 715 can then update the files of the updated file system.
[0075] Figure 8A-B The embodiment according to the present disclosure is shown Figure 1 A flowchart of an example process for downloading and activating a firmware image to the storage device 120. Fig. 8A In block 805, Figure 6 The firmware downloader 605 may receive the firmware package / firmware image. At block 810, Figure 6 The verifier 615 can verify the firmware package. At block 815, Figure 6 The determiner 630 may determine whether the firmware package is eligible to initiate activation.
[0076] If the firmware package is not eligible for boot activation, then at block 820 ( Figure 8B ), Figure 6 The eraser 620 can erase Figure 4 Firmware slots 405 and / or 410. At block 825, Figure 6 The firmware repository 625 can store firmware packages in Figure 4 One or more firmware slots 405 and / or 410 of the firmware package. Finally, at block 830, the firmware package may be considered activated.
[0077] If the firmware package is eligible for boot activation, then at block 835, Figure 6 The eraser 620 can erase the appropriate firmware slot, such as Figure 4 Auxiliary hardware slot 410 (leave Figure 4 master firmware slot 405). At block 840, Figure 6 The firmware repository 625 can store the firmware packages in the appropriate firmware slots, such as Figure 4 The auxiliary hardware slot 410. At block 845, Figure 3 The controller 315 may suspend any further downloads (which may have been scheduled by the master firmware downloader) until after the boot activation is complete. Finally, at block 850, Figure 3 The controller 315 can be Figure 1 The storage device 120 performs startup activation of the firmware package after the next startup.
[0078] Figure 9A-9B The embodiment according to the present disclosure is shown Figure 1 A flowchart of an example process for activating a firmware image on the storage device 120. Fig. 9A In block 905, as part of normal startup operations, Figure 3 The controller 315 can initialize Figure 1 The storage device 120. At block 910, Figure 6 The checker 645 can check that the main file system is not damaged. If in block 915, if it is proved that the main file system is damaged, then in block 920, Figure 6 The repairer 650 can repair the main file system. Once the main file system is repaired (assuming that the main file system needs to be repaired), in block 925, Figure 6 The file system replicator 640 can transfer the file system from Figure 4 The main file system slot 415 is copied to Figure 4 The auxiliary file system slot 420, at this time Figure 1 The storage device 120 may be configured to use Figure 4 The auxiliary file system slot 420 has a file system.
[0079] At block 930 ( Fig. 9B ), Figure 7 The difference identifier 705 can determine what differences exist between the existing file system and the updated file system supported by the firmware package. At block 935, Figure 3 The controller 315 can determine whether there are any differences. If there are any differences, then at block 940, Figure 7 The format updater 710 can Figure 4 The file format of the file system in the auxiliary file system slot 420 is converted to the file format of the updated file system, and at block 945, Figure 7 The file updater 715 can Figure 4One or more files of the file system in the auxiliary file system slot 420 are updated to the updated file system.
[0080] At block 950, once the file system is updated, Figure 6 The file system replicator 640 can transfer the file system from Figure 4 The auxiliary file system slot 420 is copied to Figure 4 The main file system slot 415, at this time Figure 1 The storage device 120 may be configured to use Figure 4 The file system of the primary file system slot 420. Finally, at block 955, Figure 6 The label setter 665 can be updated Figure 5 The label 545 reflects Figure 5 The firmware image 505 has already undergone a boot activation (and should not be activated again), and at block 960, Figure 1 The storage device 120 can continue the normal boot process.
[0081] Fig.10 The embodiment according to the present disclosure is shown Figure 1 An alternative flow chart of an example process for downloading and activating a firmware image from the storage device 120 of FIG. 1004. At block 1005, the bootrom firmware may determine that there is a storage device 120 storing Figure 4 The existing firmware in the main firmware slot 405. At block 1010, the bootrom firmware may determine the firmware stored in Figure 4 The firmware in the auxiliary firmware slot 410. At block 1015, Figure 6 The determiner 630 may determine Figure 4 The firmware in the auxiliary firmware slot 410 is labeled for startup activation. At block 1020, Figure 6 The activator 635 may attempt to activate the firmware in the auxiliary firmware slot 1020. Finally, at block 1025, Figure 3 The controller 315 can unify Figure 4 The firmware in the main firmware slot 405 and the auxiliary firmware slot 410 and the existing firmware. In this article, "unification" is intended to mean that a firmware is changed from Figure 4 Copy a firmware slot 405 or 410 to Figure 4 Which firmware to copy can depend on the other firmware slot 405 or 410: Figure 4 Whether the firmware in the auxiliary firmware slot 410 is successfully activated.
[0082] Fig.11 The embodiment according to the present disclosure is shown Figure 1 1 and 2. In the embodiment of the present invention, another alternative flow chart of an example process of downloading and activating a firmware image to the storage device 120 is shown. Fig.11 Similar to Fig.10, but more generally. At block 1005, the bootrom firmware may determine that there is a stored Figure 4 The existing firmware in the main firmware slot 405. At block 1010, the bootrom firmware can be stored in Figure 4 The firmware in the auxiliary firmware slot 410. At block 1105, Figure 6 The determiner 630 can be realized by Figure 5 The tag 545 is identified as indicating that the firmware will be activated to determine Figure 4 The firmware in the auxiliary firmware slot 410 is labeled for boot activation. At block 1020, Figure 6 The activator 635 may attempt to activate the firmware in the auxiliary firmware slot 1020. Finally, at block 1025, Figure 3 The controller 315 can unify Figure 4 The firmware in the main firmware slot 405 and the auxiliary firmware slot 410 and the existing firmware. In this article, "unification" is intended to mean that a firmware is changed from Figure 4 Copy a firmware slot 405 or 410 to Figure 4 Which firmware to copy can depend on the other firmware slot 405 or 410: Figure 4 Whether the firmware in the auxiliary firmware slot 410 is successfully activated.
[0083] Figure 12A-12B The embodiment according to the present disclosure is shown Figure 1 A flowchart of an example process for downloading and activating a firmware image to the storage device 120. Fig. 12A In block 1205, Figure 1 The storage device 120 may receive Figure 1 The storage device 120 is placed in the manufacturer mode. For example, Figure 1 The storage device 120 may receive data that may originate from Figure 1 A signal input external to the storage device 120 indicating Figure 1 The storage device 120 is placed in manufacturer mode. As a result of receiving this signal, at block 1210, Figure 1 The storage device 120 can be placed in manufacturer mode. As shown by dashed line 1215, blocks 1205 and 1210 can be omitted: For example, boot activation can occur as a result of a main firmware download of firmware (when Figure 1 Boxes 1205 and 1210 are used when the storage device 120 cannot download firmware using the main firmware download process).
[0084] At block 1220, Figure 6 The firmware downloader 605 can be Figure 1 The firmware is downloaded from the storage device 120. At block 1225, Figure 6 The verifier 615 can verify that the firmware was successfully downloaded. At block 1230, Figure 6 The determiner 630 may determine that the firmware supports boot activation.
[0085] In block 1235 ( Fig. 12B ), Figure 6 The protection remover 610 can remove the protection from the downloaded firmware. For example, if a digital signature has been applied to the downloaded firmware, the digital signature can be removed so that the firmware image can be modified (such as setting Figure 5 The label 545) reflects that the firmware has been activated. At block 1240, Figure 6 The eraser 620 can erase Figure 4 The auxiliary hardware slot 410 makes it possible that in block 1245, Figure 6 The firmware repository 625 can store firmware in Figure 4 Finally, at block 1250, Figure 3 The controller 315 may pause any further downloads until the firmware is activated at boot time.
[0086] Figure 13A-13B The embodiment according to the present disclosure is shown Figure 1 Another flow chart of an example process for activating a firmware image on the storage device 120 of FIG. Fig.13A In block 1305, Figure 6 The checker 645 can determine the existing file system (which can be stored in Figure 4 ) is damaged. If so, then at block 1310, Figure 6 The repairer 650 can repair an existing file system.
[0087] Regardless of whether the existing file system needs to be repaired (and the repair is successfully completed: if the repair is not successfully completed, the firmware image is not successfully activated), at block 1315, Figure 6 The file system replicator 640 can copy the existing file system from Figure 4 The main file system slot 415 is copied to Figure 4 The auxiliary file system slot 420. At block 1320, Figure 6 Updater 655 can Figure 4 The existing file system in the auxiliary file system slot 420 of the system is updated to the updated file system. As described above, this update may include Figure 7 The format updater 710 updates the format of the files in the updated file system and / or Figure 7 The file updater 715 updates files in the updated file system.
[0088] At block 1325 ( Fig. 13B ), Figure 3The controller 315 can determine whether the updated file system has been verified. If so, then at block 1330, Figure 6 The eraser 660 can be Figure 4 The master file system slot 415 erases the information, and at block 1335, Figure 6 The file system replicator 640 can update the file system from Figure 4 The auxiliary file system slot 420 is copied to Figure 4 's primary file system slot 415. If not, then at block 1340, Figure 6 The eraser 660 can be Figure 4 The auxiliary file system slot 420 erases the information, and at block 1345, Figure 6 The file system replicator 640 can copy the existing file system from Figure 4 The main file system slot 415 is copied to Figure 4 Auxiliary file system slot 420.
[0089] Fig.14 The embodiment according to the present disclosure is shown Figure 1 A flowchart of a process of updating a file system by the storage device 120. Fig.14 In block 1405, Figure 7 The difference identifier 705 can identify the difference between the existing file system and the updated file system. At block 1410, Figure 7 The format updater 710 can update the format of the file in the updated file system. Finally, at block 1415, Figure 7 The file updater 715 can update files in the updated file system.
[0090] Fig.15 The embodiment according to the present disclosure is shown Figure 1 Flowchart of an example process for completing the activation of a firmware image by the storage device 120. Fig.15 In block 1505, the activator 635 can determine whether the activation of the firmware is successful. If so, then in block 1510, Figure 6 The label setter 665 can be changed from Figure 4 The auxiliary hardware slot 410 Figure 5 Firmware image 505 cleared Figure 5 The label 545 ensures Figure 4 The auxiliary hardware slot 410 Figure 5 The firmware image 505 will not be activated again. At block 1515, Figure 3 The controller 315 can update Figure 2 The firmware image 505 is protected to illustrate Figure 5 The label 545 is set. Finally, at block 1520, Figure 6 The firmware copier 670 can Figure 4 The firmware in the auxiliary firmware slot 410 is copied to Figure 4 On the other hand, if the activation is unsuccessful, then at block 1525, Figure 6 The firmware copier 670 can Figure 4 Copy the existing firmware in the main firmware slot 405 to Figure 4 Auxiliary firmware slot 410.
[0091] exist Figure 8A-Figure 15 In the flowchart, some embodiments of the present disclosure are shown. However, those skilled in the art will recognize that other embodiments of the present disclosure are possible by changing the order of the blocks, omitting the blocks, or including links not shown in the drawings. All these changes to the flowchart are considered embodiments of the present disclosure, whether explicitly described or not.
[0092] Sometimes, customers may report disk failures. Typically, the disk can get into a state where a version of the firmware image can be downloaded to fix the defect. But sometimes storage devices such as solid-state drives (SSDs) can get into a recursive crash dump state, or the file system can become corrupted. In this case, the storage device may not be able to get into a state where the firmware can be downloaded and activated, or the corrupted file system may not be repaired. The manufacturer may be able to manually or automatically put the storage device into bootrom mode to download the firmware, but such an operation may erase all firmware system slots. In addition, such an operation may erase existing file system data, because the existing file system data may not be compatible with the firmware version and may not be left in place.
[0093] To improve storage device operation, you can use Figure 1 Firmware activation / file system update process within storage device 120 - boot activation at power on. This process can also be used when firmware is downloaded under more normal circumstances, but activation will be postponed until the next time the storage device is booted (compared to immediately restarting the storage device to activate the downloaded firmware).
[0094] To support boot activation, at power-up, Figure 1 The storage device 120 may detect the firmware image and switch to the activation process.
[0095] The firmware image may be labeled, tagged, or otherwise marked to indicate that post-boot activation is available. During the download process, this label may be detected by the bootrom or main firmware. The firmware image may include features that enhance the storage device.
[0096] In bootrom mode, the firmware image can only be saved to the Figure 1The secondary firmware slot in the storage device 120 of the present invention is restored to the secondary firmware slot, while keeping the primary firmware slot (and file system) unchanged. In this way, in the event of any errors during activation, the storage device can be restored to the original disk firmware / file system. In some embodiments of the present disclosure, the firmware image can be stored somewhere other than the secondary firmware slot, and as part of the boot activation, the firmware image is copied to the secondary firmware slot.
[0097] In a master-to-master firmware download, the firmware image can only be saved to Figure 1 The secondary firmware slot in the storage device 120 of the present disclosure may be downloaded without further action, and any other download operations may be blocked until the next power cycle (at which time the firmware may be activated). In some embodiments of the present disclosure, the firmware image may be stored somewhere other than the secondary firmware slot, to which the firmware image is copied as part of the boot activation.
[0098] At power-up / start-up, Figure 1 The bootrom / bootloader or main firmware process used in the storage device 120 may be responsible for firmware activation. There may also be a flag indicating whether the firmware has been activated: this flag may be the same or different than the flag indicating that the firmware will be activated after booting. This flag may be cleared after activation so that the firmware will not be activated again after another boot.
[0099] when Figure 1 When the main firmware in the storage device 120 detects the firmware image that needs to be activated in the auxiliary firmware slot, the main firmware can start the firmware activation process. The embodiment of the present disclosure can load the firmware image from the auxiliary firmware slot instead of the main firmware slot and activate the firmware.
[0100] The main firmware may switch the storage device from a power-on mode to a boot-activation mode, which may include some additional operations.
[0101] In some embodiments of the present disclosure, the file system in the primary file system slot may be backed up to Figure 1 The secondary file system slot in the storage device 120 of the storage device 120. In this way, if there is a problem repairing or replacing the file system, any such repair or replacement can be reversed.
[0102] In some embodiments of the present disclosure, it is possible to verify / test Figure 1The current file system in the primary slot in the storage device 120 of the firmware is checked to ensure that it works with the firmware and is not damaged. If possible, a damaged file system can be repaired. In these embodiments of the present disclosure, the existing file system and the updated file system can be compared. If their data structures or definitions are different, a conversion function can be used to update the existing file system to make it compatible with the firmware. The file system volume version can be maintained in its layout, which can be used to detect any differences between the existing file system and the updated file system through the file data structure and decide whether to update the existing file system data to make it compatible with the updated file system volume.
[0103] In some embodiments of the present disclosure, Figure 1 Files (such as file system files) in the storage device 120 can be updated according to a predefined policy.
[0104] If the file system update is successful, a version of the firmware image can be copied to Figure 1 In some embodiments of the present disclosure, if the file system is updated, the updated file system can be copied from the auxiliary file system slot to the primary file system slot and set as the current file system. At this point, the boot activation can be successfully completed, and the process of completing the boot can continue. If the file system update is unsuccessful, or the firmware is not successfully activated, the image from the primary slot (firmware and / or file system) can be copied to the auxiliary slot to restore the storage device to its previous configuration.
[0105] In some embodiments of the present disclosure, Figure 1 The firmware image in the storage device 120 may include a tag that indicates that the firmware may undergo a boot activation. In some embodiments of the present disclosure, the firmware image may also include a second tag that indicates that the boot activation has been performed so that the boot activation is not repeated. These flags may be the same or different and may be placed in any desired location in the firmware image.
[0106] Figure 1 The storage device 120 may include two firmware slots and two file system slots. By including multiple firmware slots and file system slots, the storage device can store backup copies of firmware and / or file systems. If the information in the primary slot is unreadable, the information can be read from the auxiliary slot. Embodiments of the present disclosure may also include more than two slots of each type, and may have different numbers of firmware slots and file system slots.
[0107] Stored in Figure 1The firmware image in the storage device 120 may store the firmware in any desired manner. Portions of the firmware may include parity check codes, such as cyclic redundancy check (CRC) or CRC32 codes, or may be digitally signed using signatures, such as the Rivest-Shamir-Aldeman (RSA) cryptographic system; other parity check codes and / or digital signature algorithms may also be used. Tags or flags that may be used to identify that the firmware may be subject to boot activation and / or indicate whether boot activation has been performed may be stored anywhere desired within the firmware image.
[0108] Embodiments of the present disclosure provide technical advantages over the prior art. Embodiments of the present disclosure may enable the repair or replacement of firmware or file systems used in storage devices without losing user data on the storage devices. Since users prefer to retain their data even in the event of a catastrophic failure (requiring the manufacturer to repair the storage device), a system and method that may retain such user data is needed. Embodiments of the present disclosure may operate using secondary firmware slots and / or secondary file system slots, in which firmware and / or file systems may be updated. If these updates are successful, the updates may be migrated to the primary firmware and / or file system slots; otherwise, the original firmware and / or file system is still retained, which avoids any potential data loss due to failed attempts to update the firmware and / or file system.
[0109] The following discussion is intended to provide a brief summary description of one or more suitable machines in which certain aspects of the present disclosure may be implemented. One or more machines may be controlled at least in part by input from traditional input devices such as keyboards, mice, etc., as well as by instructions received from another machine, interaction with a virtual reality (VR) environment, biofeedback, or other input signals. As used herein, the term "machine" is intended to broadly cover a single machine, a virtual machine, or a system of communicatively coupled machines, virtual machines, or devices operating together. Exemplary machines include computing devices such as personal computers, workstations, servers, portable computers, handheld devices, phones, tablets, etc., and transportation equipment such as private or public transportation, for example, cars, trains, taxis, etc.
[0110] One or more machines may include embedded controllers, such as programmable or non-programmable logic devices or arrays, application specific integrated circuits (ASICs), embedded computers, smart cards, etc. One or more machines may utilize one or more connections to one or more remote machines, such as through a network interface, modem, or other communication coupling. The machines may be interconnected through physical and / or logical networks, such as an intranet, the Internet, a local area network, a wide area network, etc. Those skilled in the art will appreciate that network communications may utilize a variety of wired and / or wireless short-range or long-range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 802.11, Bluetooth, optical, infrared, cable, laser, etc.
[0111] Embodiments of the present disclosure may be described by reference or in conjunction with associated data including functions, procedures, data structures, applications, etc., which, when accessed by a machine, cause the machine to perform a task or define an abstract data type or low-level hardware context. The associated data may be stored, for example, in volatile and / or non-volatile memory, such as RAM, ROM, etc., or in other storage devices and their associated storage media, including hard disk drives, floppy disks, optical storage, magnetic tapes, flash memory, memory sticks, digital video disks, bio-storage, etc. The associated data may be transmitted in a transmission environment including a physical and / or logical network in the form of packets, serial data, parallel data, propagated signals, etc., and may be used in a compressed or encrypted format. The associated data may be used in a distributed environment and stored locally and / or remotely for machine access.
[0112] Embodiments of the present disclosure may include a tangible, non-transitory machine-readable medium including instructions executable by one or more processors, including instructions to perform elements of the present disclosure as described herein.
[0113] The various operations of the above methods may be performed by any suitable means capable of performing the operations, such as various hardware and / or software components, circuits and / or modules. The software may include an ordered list of executable instructions for implementing logical functions, and may be included in any "processor-readable medium" for use by or in conjunction with an instruction execution system, apparatus or device, such as a single-core or multi-core processor or a system including a processor.
[0114] The blocks or steps of the methods or algorithms and functions described in conjunction with the embodiments disclosed herein may be directly embodied in hardware, software modules executed by a processor, or a combination of the two. If implemented in software, these functions may be stored or transmitted as one or more instructions or codes on a tangible, non-transitory computer-readable medium. The software module may reside in a random access memory (RAM), flash memory, read-only memory (ROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, hard disk, removable disk, CD ROM, or any other form of storage medium known in the art.
[0115] The principles of the present disclosure have been described and illustrated with reference to the illustrated embodiments, and it will be appreciated that the illustrated embodiments may be modified in arrangement and detail without departing from these principles, and may be combined in any desired manner. Furthermore, although the foregoing discussion has focused on specific embodiments, other configurations may also be considered. Specifically, although expressions such as "according to embodiments of the present disclosure" are used herein, these phrases are intended to refer generally to the possibilities of embodiments and are not intended to limit the present disclosure to specific embodiment configurations. As used herein, these terms may refer to the same or different embodiments, which may be combined into other embodiments.
[0116] The foregoing illustrative embodiments should not be construed as limiting the disclosure thereof. Although several embodiments have been described, it will be readily appreciated by those skilled in the art that many modifications to these embodiments are possible without departing substantially from the novel teachings and advantages of the present disclosure. Therefore, all such modifications are intended to be included within the scope of the present disclosure defined in the claims.
[0117] The embodiments of the present disclosure can be extended to the following statements without limitation:
[0118] Statement 1. An embodiment of the present disclosure includes a storage device, comprising:
[0119] The first storage device comprises:
[0120] A main firmware slot storing a first firmware;
[0121] A secondary firmware slot for storing a second firmware;
[0122] The primary file system slot that stores the existing file system;
[0123] Auxiliary file system slot;
[0124] a processor configured to execute the first firmware or the second firmware; and
[0125] a second storage for user data, the second storage being configured to use an existing file system,
[0126] The second firmware includes a tag indicating that the second firmware undergoes boot activation.
[0127] Statement 2. Embodiments of the present disclosure include a storage device according to Statement 1, wherein the storage device comprises a solid state drive (SSD), a hard disk drive, or a device including an embedded storage device.
[0128] Statement 3. An embodiment of the present disclosure includes a storage device according to Statement 1, wherein the storage device is configured to perform boot activation of the second firmware.
[0129] Statement 4. An embodiment of the present disclosure includes a storage device according to Statement 3, wherein the storage device includes:
[0130] a determiner configured to determine that the second firmware includes a tag indicating that the second firmware undergoes boot activation; and
[0131] An activator is configured to activate the second firmware based at least in part on the second firmware including a tag indicating that the second firmware undergoes boot activation.
[0132] Statement 5. An embodiment of the present disclosure includes a storage device according to Statement 1, wherein the firmware includes a second flag indicating that the second firmware has been activated.
[0133] Statement 6. An embodiment of the present disclosure includes a storage device according to Statement 5, wherein the storage device includes a flag setter for setting a flag indicating that the second firmware has been activated based at least in part on a successful activation of the second firmware.
[0134] Statement 7. An embodiment of the present disclosure includes a storage device according to Statement 1, wherein the storage device includes a firmware copier for copying the second firmware from the secondary firmware slot to the primary firmware slot based at least in part on a successful boot activation of the second firmware.
[0135] Statement 8. An embodiment of the present disclosure includes a storage device according to Statement 1, wherein the firmware copier is configured to copy the first firmware from the primary firmware slot to the secondary firmware slot based at least in part on an unsuccessful boot activation of the second firmware.
[0136] Statement 9. An embodiment of the present disclosure includes a storage device according to Statement 1, wherein the storage device includes:
[0137] a firmware receiver for receiving a second firmware from a source; and
[0138] The firmware repository is configured to store the second firmware in the secondary firmware slot based at least in part on the tag indicating that the second firmware is undergoing boot activation.
[0139] Statement 10. An embodiment of the present disclosure includes a storage device according to Statement 9, wherein:
[0140] The storage device is configured to receive an external signal to place the storage device into a manufacturer mode;
[0141] The firmware receiver is configured to receive the second firmware from a source by a manufacturer.
[0142] Statement 11. An embodiment of the present disclosure includes the storage device according to Statement 9, wherein the firmware receiver is configured to receive the second firmware from a source by a user.
[0143] Statement 12. An embodiment of the present disclosure includes a storage device according to Statement 9, wherein the storage device includes a protection remover for removing protection from the second firmware.
[0144] Statement 13. An embodiment of the present disclosure comprises a storage device according to Statement 9, further comprising a verifier for verifying the firmware.
[0145] Statement 14. An embodiment of the present disclosure includes a storage device according to Statement 9, further comprising an eraser for erasing information in the auxiliary firmware slot.
[0146] Statement 15. An embodiment of the present disclosure comprises a storage device according to Statement 1, further comprising a verifier for verifying that an existing file system is not corrupted.
[0147] Statement 16. An embodiment of the present disclosure includes a storage device according to Statement 15, further comprising a repairer for repairing an existing file system based at least in part on the existing file system being corrupted.
[0148] Statement 17. An embodiment of the present disclosure includes a storage device according to Statement 1, further comprising a file system replicator for replicating an existing file system from a primary file system slot to a secondary file system slot.
[0149] Statement 18. An embodiment of the present disclosure includes a storage device according to Statement 17, further comprising:
[0150] an updater for updating the existing file system in the auxiliary file system slot to the updated file system in the auxiliary file system slot,
[0151] The existing file system in the primary file system slot remains unchanged.
[0152] Statement 19. An embodiment of the present disclosure includes a storage device according to Statement 18, wherein the updater includes a difference identifier for identifying differences between an updated file system associated with the second firmware and an existing file system.
[0153] Statement 20. An embodiment of the present disclosure includes a storage device according to Statement 18, wherein the updater includes a format updater for updating a first file format of an existing file system to a second file format of an updated file system.
[0154] Statement 21. An embodiment of the present disclosure includes a storage device according to Statement 18, wherein the updater includes a file updater for updating a first file of an existing file system to a second file of an updated file system.
[0155] Statement 22. An embodiment of the present disclosure includes a storage device according to Statement 18, wherein the file system replicator is configured to replicate the updated file system from the secondary file system slot to the primary file system slot.
[0156] Statement 23. An embodiment of the present disclosure includes a storage device according to Statement 22, wherein the file system replicator is configured to replicate the updated file system from the secondary file system slot to the primary file system slot based at least in part on verifying the updated file system.
[0157] Statement 24. An embodiment of the present disclosure includes a storage device as recited in Statement 18, further comprising an eraser for erasing the updated file system from the auxiliary file system slot based at least in part on not verifying the updated file system.
[0158] Statement 25. An embodiment of the present disclosure includes a storage device according to Statement 24, wherein the file system replicator is configured to replicate an existing file system from a primary file system slot to a secondary file system slot.
[0159] Statement 26. An embodiment of the present disclosure includes a method comprising:
[0160] identifying that the first firmware is stored in a main firmware slot in the storage device;
[0161] identifying that the second firmware is stored in an auxiliary firmware slot in the storage device;
[0162] determining that the second firmware is tagged for boot activation;
[0163] attempting to activate the second firmware; and
[0164] The second firmware and the first firmware in the unified storage device.
[0165] Statement 27. An embodiment of the present disclosure includes the method of Statement 26, wherein attempting to activate the second firmware includes attempting to activate the second firmware at boot time.
[0166] Statement 28. Embodiments of the present disclosure include a method according to Statement 26, wherein the storage device comprises a solid state drive (SSD), a hard disk drive, or a device including an embedded storage device.
[0167] Statement 29. An embodiment of the present disclosure includes the method of Statement 26, wherein determining that the second firmware is tagged for initiation activation comprises identifying a field in the second firmware that is a tag indicating that the second firmware is to be activated.
[0168] Statement 30. An embodiment of the present disclosure includes the method of Statement 26, wherein unifying the second firmware and the first firmware in the storage device includes copying the second firmware from the secondary firmware slot to the primary firmware slot based at least in part on a successful boot activation of the second firmware.
[0169] Statement 31. An embodiment of the present disclosure includes the method of Statement 30, wherein unifying the second firmware and the first firmware in the storage device further comprises clearing a flag from the second firmware indicating that the second firmware is to be activated based at least in part on a successful boot activation of the second firmware.
[0170] Statement 32. An embodiment of the present disclosure includes the method of Statement 31, wherein clearing the flag from the second firmware indicating that the second firmware is to be activated includes modifying protection of the second firmware.
[0171] Statement 33. An embodiment of the present disclosure includes the method of Statement 26, wherein unifying the second firmware and the first firmware in the storage device includes copying the first firmware from the primary firmware slot to the secondary firmware slot based at least in part on an unsuccessful boot activation of the second firmware.
[0172] Statement 34. An embodiment of the present disclosure includes a method according to Statement 26, further comprising:
[0173] downloading the second firmware to the storage device; and
[0174] The second firmware is stored in a secondary firmware slot in the storage device.
[0175] Statement 35. Embodiments of the present disclosure include a method according to Statement 34, wherein:
[0176] The method also includes placing the storage device into manufacturer mode; and
[0177] Downloading the second firmware to the storage device includes downloading the second firmware to the storage device by a manufacturer.
[0178] Statement 36. An embodiment of the present disclosure includes a method according to Statement 35, wherein placing the storage device in manufacturer mode comprises receiving a signal to place the storage device in manufacturer mode.
[0179] Statement 37. An embodiment of the present disclosure includes a method according to Statement 36, wherein receiving a signal to place the storage device in manufacturer mode comprises receiving a signal to place the storage device in manufacturer mode from an external source.
[0180] Statement 38. An embodiment of the present disclosure includes the method of Statement 34, wherein storing the second firmware in a secondary firmware slot in the storage device includes determining that the second firmware supports boot activation.
[0181] Statement 39. An embodiment of the present disclosure includes the method of Statement 34, wherein storing the second firmware in the secondary firmware slot includes removing protection from the second firmware.
[0182] Statement 40. An embodiment of the present disclosure includes the method of Statement 34, wherein downloading the second firmware to the storage device comprises downloading the second firmware to the storage device by a user.
[0183] Statement 41. An embodiment of the present disclosure includes the method of Statement 40, further comprising pausing further downloading based at least in part on the second firmware not being activated.
[0184] Statement 42. Embodiments of the present disclosure include a method according to Statement 34, wherein:
[0185] The method also includes verifying the second firmware; and
[0186] Storing the second firmware in the secondary firmware slot of the storage device includes storing the second firmware in the secondary firmware slot of the storage device based at least in part on successful verification of the second firmware.
[0187] Statement 43. An embodiment of the present disclosure includes the method of Statement 34, wherein storing the second firmware in a secondary firmware slot of the storage device includes erasing information in the secondary firmware slot.
[0188] Statement 44. An embodiment of the present disclosure includes the method of Statement 26, wherein attempting to activate the second firmware includes verifying that an existing file system of the storage device is not corrupted.
[0189] Statement 45. An embodiment of the present disclosure includes a method according to Statement 44, wherein verifying that an existing file system of the storage device is not corrupted comprises repairing corrupted files in the existing file system based at least in part on the existing file system of the storage device being corrupted.
[0190] Statement 46. An embodiment of the present disclosure includes the method of Statement 26, wherein attempting to activate the second firmware includes copying the existing file system from the primary file system slot to the secondary file system slot.
[0191] Statement 47. An embodiment of the present disclosure includes a method according to Statement 46, further comprising:
[0192] Update the existing file system in the secondary file system slot to the newer file system in the secondary file system slot,
[0193] The existing file system in the primary file system slot remains unchanged.
[0194] Statement 48. An embodiment of the present disclosure includes a method according to Statement 47, wherein updating an existing file system in the secondary file system slot to an updated file system in the secondary file system slot includes identifying differences between the updated file system associated with the second firmware and the existing file system.
[0195] Statement 49. An embodiment of the present disclosure includes a method according to Statement 47, wherein updating an existing file system in the secondary file system slot to an updated file system in the secondary file system slot includes updating a first file format of the existing file system to a second file format of the updated file system.
[0196] Statement 50. An embodiment of the present disclosure includes the method of statement 47, wherein updating the existing file system in the auxiliary file system slot to the updated file system in the auxiliary file system slot includes updating a first file of the existing file system to a second file of the updated file system.
[0197] Statement 51. An embodiment of the present disclosure includes the method according to Statement 47, further comprising copying the updated file system from the secondary file system slot to the primary file system slot.
[0198] Statement 52. An embodiment of the present disclosure comprises a method according to Statement 51, wherein copying the updated file system from the auxiliary file system slot to the primary file system slot comprises copying the updated file system from the auxiliary file system slot to the primary file system slot based at least in part on verifying the updated file system.
[0199] Statement 53. An embodiment of the present disclosure includes the method of Statement 47, further comprising erasing the updated file system from the auxiliary file system slot based at least in part on not verifying the updated file system.
[0200] Statement 54. An embodiment of the present disclosure includes a method according to Statement 53, further comprising copying the existing file system from the primary file system slot to the secondary file system slot.
[0201] Statement 55. Embodiments of the present disclosure include an article comprising a non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in:
[0202] identifying that the first firmware is stored in a main firmware slot in the storage device;
[0203] identifying that the second firmware is stored in an auxiliary firmware slot in the storage device;
[0204] determining that the second firmware is tagged for boot activation;
[0205] attempting to activate the second firmware; and
[0206] The second firmware and the first firmware in the unified storage device.
[0207] Statement 56. An embodiment of the present disclosure includes an article according to Statement 55, wherein attempting to activate the second firmware includes attempting to activate the second firmware at startup.
[0208] Statement 57. Embodiments of the present disclosure include an article of manufacture according to Statement 55, wherein the storage device comprises a solid state drive (SSD), a hard disk drive, or a device including an embedded storage device.
[0209] Statement 58. An embodiment of the present disclosure includes an article according to Statement 55, wherein determining that the second firmware is tagged for initiating activation comprises identifying a field in the second firmware that is a tag indicating that the second firmware is to be activated.
[0210] Statement 59. An embodiment of the present disclosure includes an article according to Statement 55, wherein unifying the second firmware and the first firmware in the storage device includes copying the second firmware from the secondary firmware slot to the primary firmware slot based at least in part on a successful boot activation of the second firmware.
[0211] Statement 60. An embodiment of the present disclosure includes the article of statement 59, wherein unifying the second firmware and the first firmware in the storage device further comprises clearing a flag from the second firmware indicating that the second firmware is to be activated based at least in part on a successful boot activation of the second firmware.
[0212] Statement 61. An embodiment of the present disclosure includes an article according to Statement 60, wherein clearing the tag from the second firmware indicating that the second firmware is to be activated includes modifying protection of the second firmware.
[0213] Statement 62. An embodiment of the present disclosure includes the article of statement 55, wherein unifying the second firmware and the first firmware in the storage device includes copying the first firmware from the primary firmware slot to the secondary firmware slot based at least in part on an unsuccessful boot activation of the second firmware.
[0214] Statement 63. An embodiment of the present disclosure includes an article according to Statement 55, the non-transitory storage medium having further instructions stored thereon, which when executed by a machine, result in:
[0215] downloading the second firmware to the storage device; and
[0216] The second firmware is stored in a secondary firmware slot in the storage device.
[0217] Statement 64. Embodiments of the present disclosure include an article according to Statement 63, wherein:
[0218] the non-transitory storage medium having further instructions stored thereon that, when executed by the machine, result in placing the storage device into manufacturer mode; and
[0219] Downloading the second firmware to the storage device includes downloading the second firmware to the storage device by a manufacturer.
[0220] Statement 65. An embodiment of the present disclosure includes an article according to Statement 64, wherein placing the storage device in manufacturer mode comprises receiving a signal to place the storage device in manufacturer mode.
[0221] Statement 66. An embodiment of the present disclosure includes an article according to Statement 65, wherein receiving a signal to place the storage device in manufacturer mode comprises receiving a signal to place the storage device in manufacturer mode from an external source.
[0222] Statement 67. An embodiment of the present disclosure includes an article according to Statement 63, wherein storing the second firmware in a secondary firmware slot in the storage device comprises determining that the second firmware supports boot activation.
[0223] Statement 68. An embodiment of the present disclosure includes an article according to Statement 63, wherein storing the second firmware in the secondary firmware slot includes removing protection from the second firmware.
[0224] Statement 69. An embodiment of the present disclosure includes an article according to Statement 63, wherein downloading the second firmware to the storage device comprises downloading the second firmware to the storage device by a user.
[0225] Statement 70. An embodiment of the present disclosure includes the article of statement 69, the non-transitory storage medium having stored thereon further instructions that, when executed by the machine, result in pausing further downloading based at least in part on the second firmware not being activated.
[0226] Statement 71. Embodiments of the present disclosure include an article according to Statement 63, wherein:
[0227] the non-transitory storage medium having stored thereon further instructions that, when executed by the machine, result in verifying the second firmware; and
[0228] Storing the second firmware in the secondary firmware slot of the storage device includes storing the second firmware in the secondary firmware slot of the storage device based at least in part on successful verification of the second firmware.
[0229] Statement 72. An embodiment of the present disclosure includes the article of Statement 63, wherein storing the second firmware in a secondary firmware slot of the storage device comprises erasing information in the secondary firmware slot.
[0230] Statement 73. An embodiment of the present disclosure includes article according to Statement 55, wherein attempting to activate the second firmware includes verifying that an existing file system of the storage device is not corrupted.
[0231] Statement 74. An embodiment of the present disclosure includes an article according to Statement 73, wherein verifying that an existing file system of the storage device is not corrupted comprises repairing corrupted files in the existing file system based at least in part on the existing file system of the storage device being corrupted.
[0232] Statement 75. An embodiment of the present disclosure includes an article according to Statement 55, wherein attempting to activate the second firmware includes copying the existing file system from the primary file system slot to the secondary file system slot.
[0233] Statement 76. An embodiment of the present disclosure comprises an article according to Statement 75, the non-transitory storage medium having further instructions stored thereon, which when executed by a machine, result in:
[0234] Update the existing file system in the secondary file system slot to the newer file system in the secondary file system slot,
[0235] The existing file system in the primary file system slot remains unchanged.
[0236] Statement 77. An embodiment of the present disclosure includes an article according to Statement 76, wherein updating the existing file system in the auxiliary file system slot to the updated file system in the auxiliary file system slot includes identifying differences between the updated file system associated with the second firmware and the existing file system.
[0237] Statement 78. An embodiment of the present disclosure includes an article according to Statement 76, wherein updating an existing file system in the secondary file system slot to an updated file system in the secondary file system slot comprises updating a first file format of the existing file system to a second file format of the updated file system.
[0238] Statement 79. An embodiment of the present disclosure includes an article according to Statement 76, wherein updating an existing file system in the auxiliary file system slot to an updated file system in the auxiliary file system slot comprises updating a first file of the existing file system to a second file of the updated file system.
[0239] Statement 80. An embodiment of the present disclosure includes an article according to Statement 76, the non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause the updated file system to be copied from the secondary file system slot to the primary file system slot.
[0240] Statement 81. An embodiment of the disclosure includes an article according to Statement 80, wherein copying the updated file system from the auxiliary file system slot to the primary file system slot comprises copying the updated file system from the auxiliary file system slot to the primary file system slot based at least in part on verifying the updated file system.
[0241] Statement 82. An embodiment of the present disclosure includes the article of statement 76, the non-transitory storage medium having stored thereon further instructions that, when executed by the machine, result in erasing the updated file system from the auxiliary file system slot based at least in part on not verifying the updated file system.
[0242] Statement 83. An embodiment of the present disclosure includes an article as recited in Statement 82, the non-transitory storage medium having stored thereon further instructions that, when executed by a machine, cause an existing file system to be copied from a primary file system slot to a secondary file system slot.
[0243] Therefore, in view of the various arrangements of the embodiments described herein, this detailed description and accompanying material are intended to be illustrative only and should not be taken as limiting the scope of the disclosure. Therefore, what is claimed in the present disclosure is all such modifications that may fall within the scope and spirit of the following claims and their equivalents.
Claims
1. A storage device, comprising: The first storage device comprises: A main firmware slot storing a first firmware; A secondary firmware slot for storing a second firmware; The primary file system slot that stores the existing file system; Auxiliary file system slot; a processor configured to execute the first firmware or the second firmware; and a second storage for user data, the second storage being configured to use an existing file system, wherein the second firmware includes a tag indicating that the second firmware undergoes boot activation, The storage device is configured to attempt to activate the second firmware and unify the first firmware and the second firmware based on whether the second firmware is successfully activated, wherein unifying the first firmware and the second firmware includes: a) copying the second firmware from the auxiliary firmware slot to the primary firmware slot based on successful activation of the second firmware; and b) copying the first firmware from the primary firmware slot to the secondary firmware slot based on unsuccessful activation of the second firmware.
2. The storage device according to claim 1, wherein: The storage device is configured to perform boot activation of the second firmware.
3. The storage device according to claim 2, wherein: The storage device comprises: a determiner configured to determine that the second firmware includes a tag indicating that the second firmware undergoes boot activation; and An activator is configured to activate the second firmware based at least in part on the second firmware including a tag indicating that the second firmware undergoes boot activation.
4. The storage device according to claim 1, wherein: The storage device comprises: a firmware receiver for receiving a second firmware from a source; and The firmware repository is configured to store the second firmware in the second firmware slot based at least in part on the tag indicating that the second firmware is undergoing boot activation.
5. The storage device of claim 1, further comprising a file system replicator for replicating an existing file system from the primary file system slot to the secondary file system slot.
6. A method comprising: identifying that the first firmware is stored in a primary firmware slot in the storage device; identifying that the second firmware is stored in an auxiliary firmware slot in the storage device; determining that the second firmware is tagged for boot activation; Try to activate the second firmware; Unifying the second firmware and the first firmware in the storage device based on whether the second firmware is successfully activated, wherein unifying the first firmware and the second firmware includes: a) copying the second firmware from the auxiliary firmware slot to the primary firmware slot based on successful activation of the second firmware; and b) copying the first firmware from the primary firmware slot to the secondary firmware slot based on unsuccessful activation of the second firmware.
7. The method according to claim 6, wherein: Attempting to activate the second firmware includes attempting to activate the second firmware at boot time.
8. The method according to claim 6, further comprising: Downloading the second firmware to the storage device; as well as The second firmware is stored in a secondary firmware slot in the storage device.
9. The method according to claim 8, wherein: Storing the second firmware in the auxiliary firmware slot of the storage device includes determining that the second firmware supports boot activation.
10. The method according to claim 8, wherein: The method further includes verifying the second firmware; as well as Storing the second firmware in the secondary firmware slot of the storage device includes storing the second firmware in the secondary firmware slot of the storage device based at least in part on successful verification of the second firmware.
11. The method according to claim 6, wherein: Attempting to activate the second firmware includes verifying that an existing file system of the storage device is not corrupted.
12. The method according to claim 11, wherein: Verifying that an existing file system of the storage device is not corrupted includes repairing corrupted files in the existing file system based at least in part on the existing file system of the storage device being corrupted.
13. The method according to claim 6, wherein: Attempting to activate the second firmware includes copying the existing file system from the primary file system slot to the secondary file system slot.
14. The method according to claim 13, further comprising: Update the existing file system in the secondary file system slot to the newer file system in the secondary file system slot, The existing file system in the primary file system slot remains unchanged.
15. An article comprising a non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in: identifying that the first firmware is stored in a primary firmware slot in the storage device; identifying that the second firmware is stored in an auxiliary firmware slot in the storage device; determining that the second firmware is tagged for boot activation; Try to activate the second firmware; Unifying the second firmware and the first firmware in the storage device based on whether the second firmware is successfully activated, wherein unifying the first firmware and the second firmware includes: a) copying the second firmware from the auxiliary firmware slot to the primary firmware slot based on successful activation of the second firmware; and b) copying the first firmware from the primary firmware slot to the secondary firmware slot based on unsuccessful activation of the second firmware.
16. The article of claim 15, wherein: Determining that the second firmware is tagged for initiation activation includes identifying a field in the second firmware that is a tag indicating that the second firmware is to be activated.
17. The article of claim 15, the non-transitory storage medium having further instructions stored thereon, which when executed by a machine, result in: downloading the second firmware to the storage device; and The second firmware is stored in a secondary firmware slot in the storage device.
18. The article of claim 15, wherein: Attempting to activate the second firmware includes copying the existing file system from the primary file system slot to the secondary file system slot.
19. The article of claim 18, the non-transitory storage medium having further instructions stored thereon, which when executed by a machine, result in: Update the existing file system in the secondary file system slot to the newer file system in the secondary file system slot, in, Existing file systems in primary file system slots are unchanged.
Citation Information
Patent Citations
Methods and apparatus for performing resilient firmware upgrades to a functioning memory
US8286156B2