DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 have been submitted for examination and are pending further prosecution by the United States Patent & Trademark Office.
Allowable Subject Matter
Claims 6-9, 14-16 and 20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Claim Objections
The following claims are objected to because of antecedence issues and an informality. It is suggested Applicants amend these claims as follows:
Claim 1
-- writing a write signature in response to completion of a [[the]] write operation of the firmware of the download steps; and --
Claim 10
-- wherein, in the debug mode, the at least one processor is configured to write a start signature in the signature memory area in response to a start operation of the download steps, write a write signature in response to completion of a [[the]] write operation of the firmware of the download steps, and write the complete signature in response to completion of all of the download steps. --
Claim 16
-- The data storage device of claim 10, wherein the at least one processor is further configured to reinitialize the complete signature when the complete signature exists, before writing the start signature. --
Claim 17
-- in the debug mode, the at least one processor is further configured to write a start signature in the signature memory area in response to a start operation of the download steps, write a write signature in response to completing a [[the]] write operation of the firmware of the download steps, and write the complete signature in response to completion of all of the download steps. --
Claims 2-9, 11-16 and 18-20 are additionally objected to due to their dependence on objected parent claim(s).
Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 3, 5, 10, 11, 13, 17 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over US 20090320012 A1 - hereinafter "Lee", in view of US 20030065935 A1 - hereinafter "Neufeld", in view of KR 101427755 B1 - hereinafter "Son".
With respect to claim 1, Lee teaches,
An operating method of a storage device - mobile device 100 [0020]; Fig. 1,
the operating method comprising:
receiving firmware from an external host device; - "Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version." [0029];
executing a debug mode; - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530)," [0029]; Fig. 5
wherein executing the debug mode comprises:
writing a start signature in response to a start operation of the download steps; - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature (start signature) corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Figs. 3 & 5;
writing the complete signature in response to all of the download steps having completed. - "Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version. In step S550, it is determined whether the download is finished. If so, in step S560, a flag with a value "Download_done" indicating that the download is finished is provided. A record containing the provided flag, a corresponding signature (complete signature) and the valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Fig's 3 & 5
Lee does not explicitly teach checking whether download steps of the firmware have completed by reading a complete signature; and executing the firmware based on the complete signature,
However, in the analogous field of error detection during software upgrading, Neufeld teaches:
"The appliance 32 then checks the authenticity of the firmware 42, using a digital signature, for instance. (Block 58.) The appliance 32 determines whether the firmware 42 is operable, and if so, loads and runs the firmware 42 into the RAM 35. (Blocks, 60, 62, and 64.) Operable means that the firmware was indeed signed (authorized) by some trusted entity and the firmware is intact (unaltered)." [0023]
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee with Neufeld's teachings because doing so would provide Lee's system with the ability to better protect the updating of firmware or a boot block for a computer system, as suggested by Neufeld [0001].
Lee does not explicitly teach writing a write signature in response to completion of a [[the]] write operation of the firmware of the download steps; and
However, in the analogous field of software deployment, Son teaches:
"The flag setting unit 310 sets the flag 2 (write signature) after downloading and writing of firmware binary data is completed." (page 5, paragraph 2)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee and Neufeld with Son's teachings because doing so would provide Lee/Neufeld's system with the ability to conveniently upgrade firmware, as suggested by Son (Abstract).
With respect to claim 3, Lee teaches,
wherein the download steps further comprise at least one sub-step. - If no download is needed, the process goes to step S510. If so (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3. [0029]
With respect to claim 5, Lee teaches,
wherein the executing of the debug mode comprises writing a sub-complete signature that corresponds to each of the at least one sub-steps in response to completion of each of the at least one sub-step. - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3. Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version. In step S550, it is determined whether the download is finished. If so, in step S560, a flag with a value "Download_done" indicating that the download is finished is provided. A record containing the provided flag, a corresponding signature and the valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Fig's 3 & 5
With respect to claim 10, Lee teaches,
A data storage device, comprising: - mobile device 100 [0020]; Fig. 1
at least one processor configured to control downloading of firmware by executing a debug mode in response to an application of power; - processing unit 120 (Fig. 1); "The mobile device 100 performs a downloading procedure to download a new firmware version..." [0020] "A boot ROM of the RF and baseband unit 110 may store a boot agent (or called boot loader) composed of program code being firstly loaded and executed when the mobile device 100 is turned on (or powered on). The boot agent further determines whether to perform the downloading procedure (debug mode) or the updating procedure." [0020]; Fig. 1
a nonvolatile memory that includes a bootloader memory area configured to store a program that boots the data storage device, - memory space 200, boot agent 210 [0023]; Fig. 2
a firmware memory area configured to store the firmware, and a signature memory area configured to store a signature that corresponds to each download step of the firmware; and - memory space 200, original firmware 220, new firmware 230, flag record block 242 [0023]; Fig. 2. "The flag record block 242 (signature memory) may store multiple records with fixed lengths in sequence, for example 242a, 242b to 242m, to increase search efficiency. As shown in FIG. 3, the data structure of each record (e.g. 242a, 242b or 242m) contains a flag value, a signature and a valid mark in which the flag value is used for indicating a progress or status of the downloading or updating procedure." [0025]
wherein, in the debug mode, the at least one processor is configured to write a start signature in the signature memory area in response to a start operation of the download steps, - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature (start signature) corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520 (signature memory), following the last record, as shown in FIG. 3." [0029]; Figs. 3 & 5; - "Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version. In step S550, it is determined whether the download is finished. If so, in step S560, a flag with a value "Download_done" indicating that the download is finished is provided. A record containing the provided flag, a corresponding signature (write complete signature) and the valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Fig's 3 & 5
Lee does not explicitly teach a random access memory (RAM) configured to copy, by the at least one processor, the firmware stored in the firmware memory area based on a complete signature,
However, in the analogous field of error detection during software upgrading, Neufeld teaches:
"The appliance 32 then checks the authenticity of the firmware 42, using a digital signature, for instance. (Block 58.) The appliance 32 determines whether the firmware 42 is operable, and if so, loads and runs the firmware 42 into the RAM 35. (Blocks, 60, 62, and 64.) Operable means that the firmware was indeed signed (authorized) by some trusted entity and the firmware is intact (unaltered)." [0023]
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee with Neufeld's teachings because doing so would provide Lee's system with the ability to better protect the updating of firmware or a boot block for a computer system, as suggested by Neufeld [0001].
Lee does not explicitly teach write a write signature in response to completion of a [[the]] write operation of the firmware of the download steps.
However, in the analogous field of software deployment, Son teaches:
"The flag setting unit 310 sets the flag 2 (write signature) after downloading and writing of firmware binary data is completed." (page 5, paragraph 2)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee and Neufeld with Son's teachings because doing so would provide Lee/Neufeld's system with the ability to conveniently upgrade firmware, as suggested by Son (Abstract).
With respect to claim 11, Lee teaches,
wherein the at least one processor includes a debug circuit configured to execute the debug mode. - "The described embodiments for updating firmware using FOTA, or certain aspects or portions thereof, may be practiced in logic circuits," [0035]
With respect to claim 13, Lee teaches,
wherein the download steps further comprise at least one sub-step, and - If no download is needed, the process goes to step S510. If so (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3. [0029]
in the debug mode, the at least one processor writes a sub-complete signature that corresponds to each of the at least one sub-steps in response to completion of each of the at least one sub-steps. - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3. Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version. In step S550, it is determined whether the download is finished. If so, in step S560, a flag with a value "Download_done" indicating that the download is finished is provided. A record containing the provided flag, a corresponding signature and the valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Fig's 3 & 5
With respect to claim 17, Lee teaches,
A system, comprising:
a host device that provides firmware; and - remote external server [0029]
a data storage device that includes at least one processor - mobile device 100 [0020]; Fig. 1; processing unit 120 (Fig. 1) and configured to download the firmware from the host device and store the firmware in firmware memory area, - "The mobile device 100 performs a downloading procedure to download a new firmware version..." [0020] "Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version." [0029]; memory space 200, new firmware 230 [0023]; Fig. 2.
wherein the at least one processor is further configured to enter a debug mode to perform download steps of the firmware, - "Then, the download agent communicates with a remote external server to perform a download procedure (debug mode) to download a new firmware version." [0029]; boot the data storage device based on a program stored in a bootloader memory area, - "A boot ROM of the RF and baseband unit 110 may store a boot agent (or called boot loader) composed of program code being firstly loaded and executed when the mobile device 100 is turned on (or powered on)." [0020];
in the debug mode, the at least one processor is further configured to write a start signature in the signature memory area in response to a start operation of the download steps, - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature (start signature) corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520 (signature memory), following the last record, as shown in FIG. 3." [0029]; Figs. 3 & 5; - "Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version. In step S550, it is determined whether the download is finished. If so, in step S560, a flag with a value "Download_done" indicating that the download is finished is provided. A record containing the provided flag, a corresponding signature (write complete signature) and the valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Fig's 3 & 5
Lee does not explicitly teach and copy firmware stored in the firmware memory area to a random access memory (RAM) and execute the firmware based on a complete signature of a signature memory area, and
However, in the analogous field of error detection during software upgrading, Neufeld teaches:
"The appliance 32 then checks the authenticity of the firmware 42, using a digital signature, for instance. (Block 58.) The appliance 32 determines whether the firmware 42 is operable, and if so, loads and runs the firmware 42 into the RAM 35. (Blocks, 60, 62, and 64.) Operable means that the firmware was indeed signed (authorized) by some trusted entity and the firmware is intact (unaltered)." [0023]
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee with Neufeld's teachings because doing so would provide Lee's system with the ability to better protect the updating of firmware or a boot block for a computer system, as suggested by Neufeld [0001].
Lee does not explicitly teach write a write signature in response to completing a [[the]] write operation of the firmware of the download steps,
However, in the analogous field of software deployment, Son teaches:
"The flag setting unit 310 sets the flag 2 (write signature) after downloading and writing of firmware binary data is completed." (page 5, paragraph 2)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee and Neufeld with Son's teachings because doing so would provide Lee/Neufeld's system with the ability to conveniently upgrade firmware, as suggested by Son (Abstract).
With respect to claim 19, Lee teaches,
wherein the download steps further comprise at least one sub-step, and - If no download is needed, the process goes to step S510. If so (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3. [0029]
in the debug mode, the at least one processor is further configured to write a sub-complete signature that corresponds to each of the at least one sub-step in response to completion of each of the at least one sub-step. - "In step S530, the activated download agent determines whether any download is needed. If no download is needed, the process goes to step S510. If so (debug mode) (Yes in step S530), in step S540, a flag with a value "Under_download" indicating that the download is undergoing is provided. A signature corresponding to the inserted flag and a specific valid mark are also provided. A record containing the provided flag, signature and valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3. Then, the download agent communicates with a remote external server to perform a download procedure to download a new firmware version. In step S550, it is determined whether the download is finished. If so, in step S560, a flag with a value "Download_done" indicating that the download is finished is provided. A record containing the provided flag, a corresponding signature and the valid mark is inserted to the flag record block 520, following the last record, as shown in FIG. 3." [0029]; Fig's 3 & 5
Claims 2, 12 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Lee, Neufeld and Son, and in view of US 6584559 B1 - hereinafter "Huh".
With respect to claim 2, Lee does not explicitly teach,
wherein the checking of whether the download steps are completed comprises repeating the executing of the debug mode in response to a failure to read the complete signature.
However, in the analogous field of software deployment, Huh teaches:
"If the new firmware was not successfully downloaded (e.g., a checksum is invalid), the user is notified 116 of a failure. The user next determines 120 whether or not to retry downloading the new firmware 54. If the user decides to retry downloading the new firmware 54, step 100 is repeated." (col. 4:14-19)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee, Neufeld and Son with Huh's teachings because doing so would provide Lee/Neufeld/Son's system with the ability to facilitate recovering from an unsuccessful firmware download, as suggested by Huh (col. 1:7-10).
With respect to claim 12, Lee does not explicitly teach,
wherein the at least one processor is further configured to execute the debug mode in response to a failure to read the complete signature.
However, in the analogous field of software deployment, Huh teaches:
"If the new firmware was not successfully downloaded (e.g., a checksum is invalid), the user is notified 116 of a failure. The user next determines 120 whether or not to retry downloading the new firmware 54. If the user decides to retry downloading the new firmware 54, step 100 is repeated." (col. 4:14-19)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee, Neufeld and Son with Huh's teachings because doing so would provide Lee/Neufeld/Son's system with the ability to facilitate recovering from an unsuccessful firmware download, as suggested by Huh (col. 1:7-10).
With respect to claim 18, Lee does not explicitly teach,
wherein the at least one processor is further configured to enter the debug mode in response to a failure to read the complete signature.
However, in the analogous field of software deployment, Huh teaches:
"If the new firmware was not successfully downloaded (e.g., a checksum is invalid), the user is notified 116 of a failure. The user next determines 120 whether or not to retry downloading the new firmware 54. If the user decides to retry downloading the new firmware 54, step 100 is repeated." (col. 4:14-19)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee, Neufeld and Son with Huh's teachings because doing so would provide Lee/Neufeld/Son's system with the ability to facilitate recovering from an unsuccessful firmware download, as suggested by Huh (col. 1:7-10).
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Lee, Neufeld and Son, and in view of US 20230236949 A1 - hereinafter "Cresci".
With respect to claim 4, Lee does not explicitly teach,
wherein the at least one sub-step comprises initializing peripheral devices.
However, in the analogous field of software deployment, Cresci teaches:
"A management subsystem 130 employs firmware 132 downloaded from a serial flash to configure various peripherals, performance optimization, error monitoring, device maintenance, temperature monitoring, VPD, etc."
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Lee, Neufeld and Son with Cresci's teachings because doing so would provide Lee/Neufeld/Son's system with the ability to prevent hardware-level problems due to excess heat, excess power consumption, or other physical conditions, as suggested by Cresci [0002].
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. KR 20060099113 A discloses a method for managing the abnormal termination of a firmware download for an optical disk loader. The NPL document "Hyperledger-Based Secure Firmware Update Delivery for IoT Devices" proposes an approach for the delivery of secure firmware updates to IoT devices. The NPL document "UpKit: An Open-Source, Portable, and Lightweight Update Framework for Constrained IoT Devices" discusses UpKit, an open-source, portable, and lightweight software update framework for constrained IoT devices.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to GEOFFREY R ST LEGER whose telephone number is (571)270-7720. The examiner can normally be reached M-F (IFP) ~9:00-5:00 pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Hyung S Sough can be reached at 571-272-6799. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/GEOFFREY R ST LEGER/Primary Examiner, Art Unit 2192